@fusion.dev/helix 0.188.0 → 0.190.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.
Files changed (36) hide show
  1. package/api.json +1 -1
  2. package/custom-elements.json +17297 -13438
  3. package/dist/element-events.generated.js +21 -7
  4. package/dist/index.d.ts +3 -1
  5. package/dist/index.js +3 -1
  6. package/dist/spatial-heatmap/index.d.ts +1 -0
  7. package/dist/spatial-heatmap/index.js +1 -0
  8. package/dist/spatial-heatmap/root/spatial-heatmap-root.css.js +2 -0
  9. package/dist/spatial-heatmap/root/spatial-heatmap-root.d.ts +39 -0
  10. package/dist/spatial-heatmap/root/spatial-heatmap-root.js +18 -0
  11. package/dist/spatial-scatter-chart/index.d.ts +1 -0
  12. package/dist/spatial-scatter-chart/index.js +1 -0
  13. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.css.d.ts +1 -0
  14. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.css.js +2 -0
  15. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.d.ts +27 -0
  16. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.js +15 -0
  17. package/dist/spatial-surface-chart/index.d.ts +1 -0
  18. package/dist/spatial-surface-chart/index.js +1 -0
  19. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.css.d.ts +1 -0
  20. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.css.js +2 -0
  21. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.d.ts +30 -0
  22. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.js +14 -0
  23. package/examples.json +1 -1
  24. package/lint.json +1 -1
  25. package/package.json +6 -6
  26. package/skills/helix/SKILL.md +2 -2
  27. package/types/jsx.d.ts +5280 -3710
  28. package/types/svelte.d.ts +3 -1
  29. package/types/vue.d.ts +675 -371
  30. package/types/words.d.ts +14 -0
  31. package/dist/isometric-heatmap/index.d.ts +0 -1
  32. package/dist/isometric-heatmap/index.js +0 -1
  33. package/dist/isometric-heatmap/root/isometric-heatmap-root.css.js +0 -2
  34. package/dist/isometric-heatmap/root/isometric-heatmap-root.d.ts +0 -39
  35. package/dist/isometric-heatmap/root/isometric-heatmap-root.js +0 -18
  36. /package/dist/{isometric-heatmap/root/isometric-heatmap-root.css.d.ts → spatial-heatmap/root/spatial-heatmap-root.css.d.ts} +0 -0
package/types/vue.d.ts CHANGED
@@ -59,7 +59,6 @@ import type {
59
59
  HelixIcon,
60
60
  HelixImage,
61
61
  HelixInput,
62
- HelixIsometricHeatmap,
63
62
  HelixKbd,
64
63
  HelixLegend,
65
64
  HelixLightboxItem,
@@ -120,6 +119,9 @@ import type {
120
119
  HelixSkipLink,
121
120
  HelixSlider,
122
121
  HelixSparkline,
122
+ HelixSpatialHeatmap,
123
+ HelixSpatialScatterChart,
124
+ HelixSpatialSurfaceChart,
123
125
  HelixSpeedDialGroup,
124
126
  HelixSpeedDialItem,
125
127
  HelixSpeedDial,
@@ -245,6 +247,8 @@ import type {
245
247
  HelixEditEvent,
246
248
  HelixPanelResizeEvent,
247
249
  HelixSplitEvent,
250
+ HelixPlotChangeEvent,
251
+ HelixPlotTurnEvent,
248
252
  HelixBeforeCollapseEvent,
249
253
  HelixBeforeResizeEvent,
250
254
  HelixCollapseEvent,
@@ -10148,253 +10152,6 @@ export type HelixInputVueEvents = {
10148
10152
  input: HelixInputElementEvent;
10149
10153
  };
10150
10154
 
10151
- /** `HelixIsometricHeatmap` component event */
10152
- export type HelixIsometricHeatmapElementEvent<E = Event> = TypedEvent<
10153
- HelixIsometricHeatmap,
10154
- E
10155
- >;
10156
- /** `helix-before-change` event type */
10157
- export type HelixIsometricHeatmapHelixBeforeChangeElementEvent =
10158
- HelixIsometricHeatmapElementEvent<HelixBeforeChangeEvent>;
10159
- /** `helix-reading-change` event type */
10160
- export type HelixIsometricHeatmapHelixReadingChangeElementEvent =
10161
- HelixIsometricHeatmapElementEvent<HelixReadingChangeEvent>;
10162
- /** `helix-reading-press` event type */
10163
- export type HelixIsometricHeatmapHelixReadingPressElementEvent =
10164
- HelixIsometricHeatmapElementEvent<HelixReadingPressEvent>;
10165
- /** `helix-resize` event type */
10166
- export type HelixIsometricHeatmapHelixResizeElementEvent =
10167
- HelixIsometricHeatmapElementEvent<HelixResizeEvent>;
10168
-
10169
- export type HelixIsometricHeatmapVueProps = {
10170
- /** Draws every prism at no height, so the tones lie on a plane. */
10171
- flat?: (HelixIsometricHeatmap["flat"]) | undefined;
10172
- /** How tall the highest reading stands, in cells. Every other reading stands
10173
- at its share of it. */
10174
- relief?: (HelixIsometricHeatmap["relief"]) | undefined;
10175
- /** The words shown in place of the drawing when the table has no readings,
10176
- and the fallback of the `empty` slot. */
10177
- "empty-text"?: (HelixIsometricHeatmap["emptyText"]) | undefined;
10178
- /** The words shown in place of the drawing when the table has no readings,
10179
- and the fallback of the `empty` slot. */
10180
- emptyText?: (HelixIsometricHeatmap["emptyText"]) | undefined;
10181
- /** Whether the readings are still on their way. The chart shows
10182
- `loading-text` in place of an empty drawing until it has readings.
10183
-
10184
- Reflected, so a stylesheet can treat the chart while it waits. A chart
10185
- that already has readings keeps drawing them, so a refresh does not
10186
- blank it. */
10187
- loading?: (HelixIsometricHeatmap["loading"]) | undefined;
10188
- /** The words shown in place of the drawing while `loading` is set and
10189
- there are no readings yet, and the fallback of the `loading` slot. */
10190
- "loading-text"?: (HelixIsometricHeatmap["loadingText"]) | undefined;
10191
- /** The words shown in place of the drawing while `loading` is set and
10192
- there are no readings yet, and the fallback of the `loading` slot. */
10193
- loadingText?: (HelixIsometricHeatmap["loadingText"]) | undefined;
10194
- /** The id of the table to read.
10195
-
10196
- Names a table in the same tree, so a chart inside another component's
10197
- shadow root reads a table in that root rather than one in the document. A
10198
- `<table>` or anything built from grid roles, including `helix-table`.
10199
-
10200
- **In React this arrives as a property and not as an attribute**, the way
10201
- `Tooltip.for` does, so it does not reflect and nothing styles on it. */
10202
- for?: (HelixIsometricHeatmap["for"]) | undefined;
10203
- /** The chart's name, which starts the chart's text summary.
10204
-
10205
- Absent falls back to the table's own caption, which is usually the right
10206
- words and is already written. */
10207
- label?: (HelixIsometricHeatmap["label"]) | undefined;
10208
- /** The locale the chart's own numbers are written in: its axis, its
10209
- percentages and its totals, such as `de` for `1.240` and `32 %`.
10210
-
10211
- Absent reads the nearest `lang`, then the runtime's own. The table's
10212
- cells are shown as the table writes them, whatever this says. */
10213
- locale?: (HelixIsometricHeatmap["locale"]) | undefined;
10214
- /** Where a reading the keys moved to stands among the readings, said after
10215
- it. `{position}` and `{count}` are replaced with the numbers, written in
10216
- `locale`.
10217
-
10218
- Set it to the words of the page's language, such as `{position} von
10219
- {count}`, or to nothing to say no position. A slice or a series a
10220
- legend hid is not counted. */
10221
- "position-label"?: (HelixIsometricHeatmap["positionLabel"]) | undefined;
10222
- /** Where a reading the keys moved to stands among the readings, said after
10223
- it. `{position}` and `{count}` are replaced with the numbers, written in
10224
- `locale`.
10225
-
10226
- Set it to the words of the page's language, such as `{position} von
10227
- {count}`, or to nothing to say no position. A slice or a series a
10228
- legend hid is not counted. */
10229
- positionLabel?: (HelixIsometricHeatmap["positionLabel"]) | undefined;
10230
- /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
10231
- `overview-label`. */
10232
- "busiest-label"?: (HelixIsometricHeatmap["busiestLabel"]) | undefined;
10233
- /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
10234
- `overview-label`. */
10235
- busiestLabel?: (HelixIsometricHeatmap["busiestLabel"]) | undefined;
10236
- /** Space between cells, in CSS pixels. It is a number for the same reason
10237
- `min-cell` is. */
10238
- gap?: (HelixIsometricHeatmap["gap"]) | undefined;
10239
- /** The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
10240
-
10241
- **Set this only to overrule what the strip actually draws.** The arithmetic
10242
- needs a width in pixels and the width is a length the stylesheet resolves,
10243
- so a number written here that disagrees with the sheet is a promise the
10244
- consumer has to keep by hand, and the one number a summary is told to trust
10245
- is the one it gets wrong.
10246
-
10247
- The strip measures itself, so sizing the cells in a sheet is enough on its
10248
- own and these two are the estimate used until the first measurement lands.
10249
- Writing the attribute pins the value and stops the measurement being
10250
- consulted, which is what a container query or a transition on the cell size
10251
- wants, where what is drawn this frame is not what the arithmetic should
10252
- plan around.
10253
-
10254
- Zero turns the dropping off altogether, which is right for a strip in a
10255
- container that cannot get narrow. */
10256
- "min-cell"?: (HelixIsometricHeatmap["minCell"] | `${number}`) | undefined;
10257
- /** The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
10258
-
10259
- **Set this only to overrule what the strip actually draws.** The arithmetic
10260
- needs a width in pixels and the width is a length the stylesheet resolves,
10261
- so a number written here that disagrees with the sheet is a promise the
10262
- consumer has to keep by hand, and the one number a summary is told to trust
10263
- is the one it gets wrong.
10264
-
10265
- The strip measures itself, so sizing the cells in a sheet is enough on its
10266
- own and these two are the estimate used until the first measurement lands.
10267
- Writing the attribute pins the value and stops the measurement being
10268
- consulted, which is what a container query or a transition on the cell size
10269
- wants, where what is drawn this frame is not what the arithmetic should
10270
- plan around.
10271
-
10272
- Zero turns the dropping off altogether, which is right for a strip in a
10273
- container that cannot get narrow. */
10274
- minCell?: (HelixIsometricHeatmap["minCell"]) | undefined;
10275
- /** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
10276
- `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
10277
- and its reading as the table writes it, and `{total}` the total of the
10278
- readings drawn, written in the locale. */
10279
- "overview-label"?: (HelixIsometricHeatmap["overviewLabel"]) | undefined;
10280
- /** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
10281
- `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
10282
- and its reading as the table writes it, and `{total}` the total of the
10283
- readings drawn, written in the locale. */
10284
- overviewLabel?: (HelixIsometricHeatmap["overviewLabel"]) | undefined;
10285
- /** How many rows the strip has.
10286
-
10287
- `1` is a status strip and `7` is a calendar week, which are the two readings
10288
- this covers. Cells fill down the column and then across, which is what a
10289
- calendar heatmap does: a week is a column, so the strip reads along the
10290
- line in weeks, from the right on a right-to-left page, and top to bottom in
10291
- days. */
10292
- rows?: (HelixIsometricHeatmap["rows"]) | undefined;
10293
- /** What the readout added for a selected cell, under `selection-mode`. */
10294
- "selected-label"?: (HelixIsometricHeatmap["selectedLabel"]) | undefined;
10295
- /** What the readout added for a selected cell, under `selection-mode`. */
10296
- selectedLabel?: (HelixIsometricHeatmap["selectedLabel"]) | undefined;
10297
- /** What the `selection` part says after the selection changes. `{count}` is
10298
- how many cells are selected, written in the locale, and a language that
10299
- needs plural forms writes them: `{count, plural, one {# wybrany} few
10300
- {# wybrane} many {# wybranych} other {# wybranego}}`. */
10301
- "selection-label"?: (HelixIsometricHeatmap["selectionLabel"]) | undefined;
10302
- /** What the `selection` part says after the selection changes. `{count}` is
10303
- how many cells are selected, written in the locale, and a language that
10304
- needs plural forms writes them: `{count, plural, one {# wybrany} few
10305
- {# wybrane} many {# wybranych} other {# wybranego}}`. */
10306
- selectionLabel?: (HelixIsometricHeatmap["selectionLabel"]) | undefined;
10307
- /** How many cells a reader can select: `single` or `multiple`.
10308
-
10309
- Absent selects nothing, and a press or Space does what it did. */
10310
- "selection-mode"?: (HelixIsometricHeatmap["selectionMode"]) | undefined;
10311
- /** How many cells a reader can select: `single` or `multiple`.
10312
-
10313
- Absent selects nothing, and a press or Space does what it did. */
10314
- selectionMode?: (HelixIsometricHeatmap["selectionMode"]) | undefined;
10315
- /** What Shift takes in under `selection-mode="multiple"`: `linear`, every
10316
- cell between two in the table's order, or `rectangle`, the cells between
10317
- two corners by row and by column, as a spreadsheet selects a range. */
10318
- "selection-shape"?: (HelixIsometricHeatmap["selectionShape"]) | undefined;
10319
- /** What Shift takes in under `selection-mode="multiple"`: `linear`, every
10320
- cell between two in the table's order, or `rectangle`, the cells between
10321
- two corners by row and by column, as a spreadsheet selects a range. */
10322
- selectionShape?: (HelixIsometricHeatmap["selectionShape"]) | undefined;
10323
- /** The strip's name where the chart has none: no `aria-label`, `label`, or
10324
- table caption. */
10325
- "strip-label"?: (HelixIsometricHeatmap["stripLabel"]) | undefined;
10326
- /** The strip's name where the chart has none: no `aria-label`, `label`, or
10327
- table caption. */
10328
- stripLabel?: (HelixIsometricHeatmap["stripLabel"]) | undefined;
10329
- /** Lower bounds for the tone buckets, in the order the tones are given.
10330
-
10331
- `thresholds="1 3 6 9"` with `tones="1 2 3 4"` puts 1 and 2 in the ramp's
10332
- first step, 3 to 5 in the second, 6 to 8 in the third, and 9 upward in the
10333
- fourth. A value below the first bound gets no tone at all: an empty day in a
10334
- contribution graph is a day with nothing in it, and painting it as the
10335
- lowest bucket claims a reading that does not exist. */
10336
- thresholds?: (HelixIsometricHeatmap["thresholds"]) | undefined;
10337
- /** The tone for each bucket, in the same order as `thresholds`.
10338
-
10339
- A name, resolved as `--heatmap-tone-<name>` by whichever tier answers.
10340
- **`"1"` through `"5"` are a ramp and everything else is a category**, which
10341
- is the distinction a heatmap lives or dies on: magnitude has to be one hue
10342
- getting louder, because a reader compares two cells by weight and cannot
10343
- compare two hues at all. `tones="surface info accent success primary"` for a
10344
- commit count is five unrelated hues for five amounts, which is confetti with
10345
- no order in it. */
10346
- tones?: (HelixIsometricHeatmap["tones"]) | undefined;
10347
- /** The name the `overview` gives the total of the readings drawn,
10348
- `{totalLabel}` in `overview-label`. */
10349
- "total-label"?: (HelixIsometricHeatmap["totalLabel"]) | undefined;
10350
- /** The name the `overview` gives the total of the readings drawn,
10351
- `{totalLabel}` in `overview-label`. */
10352
- totalLabel?: (HelixIsometricHeatmap["totalLabel"]) | undefined;
10353
- /** The selected cells, separated by commas: each by the date its row's
10354
- header carries in a `<time datetime>`, such as `2026-06-11`, or by the
10355
- header's words where it carries none.
10356
-
10357
- Set it to start with cells selected. Written by a press or a key under
10358
- `selection-mode`. */
10359
- value?: (HelixIsometricHeatmap["value"]) | undefined;
10360
- /** The readings as data, in the shape of a table, where the page has no
10361
- table to point `for` at. `for` wins where both are set.
10362
-
10363
- ```js
10364
- chart.data = {
10365
- caption: 'Sessions by channel',
10366
- columns: ['Month', 'Direct', 'Referral'],
10367
- rows: [['Jan', 10, 4], ['Feb', 20, 8]],
10368
- }
10369
- ```
10370
-
10371
- The first column holds each row's label and every column after it a
10372
- series, as in a table. A cell is a number, words, `null` for a blank,
10373
- or `{ value, text }` for a number shown as words, such as `$128k`. A
10374
- number is shown in `locale`.
10375
-
10376
- **A table is still the better source where the page can show one**:
10377
- it reads with no script and before hydration, and a reader can sort and
10378
- copy it. Data is drawn on the client only, so a server serves the
10379
- frame, and the summary, the keys and the readout are then the whole of
10380
- what a screen reader is given. Set a new object to redraw: the chart
10381
- does not look inside the one it has. */
10382
- data?: (HelixIsometricHeatmap["data"]) | undefined;
10383
- };
10384
-
10385
- export type HelixIsometricHeatmapVueEvents = {
10386
- /** Fired once a press or a key has changed which cells are selected. */
10387
- change: HelixIsometricHeatmapElementEvent;
10388
- /** Fired before a press or a key changes which cells are selected, with the `value` it would leave. Cancelable. */
10389
- "helix-before-change": HelixIsometricHeatmapHelixBeforeChangeElementEvent;
10390
- /** The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it. */
10391
- "helix-reading-change": HelixIsometricHeatmapHelixReadingChangeElementEvent;
10392
- /** A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
10393
- "helix-reading-press": HelixIsometricHeatmapHelixReadingPressElementEvent;
10394
- /** Fired when the number of cells drawn changes, with the new number. */
10395
- "helix-resize": HelixIsometricHeatmapHelixResizeElementEvent;
10396
- };
10397
-
10398
10155
  /** `HelixKbd` component event */
10399
10156
  export type HelixKbdElementEvent<E = Event> = TypedEvent<HelixKbd, E>;
10400
10157
  /** `helix-shortcut` event type */
@@ -16897,146 +16654,659 @@ chart is drawn over rather than a guess at it. */
16897
16654
  terminus?: (HelixSparkline["terminus"]) | undefined;
16898
16655
  /** How thick the line is drawn.
16899
16656
 
16900
- Absent is the weight a sparkline is usually drawn at. `thin` suits one set
16901
- in a table row among many; `thick` suits one standing on its own, where a
16902
- hairline reads as an accident.
16657
+ Absent is the weight a sparkline is usually drawn at. `thin` suits one set
16658
+ in a table row among many; `thick` suits one standing on its own, where a
16659
+ hairline reads as an accident.
16660
+
16661
+ Three steps rather than a number, because `--sparkline-width` is already
16662
+ the number and an attribute earns its place by being the thing a consumer
16663
+ reaches for without reading the stylesheet. The hook stays for anything the
16664
+ three do not cover. */
16665
+ weight?: (HelixSparkline["weight"]) | undefined;
16666
+ /** How the line is drawn from one reading to the next.
16667
+
16668
+ **`smooth` is the resting curve.** A straight segment asserts nothing about
16669
+ the values between two readings and a curve invents them, which is why
16670
+ `straight` exists. What settles the default the other way is that the
16671
+ invention is bounded: the interpolation is monotone cubic, so it never
16672
+ leaves the band the data sets and never introduces a peak or a trough the
16673
+ series does not have. Within that bound the smoothed line is the easier one
16674
+ to follow across a long series, which is what the drawing is for. `straight`
16675
+ becomes the claim a consumer makes deliberately rather than the one they get
16676
+ by saying nothing.
16677
+
16678
+ **The property stays optional and the default lives in the render.** A
16679
+ reflecting property with a default writes its attribute onto every host
16680
+ anybody renders, including the ones nobody configured, which the SSR specs
16681
+ assert against. So the resting state is still the attribute's absence, and
16682
+ `curve ?? 'smooth'` is what reads it.
16683
+
16684
+ `step` claims the opposite of both, that a reading holds until the next.
16685
+ Bars ignore it, having no between to interpolate.
16686
+
16687
+ **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
16688
+ position and a stacked band claims an amount: a curve fitted through one
16689
+ sum can pass under the curve fitted through the sum beneath it, so a
16690
+ smoothed stack can draw a part as less than nothing. There is no such edge
16691
+ here, which is what lets a line take the reading aid. */
16692
+ curve?: (HelixSparkline["curve"]) | undefined;
16693
+ /** The id of a table to read the readings from, when a table holds the data.
16694
+
16695
+ The first column of numbers is the series drawn. This wins over `values`,
16696
+ because a table is the readable representation and a list of numbers in an
16697
+ attribute is not.
16698
+
16699
+ **In React this arrives as a property and not as an attribute**, the way
16700
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
16701
+ for?: (HelixSparkline["for"]) | undefined;
16702
+ /** A sentence that describes what the line shows.
16703
+
16704
+ "Sessions rose from 1,240 to 1,318 and fell to 1,102 over fourteen days" is
16705
+ the accessible representation of a sparkline, and a list of the fourteen
16706
+ numbers is not. Absent, the drawing is hidden from a screen reader rather
16707
+ than announced without a name. */
16708
+ label?: (HelixSparkline["label"]) | undefined;
16709
+ /** The locale the words, the readout's numbers and positions are in, such
16710
+ as `de` for `1.240`.
16711
+
16712
+ Absent reads the nearest `lang`, then the runtime's own. A table's cells
16713
+ are shown as the table writes them, whatever this says. */
16714
+ locale?: (HelixSparkline["locale"]) | undefined;
16715
+ /** Which readings take a mark of their own: `high`, `low`, or both,
16716
+ separated by spaces.
16717
+
16718
+ Absent marks none, and the drawing is what it was. Each mark is a part,
16719
+ placed at its reading, for a stylesheet to draw. */
16720
+ marks?: (HelixSparkline["marks"]) | undefined;
16721
+ /** What the readings come to, said after the name: `{first}` and `{last}`
16722
+ for the first and the last reading, `{high}` and `{low}` for the highest
16723
+ and the lowest, each written as the readout writes it.
16724
+
16725
+ Set it to the words of the page's language, or to nothing to say no
16726
+ more than the name. Said only where the sparkline is named. */
16727
+ "overview-label"?: (HelixSparkline["overviewLabel"]) | undefined;
16728
+ /** What the readings come to, said after the name: `{first}` and `{last}`
16729
+ for the first and the last reading, `{high}` and `{low}` for the highest
16730
+ and the lowest, each written as the readout writes it.
16731
+
16732
+ Set it to the words of the page's language, or to nothing to say no
16733
+ more than the name. Said only where the sparkline is named. */
16734
+ overviewLabel?: (HelixSparkline["overviewLabel"]) | undefined;
16735
+ /** What the readings are drawn as.
16736
+
16737
+ Absent is `area`, a line with the region beneath it washed. `line` is the
16738
+ bare stroke, and `bar` is a column per reading.
16739
+
16740
+ **A bar plot measures from zero and the other two measure from the data's
16741
+ own range**, which is the one way the plots are not interchangeable. A line
16742
+ says where the readings sit relative to each other, so a scale over their
16743
+ extent uses the whole box and claims nothing about absolute size. A bar's
16744
+ length *is* the value, so any baseline but zero makes the lengths
16745
+ proportional to nothing.
16746
+
16747
+ **Which is a reason to prefer a line for readings in a narrow band far from
16748
+ zero.** Seven values between 1,102 and 1,408 drawn as columns from zero are
16749
+ seven columns of nearly the same height, and that is the true picture: they
16750
+ *are* nearly the same. The same readings as a line fill the box and show
16751
+ the movement, because a line is only ever claiming a shape.
16752
+
16753
+ **Absent is `area`**, which is the departure from the rule that a resting
16754
+ arrangement is the plainest thing. At the size a sparkline is actually
16755
+ drawn, a hairline in a wide box is mostly box: the wash under it is what
16756
+ gives the shape a body and lets a reader see it at a glance rather than
16757
+ hunting for it, which is the entire job. `line` is the bare stroke for
16758
+ anywhere the fill would be noise, several of them in one box for instance.
16759
+
16760
+ This tier rather than the one above: a plot type is geometry and geometry
16761
+ is markup, the same reason `curve` lives here. */
16762
+ plot?: (HelixSparkline["plot"]) | undefined;
16763
+ /** Where a reading the keys moved to stands among the readings, said after
16764
+ it. `{position}` and `{count}` are replaced with the numbers, written in
16765
+ `locale`.
16766
+
16767
+ Set it to the words of the page's language, such as `{position} von
16768
+ {count}`, or to nothing to say no position. */
16769
+ "position-label"?: (HelixSparkline["positionLabel"]) | undefined;
16770
+ /** Where a reading the keys moved to stands among the readings, said after
16771
+ it. `{position}` and `{count}` are replaced with the numbers, written in
16772
+ `locale`.
16773
+
16774
+ Set it to the words of the page's language, such as `{position} von
16775
+ {count}`, or to nothing to say no position. */
16776
+ positionLabel?: (HelixSparkline["positionLabel"]) | undefined;
16777
+ /** Two values a band is drawn between, behind the line, separated by a
16778
+ space: `range="60 100"` marks a normal range.
16779
+
16780
+ The scale stretches to hold the band where the readings do not reach it.
16781
+ Absent draws none. */
16782
+ range?: (HelixSparkline["range"]) | undefined;
16783
+ /** The numbers, separated by whitespace or by commas.
16784
+
16785
+ An array assigned to the property works too, which is what React 19 does
16786
+ with `values={[1240, 1318]}`. The attribute is the form to prefer, because
16787
+ a string is what survives React's hydration where an array property does
16788
+ not. */
16789
+ values?: (HelixSparkline["values"]) | undefined;
16790
+ };
16791
+
16792
+ export type HelixSparklineVueEvents = {
16793
+ /** The reading shown moved, or was put away: `index` is the reading, or `-1` for none, with its row's `label` from a table and the `pointerType` that moved it. */
16794
+ "helix-reading-change": HelixSparklineHelixReadingChangeElementEvent;
16795
+ /** A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
16796
+ "helix-reading-press": HelixSparklineHelixReadingPressElementEvent;
16797
+ };
16798
+
16799
+ /** `HelixSpatialHeatmap` component event */
16800
+ export type HelixSpatialHeatmapElementEvent<E = Event> = TypedEvent<
16801
+ HelixSpatialHeatmap,
16802
+ E
16803
+ >;
16804
+ /** `helix-plot-change` event type */
16805
+ export type HelixSpatialHeatmapHelixPlotChangeElementEvent =
16806
+ HelixSpatialHeatmapElementEvent<HelixPlotChangeEvent>;
16807
+ /** `helix-plot-turn` event type */
16808
+ export type HelixSpatialHeatmapHelixPlotTurnElementEvent =
16809
+ HelixSpatialHeatmapElementEvent<HelixPlotTurnEvent>;
16810
+ /** `helix-before-change` event type */
16811
+ export type HelixSpatialHeatmapHelixBeforeChangeElementEvent =
16812
+ HelixSpatialHeatmapElementEvent<HelixBeforeChangeEvent>;
16813
+ /** `helix-reading-change` event type */
16814
+ export type HelixSpatialHeatmapHelixReadingChangeElementEvent =
16815
+ HelixSpatialHeatmapElementEvent<HelixReadingChangeEvent>;
16816
+ /** `helix-reading-press` event type */
16817
+ export type HelixSpatialHeatmapHelixReadingPressElementEvent =
16818
+ HelixSpatialHeatmapElementEvent<HelixReadingPressEvent>;
16819
+ /** `helix-resize` event type */
16820
+ export type HelixSpatialHeatmapHelixResizeElementEvent =
16821
+ HelixSpatialHeatmapElementEvent<HelixResizeEvent>;
16822
+
16823
+ export type HelixSpatialHeatmapVueProps = {
16824
+ /** Draws every prism at no height, so the tones lie on a plane. */
16825
+ flat?: (HelixSpatialHeatmap["flat"]) | undefined;
16826
+ /** How tall the highest reading stands, in cells. Every other reading stands
16827
+ at its share of it. */
16828
+ relief?: (HelixSpatialHeatmap["relief"]) | undefined;
16829
+ /** The words shown in place of the drawing when the table has no readings,
16830
+ and the fallback of the `empty` slot. */
16831
+ "empty-text"?: (HelixSpatialHeatmap["emptyText"]) | undefined;
16832
+ /** The words shown in place of the drawing when the table has no readings,
16833
+ and the fallback of the `empty` slot. */
16834
+ emptyText?: (HelixSpatialHeatmap["emptyText"]) | undefined;
16835
+ /** Whether the readings are still on their way. The chart shows
16836
+ `loading-text` in place of an empty drawing until it has readings.
16837
+
16838
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
16839
+ that already has readings keeps drawing them, so a refresh does not
16840
+ blank it. */
16841
+ loading?: (HelixSpatialHeatmap["loading"]) | undefined;
16842
+ /** The words shown in place of the drawing while `loading` is set and
16843
+ there are no readings yet, and the fallback of the `loading` slot. */
16844
+ "loading-text"?: (HelixSpatialHeatmap["loadingText"]) | undefined;
16845
+ /** The words shown in place of the drawing while `loading` is set and
16846
+ there are no readings yet, and the fallback of the `loading` slot. */
16847
+ loadingText?: (HelixSpatialHeatmap["loadingText"]) | undefined;
16848
+ /** The id of the table to read.
16849
+
16850
+ Names a table in the same tree, so a chart inside another component's
16851
+ shadow root reads a table in that root rather than one in the document. A
16852
+ `<table>` or anything built from grid roles, including `helix-table`.
16853
+
16854
+ **In React this arrives as a property and not as an attribute**, the way
16855
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
16856
+ for?: (HelixSpatialHeatmap["for"]) | undefined;
16857
+ /** The chart's name, which starts the chart's text summary.
16858
+
16859
+ Absent falls back to the table's own caption, which is usually the right
16860
+ words and is already written. */
16861
+ label?: (HelixSpatialHeatmap["label"]) | undefined;
16862
+ /** The locale the chart's own numbers are written in: its axis, its
16863
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
16864
+
16865
+ Absent reads the nearest `lang`, then the runtime's own. The table's
16866
+ cells are shown as the table writes them, whatever this says. */
16867
+ locale?: (HelixSpatialHeatmap["locale"]) | undefined;
16868
+ /** Where a reading the keys moved to stands among the readings, said after
16869
+ it. `{position}` and `{count}` are replaced with the numbers, written in
16870
+ `locale`.
16871
+
16872
+ Set it to the words of the page's language, such as `{position} von
16873
+ {count}`, or to nothing to say no position. A slice or a series a
16874
+ legend hid is not counted. */
16875
+ "position-label"?: (HelixSpatialHeatmap["positionLabel"]) | undefined;
16876
+ /** Where a reading the keys moved to stands among the readings, said after
16877
+ it. `{position}` and `{count}` are replaced with the numbers, written in
16878
+ `locale`.
16879
+
16880
+ Set it to the words of the page's language, such as `{position} von
16881
+ {count}`, or to nothing to say no position. A slice or a series a
16882
+ legend hid is not counted. */
16883
+ positionLabel?: (HelixSpatialHeatmap["positionLabel"]) | undefined;
16884
+ /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
16885
+ `overview-label`. */
16886
+ "busiest-label"?: (HelixSpatialHeatmap["busiestLabel"]) | undefined;
16887
+ /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
16888
+ `overview-label`. */
16889
+ busiestLabel?: (HelixSpatialHeatmap["busiestLabel"]) | undefined;
16890
+ /** Space between cells, in CSS pixels. It is a number for the same reason
16891
+ `min-cell` is. */
16892
+ gap?: (HelixSpatialHeatmap["gap"]) | undefined;
16893
+ /** The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
16894
+
16895
+ **Set this only to overrule what the strip actually draws.** The arithmetic
16896
+ needs a width in pixels and the width is a length the stylesheet resolves,
16897
+ so a number written here that disagrees with the sheet is a promise the
16898
+ consumer has to keep by hand, and the one number a summary is told to trust
16899
+ is the one it gets wrong.
16900
+
16901
+ The strip measures itself, so sizing the cells in a sheet is enough on its
16902
+ own and these two are the estimate used until the first measurement lands.
16903
+ Writing the attribute pins the value and stops the measurement being
16904
+ consulted, which is what a container query or a transition on the cell size
16905
+ wants, where what is drawn this frame is not what the arithmetic should
16906
+ plan around.
16907
+
16908
+ Zero turns the dropping off altogether, which is right for a strip in a
16909
+ container that cannot get narrow. */
16910
+ "min-cell"?: (HelixSpatialHeatmap["minCell"] | `${number}`) | undefined;
16911
+ /** The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
16912
+
16913
+ **Set this only to overrule what the strip actually draws.** The arithmetic
16914
+ needs a width in pixels and the width is a length the stylesheet resolves,
16915
+ so a number written here that disagrees with the sheet is a promise the
16916
+ consumer has to keep by hand, and the one number a summary is told to trust
16917
+ is the one it gets wrong.
16918
+
16919
+ The strip measures itself, so sizing the cells in a sheet is enough on its
16920
+ own and these two are the estimate used until the first measurement lands.
16921
+ Writing the attribute pins the value and stops the measurement being
16922
+ consulted, which is what a container query or a transition on the cell size
16923
+ wants, where what is drawn this frame is not what the arithmetic should
16924
+ plan around.
16925
+
16926
+ Zero turns the dropping off altogether, which is right for a strip in a
16927
+ container that cannot get narrow. */
16928
+ minCell?: (HelixSpatialHeatmap["minCell"]) | undefined;
16929
+ /** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
16930
+ `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
16931
+ and its reading as the table writes it, and `{total}` the total of the
16932
+ readings drawn, written in the locale. */
16933
+ "overview-label"?: (HelixSpatialHeatmap["overviewLabel"]) | undefined;
16934
+ /** The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
16935
+ `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
16936
+ and its reading as the table writes it, and `{total}` the total of the
16937
+ readings drawn, written in the locale. */
16938
+ overviewLabel?: (HelixSpatialHeatmap["overviewLabel"]) | undefined;
16939
+ /** How many rows the strip has.
16940
+
16941
+ `1` is a status strip and `7` is a calendar week, which are the two readings
16942
+ this covers. Cells fill down the column and then across, which is what a
16943
+ calendar heatmap does: a week is a column, so the strip reads along the
16944
+ line in weeks, from the right on a right-to-left page, and top to bottom in
16945
+ days. */
16946
+ rows?: (HelixSpatialHeatmap["rows"]) | undefined;
16947
+ /** What the readout added for a selected cell, under `selection-mode`. */
16948
+ "selected-label"?: (HelixSpatialHeatmap["selectedLabel"]) | undefined;
16949
+ /** What the readout added for a selected cell, under `selection-mode`. */
16950
+ selectedLabel?: (HelixSpatialHeatmap["selectedLabel"]) | undefined;
16951
+ /** What the `selection` part says after the selection changes. `{count}` is
16952
+ how many cells are selected, written in the locale, and a language that
16953
+ needs plural forms writes them: `{count, plural, one {# wybrany} few
16954
+ {# wybrane} many {# wybranych} other {# wybranego}}`. */
16955
+ "selection-label"?: (HelixSpatialHeatmap["selectionLabel"]) | undefined;
16956
+ /** What the `selection` part says after the selection changes. `{count}` is
16957
+ how many cells are selected, written in the locale, and a language that
16958
+ needs plural forms writes them: `{count, plural, one {# wybrany} few
16959
+ {# wybrane} many {# wybranych} other {# wybranego}}`. */
16960
+ selectionLabel?: (HelixSpatialHeatmap["selectionLabel"]) | undefined;
16961
+ /** How many cells a reader can select: `single` or `multiple`.
16962
+
16963
+ Absent selects nothing, and a press or Space does what it did. */
16964
+ "selection-mode"?: (HelixSpatialHeatmap["selectionMode"]) | undefined;
16965
+ /** How many cells a reader can select: `single` or `multiple`.
16966
+
16967
+ Absent selects nothing, and a press or Space does what it did. */
16968
+ selectionMode?: (HelixSpatialHeatmap["selectionMode"]) | undefined;
16969
+ /** What Shift takes in under `selection-mode="multiple"`: `linear`, every
16970
+ cell between two in the table's order, or `rectangle`, the cells between
16971
+ two corners by row and by column, as a spreadsheet selects a range. */
16972
+ "selection-shape"?: (HelixSpatialHeatmap["selectionShape"]) | undefined;
16973
+ /** What Shift takes in under `selection-mode="multiple"`: `linear`, every
16974
+ cell between two in the table's order, or `rectangle`, the cells between
16975
+ two corners by row and by column, as a spreadsheet selects a range. */
16976
+ selectionShape?: (HelixSpatialHeatmap["selectionShape"]) | undefined;
16977
+ /** The strip's name where the chart has none: no `aria-label`, `label`, or
16978
+ table caption. */
16979
+ "strip-label"?: (HelixSpatialHeatmap["stripLabel"]) | undefined;
16980
+ /** The strip's name where the chart has none: no `aria-label`, `label`, or
16981
+ table caption. */
16982
+ stripLabel?: (HelixSpatialHeatmap["stripLabel"]) | undefined;
16983
+ /** Lower bounds for the tone buckets, in the order the tones are given.
16984
+
16985
+ `thresholds="1 3 6 9"` with `tones="1 2 3 4"` puts 1 and 2 in the ramp's
16986
+ first step, 3 to 5 in the second, 6 to 8 in the third, and 9 upward in the
16987
+ fourth. A value below the first bound gets no tone at all: an empty day in a
16988
+ contribution graph is a day with nothing in it, and painting it as the
16989
+ lowest bucket claims a reading that does not exist. */
16990
+ thresholds?: (HelixSpatialHeatmap["thresholds"]) | undefined;
16991
+ /** The tone for each bucket, in the same order as `thresholds`.
16992
+
16993
+ A name, resolved as `--heatmap-tone-<name>` by whichever tier answers.
16994
+ **`"1"` through `"5"` are a ramp and everything else is a category**, which
16995
+ is the distinction a heatmap lives or dies on: magnitude has to be one hue
16996
+ getting louder, because a reader compares two cells by weight and cannot
16997
+ compare two hues at all. `tones="surface info accent success primary"` for a
16998
+ commit count is five unrelated hues for five amounts, which is confetti with
16999
+ no order in it. */
17000
+ tones?: (HelixSpatialHeatmap["tones"]) | undefined;
17001
+ /** The name the `overview` gives the total of the readings drawn,
17002
+ `{totalLabel}` in `overview-label`. */
17003
+ "total-label"?: (HelixSpatialHeatmap["totalLabel"]) | undefined;
17004
+ /** The name the `overview` gives the total of the readings drawn,
17005
+ `{totalLabel}` in `overview-label`. */
17006
+ totalLabel?: (HelixSpatialHeatmap["totalLabel"]) | undefined;
17007
+ /** The selected cells, separated by commas: each by the date its row's
17008
+ header carries in a `<time datetime>`, such as `2026-06-11`, or by the
17009
+ header's words where it carries none.
17010
+
17011
+ Set it to start with cells selected. Written by a press or a key under
17012
+ `selection-mode`. */
17013
+ value?: (HelixSpatialHeatmap["value"]) | undefined;
17014
+ /** The readings as data, in the shape of a table, where the page has no
17015
+ table to point `for` at. `for` wins where both are set.
17016
+
17017
+ ```js
17018
+ chart.data = {
17019
+ caption: 'Sessions by channel',
17020
+ columns: ['Month', 'Direct', 'Referral'],
17021
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
17022
+ }
17023
+ ```
17024
+
17025
+ The first column holds each row's label and every column after it a
17026
+ series, as in a table. A cell is a number, words, `null` for a blank,
17027
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
17028
+ number is shown in `locale`.
16903
17029
 
16904
- Three steps rather than a number, because `--sparkline-width` is already
16905
- the number and an attribute earns its place by being the thing a consumer
16906
- reaches for without reading the stylesheet. The hook stays for anything the
16907
- three do not cover. */
16908
- weight?: (HelixSparkline["weight"]) | undefined;
16909
- /** How the line is drawn from one reading to the next.
17030
+ **A table is still the better source where the page can show one**:
17031
+ it reads with no script and before hydration, and a reader can sort and
17032
+ copy it. Data is drawn on the client only, so a server serves the
17033
+ frame, and the summary, the keys and the readout are then the whole of
17034
+ what a screen reader is given. Set a new object to redraw: the chart
17035
+ does not look inside the one it has. */
17036
+ data?: (HelixSpatialHeatmap["data"]) | undefined;
17037
+ };
16910
17038
 
16911
- **`smooth` is the resting curve.** A straight segment asserts nothing about
16912
- the values between two readings and a curve invents them, which is why
16913
- `straight` exists. What settles the default the other way is that the
16914
- invention is bounded: the interpolation is monotone cubic, so it never
16915
- leaves the band the data sets and never introduces a peak or a trough the
16916
- series does not have. Within that bound the smoothed line is the easier one
16917
- to follow across a long series, which is what the drawing is for. `straight`
16918
- becomes the claim a consumer makes deliberately rather than the one they get
16919
- by saying nothing.
17039
+ export type HelixSpatialHeatmapVueEvents = {
17040
+ /** The readings drawn or the reading the keys rest on changed, which a renderer is told. It stays on the chart. */
17041
+ "helix-plot-change": HelixSpatialHeatmapHelixPlotChangeElementEvent;
17042
+ /** Shift with an arrow asked a renderer's view to turn, by a step across or up. */
17043
+ "helix-plot-turn": HelixSpatialHeatmapHelixPlotTurnElementEvent;
17044
+ /** Fired once a press or a key has changed which cells are selected. */
17045
+ change: HelixSpatialHeatmapElementEvent;
17046
+ /** Fired before a press or a key changes which cells are selected, with the `value` it would leave. Cancelable. */
17047
+ "helix-before-change": HelixSpatialHeatmapHelixBeforeChangeElementEvent;
17048
+ /** The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it. */
17049
+ "helix-reading-change": HelixSpatialHeatmapHelixReadingChangeElementEvent;
17050
+ /** A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
17051
+ "helix-reading-press": HelixSpatialHeatmapHelixReadingPressElementEvent;
17052
+ /** Fired when the number of cells drawn changes, with the new number. */
17053
+ "helix-resize": HelixSpatialHeatmapHelixResizeElementEvent;
17054
+ };
16920
17055
 
16921
- **The property stays optional and the default lives in the render.** A
16922
- reflecting property with a default writes its attribute onto every host
16923
- anybody renders, including the ones nobody configured, which the SSR specs
16924
- assert against. So the resting state is still the attribute's absence, and
16925
- `curve ?? 'smooth'` is what reads it.
17056
+ /** `HelixSpatialScatterChart` component event */
17057
+ export type HelixSpatialScatterChartElementEvent<E = Event> = TypedEvent<
17058
+ HelixSpatialScatterChart,
17059
+ E
17060
+ >;
17061
+ /** `helix-plot-change` event type */
17062
+ export type HelixSpatialScatterChartHelixPlotChangeElementEvent =
17063
+ HelixSpatialScatterChartElementEvent<HelixPlotChangeEvent>;
17064
+ /** `helix-plot-turn` event type */
17065
+ export type HelixSpatialScatterChartHelixPlotTurnElementEvent =
17066
+ HelixSpatialScatterChartElementEvent<HelixPlotTurnEvent>;
17067
+ /** `helix-reading-change` event type */
17068
+ export type HelixSpatialScatterChartHelixReadingChangeElementEvent =
17069
+ HelixSpatialScatterChartElementEvent<HelixReadingChangeEvent>;
17070
+ /** `helix-reading-press` event type */
17071
+ export type HelixSpatialScatterChartHelixReadingPressElementEvent =
17072
+ HelixSpatialScatterChartElementEvent<HelixReadingPressEvent>;
16926
17073
 
16927
- `step` claims the opposite of both, that a reading holds until the next.
16928
- Bars ignore it, having no between to interpolate.
17074
+ export type HelixSpatialScatterChartVueProps = {
17075
+ /** The words shown in place of the drawing when the table has no readings,
17076
+ and the fallback of the `empty` slot. */
17077
+ "empty-text"?: (HelixSpatialScatterChart["emptyText"]) | undefined;
17078
+ /** The words shown in place of the drawing when the table has no readings,
17079
+ and the fallback of the `empty` slot. */
17080
+ emptyText?: (HelixSpatialScatterChart["emptyText"]) | undefined;
17081
+ /** Whether the readings are still on their way. The chart shows
17082
+ `loading-text` in place of an empty drawing until it has readings.
16929
17083
 
16930
- **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
16931
- position and a stacked band claims an amount: a curve fitted through one
16932
- sum can pass under the curve fitted through the sum beneath it, so a
16933
- smoothed stack can draw a part as less than nothing. There is no such edge
16934
- here, which is what lets a line take the reading aid. */
16935
- curve?: (HelixSparkline["curve"]) | undefined;
16936
- /** The id of a table to read the readings from, when a table holds the data.
17084
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
17085
+ that already has readings keeps drawing them, so a refresh does not
17086
+ blank it. */
17087
+ loading?: (HelixSpatialScatterChart["loading"]) | undefined;
17088
+ /** The words shown in place of the drawing while `loading` is set and
17089
+ there are no readings yet, and the fallback of the `loading` slot. */
17090
+ "loading-text"?: (HelixSpatialScatterChart["loadingText"]) | undefined;
17091
+ /** The words shown in place of the drawing while `loading` is set and
17092
+ there are no readings yet, and the fallback of the `loading` slot. */
17093
+ loadingText?: (HelixSpatialScatterChart["loadingText"]) | undefined;
17094
+ /** The id of the table to read.
16937
17095
 
16938
- The first column of numbers is the series drawn. This wins over `values`,
16939
- because a table is the readable representation and a list of numbers in an
16940
- attribute is not.
17096
+ Names a table in the same tree, so a chart inside another component's
17097
+ shadow root reads a table in that root rather than one in the document. A
17098
+ `<table>` or anything built from grid roles, including `helix-table`.
16941
17099
 
16942
17100
  **In React this arrives as a property and not as an attribute**, the way
16943
17101
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
16944
- for?: (HelixSparkline["for"]) | undefined;
16945
- /** A sentence that describes what the line shows.
17102
+ for?: (HelixSpatialScatterChart["for"]) | undefined;
17103
+ /** The chart's name, which starts the chart's text summary.
16946
17104
 
16947
- "Sessions rose from 1,240 to 1,318 and fell to 1,102 over fourteen days" is
16948
- the accessible representation of a sparkline, and a list of the fourteen
16949
- numbers is not. Absent, the drawing is hidden from a screen reader rather
16950
- than announced without a name. */
16951
- label?: (HelixSparkline["label"]) | undefined;
16952
- /** The locale the words, the readout's numbers and positions are in, such
16953
- as `de` for `1.240`.
17105
+ Absent falls back to the table's own caption, which is usually the right
17106
+ words and is already written. */
17107
+ label?: (HelixSpatialScatterChart["label"]) | undefined;
17108
+ /** The locale the chart's own numbers are written in: its axis, its
17109
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
16954
17110
 
16955
- Absent reads the nearest `lang`, then the runtime's own. A table's cells
16956
- are shown as the table writes them, whatever this says. */
16957
- locale?: (HelixSparkline["locale"]) | undefined;
16958
- /** Which readings take a mark of their own: `high`, `low`, or both,
16959
- separated by spaces.
17111
+ Absent reads the nearest `lang`, then the runtime's own. The table's
17112
+ cells are shown as the table writes them, whatever this says. */
17113
+ locale?: (HelixSpatialScatterChart["locale"]) | undefined;
17114
+ /** Where a reading the keys moved to stands among the readings, said after
17115
+ it. `{position}` and `{count}` are replaced with the numbers, written in
17116
+ `locale`.
16960
17117
 
16961
- Absent marks none, and the drawing is what it was. Each mark is a part,
16962
- placed at its reading, for a stylesheet to draw. */
16963
- marks?: (HelixSparkline["marks"]) | undefined;
16964
- /** What the readings come to, said after the name: `{first}` and `{last}`
16965
- for the first and the last reading, `{high}` and `{low}` for the highest
16966
- and the lowest, each written as the readout writes it.
17118
+ Set it to the words of the page's language, such as `{position} von
17119
+ {count}`, or to nothing to say no position. A slice or a series a
17120
+ legend hid is not counted. */
17121
+ "position-label"?: (HelixSpatialScatterChart["positionLabel"]) | undefined;
17122
+ /** Where a reading the keys moved to stands among the readings, said after
17123
+ it. `{position}` and `{count}` are replaced with the numbers, written in
17124
+ `locale`.
16967
17125
 
16968
- Set it to the words of the page's language, or to nothing to say no
16969
- more than the name. Said only where the sparkline is named. */
16970
- "overview-label"?: (HelixSparkline["overviewLabel"]) | undefined;
16971
- /** What the readings come to, said after the name: `{first}` and `{last}`
16972
- for the first and the last reading, `{high}` and `{low}` for the highest
16973
- and the lowest, each written as the readout writes it.
17126
+ Set it to the words of the page's language, such as `{position} von
17127
+ {count}`, or to nothing to say no position. A slice or a series a
17128
+ legend hid is not counted. */
17129
+ positionLabel?: (HelixSpatialScatterChart["positionLabel"]) | undefined;
17130
+ /** The column of text that puts each point in a group, by its heading. None by default. */
17131
+ "group-by"?: (HelixSpatialScatterChart["groupBy"]) | undefined;
17132
+ /** The column of text that puts each point in a group, by its heading. None by default. */
17133
+ groupBy?: (HelixSpatialScatterChart["groupBy"]) | undefined;
17134
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
17135
+ "plot-label"?: (HelixSpatialScatterChart["plotLabel"]) | undefined;
17136
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
17137
+ plotLabel?: (HelixSpatialScatterChart["plotLabel"]) | undefined;
17138
+ /** The `summary` part's sentence. `{count}` is the number of points, written
17139
+ in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names. */
17140
+ "summary-label"?: (HelixSpatialScatterChart["summaryLabel"]) | undefined;
17141
+ /** The `summary` part's sentence. `{count}` is the number of points, written
17142
+ in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names. */
17143
+ summaryLabel?: (HelixSpatialScatterChart["summaryLabel"]) | undefined;
17144
+ /** The readings as data, in the shape of a table, where the page has no
17145
+ table to point `for` at. `for` wins where both are set.
16974
17146
 
16975
- Set it to the words of the page's language, or to nothing to say no
16976
- more than the name. Said only where the sparkline is named. */
16977
- overviewLabel?: (HelixSparkline["overviewLabel"]) | undefined;
16978
- /** What the readings are drawn as.
17147
+ ```js
17148
+ chart.data = {
17149
+ caption: 'Sessions by channel',
17150
+ columns: ['Month', 'Direct', 'Referral'],
17151
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
17152
+ }
17153
+ ```
16979
17154
 
16980
- Absent is `area`, a line with the region beneath it washed. `line` is the
16981
- bare stroke, and `bar` is a column per reading.
17155
+ The first column holds each row's label and every column after it a
17156
+ series, as in a table. A cell is a number, words, `null` for a blank,
17157
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
17158
+ number is shown in `locale`.
16982
17159
 
16983
- **A bar plot measures from zero and the other two measure from the data's
16984
- own range**, which is the one way the plots are not interchangeable. A line
16985
- says where the readings sit relative to each other, so a scale over their
16986
- extent uses the whole box and claims nothing about absolute size. A bar's
16987
- length *is* the value, so any baseline but zero makes the lengths
16988
- proportional to nothing.
17160
+ **A table is still the better source where the page can show one**:
17161
+ it reads with no script and before hydration, and a reader can sort and
17162
+ copy it. Data is drawn on the client only, so a server serves the
17163
+ frame, and the summary, the keys and the readout are then the whole of
17164
+ what a screen reader is given. Set a new object to redraw: the chart
17165
+ does not look inside the one it has. */
17166
+ data?: (HelixSpatialScatterChart["data"]) | undefined;
17167
+ };
16989
17168
 
16990
- **Which is a reason to prefer a line for readings in a narrow band far from
16991
- zero.** Seven values between 1,102 and 1,408 drawn as columns from zero are
16992
- seven columns of nearly the same height, and that is the true picture: they
16993
- *are* nearly the same. The same readings as a line fill the box and show
16994
- the movement, because a line is only ever claiming a shape.
17169
+ export type HelixSpatialScatterChartVueEvents = {
17170
+ /** The points or the point the keys rest on changed, which the renderer is told. It stays on the chart. */
17171
+ "helix-plot-change": HelixSpatialScatterChartHelixPlotChangeElementEvent;
17172
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
17173
+ "helix-plot-turn": HelixSpatialScatterChartHelixPlotTurnElementEvent;
17174
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it. */
17175
+ "helix-reading-change": HelixSpatialScatterChartHelixReadingChangeElementEvent;
17176
+ /** A point was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
17177
+ "helix-reading-press": HelixSpatialScatterChartHelixReadingPressElementEvent;
17178
+ };
16995
17179
 
16996
- **Absent is `area`**, which is the departure from the rule that a resting
16997
- arrangement is the plainest thing. At the size a sparkline is actually
16998
- drawn, a hairline in a wide box is mostly box: the wash under it is what
16999
- gives the shape a body and lets a reader see it at a glance rather than
17000
- hunting for it, which is the entire job. `line` is the bare stroke for
17001
- anywhere the fill would be noise, several of them in one box for instance.
17180
+ /** `HelixSpatialSurfaceChart` component event */
17181
+ export type HelixSpatialSurfaceChartElementEvent<E = Event> = TypedEvent<
17182
+ HelixSpatialSurfaceChart,
17183
+ E
17184
+ >;
17185
+ /** `helix-plot-change` event type */
17186
+ export type HelixSpatialSurfaceChartHelixPlotChangeElementEvent =
17187
+ HelixSpatialSurfaceChartElementEvent<HelixPlotChangeEvent>;
17188
+ /** `helix-plot-turn` event type */
17189
+ export type HelixSpatialSurfaceChartHelixPlotTurnElementEvent =
17190
+ HelixSpatialSurfaceChartElementEvent<HelixPlotTurnEvent>;
17191
+ /** `helix-reading-change` event type */
17192
+ export type HelixSpatialSurfaceChartHelixReadingChangeElementEvent =
17193
+ HelixSpatialSurfaceChartElementEvent<HelixReadingChangeEvent>;
17194
+ /** `helix-reading-press` event type */
17195
+ export type HelixSpatialSurfaceChartHelixReadingPressElementEvent =
17196
+ HelixSpatialSurfaceChartElementEvent<HelixReadingPressEvent>;
17002
17197
 
17003
- This tier rather than the one above: a plot type is geometry and geometry
17004
- is markup, the same reason `curve` lives here. */
17005
- plot?: (HelixSparkline["plot"]) | undefined;
17198
+ export type HelixSpatialSurfaceChartVueProps = {
17199
+ /** The words shown in place of the drawing when the table has no readings,
17200
+ and the fallback of the `empty` slot. */
17201
+ "empty-text"?: (HelixSpatialSurfaceChart["emptyText"]) | undefined;
17202
+ /** The words shown in place of the drawing when the table has no readings,
17203
+ and the fallback of the `empty` slot. */
17204
+ emptyText?: (HelixSpatialSurfaceChart["emptyText"]) | undefined;
17205
+ /** Whether the readings are still on their way. The chart shows
17206
+ `loading-text` in place of an empty drawing until it has readings.
17207
+
17208
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
17209
+ that already has readings keeps drawing them, so a refresh does not
17210
+ blank it. */
17211
+ loading?: (HelixSpatialSurfaceChart["loading"]) | undefined;
17212
+ /** The words shown in place of the drawing while `loading` is set and
17213
+ there are no readings yet, and the fallback of the `loading` slot. */
17214
+ "loading-text"?: (HelixSpatialSurfaceChart["loadingText"]) | undefined;
17215
+ /** The words shown in place of the drawing while `loading` is set and
17216
+ there are no readings yet, and the fallback of the `loading` slot. */
17217
+ loadingText?: (HelixSpatialSurfaceChart["loadingText"]) | undefined;
17218
+ /** The id of the table to read.
17219
+
17220
+ Names a table in the same tree, so a chart inside another component's
17221
+ shadow root reads a table in that root rather than one in the document. A
17222
+ `<table>` or anything built from grid roles, including `helix-table`.
17223
+
17224
+ **In React this arrives as a property and not as an attribute**, the way
17225
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
17226
+ for?: (HelixSpatialSurfaceChart["for"]) | undefined;
17227
+ /** The chart's name, which starts the chart's text summary.
17228
+
17229
+ Absent falls back to the table's own caption, which is usually the right
17230
+ words and is already written. */
17231
+ label?: (HelixSpatialSurfaceChart["label"]) | undefined;
17232
+ /** The locale the chart's own numbers are written in: its axis, its
17233
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
17234
+
17235
+ Absent reads the nearest `lang`, then the runtime's own. The table's
17236
+ cells are shown as the table writes them, whatever this says. */
17237
+ locale?: (HelixSpatialSurfaceChart["locale"]) | undefined;
17006
17238
  /** Where a reading the keys moved to stands among the readings, said after
17007
17239
  it. `{position}` and `{count}` are replaced with the numbers, written in
17008
17240
  `locale`.
17009
17241
 
17010
17242
  Set it to the words of the page's language, such as `{position} von
17011
- {count}`, or to nothing to say no position. */
17012
- "position-label"?: (HelixSparkline["positionLabel"]) | undefined;
17243
+ {count}`, or to nothing to say no position. A slice or a series a
17244
+ legend hid is not counted. */
17245
+ "position-label"?: (HelixSpatialSurfaceChart["positionLabel"]) | undefined;
17013
17246
  /** Where a reading the keys moved to stands among the readings, said after
17014
17247
  it. `{position}` and `{count}` are replaced with the numbers, written in
17015
17248
  `locale`.
17016
17249
 
17017
17250
  Set it to the words of the page's language, such as `{position} von
17018
- {count}`, or to nothing to say no position. */
17019
- positionLabel?: (HelixSparkline["positionLabel"]) | undefined;
17020
- /** Two values a band is drawn between, behind the line, separated by a
17021
- space: `range="60 100"` marks a normal range.
17251
+ {count}`, or to nothing to say no position. A slice or a series a
17252
+ legend hid is not counted. */
17253
+ positionLabel?: (HelixSpatialSurfaceChart["positionLabel"]) | undefined;
17254
+ /** What the readout says for a place with no reading. `{x}` and `{z}` are
17255
+ the place's numbers across and in depth, and `{across}` and `{depth}`
17256
+ the two measures' names. */
17257
+ "open-label"?: (HelixSpatialSurfaceChart["openLabel"]) | undefined;
17258
+ /** What the readout says for a place with no reading. `{x}` and `{z}` are
17259
+ the place's numbers across and in depth, and `{across}` and `{depth}`
17260
+ the two measures' names. */
17261
+ openLabel?: (HelixSpatialSurfaceChart["openLabel"]) | undefined;
17262
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
17263
+ "plot-label"?: (HelixSpatialSurfaceChart["plotLabel"]) | undefined;
17264
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
17265
+ plotLabel?: (HelixSpatialSurfaceChart["plotLabel"]) | undefined;
17266
+ /** The `summary` part's sentence. `{count}` is the number of readings,
17267
+ written in the locale, `{x}`, `{z}`, and `{y}` are the measures across,
17268
+ in depth, and up, and `{low}` and `{high}` the lowest and the highest
17269
+ reading. */
17270
+ "summary-label"?: (HelixSpatialSurfaceChart["summaryLabel"]) | undefined;
17271
+ /** The `summary` part's sentence. `{count}` is the number of readings,
17272
+ written in the locale, `{x}`, `{z}`, and `{y}` are the measures across,
17273
+ in depth, and up, and `{low}` and `{high}` the lowest and the highest
17274
+ reading. */
17275
+ summaryLabel?: (HelixSpatialSurfaceChart["summaryLabel"]) | undefined;
17276
+ /** The readings as data, in the shape of a table, where the page has no
17277
+ table to point `for` at. `for` wins where both are set.
17022
17278
 
17023
- The scale stretches to hold the band where the readings do not reach it.
17024
- Absent draws none. */
17025
- range?: (HelixSparkline["range"]) | undefined;
17026
- /** The numbers, separated by whitespace or by commas.
17279
+ ```js
17280
+ chart.data = {
17281
+ caption: 'Sessions by channel',
17282
+ columns: ['Month', 'Direct', 'Referral'],
17283
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
17284
+ }
17285
+ ```
17027
17286
 
17028
- An array assigned to the property works too, which is what React 19 does
17029
- with `values={[1240, 1318]}`. The attribute is the form to prefer, because
17030
- a string is what survives React's hydration where an array property does
17031
- not. */
17032
- values?: (HelixSparkline["values"]) | undefined;
17287
+ The first column holds each row's label and every column after it a
17288
+ series, as in a table. A cell is a number, words, `null` for a blank,
17289
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
17290
+ number is shown in `locale`.
17291
+
17292
+ **A table is still the better source where the page can show one**:
17293
+ it reads with no script and before hydration, and a reader can sort and
17294
+ copy it. Data is drawn on the client only, so a server serves the
17295
+ frame, and the summary, the keys and the readout are then the whole of
17296
+ what a screen reader is given. Set a new object to redraw: the chart
17297
+ does not look inside the one it has. */
17298
+ data?: (HelixSpatialSurfaceChart["data"]) | undefined;
17033
17299
  };
17034
17300
 
17035
- export type HelixSparklineVueEvents = {
17036
- /** The reading shown moved, or was put away: `index` is the reading, or `-1` for none, with its row's `label` from a table and the `pointerType` that moved it. */
17037
- "helix-reading-change": HelixSparklineHelixReadingChangeElementEvent;
17038
- /** A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
17039
- "helix-reading-press": HelixSparklineHelixReadingPressElementEvent;
17301
+ export type HelixSpatialSurfaceChartVueEvents = {
17302
+ /** The readings or the place the keys rest on changed, which the renderer is told. It stays on the chart. */
17303
+ "helix-plot-change": HelixSpatialSurfaceChartHelixPlotChangeElementEvent;
17304
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
17305
+ "helix-plot-turn": HelixSpatialSurfaceChartHelixPlotTurnElementEvent;
17306
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none or a place with no reading, with its `label` and the `pointerType` that moved it. */
17307
+ "helix-reading-change": HelixSpatialSurfaceChartHelixReadingChangeElementEvent;
17308
+ /** A place was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
17309
+ "helix-reading-press": HelixSpatialSurfaceChartHelixReadingPressElementEvent;
17040
17310
  };
17041
17311
 
17042
17312
  export type HelixSpeedDialGroupVueProps = {
@@ -23011,16 +23281,6 @@ export type CustomCssProperties = {
23011
23281
  "--input-radius"?: (string) | undefined;
23012
23282
  /** Height of the field. */
23013
23283
  "--input-size"?: (string) | undefined;
23014
- /** The largest a cell grows, along its edge. The strip is never wider than its box, and draws smaller cells to fit. */
23015
- "--isometric-heatmap-cell-size"?: (string) | undefined;
23016
- /** How much darker the left face is than the top, as a percentage mixed toward black. */
23017
- "--isometric-heatmap-left-shade"?: (string) | undefined;
23018
- /** How much darker the right face is than the top, as a percentage mixed toward black. */
23019
- "--isometric-heatmap-right-shade"?: (string) | undefined;
23020
- /** The color of the dashed edges of a selected prism, under `selection-mode`. By default, white on a dark face and black on a light one. */
23021
- "--isometric-heatmap-selected-color"?: (string) | undefined;
23022
- /** How many cells the drawing spans across: its columns and its rows together. The component writes it on the strip, and a stylesheet that caps the cell size reads it. */
23023
- "--isometric-heatmap-span"?: (string) | undefined;
23024
23284
  /** The fill of the key. */
23025
23285
  "--kbd-background-color"?: (string) | undefined;
23026
23286
  /** The height of a key, and the least width of one, in `em` of the text around it. */
@@ -23919,6 +24179,38 @@ export type CustomCssProperties = {
23919
24179
  "--sparkline-readout-font-size"?: (string) | undefined;
23920
24180
  /** Thickness of the line, overriding `weight`. */
23921
24181
  "--sparkline-width"?: (string) | undefined;
24182
+ /** The largest a cell grows, along its edge. The strip is never wider than its box, and draws smaller cells to fit. */
24183
+ "--spatial-heatmap-cell-size"?: (string) | undefined;
24184
+ /** How much less light the left face is than the top, as a step of OKLCH lightness from 0 to 1. 0.07 by default. */
24185
+ "--spatial-heatmap-left-shade"?: (string) | undefined;
24186
+ /** How much less light the right face is than the top, as a step of OKLCH lightness from 0 to 1. 0.14 by default. */
24187
+ "--spatial-heatmap-right-shade"?: (string) | undefined;
24188
+ /** The color of the dashed edges of a selected prism, under `selection-mode`. By default, white on a dark face and black on a light one. */
24189
+ "--spatial-heatmap-selected-color"?: (string) | undefined;
24190
+ /** How tall the drawing is for its width. The component writes it on the footer, and a stylesheet that stands the `start` and `end` labels at their corners reads it. */
24191
+ "--spatial-heatmap-depth"?: (string) | undefined;
24192
+ /** Where the front edge ends, under the newest column, across the drawing, from 0 at its inline start to 1. The component writes it on the footer, and a stylesheet that stands the `end` label there reads it. */
24193
+ "--spatial-heatmap-end-x"?: (string) | undefined;
24194
+ /** How far down the drawing the front edge ends, under the newest column, as a share of the drawing's width: its whole depth in the chart's own drawing, and wherever a renderer draws it. The component writes it on the footer, and a stylesheet that stands the `end` label there reads it. */
24195
+ "--spatial-heatmap-end-y"?: (string) | undefined;
24196
+ /** How many cells the drawing spans across: its columns and its rows together. The component writes it on the strip, and a stylesheet that caps the cell size reads it. */
24197
+ "--spatial-heatmap-span"?: (string) | undefined;
24198
+ /** Where the front edge starts, under the first column, across the drawing, from 0 at its inline start to 1: 0 in the chart's own drawing, and wherever a renderer draws it. The component writes it on the footer, and a stylesheet that stands the `start` label there reads it. */
24199
+ "--spatial-heatmap-start-x"?: (string) | undefined;
24200
+ /** How far down the drawing the front edge starts, under the first column, as a share of the drawing's width. The component writes it on the footer, and a stylesheet that stands the `start` label there reads it. */
24201
+ "--spatial-heatmap-start-y"?: (string) | undefined;
24202
+ /** How tall the plot is. */
24203
+ "--spatial-scatter-chart-block-size"?: (string) | undefined;
24204
+ /** How tall the plot is. */
24205
+ "--spatial-surface-chart-block-size"?: (string) | undefined;
24206
+ /** The color of the highest reading, which the renderer reads too. */
24207
+ "--spatial-surface-chart-high"?: (string) | undefined;
24208
+ /** The color of the lowest reading, which the renderer reads too. */
24209
+ "--spatial-surface-chart-low"?: (string) | undefined;
24210
+ /** How high a face of the surface stands between the lowest reading and the highest, from 0 to 1: its corners' average. The component writes it on each face, and the stylesheet that colors the face along the ramp reads it. */
24211
+ "--spatial-surface-chart-level"?: (string) | undefined;
24212
+ /** How far a face of the surface turns from the light, as a share of lightness to take from its color, from 0 facing it to about 0.3. The component writes it on each face, and the stylesheet that shades the face reads it. */
24213
+ "--spatial-surface-chart-shade"?: (string) | undefined;
23922
24214
  /** Color of the group's name. */
23923
24215
  "--speed-dial-group-label-color"?: (string) | undefined;
23924
24216
  /** Size of the group's name. */
@@ -24885,12 +25177,6 @@ export interface WcToolkitVueGlobalComponents {
24885
25177
  HelixInputVueProps,
24886
25178
  HelixInputVueEvents
24887
25179
  >;
24888
- /** Each reading is a prism. The top face takes the cell's tone, and the two sides are the same tone, shaded darker, so the whole relief follows your theme's colors. 'tones="1 2 3 4 5"' uses the same five-step ramp as 'Heatmap', so the tone and the height both show the value. Set '--isometric-heatmap-cell-size' to change how large a cell may grow. */
24889
- "helix-isometric-heatmap": DefineCustomElement<
24890
- HelixIsometricHeatmap,
24891
- HelixIsometricHeatmapVueProps,
24892
- HelixIsometricHeatmapVueEvents
24893
- >;
24894
25180
  /** Drawn as a physical key, with a hairline border, a sunken fill, and one inset shadow along the bottom edge. Sized in 'em', so it stays in proportion with the text around it, including in a heading. */
24895
25181
  "helix-kbd": DefineCustomElement<
24896
25182
  HelixKbd,
@@ -25251,6 +25537,24 @@ export interface WcToolkitVueGlobalComponents {
25251
25537
  HelixSparklineVueProps,
25252
25538
  HelixSparklineVueEvents
25253
25539
  >;
25540
+ /** Each reading is a prism. The top face takes the cell's tone, and the two sides are the same tone, shaded darker, so the whole relief follows your theme's colors. 'tones="1 2 3 4 5"' uses the same five-step ramp as 'Heatmap', so the tone and the height both show the value. Set '--spatial-heatmap-cell-size' to change how large a cell may grow. */
25541
+ "helix-spatial-heatmap": DefineCustomElement<
25542
+ HelixSpatialHeatmap,
25543
+ HelixSpatialHeatmapVueProps,
25544
+ HelixSpatialHeatmapVueEvents
25545
+ >;
25546
+ /** The points are drawn in 3D by a renderer the page connects, and as a flat scatter of the first two measures until it has drawn. Each group takes a series color from the theme, as every chart's series does. */
25547
+ "helix-spatial-scatter-chart": DefineCustomElement<
25548
+ HelixSpatialScatterChart,
25549
+ HelixSpatialScatterChartVueProps,
25550
+ HelixSpatialScatterChartVueEvents
25551
+ >;
25552
+ /** The surface is drawn in 3D by a renderer the page connects, and as a flat grid seen from above until it has drawn. Every height is shaded along one ramp from the theme's primary color, quiet where it is low and strong where it is high, so the two drawings agree. */
25553
+ "helix-spatial-surface-chart": DefineCustomElement<
25554
+ HelixSpatialSurfaceChart,
25555
+ HelixSpatialSurfaceChartVueProps,
25556
+ HelixSpatialSurfaceChartVueEvents
25557
+ >;
25254
25558
  /** A column of actions with its name above them, in the small muted words a menu heads its sections with, lined up on the side the trigger is on. The space between two groups is the space between two actions. */
25255
25559
  "helix-speed-dial-group": DefineCustomElement<
25256
25560
  HelixSpeedDialGroup,