@fusion.dev/helix-headless 0.198.0 → 0.199.1

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 (53) hide show
  1. package/api.json +1 -1
  2. package/custom-elements.json +8267 -2270
  3. package/dist/carousel/root/carousel-root.d.ts +14 -0
  4. package/dist/carousel/root/carousel-root.js +15 -1
  5. package/dist/element-events.generated.js +19 -0
  6. package/dist/graph/root/graph-root.d.ts +33 -0
  7. package/dist/graph/root/graph-root.js +57 -0
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.js +4 -0
  10. package/dist/map/raster/map-raster.d.ts +7 -3
  11. package/dist/map/raster/map-raster.js +5 -3
  12. package/dist/motion-toggle/index.d.ts +1 -0
  13. package/dist/motion-toggle/index.js +1 -0
  14. package/dist/motion-toggle/root/motion-toggle-root.d.ts +77 -0
  15. package/dist/motion-toggle/root/motion-toggle-root.js +56 -0
  16. package/dist/spatial-bar-chart/bars.d.ts +79 -0
  17. package/dist/spatial-bar-chart/bars.js +72 -0
  18. package/dist/spatial-bar-chart/index.d.ts +2 -0
  19. package/dist/spatial-bar-chart/index.js +2 -0
  20. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.d.ts +245 -0
  21. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.js +262 -0
  22. package/dist/spatial-ribbon-chart/index.d.ts +2 -0
  23. package/dist/spatial-ribbon-chart/index.js +2 -0
  24. package/dist/spatial-ribbon-chart/ribbons.d.ts +55 -0
  25. package/dist/spatial-ribbon-chart/ribbons.js +99 -0
  26. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.d.ts +243 -0
  27. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.js +259 -0
  28. package/dist/spatial-scatter-chart/field.d.ts +8 -0
  29. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.d.ts +14 -0
  30. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.js +20 -6
  31. package/dist/spatial-scatter-chart/view.d.ts +14 -1
  32. package/dist/spatial-scatter-chart/view.js +29 -9
  33. package/dist/spatial-surface-chart/grid.d.ts +22 -0
  34. package/dist/spatial-surface-chart/grid.js +67 -1
  35. package/dist/spatial-surface-chart/index.d.ts +1 -1
  36. package/dist/spatial-surface-chart/index.js +1 -1
  37. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.d.ts +20 -0
  38. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.js +38 -5
  39. package/dist/spatial-treemap/blocks.d.ts +106 -0
  40. package/dist/spatial-treemap/blocks.js +215 -0
  41. package/dist/spatial-treemap/index.d.ts +2 -0
  42. package/dist/spatial-treemap/index.js +2 -0
  43. package/dist/spatial-treemap/root/spatial-treemap-root.d.ts +236 -0
  44. package/dist/spatial-treemap/root/spatial-treemap-root.js +249 -0
  45. package/dist/video/root/video-root.d.ts +14 -0
  46. package/dist/video/root/video-root.js +30 -2
  47. package/examples.json +1 -1
  48. package/lint.json +1 -1
  49. package/package.json +5 -5
  50. package/types/jsx.d.ts +3037 -99
  51. package/types/svelte.d.ts +4 -0
  52. package/types/vue.d.ts +519 -3
  53. package/types/words.d.ts +149 -0
package/types/jsx.d.ts CHANGED
@@ -121,6 +121,7 @@ import type {
121
121
  HelixHeadlessMenuItem,
122
122
  HelixHeadlessMenuSection,
123
123
  HelixHeadlessMeter,
124
+ HelixHeadlessMotionToggle,
124
125
  HelixHeadlessNavigation,
125
126
  HelixHeadlessNotification,
126
127
  HelixHeadlessNotificationGroup,
@@ -149,9 +150,12 @@ import type {
149
150
  HelixHeadlessSkipLink,
150
151
  HelixHeadlessSlider,
151
152
  HelixHeadlessSparkline,
153
+ HelixHeadlessSpatialBarChart,
152
154
  HelixHeadlessSpatialHeatmap,
155
+ HelixHeadlessSpatialRibbonChart,
153
156
  HelixHeadlessSpatialScatterChart,
154
157
  HelixHeadlessSpatialSurfaceChart,
158
+ HelixHeadlessSpatialTreemap,
155
159
  HelixHeadlessSpeedDial,
156
160
  HelixHeadlessSpeedDialGroup,
157
161
  HelixHeadlessSpeedDialItem,
@@ -4449,7 +4453,13 @@ export type HelixHeadlessCarouselHelixSelectElementEvent =
4449
4453
  HelixHeadlessCarouselElementEvent<HelixSelectEvent>;
4450
4454
 
4451
4455
  export type HelixHeadlessCarouselProps = {
4452
- /** Whether the carousel advances on its own. */
4456
+ /** Whether the carousel advances on its own.
4457
+
4458
+ **Not where the reader asked for less motion**, or where the page has
4459
+ paused its motion, through `pauseMotion` or `Motion Toggle`: the carousel
4460
+ starts still, and its rotation control starts it. A page that pauses its
4461
+ motion later stops the rotation, and one that lets it run again starts it
4462
+ again, unless the reader stopped it. */
4453
4463
  autoplay?: (HelixHeadlessCarousel["autoplay"]) | undefined;
4454
4464
  /** Whether the previous and next controls are shown.
4455
4465
 
@@ -4711,7 +4721,13 @@ position from the first, and at the last. */
4711
4721
  };
4712
4722
 
4713
4723
  export type HelixHeadlessCarouselSolidJsProps = {
4714
- /** Whether the carousel advances on its own. */
4724
+ /** Whether the carousel advances on its own.
4725
+
4726
+ **Not where the reader asked for less motion**, or where the page has
4727
+ paused its motion, through `pauseMotion` or `Motion Toggle`: the carousel
4728
+ starts still, and its rotation control starts it. A page that pauses its
4729
+ motion later stops the rotation, and one that lets it run again starts it
4730
+ again, unless the reader stopped it. */
4715
4731
  "prop:autoplay"?: (HelixHeadlessCarousel["autoplay"]) | undefined;
4716
4732
  /** Whether the previous and next controls are shown.
4717
4733
 
@@ -15116,6 +15132,16 @@ the list then holds, written with `count-label`. */
15116
15132
  the drawing, with `{note}` for its name and `{count}` for how many notes
15117
15133
  the list then holds, written with `count-label`. */
15118
15134
  selectionLabel?: (HelixHeadlessGraph["selectionLabel"]) | undefined;
15135
+ /** What the `settling` part says while a layout runs unseen, where the reader
15136
+ asked for less motion or the page paused its motion. */
15137
+ "settling-label"?: (HelixHeadlessGraph["settlingLabel"]) | undefined;
15138
+ /** What the `settling` part says while a layout runs unseen, where the reader
15139
+ asked for less motion or the page paused its motion. */
15140
+ settlingLabel?: (HelixHeadlessGraph["settlingLabel"]) | undefined;
15141
+ /** What the button that stops a long layout says. */
15142
+ "stop-layout-label"?: (HelixHeadlessGraph["stopLayoutLabel"]) | undefined;
15143
+ /** What the button that stops a long layout says. */
15144
+ stopLayoutLabel?: (HelixHeadlessGraph["stopLayoutLabel"]) | undefined;
15119
15145
  /** The hint shown when one finger swipes over the graph with `gestures="cooperative"`. */
15120
15146
  "two-finger-hint-label"?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
15121
15147
  /** The hint shown when one finger swipes over the graph with `gestures="cooperative"`. */
@@ -15473,6 +15499,16 @@ the list then holds, written with `count-label`. */
15473
15499
  the drawing, with `{note}` for its name and `{count}` for how many notes
15474
15500
  the list then holds, written with `count-label`. */
15475
15501
  "prop:selectionLabel"?: (HelixHeadlessGraph["selectionLabel"]) | undefined;
15502
+ /** What the `settling` part says while a layout runs unseen, where the reader
15503
+ asked for less motion or the page paused its motion. */
15504
+ "attr:settling-label"?: (HelixHeadlessGraph["settlingLabel"]) | undefined;
15505
+ /** What the `settling` part says while a layout runs unseen, where the reader
15506
+ asked for less motion or the page paused its motion. */
15507
+ "prop:settlingLabel"?: (HelixHeadlessGraph["settlingLabel"]) | undefined;
15508
+ /** What the button that stops a long layout says. */
15509
+ "attr:stop-layout-label"?: (HelixHeadlessGraph["stopLayoutLabel"]) | undefined;
15510
+ /** What the button that stops a long layout says. */
15511
+ "prop:stopLayoutLabel"?: (HelixHeadlessGraph["stopLayoutLabel"]) | undefined;
15476
15512
  /** The hint shown when one finger swipes over the graph with `gestures="cooperative"`. */
15477
15513
  "attr:two-finger-hint-label"?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
15478
15514
  /** The hint shown when one finger swipes over the graph with `gestures="cooperative"`. */
@@ -22180,6 +22216,32 @@ fair summary of a task and a poor one of a quantity. */
22180
22216
  textContent?: (string | number) | undefined;
22181
22217
  };
22182
22218
 
22219
+ /** `HelixHeadlessMotionToggle` component event */
22220
+ export type HelixHeadlessMotionToggleElementEvent<E = Event> = TypedEvent<
22221
+ HelixHeadlessMotionToggle,
22222
+ E
22223
+ >;
22224
+
22225
+ export type HelixHeadlessMotionToggleProps = {
22226
+ /** The button's name, which stays the same whichever way it stands. */
22227
+ label?: (HelixHeadlessMotionToggle["label"]) | undefined;
22228
+
22229
+ /** Fired after a press pauses the page's motion or lets it run. */
22230
+ onchange?: ((e: HelixHeadlessMotionToggleElementEvent) => void) | undefined;
22231
+ };
22232
+
22233
+ export type HelixHeadlessMotionToggleSolidJsProps = {
22234
+ /** The button's name, which stays the same whichever way it stands. */
22235
+ "prop:label"?: (HelixHeadlessMotionToggle["label"]) | undefined;
22236
+ /** Fired after a press pauses the page's motion or lets it run. */
22237
+ "on:change"?: ((e: HelixHeadlessMotionToggleElementEvent) => void) | undefined;
22238
+
22239
+ /** Set the innerHTML of the element */
22240
+ innerHTML?: (string) | undefined;
22241
+ /** Set the textContent of the element */
22242
+ textContent?: (string | number) | undefined;
22243
+ };
22244
+
22183
22245
  export type HelixHeadlessNavigationProps = {
22184
22246
  /** Whether the arrow keys move focus between the destinations.
22185
22247
 
@@ -28380,6 +28442,280 @@ not. */
28380
28442
  textContent?: (string | number) | undefined;
28381
28443
  };
28382
28444
 
28445
+ /** `HelixHeadlessSpatialBarChart` component event */
28446
+ export type HelixHeadlessSpatialBarChartElementEvent<E = Event> = TypedEvent<
28447
+ HelixHeadlessSpatialBarChart,
28448
+ E
28449
+ >;
28450
+ /** `helix-plot-change` event type */
28451
+ export type HelixHeadlessSpatialBarChartHelixPlotChangeElementEvent =
28452
+ HelixHeadlessSpatialBarChartElementEvent<HelixPlotChangeEvent>;
28453
+ /** `helix-plot-turn` event type */
28454
+ export type HelixHeadlessSpatialBarChartHelixPlotTurnElementEvent =
28455
+ HelixHeadlessSpatialBarChartElementEvent<HelixPlotTurnEvent>;
28456
+ /** `helix-reading-change` event type */
28457
+ export type HelixHeadlessSpatialBarChartHelixReadingChangeElementEvent =
28458
+ HelixHeadlessSpatialBarChartElementEvent<HelixReadingChangeEvent>;
28459
+ /** `helix-reading-press` event type */
28460
+ export type HelixHeadlessSpatialBarChartHelixReadingPressElementEvent =
28461
+ HelixHeadlessSpatialBarChartElementEvent<HelixReadingPressEvent>;
28462
+
28463
+ export type HelixHeadlessSpatialBarChartProps = {
28464
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
28465
+ alone and fill the plot, as a picture on a product's own page does. The
28466
+ table, the summary, the tooltip, and the keys still carry every value,
28467
+ and a renderer draws no box either. */
28468
+ "no-box"?: (HelixHeadlessSpatialBarChart["noBox"]) | undefined;
28469
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
28470
+ alone and fill the plot, as a picture on a product's own page does. The
28471
+ table, the summary, the tooltip, and the keys still carry every value,
28472
+ and a renderer draws no box either. */
28473
+ noBox?: (HelixHeadlessSpatialBarChart["noBox"]) | undefined;
28474
+ /** What the readout says for a place with no value. `{category}` and
28475
+ `{series}` name the place. */
28476
+ "open-label"?: (HelixHeadlessSpatialBarChart["openLabel"]) | undefined;
28477
+ /** What the readout says for a place with no value. `{category}` and
28478
+ `{series}` name the place. */
28479
+ openLabel?: (HelixHeadlessSpatialBarChart["openLabel"]) | undefined;
28480
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
28481
+ "plot-label"?: (HelixHeadlessSpatialBarChart["plotLabel"]) | undefined;
28482
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
28483
+ plotLabel?: (HelixHeadlessSpatialBarChart["plotLabel"]) | undefined;
28484
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
28485
+ are the number of bars, series, and categories, written in the locale,
28486
+ and `{low}` and `{high}` the lowest and the highest value. */
28487
+ "summary-label"?: (HelixHeadlessSpatialBarChart["summaryLabel"]) | undefined;
28488
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
28489
+ are the number of bars, series, and categories, written in the locale,
28490
+ and `{low}` and `{high}` the lowest and the highest value. */
28491
+ summaryLabel?: (HelixHeadlessSpatialBarChart["summaryLabel"]) | undefined;
28492
+ /** The words shown in place of the drawing when the table has no readings,
28493
+ and the fallback of the `empty` slot. */
28494
+ "empty-text"?: (HelixHeadlessSpatialBarChart["emptyText"]) | undefined;
28495
+ /** The words shown in place of the drawing when the table has no readings,
28496
+ and the fallback of the `empty` slot. */
28497
+ emptyText?: (HelixHeadlessSpatialBarChart["emptyText"]) | undefined;
28498
+ /** Whether the readings are still on their way. The chart shows
28499
+ `loading-text` in place of an empty drawing until it has readings.
28500
+
28501
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
28502
+ that already has readings keeps drawing them, so a refresh does not
28503
+ blank it. */
28504
+ loading?: (HelixHeadlessSpatialBarChart["loading"]) | undefined;
28505
+ /** The words shown in place of the drawing while `loading` is set and
28506
+ there are no readings yet, and the fallback of the `loading` slot. */
28507
+ "loading-text"?: (HelixHeadlessSpatialBarChart["loadingText"]) | undefined;
28508
+ /** The words shown in place of the drawing while `loading` is set and
28509
+ there are no readings yet, and the fallback of the `loading` slot. */
28510
+ loadingText?: (HelixHeadlessSpatialBarChart["loadingText"]) | undefined;
28511
+ /** The id of the table to read.
28512
+
28513
+ Names a table in the same tree, so a chart inside another component's
28514
+ shadow root reads a table in that root rather than one in the document. A
28515
+ `<table>` or anything built from grid roles, including `helix-table`.
28516
+
28517
+ **In React this arrives as a property and not as an attribute**, the way
28518
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
28519
+ for?: (HelixHeadlessSpatialBarChart["for"]) | undefined;
28520
+ /** The chart's name, which starts the chart's text summary.
28521
+
28522
+ Absent falls back to the table's own caption, which is usually the right
28523
+ words and is already written. */
28524
+ label?: (HelixHeadlessSpatialBarChart["label"]) | undefined;
28525
+ /** The locale the chart's own numbers are written in: its axis, its
28526
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
28527
+
28528
+ Absent reads the nearest `lang`, then the runtime's own. The table's
28529
+ cells are shown as the table writes them, whatever this says. */
28530
+ locale?: (HelixHeadlessSpatialBarChart["locale"]) | undefined;
28531
+ /** Where a reading the keys moved to stands among the readings, said after
28532
+ it. `{position}` and `{count}` are replaced with the numbers, written in
28533
+ `locale`.
28534
+
28535
+ Set it to the words of the page's language, such as `{position} von
28536
+ {count}`, or to nothing to say no position. A slice or a series a
28537
+ legend hid is not counted. */
28538
+ "position-label"?: (HelixHeadlessSpatialBarChart["positionLabel"]) | undefined;
28539
+ /** Where a reading the keys moved to stands among the readings, said after
28540
+ it. `{position}` and `{count}` are replaced with the numbers, written in
28541
+ `locale`.
28542
+
28543
+ Set it to the words of the page's language, such as `{position} von
28544
+ {count}`, or to nothing to say no position. A slice or a series a
28545
+ legend hid is not counted. */
28546
+ positionLabel?: (HelixHeadlessSpatialBarChart["positionLabel"]) | undefined;
28547
+ /** The readings as data, in the shape of a table, where the page has no
28548
+ table to point `for` at. `for` wins where both are set.
28549
+
28550
+ ```js
28551
+ chart.data = {
28552
+ caption: 'Sessions by channel',
28553
+ columns: ['Month', 'Direct', 'Referral'],
28554
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
28555
+ }
28556
+ ```
28557
+
28558
+ The first column holds each row's label and every column after it a
28559
+ series, as in a table. A cell is a number, words, `null` for a blank,
28560
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
28561
+ number is shown in `locale`.
28562
+
28563
+ **A table is still the better source where the page can show one**:
28564
+ it reads with no script and before hydration, and a reader can sort and
28565
+ copy it. Data is drawn on the client only, so a server serves the
28566
+ frame, and the summary, the keys and the readout are then the whole of
28567
+ what a screen reader is given. Set a new object to redraw: the chart
28568
+ does not look inside the one it has. */
28569
+ data?: (HelixHeadlessSpatialBarChart["data"]) | undefined;
28570
+
28571
+ /** The bars or the bar the keys rest on changed, which the renderer is told. It stays on the chart. */
28572
+ "onhelix-plot-change"?: ((
28573
+ e: HelixHeadlessSpatialBarChartHelixPlotChangeElementEvent,
28574
+ ) => void) | undefined;
28575
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
28576
+ "onhelix-plot-turn"?: ((
28577
+ e: HelixHeadlessSpatialBarChartHelixPlotTurnElementEvent,
28578
+ ) => void) | undefined;
28579
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it. */
28580
+ "onhelix-reading-change"?: ((
28581
+ e: HelixHeadlessSpatialBarChartHelixReadingChangeElementEvent,
28582
+ ) => void) | undefined;
28583
+ /** A bar was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
28584
+ "onhelix-reading-press"?: ((
28585
+ e: HelixHeadlessSpatialBarChartHelixReadingPressElementEvent,
28586
+ ) => void) | undefined;
28587
+ };
28588
+
28589
+ export type HelixHeadlessSpatialBarChartSolidJsProps = {
28590
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
28591
+ alone and fill the plot, as a picture on a product's own page does. The
28592
+ table, the summary, the tooltip, and the keys still carry every value,
28593
+ and a renderer draws no box either. */
28594
+ "bool:no-box"?: (HelixHeadlessSpatialBarChart["noBox"]) | undefined;
28595
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
28596
+ alone and fill the plot, as a picture on a product's own page does. The
28597
+ table, the summary, the tooltip, and the keys still carry every value,
28598
+ and a renderer draws no box either. */
28599
+ "prop:noBox"?: (HelixHeadlessSpatialBarChart["noBox"]) | undefined;
28600
+ /** What the readout says for a place with no value. `{category}` and
28601
+ `{series}` name the place. */
28602
+ "attr:open-label"?: (HelixHeadlessSpatialBarChart["openLabel"]) | undefined;
28603
+ /** What the readout says for a place with no value. `{category}` and
28604
+ `{series}` name the place. */
28605
+ "prop:openLabel"?: (HelixHeadlessSpatialBarChart["openLabel"]) | undefined;
28606
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
28607
+ "attr:plot-label"?: (HelixHeadlessSpatialBarChart["plotLabel"]) | undefined;
28608
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
28609
+ "prop:plotLabel"?: (HelixHeadlessSpatialBarChart["plotLabel"]) | undefined;
28610
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
28611
+ are the number of bars, series, and categories, written in the locale,
28612
+ and `{low}` and `{high}` the lowest and the highest value. */
28613
+ "attr:summary-label"?: (HelixHeadlessSpatialBarChart["summaryLabel"]) | undefined;
28614
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
28615
+ are the number of bars, series, and categories, written in the locale,
28616
+ and `{low}` and `{high}` the lowest and the highest value. */
28617
+ "prop:summaryLabel"?: (HelixHeadlessSpatialBarChart["summaryLabel"]) | undefined;
28618
+ /** The words shown in place of the drawing when the table has no readings,
28619
+ and the fallback of the `empty` slot. */
28620
+ "attr:empty-text"?: (HelixHeadlessSpatialBarChart["emptyText"]) | undefined;
28621
+ /** The words shown in place of the drawing when the table has no readings,
28622
+ and the fallback of the `empty` slot. */
28623
+ "prop:emptyText"?: (HelixHeadlessSpatialBarChart["emptyText"]) | undefined;
28624
+ /** Whether the readings are still on their way. The chart shows
28625
+ `loading-text` in place of an empty drawing until it has readings.
28626
+
28627
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
28628
+ that already has readings keeps drawing them, so a refresh does not
28629
+ blank it. */
28630
+ "prop:loading"?: (HelixHeadlessSpatialBarChart["loading"]) | undefined;
28631
+ /** The words shown in place of the drawing while `loading` is set and
28632
+ there are no readings yet, and the fallback of the `loading` slot. */
28633
+ "attr:loading-text"?: (HelixHeadlessSpatialBarChart["loadingText"]) | undefined;
28634
+ /** The words shown in place of the drawing while `loading` is set and
28635
+ there are no readings yet, and the fallback of the `loading` slot. */
28636
+ "prop:loadingText"?: (HelixHeadlessSpatialBarChart["loadingText"]) | undefined;
28637
+ /** The id of the table to read.
28638
+
28639
+ Names a table in the same tree, so a chart inside another component's
28640
+ shadow root reads a table in that root rather than one in the document. A
28641
+ `<table>` or anything built from grid roles, including `helix-table`.
28642
+
28643
+ **In React this arrives as a property and not as an attribute**, the way
28644
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
28645
+ "prop:for"?: (HelixHeadlessSpatialBarChart["for"]) | undefined;
28646
+ /** The chart's name, which starts the chart's text summary.
28647
+
28648
+ Absent falls back to the table's own caption, which is usually the right
28649
+ words and is already written. */
28650
+ "prop:label"?: (HelixHeadlessSpatialBarChart["label"]) | undefined;
28651
+ /** The locale the chart's own numbers are written in: its axis, its
28652
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
28653
+
28654
+ Absent reads the nearest `lang`, then the runtime's own. The table's
28655
+ cells are shown as the table writes them, whatever this says. */
28656
+ "prop:locale"?: (HelixHeadlessSpatialBarChart["locale"]) | undefined;
28657
+ /** Where a reading the keys moved to stands among the readings, said after
28658
+ it. `{position}` and `{count}` are replaced with the numbers, written in
28659
+ `locale`.
28660
+
28661
+ Set it to the words of the page's language, such as `{position} von
28662
+ {count}`, or to nothing to say no position. A slice or a series a
28663
+ legend hid is not counted. */
28664
+ "attr:position-label"?: (HelixHeadlessSpatialBarChart["positionLabel"]) | undefined;
28665
+ /** Where a reading the keys moved to stands among the readings, said after
28666
+ it. `{position}` and `{count}` are replaced with the numbers, written in
28667
+ `locale`.
28668
+
28669
+ Set it to the words of the page's language, such as `{position} von
28670
+ {count}`, or to nothing to say no position. A slice or a series a
28671
+ legend hid is not counted. */
28672
+ "prop:positionLabel"?: (HelixHeadlessSpatialBarChart["positionLabel"]) | undefined;
28673
+ /** The readings as data, in the shape of a table, where the page has no
28674
+ table to point `for` at. `for` wins where both are set.
28675
+
28676
+ ```js
28677
+ chart.data = {
28678
+ caption: 'Sessions by channel',
28679
+ columns: ['Month', 'Direct', 'Referral'],
28680
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
28681
+ }
28682
+ ```
28683
+
28684
+ The first column holds each row's label and every column after it a
28685
+ series, as in a table. A cell is a number, words, `null` for a blank,
28686
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
28687
+ number is shown in `locale`.
28688
+
28689
+ **A table is still the better source where the page can show one**:
28690
+ it reads with no script and before hydration, and a reader can sort and
28691
+ copy it. Data is drawn on the client only, so a server serves the
28692
+ frame, and the summary, the keys and the readout are then the whole of
28693
+ what a screen reader is given. Set a new object to redraw: the chart
28694
+ does not look inside the one it has. */
28695
+ "prop:data"?: (HelixHeadlessSpatialBarChart["data"]) | undefined;
28696
+ /** The bars or the bar the keys rest on changed, which the renderer is told. It stays on the chart. */
28697
+ "on:helix-plot-change"?: ((
28698
+ e: HelixHeadlessSpatialBarChartHelixPlotChangeElementEvent,
28699
+ ) => void) | undefined;
28700
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
28701
+ "on:helix-plot-turn"?: ((
28702
+ e: HelixHeadlessSpatialBarChartHelixPlotTurnElementEvent,
28703
+ ) => void) | undefined;
28704
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it. */
28705
+ "on:helix-reading-change"?: ((
28706
+ e: HelixHeadlessSpatialBarChartHelixReadingChangeElementEvent,
28707
+ ) => void) | undefined;
28708
+ /** A bar was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
28709
+ "on:helix-reading-press"?: ((
28710
+ e: HelixHeadlessSpatialBarChartHelixReadingPressElementEvent,
28711
+ ) => void) | undefined;
28712
+
28713
+ /** Set the innerHTML of the element */
28714
+ innerHTML?: (string) | undefined;
28715
+ /** Set the textContent of the element */
28716
+ textContent?: (string | number) | undefined;
28717
+ };
28718
+
28383
28719
  /** `HelixHeadlessSpatialHeatmap` component event */
28384
28720
  export type HelixHeadlessSpatialHeatmapElementEvent<E = Event> = TypedEvent<
28385
28721
  HelixHeadlessSpatialHeatmap,
@@ -28894,56 +29230,198 @@ does not look inside the one it has. */
28894
29230
  textContent?: (string | number) | undefined;
28895
29231
  };
28896
29232
 
28897
- /** `HelixHeadlessSpatialScatterChart` component event */
28898
- export type HelixHeadlessSpatialScatterChartElementEvent<E = Event> =
28899
- TypedEvent<HelixHeadlessSpatialScatterChart, E>;
29233
+ /** `HelixHeadlessSpatialRibbonChart` component event */
29234
+ export type HelixHeadlessSpatialRibbonChartElementEvent<E = Event> = TypedEvent<
29235
+ HelixHeadlessSpatialRibbonChart,
29236
+ E
29237
+ >;
28900
29238
  /** `helix-plot-change` event type */
28901
- export type HelixHeadlessSpatialScatterChartHelixPlotChangeElementEvent =
28902
- HelixHeadlessSpatialScatterChartElementEvent<HelixPlotChangeEvent>;
29239
+ export type HelixHeadlessSpatialRibbonChartHelixPlotChangeElementEvent =
29240
+ HelixHeadlessSpatialRibbonChartElementEvent<HelixPlotChangeEvent>;
28903
29241
  /** `helix-plot-turn` event type */
28904
- export type HelixHeadlessSpatialScatterChartHelixPlotTurnElementEvent =
28905
- HelixHeadlessSpatialScatterChartElementEvent<HelixPlotTurnEvent>;
29242
+ export type HelixHeadlessSpatialRibbonChartHelixPlotTurnElementEvent =
29243
+ HelixHeadlessSpatialRibbonChartElementEvent<HelixPlotTurnEvent>;
28906
29244
  /** `helix-reading-change` event type */
28907
- export type HelixHeadlessSpatialScatterChartHelixReadingChangeElementEvent =
28908
- HelixHeadlessSpatialScatterChartElementEvent<HelixReadingChangeEvent>;
29245
+ export type HelixHeadlessSpatialRibbonChartHelixReadingChangeElementEvent =
29246
+ HelixHeadlessSpatialRibbonChartElementEvent<HelixReadingChangeEvent>;
28909
29247
  /** `helix-reading-press` event type */
28910
- export type HelixHeadlessSpatialScatterChartHelixReadingPressElementEvent =
28911
- HelixHeadlessSpatialScatterChartElementEvent<HelixReadingPressEvent>;
29248
+ export type HelixHeadlessSpatialRibbonChartHelixReadingPressElementEvent =
29249
+ HelixHeadlessSpatialRibbonChartElementEvent<HelixReadingPressEvent>;
29250
+
29251
+ export type HelixHeadlessSpatialRibbonChartProps = {
29252
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29253
+ alone and fill the plot, as a picture on a product's own page does. The
29254
+ table, the summary, the tooltip, and the keys still carry every value,
29255
+ and a renderer draws no box either. */
29256
+ "no-box"?: (HelixHeadlessSpatialRibbonChart["noBox"]) | undefined;
29257
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29258
+ alone and fill the plot, as a picture on a product's own page does. The
29259
+ table, the summary, the tooltip, and the keys still carry every value,
29260
+ and a renderer draws no box either. */
29261
+ noBox?: (HelixHeadlessSpatialRibbonChart["noBox"]) | undefined;
29262
+ /** What the readout says for a reading the table has no value for.
29263
+ `{place}` and `{series}` name it. */
29264
+ "open-label"?: (HelixHeadlessSpatialRibbonChart["openLabel"]) | undefined;
29265
+ /** What the readout says for a reading the table has no value for.
29266
+ `{place}` and `{series}` name it. */
29267
+ openLabel?: (HelixHeadlessSpatialRibbonChart["openLabel"]) | undefined;
29268
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
29269
+ "plot-label"?: (HelixHeadlessSpatialRibbonChart["plotLabel"]) | undefined;
29270
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
29271
+ plotLabel?: (HelixHeadlessSpatialRibbonChart["plotLabel"]) | undefined;
29272
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{places}` are
29273
+ the number of readings, series, and places, written in the locale,
29274
+ and `{low}` and `{high}` the lowest and the highest value. */
29275
+ "summary-label"?: (HelixHeadlessSpatialRibbonChart["summaryLabel"]) | undefined;
29276
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{places}` are
29277
+ the number of readings, series, and places, written in the locale,
29278
+ and `{low}` and `{high}` the lowest and the highest value. */
29279
+ summaryLabel?: (HelixHeadlessSpatialRibbonChart["summaryLabel"]) | undefined;
29280
+ /** The words shown in place of the drawing when the table has no readings,
29281
+ and the fallback of the `empty` slot. */
29282
+ "empty-text"?: (HelixHeadlessSpatialRibbonChart["emptyText"]) | undefined;
29283
+ /** The words shown in place of the drawing when the table has no readings,
29284
+ and the fallback of the `empty` slot. */
29285
+ emptyText?: (HelixHeadlessSpatialRibbonChart["emptyText"]) | undefined;
29286
+ /** Whether the readings are still on their way. The chart shows
29287
+ `loading-text` in place of an empty drawing until it has readings.
28912
29288
 
28913
- export type HelixHeadlessSpatialScatterChartProps = {
28914
- /** The column of text that puts each point in a group, by its heading. None by default. */
28915
- "group-by"?: (HelixHeadlessSpatialScatterChart["groupBy"]) | undefined;
28916
- /** The column of text that puts each point in a group, by its heading. None by default. */
28917
- groupBy?: (HelixHeadlessSpatialScatterChart["groupBy"]) | undefined;
29289
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
29290
+ that already has readings keeps drawing them, so a refresh does not
29291
+ blank it. */
29292
+ loading?: (HelixHeadlessSpatialRibbonChart["loading"]) | undefined;
29293
+ /** The words shown in place of the drawing while `loading` is set and
29294
+ there are no readings yet, and the fallback of the `loading` slot. */
29295
+ "loading-text"?: (HelixHeadlessSpatialRibbonChart["loadingText"]) | undefined;
29296
+ /** The words shown in place of the drawing while `loading` is set and
29297
+ there are no readings yet, and the fallback of the `loading` slot. */
29298
+ loadingText?: (HelixHeadlessSpatialRibbonChart["loadingText"]) | undefined;
29299
+ /** The id of the table to read.
29300
+
29301
+ Names a table in the same tree, so a chart inside another component's
29302
+ shadow root reads a table in that root rather than one in the document. A
29303
+ `<table>` or anything built from grid roles, including `helix-table`.
29304
+
29305
+ **In React this arrives as a property and not as an attribute**, the way
29306
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
29307
+ for?: (HelixHeadlessSpatialRibbonChart["for"]) | undefined;
29308
+ /** The chart's name, which starts the chart's text summary.
29309
+
29310
+ Absent falls back to the table's own caption, which is usually the right
29311
+ words and is already written. */
29312
+ label?: (HelixHeadlessSpatialRibbonChart["label"]) | undefined;
29313
+ /** The locale the chart's own numbers are written in: its axis, its
29314
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
29315
+
29316
+ Absent reads the nearest `lang`, then the runtime's own. The table's
29317
+ cells are shown as the table writes them, whatever this says. */
29318
+ locale?: (HelixHeadlessSpatialRibbonChart["locale"]) | undefined;
29319
+ /** Where a reading the keys moved to stands among the readings, said after
29320
+ it. `{position}` and `{count}` are replaced with the numbers, written in
29321
+ `locale`.
29322
+
29323
+ Set it to the words of the page's language, such as `{position} von
29324
+ {count}`, or to nothing to say no position. A slice or a series a
29325
+ legend hid is not counted. */
29326
+ "position-label"?: (HelixHeadlessSpatialRibbonChart["positionLabel"]) | undefined;
29327
+ /** Where a reading the keys moved to stands among the readings, said after
29328
+ it. `{position}` and `{count}` are replaced with the numbers, written in
29329
+ `locale`.
29330
+
29331
+ Set it to the words of the page's language, such as `{position} von
29332
+ {count}`, or to nothing to say no position. A slice or a series a
29333
+ legend hid is not counted. */
29334
+ positionLabel?: (HelixHeadlessSpatialRibbonChart["positionLabel"]) | undefined;
29335
+ /** The readings as data, in the shape of a table, where the page has no
29336
+ table to point `for` at. `for` wins where both are set.
29337
+
29338
+ ```js
29339
+ chart.data = {
29340
+ caption: 'Sessions by channel',
29341
+ columns: ['Month', 'Direct', 'Referral'],
29342
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
29343
+ }
29344
+ ```
29345
+
29346
+ The first column holds each row's label and every column after it a
29347
+ series, as in a table. A cell is a number, words, `null` for a blank,
29348
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
29349
+ number is shown in `locale`.
29350
+
29351
+ **A table is still the better source where the page can show one**:
29352
+ it reads with no script and before hydration, and a reader can sort and
29353
+ copy it. Data is drawn on the client only, so a server serves the
29354
+ frame, and the summary, the keys and the readout are then the whole of
29355
+ what a screen reader is given. Set a new object to redraw: the chart
29356
+ does not look inside the one it has. */
29357
+ data?: (HelixHeadlessSpatialRibbonChart["data"]) | undefined;
29358
+
29359
+ /** The readings or the reading the keys rest on changed, which the renderer is told. It stays on the chart. */
29360
+ "onhelix-plot-change"?: ((
29361
+ e: HelixHeadlessSpatialRibbonChartHelixPlotChangeElementEvent,
29362
+ ) => void) | undefined;
29363
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
29364
+ "onhelix-plot-turn"?: ((
29365
+ e: HelixHeadlessSpatialRibbonChartHelixPlotTurnElementEvent,
29366
+ ) => void) | undefined;
29367
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it. */
29368
+ "onhelix-reading-change"?: ((
29369
+ e: HelixHeadlessSpatialRibbonChartHelixReadingChangeElementEvent,
29370
+ ) => void) | undefined;
29371
+ /** A reading was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
29372
+ "onhelix-reading-press"?: ((
29373
+ e: HelixHeadlessSpatialRibbonChartHelixReadingPressElementEvent,
29374
+ ) => void) | undefined;
29375
+ };
29376
+
29377
+ export type HelixHeadlessSpatialRibbonChartSolidJsProps = {
29378
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29379
+ alone and fill the plot, as a picture on a product's own page does. The
29380
+ table, the summary, the tooltip, and the keys still carry every value,
29381
+ and a renderer draws no box either. */
29382
+ "bool:no-box"?: (HelixHeadlessSpatialRibbonChart["noBox"]) | undefined;
29383
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29384
+ alone and fill the plot, as a picture on a product's own page does. The
29385
+ table, the summary, the tooltip, and the keys still carry every value,
29386
+ and a renderer draws no box either. */
29387
+ "prop:noBox"?: (HelixHeadlessSpatialRibbonChart["noBox"]) | undefined;
29388
+ /** What the readout says for a reading the table has no value for.
29389
+ `{place}` and `{series}` name it. */
29390
+ "attr:open-label"?: (HelixHeadlessSpatialRibbonChart["openLabel"]) | undefined;
29391
+ /** What the readout says for a reading the table has no value for.
29392
+ `{place}` and `{series}` name it. */
29393
+ "prop:openLabel"?: (HelixHeadlessSpatialRibbonChart["openLabel"]) | undefined;
28918
29394
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
28919
- "plot-label"?: (HelixHeadlessSpatialScatterChart["plotLabel"]) | undefined;
29395
+ "attr:plot-label"?: (HelixHeadlessSpatialRibbonChart["plotLabel"]) | undefined;
28920
29396
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
28921
- plotLabel?: (HelixHeadlessSpatialScatterChart["plotLabel"]) | undefined;
28922
- /** The `summary` part's sentence. `{count}` is the number of points, written
28923
- in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names. */
28924
- "summary-label"?: (HelixHeadlessSpatialScatterChart["summaryLabel"]) | undefined;
28925
- /** The `summary` part's sentence. `{count}` is the number of points, written
28926
- in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names. */
28927
- summaryLabel?: (HelixHeadlessSpatialScatterChart["summaryLabel"]) | undefined;
29397
+ "prop:plotLabel"?: (HelixHeadlessSpatialRibbonChart["plotLabel"]) | undefined;
29398
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{places}` are
29399
+ the number of readings, series, and places, written in the locale,
29400
+ and `{low}` and `{high}` the lowest and the highest value. */
29401
+ "attr:summary-label"?: (HelixHeadlessSpatialRibbonChart["summaryLabel"]) | undefined;
29402
+ /** The `summary` part's sentence. `{count}`, `{series}`, and `{places}` are
29403
+ the number of readings, series, and places, written in the locale,
29404
+ and `{low}` and `{high}` the lowest and the highest value. */
29405
+ "prop:summaryLabel"?: (HelixHeadlessSpatialRibbonChart["summaryLabel"]) | undefined;
28928
29406
  /** The words shown in place of the drawing when the table has no readings,
28929
29407
  and the fallback of the `empty` slot. */
28930
- "empty-text"?: (HelixHeadlessSpatialScatterChart["emptyText"]) | undefined;
29408
+ "attr:empty-text"?: (HelixHeadlessSpatialRibbonChart["emptyText"]) | undefined;
28931
29409
  /** The words shown in place of the drawing when the table has no readings,
28932
29410
  and the fallback of the `empty` slot. */
28933
- emptyText?: (HelixHeadlessSpatialScatterChart["emptyText"]) | undefined;
29411
+ "prop:emptyText"?: (HelixHeadlessSpatialRibbonChart["emptyText"]) | undefined;
28934
29412
  /** Whether the readings are still on their way. The chart shows
28935
29413
  `loading-text` in place of an empty drawing until it has readings.
28936
29414
 
28937
29415
  Reflected, so a stylesheet can treat the chart while it waits. A chart
28938
29416
  that already has readings keeps drawing them, so a refresh does not
28939
29417
  blank it. */
28940
- loading?: (HelixHeadlessSpatialScatterChart["loading"]) | undefined;
29418
+ "prop:loading"?: (HelixHeadlessSpatialRibbonChart["loading"]) | undefined;
28941
29419
  /** The words shown in place of the drawing while `loading` is set and
28942
29420
  there are no readings yet, and the fallback of the `loading` slot. */
28943
- "loading-text"?: (HelixHeadlessSpatialScatterChart["loadingText"]) | undefined;
29421
+ "attr:loading-text"?: (HelixHeadlessSpatialRibbonChart["loadingText"]) | undefined;
28944
29422
  /** The words shown in place of the drawing while `loading` is set and
28945
29423
  there are no readings yet, and the fallback of the `loading` slot. */
28946
- loadingText?: (HelixHeadlessSpatialScatterChart["loadingText"]) | undefined;
29424
+ "prop:loadingText"?: (HelixHeadlessSpatialRibbonChart["loadingText"]) | undefined;
28947
29425
  /** The id of the table to read.
28948
29426
 
28949
29427
  Names a table in the same tree, so a chart inside another component's
@@ -28952,18 +29430,18 @@ shadow root reads a table in that root rather than one in the document. A
28952
29430
 
28953
29431
  **In React this arrives as a property and not as an attribute**, the way
28954
29432
  `Tooltip.for` does, so it does not reflect and nothing styles on it. */
28955
- for?: (HelixHeadlessSpatialScatterChart["for"]) | undefined;
29433
+ "prop:for"?: (HelixHeadlessSpatialRibbonChart["for"]) | undefined;
28956
29434
  /** The chart's name, which starts the chart's text summary.
28957
29435
 
28958
29436
  Absent falls back to the table's own caption, which is usually the right
28959
29437
  words and is already written. */
28960
- label?: (HelixHeadlessSpatialScatterChart["label"]) | undefined;
29438
+ "prop:label"?: (HelixHeadlessSpatialRibbonChart["label"]) | undefined;
28961
29439
  /** The locale the chart's own numbers are written in: its axis, its
28962
29440
  percentages and its totals, such as `de` for `1.240` and `32 %`.
28963
29441
 
28964
29442
  Absent reads the nearest `lang`, then the runtime's own. The table's
28965
29443
  cells are shown as the table writes them, whatever this says. */
28966
- locale?: (HelixHeadlessSpatialScatterChart["locale"]) | undefined;
29444
+ "prop:locale"?: (HelixHeadlessSpatialRibbonChart["locale"]) | undefined;
28967
29445
  /** Where a reading the keys moved to stands among the readings, said after
28968
29446
  it. `{position}` and `{count}` are replaced with the numbers, written in
28969
29447
  `locale`.
@@ -28971,7 +29449,7 @@ it. `{position}` and `{count}` are replaced with the numbers, written in
28971
29449
  Set it to the words of the page's language, such as `{position} von
28972
29450
  {count}`, or to nothing to say no position. A slice or a series a
28973
29451
  legend hid is not counted. */
28974
- "position-label"?: (HelixHeadlessSpatialScatterChart["positionLabel"]) | undefined;
29452
+ "attr:position-label"?: (HelixHeadlessSpatialRibbonChart["positionLabel"]) | undefined;
28975
29453
  /** Where a reading the keys moved to stands among the readings, said after
28976
29454
  it. `{position}` and `{count}` are replaced with the numbers, written in
28977
29455
  `locale`.
@@ -28979,7 +29457,157 @@ it. `{position}` and `{count}` are replaced with the numbers, written in
28979
29457
  Set it to the words of the page's language, such as `{position} von
28980
29458
  {count}`, or to nothing to say no position. A slice or a series a
28981
29459
  legend hid is not counted. */
28982
- positionLabel?: (HelixHeadlessSpatialScatterChart["positionLabel"]) | undefined;
29460
+ "prop:positionLabel"?: (HelixHeadlessSpatialRibbonChart["positionLabel"]) | undefined;
29461
+ /** The readings as data, in the shape of a table, where the page has no
29462
+ table to point `for` at. `for` wins where both are set.
29463
+
29464
+ ```js
29465
+ chart.data = {
29466
+ caption: 'Sessions by channel',
29467
+ columns: ['Month', 'Direct', 'Referral'],
29468
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
29469
+ }
29470
+ ```
29471
+
29472
+ The first column holds each row's label and every column after it a
29473
+ series, as in a table. A cell is a number, words, `null` for a blank,
29474
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
29475
+ number is shown in `locale`.
29476
+
29477
+ **A table is still the better source where the page can show one**:
29478
+ it reads with no script and before hydration, and a reader can sort and
29479
+ copy it. Data is drawn on the client only, so a server serves the
29480
+ frame, and the summary, the keys and the readout are then the whole of
29481
+ what a screen reader is given. Set a new object to redraw: the chart
29482
+ does not look inside the one it has. */
29483
+ "prop:data"?: (HelixHeadlessSpatialRibbonChart["data"]) | undefined;
29484
+ /** The readings or the reading the keys rest on changed, which the renderer is told. It stays on the chart. */
29485
+ "on:helix-plot-change"?: ((
29486
+ e: HelixHeadlessSpatialRibbonChartHelixPlotChangeElementEvent,
29487
+ ) => void) | undefined;
29488
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
29489
+ "on:helix-plot-turn"?: ((
29490
+ e: HelixHeadlessSpatialRibbonChartHelixPlotTurnElementEvent,
29491
+ ) => void) | undefined;
29492
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it. */
29493
+ "on:helix-reading-change"?: ((
29494
+ e: HelixHeadlessSpatialRibbonChartHelixReadingChangeElementEvent,
29495
+ ) => void) | undefined;
29496
+ /** A reading was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
29497
+ "on:helix-reading-press"?: ((
29498
+ e: HelixHeadlessSpatialRibbonChartHelixReadingPressElementEvent,
29499
+ ) => void) | undefined;
29500
+
29501
+ /** Set the innerHTML of the element */
29502
+ innerHTML?: (string) | undefined;
29503
+ /** Set the textContent of the element */
29504
+ textContent?: (string | number) | undefined;
29505
+ };
29506
+
29507
+ /** `HelixHeadlessSpatialScatterChart` component event */
29508
+ export type HelixHeadlessSpatialScatterChartElementEvent<E = Event> =
29509
+ TypedEvent<HelixHeadlessSpatialScatterChart, E>;
29510
+ /** `helix-plot-change` event type */
29511
+ export type HelixHeadlessSpatialScatterChartHelixPlotChangeElementEvent =
29512
+ HelixHeadlessSpatialScatterChartElementEvent<HelixPlotChangeEvent>;
29513
+ /** `helix-plot-turn` event type */
29514
+ export type HelixHeadlessSpatialScatterChartHelixPlotTurnElementEvent =
29515
+ HelixHeadlessSpatialScatterChartElementEvent<HelixPlotTurnEvent>;
29516
+ /** `helix-reading-change` event type */
29517
+ export type HelixHeadlessSpatialScatterChartHelixReadingChangeElementEvent =
29518
+ HelixHeadlessSpatialScatterChartElementEvent<HelixReadingChangeEvent>;
29519
+ /** `helix-reading-press` event type */
29520
+ export type HelixHeadlessSpatialScatterChartHelixReadingPressElementEvent =
29521
+ HelixHeadlessSpatialScatterChartElementEvent<HelixReadingPressEvent>;
29522
+
29523
+ export type HelixHeadlessSpatialScatterChartProps = {
29524
+ /** Draws a line from each point straight down to the floor of the box, in
29525
+ its group's color, so where a point stands across and in depth reads off
29526
+ the floor's grid. A renderer draws them too. */
29527
+ "drop-lines"?: (HelixHeadlessSpatialScatterChart["dropLines"]) | undefined;
29528
+ /** Draws a line from each point straight down to the floor of the box, in
29529
+ its group's color, so where a point stands across and in depth reads off
29530
+ the floor's grid. A renderer draws them too. */
29531
+ dropLines?: (HelixHeadlessSpatialScatterChart["dropLines"]) | undefined;
29532
+ /** The column of text that puts each point in a group, by its heading. None by default. */
29533
+ "group-by"?: (HelixHeadlessSpatialScatterChart["groupBy"]) | undefined;
29534
+ /** The column of text that puts each point in a group, by its heading. None by default. */
29535
+ groupBy?: (HelixHeadlessSpatialScatterChart["groupBy"]) | undefined;
29536
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29537
+ alone and fill the plot, as a picture on a product's own page does. The
29538
+ table, the summary, the tooltip, and the keys still carry every value,
29539
+ and a renderer draws no box either. */
29540
+ "no-box"?: (HelixHeadlessSpatialScatterChart["noBox"]) | undefined;
29541
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29542
+ alone and fill the plot, as a picture on a product's own page does. The
29543
+ table, the summary, the tooltip, and the keys still carry every value,
29544
+ and a renderer draws no box either. */
29545
+ noBox?: (HelixHeadlessSpatialScatterChart["noBox"]) | undefined;
29546
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
29547
+ "plot-label"?: (HelixHeadlessSpatialScatterChart["plotLabel"]) | undefined;
29548
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
29549
+ plotLabel?: (HelixHeadlessSpatialScatterChart["plotLabel"]) | undefined;
29550
+ /** The `summary` part's sentence. `{count}` is the number of points, written
29551
+ in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names. */
29552
+ "summary-label"?: (HelixHeadlessSpatialScatterChart["summaryLabel"]) | undefined;
29553
+ /** The `summary` part's sentence. `{count}` is the number of points, written
29554
+ in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names. */
29555
+ summaryLabel?: (HelixHeadlessSpatialScatterChart["summaryLabel"]) | undefined;
29556
+ /** The words shown in place of the drawing when the table has no readings,
29557
+ and the fallback of the `empty` slot. */
29558
+ "empty-text"?: (HelixHeadlessSpatialScatterChart["emptyText"]) | undefined;
29559
+ /** The words shown in place of the drawing when the table has no readings,
29560
+ and the fallback of the `empty` slot. */
29561
+ emptyText?: (HelixHeadlessSpatialScatterChart["emptyText"]) | undefined;
29562
+ /** Whether the readings are still on their way. The chart shows
29563
+ `loading-text` in place of an empty drawing until it has readings.
29564
+
29565
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
29566
+ that already has readings keeps drawing them, so a refresh does not
29567
+ blank it. */
29568
+ loading?: (HelixHeadlessSpatialScatterChart["loading"]) | undefined;
29569
+ /** The words shown in place of the drawing while `loading` is set and
29570
+ there are no readings yet, and the fallback of the `loading` slot. */
29571
+ "loading-text"?: (HelixHeadlessSpatialScatterChart["loadingText"]) | undefined;
29572
+ /** The words shown in place of the drawing while `loading` is set and
29573
+ there are no readings yet, and the fallback of the `loading` slot. */
29574
+ loadingText?: (HelixHeadlessSpatialScatterChart["loadingText"]) | undefined;
29575
+ /** The id of the table to read.
29576
+
29577
+ Names a table in the same tree, so a chart inside another component's
29578
+ shadow root reads a table in that root rather than one in the document. A
29579
+ `<table>` or anything built from grid roles, including `helix-table`.
29580
+
29581
+ **In React this arrives as a property and not as an attribute**, the way
29582
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
29583
+ for?: (HelixHeadlessSpatialScatterChart["for"]) | undefined;
29584
+ /** The chart's name, which starts the chart's text summary.
29585
+
29586
+ Absent falls back to the table's own caption, which is usually the right
29587
+ words and is already written. */
29588
+ label?: (HelixHeadlessSpatialScatterChart["label"]) | undefined;
29589
+ /** The locale the chart's own numbers are written in: its axis, its
29590
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
29591
+
29592
+ Absent reads the nearest `lang`, then the runtime's own. The table's
29593
+ cells are shown as the table writes them, whatever this says. */
29594
+ locale?: (HelixHeadlessSpatialScatterChart["locale"]) | undefined;
29595
+ /** Where a reading the keys moved to stands among the readings, said after
29596
+ it. `{position}` and `{count}` are replaced with the numbers, written in
29597
+ `locale`.
29598
+
29599
+ Set it to the words of the page's language, such as `{position} von
29600
+ {count}`, or to nothing to say no position. A slice or a series a
29601
+ legend hid is not counted. */
29602
+ "position-label"?: (HelixHeadlessSpatialScatterChart["positionLabel"]) | undefined;
29603
+ /** Where a reading the keys moved to stands among the readings, said after
29604
+ it. `{position}` and `{count}` are replaced with the numbers, written in
29605
+ `locale`.
29606
+
29607
+ Set it to the words of the page's language, such as `{position} von
29608
+ {count}`, or to nothing to say no position. A slice or a series a
29609
+ legend hid is not counted. */
29610
+ positionLabel?: (HelixHeadlessSpatialScatterChart["positionLabel"]) | undefined;
28983
29611
  /** The readings as data, in the shape of a table, where the page has no
28984
29612
  table to point `for` at. `for` wins where both are set.
28985
29613
 
@@ -29023,10 +29651,28 @@ does not look inside the one it has. */
29023
29651
  };
29024
29652
 
29025
29653
  export type HelixHeadlessSpatialScatterChartSolidJsProps = {
29654
+ /** Draws a line from each point straight down to the floor of the box, in
29655
+ its group's color, so where a point stands across and in depth reads off
29656
+ the floor's grid. A renderer draws them too. */
29657
+ "bool:drop-lines"?: (HelixHeadlessSpatialScatterChart["dropLines"]) | undefined;
29658
+ /** Draws a line from each point straight down to the floor of the box, in
29659
+ its group's color, so where a point stands across and in depth reads off
29660
+ the floor's grid. A renderer draws them too. */
29661
+ "prop:dropLines"?: (HelixHeadlessSpatialScatterChart["dropLines"]) | undefined;
29026
29662
  /** The column of text that puts each point in a group, by its heading. None by default. */
29027
29663
  "attr:group-by"?: (HelixHeadlessSpatialScatterChart["groupBy"]) | undefined;
29028
29664
  /** The column of text that puts each point in a group, by its heading. None by default. */
29029
29665
  "prop:groupBy"?: (HelixHeadlessSpatialScatterChart["groupBy"]) | undefined;
29666
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29667
+ alone and fill the plot, as a picture on a product's own page does. The
29668
+ table, the summary, the tooltip, and the keys still carry every value,
29669
+ and a renderer draws no box either. */
29670
+ "bool:no-box"?: (HelixHeadlessSpatialScatterChart["noBox"]) | undefined;
29671
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29672
+ alone and fill the plot, as a picture on a product's own page does. The
29673
+ table, the summary, the tooltip, and the keys still carry every value,
29674
+ and a renderer draws no box either. */
29675
+ "prop:noBox"?: (HelixHeadlessSpatialScatterChart["noBox"]) | undefined;
29030
29676
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
29031
29677
  "attr:plot-label"?: (HelixHeadlessSpatialScatterChart["plotLabel"]) | undefined;
29032
29678
  /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
@@ -29155,6 +29801,20 @@ export type HelixHeadlessSpatialSurfaceChartHelixReadingPressElementEvent =
29155
29801
  HelixHeadlessSpatialSurfaceChartElementEvent<HelixReadingPressEvent>;
29156
29802
 
29157
29803
  export type HelixHeadlessSpatialSurfaceChartProps = {
29804
+ /** Draws the surface's contour lines on it, at each tick of its height, in
29805
+ the ramp's colors, so its shape reads as on a map and two places at the
29806
+ same height read as such. A renderer draws them too. */
29807
+ contours?: (HelixHeadlessSpatialSurfaceChart["contours"]) | undefined;
29808
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29809
+ alone and fill the plot, as a picture on a product's own page does. The
29810
+ table, the summary, the tooltip, and the keys still carry every value,
29811
+ and a renderer draws no box either. */
29812
+ "no-box"?: (HelixHeadlessSpatialSurfaceChart["noBox"]) | undefined;
29813
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29814
+ alone and fill the plot, as a picture on a product's own page does. The
29815
+ table, the summary, the tooltip, and the keys still carry every value,
29816
+ and a renderer draws no box either. */
29817
+ noBox?: (HelixHeadlessSpatialSurfaceChart["noBox"]) | undefined;
29158
29818
  /** What the readout says for a place with no reading. `{x}` and `{z}` are
29159
29819
  the place's numbers across and in depth, and `{across}` and `{depth}`
29160
29820
  the two measures' names. */
@@ -29275,6 +29935,20 @@ does not look inside the one it has. */
29275
29935
  };
29276
29936
 
29277
29937
  export type HelixHeadlessSpatialSurfaceChartSolidJsProps = {
29938
+ /** Draws the surface's contour lines on it, at each tick of its height, in
29939
+ the ramp's colors, so its shape reads as on a map and two places at the
29940
+ same height read as such. A renderer draws them too. */
29941
+ "prop:contours"?: (HelixHeadlessSpatialSurfaceChart["contours"]) | undefined;
29942
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29943
+ alone and fill the plot, as a picture on a product's own page does. The
29944
+ table, the summary, the tooltip, and the keys still carry every value,
29945
+ and a renderer draws no box either. */
29946
+ "bool:no-box"?: (HelixHeadlessSpatialSurfaceChart["noBox"]) | undefined;
29947
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
29948
+ alone and fill the plot, as a picture on a product's own page does. The
29949
+ table, the summary, the tooltip, and the keys still carry every value,
29950
+ and a renderer draws no box either. */
29951
+ "prop:noBox"?: (HelixHeadlessSpatialSurfaceChart["noBox"]) | undefined;
29278
29952
  /** What the readout says for a place with no reading. `{x}` and `{z}` are
29279
29953
  the place's numbers across and in depth, and `{across}` and `{depth}`
29280
29954
  the two measures' names. */
@@ -29398,6 +30072,276 @@ does not look inside the one it has. */
29398
30072
  textContent?: (string | number) | undefined;
29399
30073
  };
29400
30074
 
30075
+ /** `HelixHeadlessSpatialTreemap` component event */
30076
+ export type HelixHeadlessSpatialTreemapElementEvent<E = Event> = TypedEvent<
30077
+ HelixHeadlessSpatialTreemap,
30078
+ E
30079
+ >;
30080
+ /** `helix-plot-change` event type */
30081
+ export type HelixHeadlessSpatialTreemapHelixPlotChangeElementEvent =
30082
+ HelixHeadlessSpatialTreemapElementEvent<HelixPlotChangeEvent>;
30083
+ /** `helix-plot-turn` event type */
30084
+ export type HelixHeadlessSpatialTreemapHelixPlotTurnElementEvent =
30085
+ HelixHeadlessSpatialTreemapElementEvent<HelixPlotTurnEvent>;
30086
+ /** `helix-reading-change` event type */
30087
+ export type HelixHeadlessSpatialTreemapHelixReadingChangeElementEvent =
30088
+ HelixHeadlessSpatialTreemapElementEvent<HelixReadingChangeEvent>;
30089
+ /** `helix-reading-press` event type */
30090
+ export type HelixHeadlessSpatialTreemapHelixReadingPressElementEvent =
30091
+ HelixHeadlessSpatialTreemapElementEvent<HelixReadingPressEvent>;
30092
+
30093
+ export type HelixHeadlessSpatialTreemapProps = {
30094
+ /** The column of text that gathers the rows into groups, by its heading. None by default. */
30095
+ "group-by"?: (HelixHeadlessSpatialTreemap["groupBy"]) | undefined;
30096
+ /** The column of text that gathers the rows into groups, by its heading. None by default. */
30097
+ groupBy?: (HelixHeadlessSpatialTreemap["groupBy"]) | undefined;
30098
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
30099
+ alone and fill the plot, as a picture on a product's own page does. The
30100
+ table, the summary, the tooltip, and the keys still carry every value,
30101
+ and a renderer draws no box either. */
30102
+ "no-box"?: (HelixHeadlessSpatialTreemap["noBox"]) | undefined;
30103
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
30104
+ alone and fill the plot, as a picture on a product's own page does. The
30105
+ table, the summary, the tooltip, and the keys still carry every value,
30106
+ and a renderer draws no box either. */
30107
+ noBox?: (HelixHeadlessSpatialTreemap["noBox"]) | undefined;
30108
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
30109
+ "plot-label"?: (HelixHeadlessSpatialTreemap["plotLabel"]) | undefined;
30110
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
30111
+ plotLabel?: (HelixHeadlessSpatialTreemap["plotLabel"]) | undefined;
30112
+ /** The `summary` part's sentence. `{count}` and `{groups}` are the number
30113
+ of items and groups, written in the locale, and `{low}` and `{high}` the
30114
+ smallest and the largest size. */
30115
+ "summary-label"?: (HelixHeadlessSpatialTreemap["summaryLabel"]) | undefined;
30116
+ /** The `summary` part's sentence. `{count}` and `{groups}` are the number
30117
+ of items and groups, written in the locale, and `{low}` and `{high}` the
30118
+ smallest and the largest size. */
30119
+ summaryLabel?: (HelixHeadlessSpatialTreemap["summaryLabel"]) | undefined;
30120
+ /** The words shown in place of the drawing when the table has no readings,
30121
+ and the fallback of the `empty` slot. */
30122
+ "empty-text"?: (HelixHeadlessSpatialTreemap["emptyText"]) | undefined;
30123
+ /** The words shown in place of the drawing when the table has no readings,
30124
+ and the fallback of the `empty` slot. */
30125
+ emptyText?: (HelixHeadlessSpatialTreemap["emptyText"]) | undefined;
30126
+ /** Whether the readings are still on their way. The chart shows
30127
+ `loading-text` in place of an empty drawing until it has readings.
30128
+
30129
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
30130
+ that already has readings keeps drawing them, so a refresh does not
30131
+ blank it. */
30132
+ loading?: (HelixHeadlessSpatialTreemap["loading"]) | undefined;
30133
+ /** The words shown in place of the drawing while `loading` is set and
30134
+ there are no readings yet, and the fallback of the `loading` slot. */
30135
+ "loading-text"?: (HelixHeadlessSpatialTreemap["loadingText"]) | undefined;
30136
+ /** The words shown in place of the drawing while `loading` is set and
30137
+ there are no readings yet, and the fallback of the `loading` slot. */
30138
+ loadingText?: (HelixHeadlessSpatialTreemap["loadingText"]) | undefined;
30139
+ /** The id of the table to read.
30140
+
30141
+ Names a table in the same tree, so a chart inside another component's
30142
+ shadow root reads a table in that root rather than one in the document. A
30143
+ `<table>` or anything built from grid roles, including `helix-table`.
30144
+
30145
+ **In React this arrives as a property and not as an attribute**, the way
30146
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
30147
+ for?: (HelixHeadlessSpatialTreemap["for"]) | undefined;
30148
+ /** The chart's name, which starts the chart's text summary.
30149
+
30150
+ Absent falls back to the table's own caption, which is usually the right
30151
+ words and is already written. */
30152
+ label?: (HelixHeadlessSpatialTreemap["label"]) | undefined;
30153
+ /** The locale the chart's own numbers are written in: its axis, its
30154
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
30155
+
30156
+ Absent reads the nearest `lang`, then the runtime's own. The table's
30157
+ cells are shown as the table writes them, whatever this says. */
30158
+ locale?: (HelixHeadlessSpatialTreemap["locale"]) | undefined;
30159
+ /** Where a reading the keys moved to stands among the readings, said after
30160
+ it. `{position}` and `{count}` are replaced with the numbers, written in
30161
+ `locale`.
30162
+
30163
+ Set it to the words of the page's language, such as `{position} von
30164
+ {count}`, or to nothing to say no position. A slice or a series a
30165
+ legend hid is not counted. */
30166
+ "position-label"?: (HelixHeadlessSpatialTreemap["positionLabel"]) | undefined;
30167
+ /** Where a reading the keys moved to stands among the readings, said after
30168
+ it. `{position}` and `{count}` are replaced with the numbers, written in
30169
+ `locale`.
30170
+
30171
+ Set it to the words of the page's language, such as `{position} von
30172
+ {count}`, or to nothing to say no position. A slice or a series a
30173
+ legend hid is not counted. */
30174
+ positionLabel?: (HelixHeadlessSpatialTreemap["positionLabel"]) | undefined;
30175
+ /** The readings as data, in the shape of a table, where the page has no
30176
+ table to point `for` at. `for` wins where both are set.
30177
+
30178
+ ```js
30179
+ chart.data = {
30180
+ caption: 'Sessions by channel',
30181
+ columns: ['Month', 'Direct', 'Referral'],
30182
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
30183
+ }
30184
+ ```
30185
+
30186
+ The first column holds each row's label and every column after it a
30187
+ series, as in a table. A cell is a number, words, `null` for a blank,
30188
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
30189
+ number is shown in `locale`.
30190
+
30191
+ **A table is still the better source where the page can show one**:
30192
+ it reads with no script and before hydration, and a reader can sort and
30193
+ copy it. Data is drawn on the client only, so a server serves the
30194
+ frame, and the summary, the keys and the readout are then the whole of
30195
+ what a screen reader is given. Set a new object to redraw: the chart
30196
+ does not look inside the one it has. */
30197
+ data?: (HelixHeadlessSpatialTreemap["data"]) | undefined;
30198
+
30199
+ /** The blocks or the block the keys rest on changed, which the renderer is told. It stays on the chart. */
30200
+ "onhelix-plot-change"?: ((
30201
+ e: HelixHeadlessSpatialTreemapHelixPlotChangeElementEvent,
30202
+ ) => void) | undefined;
30203
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
30204
+ "onhelix-plot-turn"?: ((
30205
+ e: HelixHeadlessSpatialTreemapHelixPlotTurnElementEvent,
30206
+ ) => void) | undefined;
30207
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it. */
30208
+ "onhelix-reading-change"?: ((
30209
+ e: HelixHeadlessSpatialTreemapHelixReadingChangeElementEvent,
30210
+ ) => void) | undefined;
30211
+ /** A block was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
30212
+ "onhelix-reading-press"?: ((
30213
+ e: HelixHeadlessSpatialTreemapHelixReadingPressElementEvent,
30214
+ ) => void) | undefined;
30215
+ };
30216
+
30217
+ export type HelixHeadlessSpatialTreemapSolidJsProps = {
30218
+ /** The column of text that gathers the rows into groups, by its heading. None by default. */
30219
+ "attr:group-by"?: (HelixHeadlessSpatialTreemap["groupBy"]) | undefined;
30220
+ /** The column of text that gathers the rows into groups, by its heading. None by default. */
30221
+ "prop:groupBy"?: (HelixHeadlessSpatialTreemap["groupBy"]) | undefined;
30222
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
30223
+ alone and fill the plot, as a picture on a product's own page does. The
30224
+ table, the summary, the tooltip, and the keys still carry every value,
30225
+ and a renderer draws no box either. */
30226
+ "bool:no-box"?: (HelixHeadlessSpatialTreemap["noBox"]) | undefined;
30227
+ /** Draws no box: no edges, grid, numbers, or names, so the readings stand
30228
+ alone and fill the plot, as a picture on a product's own page does. The
30229
+ table, the summary, the tooltip, and the keys still carry every value,
30230
+ and a renderer draws no box either. */
30231
+ "prop:noBox"?: (HelixHeadlessSpatialTreemap["noBox"]) | undefined;
30232
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
30233
+ "attr:plot-label"?: (HelixHeadlessSpatialTreemap["plotLabel"]) | undefined;
30234
+ /** The plot's name where the chart has none: no `aria-label`, `label`, or table caption. */
30235
+ "prop:plotLabel"?: (HelixHeadlessSpatialTreemap["plotLabel"]) | undefined;
30236
+ /** The `summary` part's sentence. `{count}` and `{groups}` are the number
30237
+ of items and groups, written in the locale, and `{low}` and `{high}` the
30238
+ smallest and the largest size. */
30239
+ "attr:summary-label"?: (HelixHeadlessSpatialTreemap["summaryLabel"]) | undefined;
30240
+ /** The `summary` part's sentence. `{count}` and `{groups}` are the number
30241
+ of items and groups, written in the locale, and `{low}` and `{high}` the
30242
+ smallest and the largest size. */
30243
+ "prop:summaryLabel"?: (HelixHeadlessSpatialTreemap["summaryLabel"]) | undefined;
30244
+ /** The words shown in place of the drawing when the table has no readings,
30245
+ and the fallback of the `empty` slot. */
30246
+ "attr:empty-text"?: (HelixHeadlessSpatialTreemap["emptyText"]) | undefined;
30247
+ /** The words shown in place of the drawing when the table has no readings,
30248
+ and the fallback of the `empty` slot. */
30249
+ "prop:emptyText"?: (HelixHeadlessSpatialTreemap["emptyText"]) | undefined;
30250
+ /** Whether the readings are still on their way. The chart shows
30251
+ `loading-text` in place of an empty drawing until it has readings.
30252
+
30253
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
30254
+ that already has readings keeps drawing them, so a refresh does not
30255
+ blank it. */
30256
+ "prop:loading"?: (HelixHeadlessSpatialTreemap["loading"]) | undefined;
30257
+ /** The words shown in place of the drawing while `loading` is set and
30258
+ there are no readings yet, and the fallback of the `loading` slot. */
30259
+ "attr:loading-text"?: (HelixHeadlessSpatialTreemap["loadingText"]) | undefined;
30260
+ /** The words shown in place of the drawing while `loading` is set and
30261
+ there are no readings yet, and the fallback of the `loading` slot. */
30262
+ "prop:loadingText"?: (HelixHeadlessSpatialTreemap["loadingText"]) | undefined;
30263
+ /** The id of the table to read.
30264
+
30265
+ Names a table in the same tree, so a chart inside another component's
30266
+ shadow root reads a table in that root rather than one in the document. A
30267
+ `<table>` or anything built from grid roles, including `helix-table`.
30268
+
30269
+ **In React this arrives as a property and not as an attribute**, the way
30270
+ `Tooltip.for` does, so it does not reflect and nothing styles on it. */
30271
+ "prop:for"?: (HelixHeadlessSpatialTreemap["for"]) | undefined;
30272
+ /** The chart's name, which starts the chart's text summary.
30273
+
30274
+ Absent falls back to the table's own caption, which is usually the right
30275
+ words and is already written. */
30276
+ "prop:label"?: (HelixHeadlessSpatialTreemap["label"]) | undefined;
30277
+ /** The locale the chart's own numbers are written in: its axis, its
30278
+ percentages and its totals, such as `de` for `1.240` and `32 %`.
30279
+
30280
+ Absent reads the nearest `lang`, then the runtime's own. The table's
30281
+ cells are shown as the table writes them, whatever this says. */
30282
+ "prop:locale"?: (HelixHeadlessSpatialTreemap["locale"]) | undefined;
30283
+ /** Where a reading the keys moved to stands among the readings, said after
30284
+ it. `{position}` and `{count}` are replaced with the numbers, written in
30285
+ `locale`.
30286
+
30287
+ Set it to the words of the page's language, such as `{position} von
30288
+ {count}`, or to nothing to say no position. A slice or a series a
30289
+ legend hid is not counted. */
30290
+ "attr:position-label"?: (HelixHeadlessSpatialTreemap["positionLabel"]) | undefined;
30291
+ /** Where a reading the keys moved to stands among the readings, said after
30292
+ it. `{position}` and `{count}` are replaced with the numbers, written in
30293
+ `locale`.
30294
+
30295
+ Set it to the words of the page's language, such as `{position} von
30296
+ {count}`, or to nothing to say no position. A slice or a series a
30297
+ legend hid is not counted. */
30298
+ "prop:positionLabel"?: (HelixHeadlessSpatialTreemap["positionLabel"]) | undefined;
30299
+ /** The readings as data, in the shape of a table, where the page has no
30300
+ table to point `for` at. `for` wins where both are set.
30301
+
30302
+ ```js
30303
+ chart.data = {
30304
+ caption: 'Sessions by channel',
30305
+ columns: ['Month', 'Direct', 'Referral'],
30306
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
30307
+ }
30308
+ ```
30309
+
30310
+ The first column holds each row's label and every column after it a
30311
+ series, as in a table. A cell is a number, words, `null` for a blank,
30312
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
30313
+ number is shown in `locale`.
30314
+
30315
+ **A table is still the better source where the page can show one**:
30316
+ it reads with no script and before hydration, and a reader can sort and
30317
+ copy it. Data is drawn on the client only, so a server serves the
30318
+ frame, and the summary, the keys and the readout are then the whole of
30319
+ what a screen reader is given. Set a new object to redraw: the chart
30320
+ does not look inside the one it has. */
30321
+ "prop:data"?: (HelixHeadlessSpatialTreemap["data"]) | undefined;
30322
+ /** The blocks or the block the keys rest on changed, which the renderer is told. It stays on the chart. */
30323
+ "on:helix-plot-change"?: ((
30324
+ e: HelixHeadlessSpatialTreemapHelixPlotChangeElementEvent,
30325
+ ) => void) | undefined;
30326
+ /** Shift with an arrow asked the view to turn, by a step across or up. */
30327
+ "on:helix-plot-turn"?: ((
30328
+ e: HelixHeadlessSpatialTreemapHelixPlotTurnElementEvent,
30329
+ ) => void) | undefined;
30330
+ /** The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it. */
30331
+ "on:helix-reading-change"?: ((
30332
+ e: HelixHeadlessSpatialTreemapHelixReadingChangeElementEvent,
30333
+ ) => void) | undefined;
30334
+ /** A block was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
30335
+ "on:helix-reading-press"?: ((
30336
+ e: HelixHeadlessSpatialTreemapHelixReadingPressElementEvent,
30337
+ ) => void) | undefined;
30338
+
30339
+ /** Set the innerHTML of the element */
30340
+ innerHTML?: (string) | undefined;
30341
+ /** Set the textContent of the element */
30342
+ textContent?: (string | number) | undefined;
30343
+ };
30344
+
29401
30345
  export type HelixHeadlessSpeedDialGroupProps = {
29402
30346
  /** The group's name, drawn above its actions and read by screen readers. */
29403
30347
  label?: (HelixHeadlessSpeedDialGroup["label"]) | undefined;
@@ -37071,7 +38015,13 @@ it is muted.
37071
38015
  Forwarded to the video, which decides. Whether an unprompted play is
37072
38016
  permitted is the browser's policy, and what follows a refused autoplay is a
37073
38017
  paused player showing its start control, which is the correct thing to be
37074
- looking at. */
38018
+ looking at.
38019
+
38020
+ **Not where the reader asked for less motion**, or while the page has
38021
+ paused its motion, through `pauseMotion` or `Motion Toggle`: the player
38022
+ waits on its start control. A page that pauses its motion pauses a video
38023
+ that started itself, and one that lets it run again plays it again. A
38024
+ video the reader started is theirs, and neither touches it. */
37075
38025
  autoplay?: (HelixHeadlessVideo["autoplay"]) | undefined;
37076
38026
  /** What the live region says when `c` turns captions off. */
37077
38027
  "captions-hidden-label"?: (HelixHeadlessVideo["captionsHiddenLabel"]) | undefined;
@@ -37538,7 +38488,13 @@ it is muted.
37538
38488
  Forwarded to the video, which decides. Whether an unprompted play is
37539
38489
  permitted is the browser's policy, and what follows a refused autoplay is a
37540
38490
  paused player showing its start control, which is the correct thing to be
37541
- looking at. */
38491
+ looking at.
38492
+
38493
+ **Not where the reader asked for less motion**, or while the page has
38494
+ paused its motion, through `pauseMotion` or `Motion Toggle`: the player
38495
+ waits on its start control. A page that pauses its motion pauses a video
38496
+ that started itself, and one that lets it run again plays it again. A
38497
+ video the reader started is theirs, and neither touches it. */
37542
38498
  "prop:autoplay"?: (HelixHeadlessVideo["autoplay"]) | undefined;
37543
38499
  /** What the live region says when `c` turns captions off. */
37544
38500
  "attr:captions-hidden-label"?: (HelixHeadlessVideo["captionsHiddenLabel"]) | undefined;
@@ -41862,6 +42818,12 @@ export type CustomElements = {
41862
42818
  * Component attributes and properties that can be applied to the element or by using JavaScript.
41863
42819
  *
41864
42820
  * - `autoplay`: Whether the carousel advances on its own.
42821
+ *
42822
+ * **Not where the reader asked for less motion**, or where the page has
42823
+ * paused its motion, through `pauseMotion` or `Motion Toggle`: the carousel
42824
+ * starts still, and its rotation control starts it. A page that pauses its
42825
+ * motion later stops the rotation, and one that lets it run again starts it
42826
+ * again, unless the reader stopped it.
41865
42827
  * - `controls`: Whether the previous and next controls are shown.
41866
42828
  *
41867
42829
  * `auto`, which is the resting behavior and what an absent attribute means,
@@ -49747,6 +50709,9 @@ export type CustomElements = {
49747
50709
  * - `selection-label`/`selectionLabel`: What screen readers hear after a reader selects a note, in the list or in
49748
50710
  * the drawing, with `{note}` for its name and `{count}` for how many notes
49749
50711
  * the list then holds, written with `count-label`.
50712
+ * - `settling-label`/`settlingLabel`: What the `settling` part says while a layout runs unseen, where the reader
50713
+ * asked for less motion or the page paused its motion.
50714
+ * - `stop-layout-label`/`stopLayoutLabel`: What the button that stops a long layout says.
49750
50715
  * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over the graph with `gestures="cooperative"`.
49751
50716
  * - `using-label`/`usingLabel`: The line shown while the graph, with `gestures="activate"`, has the gestures.
49752
50717
  * - `walk-label`/`walkLabel`: What screen readers hear when a walk along the links moves to a note:
@@ -49922,6 +50887,15 @@ export type CustomElements = {
49922
50887
  * `helix-graph-layout` for the page to keep. Called by `connectGraph` once
49923
50888
  * its layout has settled; a page laying out its own graph calls it the same
49924
50889
  * way.
50890
+ * - `settling(stop?: () => void, unseen = false) => void`: Says a layout is running, with what ends it where the notes stand, or
50891
+ * with nothing, that it has ended. Called by `connectGraph`.
50892
+ *
50893
+ * **A layout that runs past five seconds offers a button that stops it**,
50894
+ * the `stop-layout` part, as WCAG 2.2.2 asks of motion that starts by itself
50895
+ * and runs that long. **`unseen` hides the drawing while the notes move**,
50896
+ * which the connector asks for where the reader asked for less motion or
50897
+ * the page paused its motion: the `settling` part says the notes are being
50898
+ * placed, and the drawing shows them where they settle.
49925
50899
  * - `signal(from: string, to: string, options: { tone?: GraphSignalDetail['tone'] } = {}) => void`: Shows something passing from one note to another, such as a message, a
49926
50900
  * request or a payment, drawn traveling along the drawing and arriving with
49927
50901
  * a pulse. `tone` says what it means and colors it. Call it as often as
@@ -49983,7 +50957,9 @@ export type CustomElements = {
49983
50957
  * - `region`: The frame: the drawing, its controls and the list.
49984
50958
  * - `search`: The bar holding the icon, the search field and the count.
49985
50959
  * - `search-field`: The field that finds a note by its name.
50960
+ * - `settling`: What is said while a layout runs unseen, where the reader asked for less motion or the page paused its motion, over the hidden drawing.
49986
50961
  * - `stage`: The drawing and its controls.
50962
+ * - `stop-layout`: The button that stops a layout that has run past five seconds, where the notes stand.
49987
50963
  * - `viewport`: The box the renderer draws in.
49988
50964
  * - `zoom-in`: The zoom in button.
49989
50965
  * - `zoom-out`: The zoom out button.
@@ -50001,6 +50977,8 @@ export type CustomElements = {
50001
50977
  * - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
50002
50978
  * - `searching`: The search field holds words, and the list holds only the notes they find.
50003
50979
  * - `selected`: A note is selected, in the list or in the drawing.
50980
+ * - `settling`: A layout is running.
50981
+ * - `settling-unseen`: A layout is running with the drawing hidden, where the reader asked for less motion or the page paused its motion.
50004
50982
  * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
50005
50983
  * - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
50006
50984
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -53742,9 +54720,11 @@ export type CustomElements = {
53742
54720
  * While `playing` is set, the layer shows the frames in order, `interval`
53743
54721
  * milliseconds each, and starts again from the first.
53744
54722
  *
53745
- * The frames do not play while the user has asked for reduced motion, and the
53746
- * layer shows its last frame. Content that moves for more than five seconds
53747
- * needs a way to pause it, so give `playing` a control on your page.
54723
+ * The frames do not play while the user has asked for reduced motion, or
54724
+ * while the page has paused its motion, through `pauseMotion` or `Motion
54725
+ * Toggle`, and the layer holds the frame it shows. Content that moves for more
54726
+ * than five seconds needs a way to pause it, which `Motion Toggle` gives the
54727
+ * whole page, or give `playing` a control of its own.
53748
54728
  *
53749
54729
  * Put the tile provider's credit in `attribution`. The frame shows it beside
53750
54730
  * the map's own credit.
@@ -55245,6 +56225,91 @@ export type CustomElements = {
55245
56225
  HelixHeadlessMeterProps & BaseProps<HelixHeadlessMeter> & BaseEvents<HelixHeadlessMeter>
55246
56226
  >;
55247
56227
 
56228
+ /**
56229
+ * WCAG 2.2.2 asks that motion which starts by itself and runs longer than
56230
+ * five seconds can be paused. **This is one control for the whole page**: a
56231
+ * press pauses every Helix component that moves by itself, and another lets
56232
+ * them run again.
56233
+ *
56234
+ * - `Carousel` stops rotating under `autoplay`.
56235
+ * - `Video` pauses a video that started itself under `autoplay`.
56236
+ * - `Aura`, `Orb`, and `Strands` hold the frame they show.
56237
+ * - A graph that `connectGraph` lays out stops where its notes stand, and its
56238
+ * three.js view stops turning.
56239
+ * - A map layer's `frames` stop on the frame they show.
56240
+ *
56241
+ * **The choice is the page's**, held on the document element as
56242
+ * `data-helix-motion="paused"`, so two of these on one page agree, and a page
56243
+ * can set it in its markup or with `pauseMotion` from
56244
+ * `@fusion.dev/helix-core`. A stylesheet can select on the attribute to
56245
+ * pause motion of its own.
56246
+ *
56247
+ * It is a toggle button: a `<button>` that says whether motion is paused with
56248
+ * `aria-pressed`. It keeps one name, `label`, whichever way it stands, as a
56249
+ * toggle button does, and its icon shows what a press does next.
56250
+ *
56251
+ * Put it where a reader looks first, such as the page's header. Where the
56252
+ * reader asked for reduced motion, nothing moves by itself to begin with.
56253
+ *
56254
+ * ## Attributes & Properties
56255
+ *
56256
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
56257
+ *
56258
+ * - `label`: The button's name, which stays the same whichever way it stands.
56259
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
56260
+ *
56261
+ * **Named `whenSettled` because `settled` is taken four times over**, by
56262
+ * Image, Splitter and both color controls, none of them about transitions. A
56263
+ * base class takes the name every subclass then cannot use.
56264
+ *
56265
+ * **The state it reports cannot be watched, which is why this exists.** A
56266
+ * custom state is deliberately not in the DOM, so there is no
56267
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
56268
+ * instead.
56269
+ *
56270
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
56271
+ * the suppression is still active in. That is the distinction `readyToMove`
56272
+ * in `@fusion.dev/helix-testing` is written around.
56273
+ *
56274
+ * It never resolves where `requestAnimationFrame` never fires, which is a
56275
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
56276
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
56277
+ * browser harness's awaits it alone: a browser always runs the frame, and a
56278
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
56279
+ *
56280
+ * ## Events
56281
+ *
56282
+ * Events that will be emitted by the component.
56283
+ *
56284
+ * - `change`: Fired after a press pauses the page's motion or lets it run.
56285
+ *
56286
+ * ## Slots
56287
+ *
56288
+ * Areas where markup can be added to the component.
56289
+ *
56290
+ * - `(default)`: The button's text, where it shows more than its icon. Defaults to nothing, the icon alone, named by `label`.
56291
+ * - `icon`: Replaces the icon, which is pause while motion runs and play while it is paused.
56292
+ *
56293
+ * ## CSS Parts
56294
+ *
56295
+ * Custom selectors for styling elements within the component.
56296
+ *
56297
+ * - `button`: The toggle button, with `aria-pressed` while the page's motion is paused.
56298
+ * - `icon`: The icon inside the button.
56299
+ *
56300
+ * ## CSS States
56301
+ *
56302
+ * These can be used to apply styling when a component is in a given state.
56303
+ *
56304
+ * - `paused`: The page's motion is paused.
56305
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
56306
+ */
56307
+ "helix-headless-motion-toggle": Partial<
56308
+ HelixHeadlessMotionToggleProps &
56309
+ BaseProps<HelixHeadlessMotionToggle> &
56310
+ BaseEvents<HelixHeadlessMotionToggle>
56311
+ >;
56312
+
55248
56313
  /**
55249
56314
  * Renders a real `<nav>`, the landmark that screen reader users jump to.
55250
56315
  * Navigation is its own component, separate from `AppHeader`, so you can use it
@@ -60674,6 +61739,292 @@ export type CustomElements = {
60674
61739
  HelixHeadlessSparklineProps & BaseProps<HelixHeadlessSparkline> & BaseEvents<HelixHeadlessSparkline>
60675
61740
  >;
60676
61741
 
61742
+ /**
61743
+ * A 3D bar chart reads its table as `Bar Chart` does: **each row is a
61744
+ * category, named by its label, and each numeric column a series**, named by
61745
+ * its heading. The bars stand on a grid of categories across and series in
61746
+ * depth, each as tall as its value from zero and colored by its series, so
61747
+ * one series is a single row of bars and several make a block of them.
61748
+ *
61749
+ * **The flat `Bar Chart` is read more exactly.** Measured, a reader judges
61750
+ * a 3D bar's value less closely than a flat one's, and a bar can stand
61751
+ * behind another. Use this one where the shape across two sets of names
61752
+ * matters more than any one exact value, such as sales by region and by
61753
+ * quarter. The tooltip and the table carry the exact values, and a drag
61754
+ * turns the view to show a bar another hides.
61755
+ *
61756
+ * **Helix draws the frame, and the chart draws the bars in 3D itself, in
61757
+ * SVG**: a picture a print and a page without WebGL show too, which a drag
61758
+ * or Shift with an arrow turns. Put a box inside the chart, and
61759
+ * `connectSpatialBarChart` from `@fusion.dev/helix-plot`, given
61760
+ * `threeBarDriver` from `@fusion.dev/helix-plot/three`, draws the bars in it
61761
+ * with three.js, lit and in perspective.
61762
+ *
61763
+ * **The table is the reading.** Every number is in it, and screen readers
61764
+ * read it. The `summary` part names the number of bars, series, and
61765
+ * categories, and the range of values, and describes the plot.
61766
+ *
61767
+ * **The plot is read by key, across and in depth.** It takes focus, named by
61768
+ * `label` or the caption. The left and right arrows move from category to
61769
+ * category, the down and up arrows from series to series, and Home and End
61770
+ * go to the first and the last bar. The `live` part says the bar's category,
61771
+ * series, and value in words. Shift with an arrow turns the view, and
61772
+ * Escape lets the bar go.
61773
+ *
61774
+ * **A reading shows its row in a tooltip**, as on every chart: the bar a
61775
+ * mouse or a pen rests on, the bar tapped, or the one the keys move to.
61776
+ *
61777
+ * **Readings are sent as every chart sends them.** `helix-reading-change`
61778
+ * says each move of the reading, and `helix-reading-press` a bar clicked or
61779
+ * pressed with Enter or Space, each with the row of the table in `index`.
61780
+ *
61781
+ * **Keyboard.** The plot is one tab stop once it has readings.
61782
+ *
61783
+ * | Key | What it does |
61784
+ * |---|---|
61785
+ * | Tab | Moves focus to the plot. |
61786
+ * | Right, Left | Moves to the next or the previous category. |
61787
+ * | Down, Up | Moves to the next or the previous series. |
61788
+ * | Home, End | Moves to the first or the last bar. |
61789
+ * | Shift with an arrow | Turns the view across, or tilts it up and down. |
61790
+ * | Enter, Space | Presses the bar, which sends `helix-reading-press`. |
61791
+ * | Escape | Lets the bar go. |
61792
+ *
61793
+ * ## Attributes & Properties
61794
+ *
61795
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
61796
+ *
61797
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
61798
+ * alone and fill the plot, as a picture on a product's own page does. The
61799
+ * table, the summary, the tooltip, and the keys still carry every value,
61800
+ * and a renderer draws no box either.
61801
+ * - `open-label`/`openLabel`: What the readout says for a place with no value. `{category}` and
61802
+ * `{series}` name the place.
61803
+ * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
61804
+ * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
61805
+ * are the number of bars, series, and categories, written in the locale,
61806
+ * and `{low}` and `{high}` the lowest and the highest value.
61807
+ * - `empty-text`/`emptyText`: The words shown in place of the drawing when the table has no readings,
61808
+ * and the fallback of the `empty` slot.
61809
+ * - `loading`: Whether the readings are still on their way. The chart shows
61810
+ * `loading-text` in place of an empty drawing until it has readings.
61811
+ *
61812
+ * Reflected, so a stylesheet can treat the chart while it waits. A chart
61813
+ * that already has readings keeps drawing them, so a refresh does not
61814
+ * blank it.
61815
+ * - `loading-text`/`loadingText`: The words shown in place of the drawing while `loading` is set and
61816
+ * there are no readings yet, and the fallback of the `loading` slot.
61817
+ * - `for`: The id of the table to read.
61818
+ *
61819
+ * Names a table in the same tree, so a chart inside another component's
61820
+ * shadow root reads a table in that root rather than one in the document. A
61821
+ * `<table>` or anything built from grid roles, including `helix-table`.
61822
+ *
61823
+ * **In React this arrives as a property and not as an attribute**, the way
61824
+ * `Tooltip.for` does, so it does not reflect and nothing styles on it.
61825
+ * - `label`: The chart's name, which starts the chart's text summary.
61826
+ *
61827
+ * Absent falls back to the table's own caption, which is usually the right
61828
+ * words and is already written.
61829
+ * - `locale`: The locale the chart's own numbers are written in: its axis, its
61830
+ * percentages and its totals, such as `de` for `1.240` and `32 %`.
61831
+ *
61832
+ * Absent reads the nearest `lang`, then the runtime's own. The table's
61833
+ * cells are shown as the table writes them, whatever this says.
61834
+ * - `position-label`/`positionLabel`: Where a reading the keys moved to stands among the readings, said after
61835
+ * it. `{position}` and `{count}` are replaced with the numbers, written in
61836
+ * `locale`.
61837
+ *
61838
+ * Set it to the words of the page's language, such as `{position} von
61839
+ * {count}`, or to nothing to say no position. A slice or a series a
61840
+ * legend hid is not counted.
61841
+ * - `field`: The table read as bars. **Each row is a category, and each numeric
61842
+ * column a series.** A renderer reads it. (property only) (readonly)
61843
+ * - `active`: The bar the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
61844
+ * - `readings`: The number of places on the grid, which the keys walk. (property only) (readonly)
61845
+ * - `data`: The readings as data, in the shape of a table, where the page has no
61846
+ * table to point `for` at. `for` wins where both are set.
61847
+ *
61848
+ * ```js
61849
+ * chart.data = {
61850
+ * caption: 'Sessions by channel',
61851
+ * columns: ['Month', 'Direct', 'Referral'],
61852
+ * rows: [['Jan', 10, 4], ['Feb', 20, 8]],
61853
+ * }
61854
+ * ```
61855
+ *
61856
+ * The first column holds each row's label and every column after it a
61857
+ * series, as in a table. A cell is a number, words, `null` for a blank,
61858
+ * or `{ value, text }` for a number shown as words, such as `$128k`. A
61859
+ * number is shown in `locale`.
61860
+ *
61861
+ * **A table is still the better source where the page can show one**:
61862
+ * it reads with no script and before hydration, and a reader can sort and
61863
+ * copy it. Data is drawn on the client only, so a server serves the
61864
+ * frame, and the summary, the keys and the readout are then the whole of
61865
+ * what a screen reader is given. Set a new object to redraw: the chart
61866
+ * does not look inside the one it has. (property only)
61867
+ * - `series`: The table's columns, one series each. Empty when there is no table.
61868
+ *
61869
+ * Held by the controller between edits, so a render reading this five
61870
+ * times parses the table once. See `SourceController.series`. (property only) (readonly)
61871
+ * - `named`: The chart's name: an `aria-label` written on the chart, then `label`,
61872
+ * then the table's caption.
61873
+ *
61874
+ * The fallback is the reason this is shared rather than copied: a caption is
61875
+ * already written, already the right words, and already the thing a reader
61876
+ * of the table sees. A chart that made the consumer say it twice would be
61877
+ * asking for the second one to drift.
61878
+ *
61879
+ * **An `aria-label` on the chart comes first**, because it is how a page
61880
+ * names an element, and the chart is a generic around its plot: written
61881
+ * on the host, the name reached nobody. The plot takes it, as Heatmap's
61882
+ * strip always did. (property only) (readonly)
61883
+ * - `plottedColumns`: The positions of the cells in a row that hold numbers, in table order.
61884
+ *
61885
+ * The same test `readSeries` applies when it drops a column of notes: a
61886
+ * column is a series where any row parses, so a series survives one blank
61887
+ * cell and a column of words is never one. (property only) (readonly)
61888
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
61889
+ *
61890
+ * **Named `whenSettled` because `settled` is taken four times over**, by
61891
+ * Image, Splitter and both color controls, none of them about transitions. A
61892
+ * base class takes the name every subclass then cannot use.
61893
+ *
61894
+ * **The state it reports cannot be watched, which is why this exists.** A
61895
+ * custom state is deliberately not in the DOM, so there is no
61896
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
61897
+ * instead.
61898
+ *
61899
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
61900
+ * the suppression is still active in. That is the distinction `readyToMove`
61901
+ * in `@fusion.dev/helix-testing` is written around.
61902
+ *
61903
+ * It never resolves where `requestAnimationFrame` never fires, which is a
61904
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
61905
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
61906
+ * browser harness's awaits it alone: a browser always runs the frame, and a
61907
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
61908
+ *
61909
+ * ## Events
61910
+ *
61911
+ * Events that will be emitted by the component.
61912
+ *
61913
+ * - `helix-plot-change`: The bars or the bar the keys rest on changed, which the renderer is told. It stays on the chart.
61914
+ * - `helix-plot-turn`: Shift with an arrow asked the view to turn, by a step across or up.
61915
+ * - `helix-reading-change`: The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it.
61916
+ * - `helix-reading-press`: A bar was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`.
61917
+ *
61918
+ * ## Slots
61919
+ *
61920
+ * Areas where markup can be added to the component.
61921
+ *
61922
+ * - `(default)`: The renderer's box, which the 3D drawing is made in.
61923
+ * - `empty`: Content shown when the table has no readings. Falls back to `empty-text`.
61924
+ * - `loading`: Content shown while `loading` is set and there are no readings yet. Falls back to `loading-text`.
61925
+ *
61926
+ * ## Methods
61927
+ *
61928
+ * Methods that can be called to access component functionality.
61929
+ *
61930
+ * - `rendererDrawn(on = true) => void`: Says whether a renderer has drawn the bars, which hides the chart's own
61931
+ * drawing or shows it again. Called by the connector.
61932
+ * - `requestActive(index: number, kind: 'mouse' | 'pen' | 'touch' = 'mouse') => void`: Puts the reading on the bar at `index`, or lets it go with `-1`, as a
61933
+ * pointer resting on it in the renderer's drawing or a press there does.
61934
+ * A touch keeps it until a tap lands elsewhere, and a mouse leaving a
61935
+ * reading the keys moved to leaves it. Called by the connector.
61936
+ * - `placeReading(at: { x: number; y: number } | undefined) => void`: Says where the renderer draws the reading, as fractions of the plot from
61937
+ * its top left, or `undefined` while it draws none. The tooltip points
61938
+ * there. Called by the connector.
61939
+ * - `seriesOf(cell: number) => number | undefined`: The palette slot for the cell at this position in a row.
61940
+ *
61941
+ * **A cell's place in its row is not its series' depth, and the tooltip
61942
+ * spent a while assuming it was.** `readSeries` drops a column nothing
61943
+ * parses and `readRows` keeps it, so one column of notes among the figures
61944
+ * moves every column after it one color along in the bubble: a row reading
61945
+ * `Referral 1,080` wearing series three's green beside a legend that says
61946
+ * series three is something else, which is the one failure the dot exists
61947
+ * to prevent.
61948
+ *
61949
+ * Overridden where a chart reads the table some other way. `ScatterChart`
61950
+ * splits the first plotted column off as the measure across, so its first
61951
+ * *plotted* series is this table's second numeric column.
61952
+ * - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
61953
+ * reading the same table hid it.
61954
+ *
61955
+ * Asked of the table rather than of a legend, the table being the one
61956
+ * thing the two share: see `SourceController.hide`. A series keeps its
61957
+ * palette slot while it is hidden, so the colors of the others do not move.
61958
+ * For a ring the names are its rows, the slices being the rows.
61959
+ * - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
61960
+ * by its column's heading. The keys and the readout pass over one a
61961
+ * legend hid.
61962
+ *
61963
+ * A column's heading is the cell's name in every row, so the first row
61964
+ * answers for the column.
61965
+ * - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
61966
+ * column's heading, read from the first row that has a cell there, so a
61967
+ * short first row does not lose the heading. `''` where no row has one.
61968
+ *
61969
+ * ## CSS Custom Properties
61970
+ *
61971
+ * CSS variables available for styling the component.
61972
+ *
61973
+ * - `--spatial-bar-chart-shade`: How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.
61974
+ *
61975
+ * ## CSS Parts
61976
+ *
61977
+ * Custom selectors for styling elements within the component.
61978
+ *
61979
+ * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
61980
+ * - `bar`: One bar, its faces in its series' color.
61981
+ * - `bar-active`: The bar the pointer or the keys rest on. Set alongside `bar`.
61982
+ * - `drawing`: The chart's own drawing in SVG: the box, its grid and names, and the bars.
61983
+ * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
61984
+ * - `face`: One face of a bar the view shows, shaded by which way it faces.
61985
+ * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
61986
+ * - `grid`: The box's edges and its grid, in the chart's own drawing.
61987
+ * - `live`: The readout: a polite live region that says the bar the keys moved to. Hide it visually.
61988
+ * - `loading`: The words while `loading` is set and there are no readings.
61989
+ * - `mark`: The invisible point the tooltip is anchored to, where the renderer draws the reading.
61990
+ * - `plot`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
61991
+ * - `ring`: The outline around the bar the pointer or the keys rest on, painted after it, so the bars in front of it cover it.
61992
+ * - `summary`: The number of bars, series, and categories, and the range of values, written as a sentence for screen readers, which describes the plot. Hide it visually.
61993
+ * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.
61994
+ * - `tick`: A category's or a series' name, or a value at a tick, along its edge of the box, in the chart's own drawing.
61995
+ * - `tooltip`: The bubble, forwarded from `Tooltip`.
61996
+ * - `tooltip-anchor`: The `Tooltip` element itself.
61997
+ * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
61998
+ * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
61999
+ * - `tooltip-arrow-left`: The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.
62000
+ * - `tooltip-arrow-right`: The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.
62001
+ * - `tooltip-arrow-top`: The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
62002
+ * - `tooltip-bottom`: The bubble while it is below the reading. Set alongside `tooltip`.
62003
+ * - `tooltip-cell`: One column's name and value inside the tooltip.
62004
+ * - `tooltip-cell-current`: The cell a chart's series keys rest on, which every chart's tooltip can mark. This chart marks none, since its readout says the measure. Set alongside `tooltip-cell`.
62005
+ * - `tooltip-label`: The row's own name inside the tooltip.
62006
+ * - `tooltip-left`: The bubble while it is left of the reading. Set alongside `tooltip`.
62007
+ * - `tooltip-name`: A column's name inside the tooltip.
62008
+ * - `tooltip-right`: The bubble while it is right of the reading. Set alongside `tooltip`.
62009
+ * - `tooltip-top`: The bubble while it is above the reading. Set alongside `tooltip`.
62010
+ * - `tooltip-value`: A column's value inside the tooltip.
62011
+ *
62012
+ * ## CSS States
62013
+ *
62014
+ * These can be used to apply styling when a component is in a given state.
62015
+ *
62016
+ * - `active`: While a bar is shown, under the pointer or the keys.
62017
+ * - `drawn`: While a renderer has drawn the bars, and the chart's own drawing is hidden.
62018
+ * - `empty`: While the `empty` part stands in place of the readings.
62019
+ * - `loading`: While the `loading` part stands in place of the readings.
62020
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
62021
+ */
62022
+ "helix-headless-spatial-bar-chart": Partial<
62023
+ HelixHeadlessSpatialBarChartProps &
62024
+ BaseProps<HelixHeadlessSpatialBarChart> &
62025
+ BaseEvents<HelixHeadlessSpatialBarChart>
62026
+ >;
62027
+
60677
62028
  /**
60678
62029
  * The same strip as `Heatmap`, seen from above at an angle. Each reading is a
60679
62030
  * prism: its top face takes the cell's tone, and its height repeats the value,
@@ -61100,6 +62451,290 @@ export type CustomElements = {
61100
62451
  BaseEvents<HelixHeadlessSpatialHeatmap>
61101
62452
  >;
61102
62453
 
62454
+ /**
62455
+ * A 3D ribbon chart reads its table as `Line Chart` does: **each row is a
62456
+ * place across, such as a day, named by its label, and each numeric column a
62457
+ * series**, named by its heading. Each series is a ribbon in a depth of its
62458
+ * own, the first in front, its top following the values and its face falling
62459
+ * to zero, so several series that would tangle as lines stand apart.
62460
+ *
62461
+ * **The flat `Line Chart` is read more exactly.** Use this one where the
62462
+ * shape of each series, and how the series differ, matters more than any one
62463
+ * value, such as response times by region over a month. The tooltip and the
62464
+ * table carry the exact values, and a drag turns the view to show a ribbon
62465
+ * another hides.
62466
+ *
62467
+ * **Helix draws the frame, and the chart draws the ribbons in 3D itself, in
62468
+ * SVG**: a picture a print and a page without WebGL show too, which a drag
62469
+ * or Shift with an arrow turns. Put a box inside the chart, and
62470
+ * `connectSpatialRibbonChart` from `@fusion.dev/helix-plot`, given
62471
+ * `threeRibbonDriver` from `@fusion.dev/helix-plot/three`, draws the ribbons
62472
+ * in it with three.js, lit and in perspective.
62473
+ *
62474
+ * **The table is the reading.** Every number is in it, and screen readers
62475
+ * read it. The `summary` part names the number of readings, series, and
62476
+ * places, and the range of values, and describes the plot.
62477
+ *
62478
+ * **The plot is read by key, across and in depth.** It takes focus, named by
62479
+ * `label` or the caption. The left and right arrows move from place to
62480
+ * place, the down and up arrows from series to series, and Home and End go
62481
+ * to the first and the last reading. The `live` part says the reading's
62482
+ * place, series, and value in words. Shift with an arrow turns the view, and
62483
+ * Escape lets the reading go.
62484
+ *
62485
+ * **A reading shows its row in a tooltip**, as on every chart: the reading a
62486
+ * mouse or a pen rests nearest, the one tapped, or the one the keys move to.
62487
+ *
62488
+ * **Readings are sent as every chart sends them.** `helix-reading-change`
62489
+ * says each move of the reading, and `helix-reading-press` a reading clicked
62490
+ * or pressed with Enter or Space, each with the row of the table in `index`.
62491
+ *
62492
+ * **Keyboard.** The plot is one tab stop once it has readings.
62493
+ *
62494
+ * | Key | What it does |
62495
+ * |---|---|
62496
+ * | Tab | Moves focus to the plot. |
62497
+ * | Right, Left | Moves to the next or the previous place. |
62498
+ * | Down, Up | Moves to the next or the previous series. |
62499
+ * | Home, End | Moves to the first or the last reading. |
62500
+ * | Shift with an arrow | Turns the view across, or tilts it up and down. |
62501
+ * | Enter, Space | Presses the reading, which sends `helix-reading-press`. |
62502
+ * | Escape | Lets the reading go. |
62503
+ *
62504
+ * ## Attributes & Properties
62505
+ *
62506
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
62507
+ *
62508
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
62509
+ * alone and fill the plot, as a picture on a product's own page does. The
62510
+ * table, the summary, the tooltip, and the keys still carry every value,
62511
+ * and a renderer draws no box either.
62512
+ * - `open-label`/`openLabel`: What the readout says for a reading the table has no value for.
62513
+ * `{place}` and `{series}` name it.
62514
+ * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
62515
+ * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{places}` are
62516
+ * the number of readings, series, and places, written in the locale,
62517
+ * and `{low}` and `{high}` the lowest and the highest value.
62518
+ * - `empty-text`/`emptyText`: The words shown in place of the drawing when the table has no readings,
62519
+ * and the fallback of the `empty` slot.
62520
+ * - `loading`: Whether the readings are still on their way. The chart shows
62521
+ * `loading-text` in place of an empty drawing until it has readings.
62522
+ *
62523
+ * Reflected, so a stylesheet can treat the chart while it waits. A chart
62524
+ * that already has readings keeps drawing them, so a refresh does not
62525
+ * blank it.
62526
+ * - `loading-text`/`loadingText`: The words shown in place of the drawing while `loading` is set and
62527
+ * there are no readings yet, and the fallback of the `loading` slot.
62528
+ * - `for`: The id of the table to read.
62529
+ *
62530
+ * Names a table in the same tree, so a chart inside another component's
62531
+ * shadow root reads a table in that root rather than one in the document. A
62532
+ * `<table>` or anything built from grid roles, including `helix-table`.
62533
+ *
62534
+ * **In React this arrives as a property and not as an attribute**, the way
62535
+ * `Tooltip.for` does, so it does not reflect and nothing styles on it.
62536
+ * - `label`: The chart's name, which starts the chart's text summary.
62537
+ *
62538
+ * Absent falls back to the table's own caption, which is usually the right
62539
+ * words and is already written.
62540
+ * - `locale`: The locale the chart's own numbers are written in: its axis, its
62541
+ * percentages and its totals, such as `de` for `1.240` and `32 %`.
62542
+ *
62543
+ * Absent reads the nearest `lang`, then the runtime's own. The table's
62544
+ * cells are shown as the table writes them, whatever this says.
62545
+ * - `position-label`/`positionLabel`: Where a reading the keys moved to stands among the readings, said after
62546
+ * it. `{position}` and `{count}` are replaced with the numbers, written in
62547
+ * `locale`.
62548
+ *
62549
+ * Set it to the words of the page's language, such as `{position} von
62550
+ * {count}`, or to nothing to say no position. A slice or a series a
62551
+ * legend hid is not counted.
62552
+ * - `field`: The table read as ribbons. **Each row is a place across, and each
62553
+ * numeric column a series.** A renderer reads it. (property only) (readonly)
62554
+ * - `active`: The reading the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
62555
+ * - `readings`: The number of places on the grid, which the keys walk. (property only) (readonly)
62556
+ * - `data`: The readings as data, in the shape of a table, where the page has no
62557
+ * table to point `for` at. `for` wins where both are set.
62558
+ *
62559
+ * ```js
62560
+ * chart.data = {
62561
+ * caption: 'Sessions by channel',
62562
+ * columns: ['Month', 'Direct', 'Referral'],
62563
+ * rows: [['Jan', 10, 4], ['Feb', 20, 8]],
62564
+ * }
62565
+ * ```
62566
+ *
62567
+ * The first column holds each row's label and every column after it a
62568
+ * series, as in a table. A cell is a number, words, `null` for a blank,
62569
+ * or `{ value, text }` for a number shown as words, such as `$128k`. A
62570
+ * number is shown in `locale`.
62571
+ *
62572
+ * **A table is still the better source where the page can show one**:
62573
+ * it reads with no script and before hydration, and a reader can sort and
62574
+ * copy it. Data is drawn on the client only, so a server serves the
62575
+ * frame, and the summary, the keys and the readout are then the whole of
62576
+ * what a screen reader is given. Set a new object to redraw: the chart
62577
+ * does not look inside the one it has. (property only)
62578
+ * - `series`: The table's columns, one series each. Empty when there is no table.
62579
+ *
62580
+ * Held by the controller between edits, so a render reading this five
62581
+ * times parses the table once. See `SourceController.series`. (property only) (readonly)
62582
+ * - `named`: The chart's name: an `aria-label` written on the chart, then `label`,
62583
+ * then the table's caption.
62584
+ *
62585
+ * The fallback is the reason this is shared rather than copied: a caption is
62586
+ * already written, already the right words, and already the thing a reader
62587
+ * of the table sees. A chart that made the consumer say it twice would be
62588
+ * asking for the second one to drift.
62589
+ *
62590
+ * **An `aria-label` on the chart comes first**, because it is how a page
62591
+ * names an element, and the chart is a generic around its plot: written
62592
+ * on the host, the name reached nobody. The plot takes it, as Heatmap's
62593
+ * strip always did. (property only) (readonly)
62594
+ * - `plottedColumns`: The positions of the cells in a row that hold numbers, in table order.
62595
+ *
62596
+ * The same test `readSeries` applies when it drops a column of notes: a
62597
+ * column is a series where any row parses, so a series survives one blank
62598
+ * cell and a column of words is never one. (property only) (readonly)
62599
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
62600
+ *
62601
+ * **Named `whenSettled` because `settled` is taken four times over**, by
62602
+ * Image, Splitter and both color controls, none of them about transitions. A
62603
+ * base class takes the name every subclass then cannot use.
62604
+ *
62605
+ * **The state it reports cannot be watched, which is why this exists.** A
62606
+ * custom state is deliberately not in the DOM, so there is no
62607
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
62608
+ * instead.
62609
+ *
62610
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
62611
+ * the suppression is still active in. That is the distinction `readyToMove`
62612
+ * in `@fusion.dev/helix-testing` is written around.
62613
+ *
62614
+ * It never resolves where `requestAnimationFrame` never fires, which is a
62615
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
62616
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
62617
+ * browser harness's awaits it alone: a browser always runs the frame, and a
62618
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
62619
+ *
62620
+ * ## Events
62621
+ *
62622
+ * Events that will be emitted by the component.
62623
+ *
62624
+ * - `helix-plot-change`: The readings or the reading the keys rest on changed, which the renderer is told. It stays on the chart.
62625
+ * - `helix-plot-turn`: Shift with an arrow asked the view to turn, by a step across or up.
62626
+ * - `helix-reading-change`: The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it.
62627
+ * - `helix-reading-press`: A reading was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`.
62628
+ *
62629
+ * ## Slots
62630
+ *
62631
+ * Areas where markup can be added to the component.
62632
+ *
62633
+ * - `(default)`: The renderer's box, which the 3D drawing is made in.
62634
+ * - `empty`: Content shown when the table has no readings. Falls back to `empty-text`.
62635
+ * - `loading`: Content shown while `loading` is set and there are no readings yet. Falls back to `loading-text`.
62636
+ *
62637
+ * ## Methods
62638
+ *
62639
+ * Methods that can be called to access component functionality.
62640
+ *
62641
+ * - `rendererDrawn(on = true) => void`: Says whether a renderer has drawn the ribbons, which hides the chart's own
62642
+ * drawing or shows it again. Called by the connector.
62643
+ * - `requestActive(index: number, kind: 'mouse' | 'pen' | 'touch' = 'mouse') => void`: Puts the reading on the one at `index`, or lets it go with `-1`, as a
62644
+ * pointer resting on it in the renderer's drawing or a press there does.
62645
+ * A touch keeps it until a tap lands elsewhere, and a mouse leaving a
62646
+ * reading the keys moved to leaves it. Called by the connector.
62647
+ * - `placeReading(at: { x: number; y: number } | undefined) => void`: Says where the renderer draws the reading, as fractions of the plot from
62648
+ * its top left, or `undefined` while it draws none. The tooltip points
62649
+ * there. Called by the connector.
62650
+ * - `seriesOf(cell: number) => number | undefined`: The palette slot for the cell at this position in a row.
62651
+ *
62652
+ * **A cell's place in its row is not its series' depth, and the tooltip
62653
+ * spent a while assuming it was.** `readSeries` drops a column nothing
62654
+ * parses and `readRows` keeps it, so one column of notes among the figures
62655
+ * moves every column after it one color along in the bubble: a row reading
62656
+ * `Referral 1,080` wearing series three's green beside a legend that says
62657
+ * series three is something else, which is the one failure the dot exists
62658
+ * to prevent.
62659
+ *
62660
+ * Overridden where a chart reads the table some other way. `ScatterChart`
62661
+ * splits the first plotted column off as the measure across, so its first
62662
+ * *plotted* series is this table's second numeric column.
62663
+ * - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
62664
+ * reading the same table hid it.
62665
+ *
62666
+ * Asked of the table rather than of a legend, the table being the one
62667
+ * thing the two share: see `SourceController.hide`. A series keeps its
62668
+ * palette slot while it is hidden, so the colors of the others do not move.
62669
+ * For a ring the names are its rows, the slices being the rows.
62670
+ * - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
62671
+ * by its column's heading. The keys and the readout pass over one a
62672
+ * legend hid.
62673
+ *
62674
+ * A column's heading is the cell's name in every row, so the first row
62675
+ * answers for the column.
62676
+ * - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
62677
+ * column's heading, read from the first row that has a cell there, so a
62678
+ * short first row does not lose the heading. `''` where no row has one.
62679
+ *
62680
+ * ## CSS Custom Properties
62681
+ *
62682
+ * CSS variables available for styling the component.
62683
+ *
62684
+ * - `--spatial-ribbon-chart-shade`: How far a ribbon's face turns from the light, from 0 for a level top. The component writes it on each face, and the stylesheet that shades the face reads it.
62685
+ *
62686
+ * ## CSS Parts
62687
+ *
62688
+ * Custom selectors for styling elements within the component.
62689
+ *
62690
+ * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
62691
+ * - `drawing`: The chart's own drawing in SVG: the box, its grid and names, and the ribbons.
62692
+ * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
62693
+ * - `face`: One face of a ribbon the view shows: a piece of its top, an end, or its side, shaded by how far it turns from the light.
62694
+ * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
62695
+ * - `grid`: The box's edges and its grid, in the chart's own drawing.
62696
+ * - `live`: The readout: a polite live region that says the reading the keys moved to. Hide it visually.
62697
+ * - `loading`: The words while `loading` is set and there are no readings.
62698
+ * - `mark`: The invisible point the tooltip is anchored to, where the renderer draws the reading.
62699
+ * - `plot`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
62700
+ * - `ribbon`: One ribbon, its faces in its series' color.
62701
+ * - `ring`: The ring around the reading the pointer or the keys rest on, drawn over the ribbons.
62702
+ * - `summary`: The number of readings, series, and places, and the range of values, written as a sentence for screen readers, which describes the plot. Hide it visually.
62703
+ * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.
62704
+ * - `tick`: A place's or a series' name, or a value at a tick, along its edge of the box, in the chart's own drawing.
62705
+ * - `tooltip`: The bubble, forwarded from `Tooltip`.
62706
+ * - `tooltip-anchor`: The `Tooltip` element itself.
62707
+ * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
62708
+ * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
62709
+ * - `tooltip-arrow-left`: The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.
62710
+ * - `tooltip-arrow-right`: The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.
62711
+ * - `tooltip-arrow-top`: The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
62712
+ * - `tooltip-bottom`: The bubble while it is below the reading. Set alongside `tooltip`.
62713
+ * - `tooltip-cell`: One column's name and value inside the tooltip.
62714
+ * - `tooltip-cell-current`: The cell a chart's series keys rest on, which every chart's tooltip can mark. This chart marks none, since its readout says the measure. Set alongside `tooltip-cell`.
62715
+ * - `tooltip-label`: The row's own name inside the tooltip.
62716
+ * - `tooltip-left`: The bubble while it is left of the reading. Set alongside `tooltip`.
62717
+ * - `tooltip-name`: A column's name inside the tooltip.
62718
+ * - `tooltip-right`: The bubble while it is right of the reading. Set alongside `tooltip`.
62719
+ * - `tooltip-top`: The bubble while it is above the reading. Set alongside `tooltip`.
62720
+ * - `tooltip-value`: A column's value inside the tooltip.
62721
+ *
62722
+ * ## CSS States
62723
+ *
62724
+ * These can be used to apply styling when a component is in a given state.
62725
+ *
62726
+ * - `active`: While a reading is shown, under the pointer or the keys.
62727
+ * - `drawn`: While a renderer has drawn the ribbons, and the chart's own drawing is hidden.
62728
+ * - `empty`: While the `empty` part stands in place of the readings.
62729
+ * - `loading`: While the `loading` part stands in place of the readings.
62730
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
62731
+ */
62732
+ "helix-headless-spatial-ribbon-chart": Partial<
62733
+ HelixHeadlessSpatialRibbonChartProps &
62734
+ BaseProps<HelixHeadlessSpatialRibbonChart> &
62735
+ BaseEvents<HelixHeadlessSpatialRibbonChart>
62736
+ >;
62737
+
61103
62738
  /**
61104
62739
  * A 3D scatter chart shows how three measures relate. The table's first
61105
62740
  * three numeric columns are measured across, up, and in depth, and each row
@@ -61151,7 +62786,14 @@ export type CustomElements = {
61151
62786
  *
61152
62787
  * Component attributes and properties that can be applied to the element or by using JavaScript.
61153
62788
  *
62789
+ * - `drop-lines`/`dropLines`: Draws a line from each point straight down to the floor of the box, in
62790
+ * its group's color, so where a point stands across and in depth reads off
62791
+ * the floor's grid. A renderer draws them too.
61154
62792
  * - `group-by`/`groupBy`: The column of text that puts each point in a group, by its heading. None by default.
62793
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
62794
+ * alone and fill the plot, as a picture on a product's own page does. The
62795
+ * table, the summary, the tooltip, and the keys still carry every value,
62796
+ * and a renderer draws no box either.
61155
62797
  * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
61156
62798
  * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}` is the number of points, written
61157
62799
  * in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names.
@@ -61324,6 +62966,7 @@ export type CustomElements = {
61324
62966
  *
61325
62967
  * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
61326
62968
  * - `drawing`: The chart's own drawing in SVG: the box, its grid and numbers, and the points.
62969
+ * - `drop-line`: The line from a point straight down to the floor of the box, drawn under `drop-lines`, in its group's color.
61327
62970
  * - `empty`: The words when the table has no points: the `empty` slot, falling back to `empty-text`.
61328
62971
  * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
61329
62972
  * - `grid`: The box's edges and its grid at the ticks, in the chart's own drawing.
@@ -61423,6 +63066,13 @@ export type CustomElements = {
61423
63066
  *
61424
63067
  * Component attributes and properties that can be applied to the element or by using JavaScript.
61425
63068
  *
63069
+ * - `contours`: Draws the surface's contour lines on it, at each tick of its height, in
63070
+ * the ramp's colors, so its shape reads as on a map and two places at the
63071
+ * same height read as such. A renderer draws them too.
63072
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
63073
+ * alone and fill the plot, as a picture on a product's own page does. The
63074
+ * table, the summary, the tooltip, and the keys still carry every value,
63075
+ * and a renderer draws no box either.
61426
63076
  * - `open-label`/`openLabel`: What the readout says for a place with no reading. `{x}` and `{z}` are
61427
63077
  * the place's numbers across and in depth, and `{across}` and `{depth}`
61428
63078
  * the two measures' names.
@@ -61606,6 +63256,7 @@ export type CustomElements = {
61606
63256
  * Custom selectors for styling elements within the component.
61607
63257
  *
61608
63258
  * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
63259
+ * - `contour`: The pieces of one contour line that cross one square of the surface, drawn under `contours` at their height, colored along the ramp by it.
61609
63260
  * - `drawing`: The chart's own drawing in SVG: the box, its grid and numbers, and the surface.
61610
63261
  * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
61611
63262
  * - `face`: One square of the surface between four readings, or a triangle where one is missing, shaded by its height and by which way it faces.
@@ -61652,6 +63303,291 @@ export type CustomElements = {
61652
63303
  BaseEvents<HelixHeadlessSpatialSurfaceChart>
61653
63304
  >;
61654
63305
 
63306
+ /**
63307
+ * A 3D treemap shares a floor out among the rows of its table: **the first
63308
+ * numeric column is each block's size, and its share of the floor is in
63309
+ * proportion to it**. The second numeric column, where there is one, is each
63310
+ * block's height, from zero, so one block shows two measures: how large an
63311
+ * item is, and how it stands on another count, such as each service's
63312
+ * requests and its errors. `group-by` names a column of text, such as a team,
63313
+ * that gathers its rows into one part of the floor, in one color, and the
63314
+ * part is as large as their total.
63315
+ *
63316
+ * **Each part is laid out as near to square as its share allows**, so two
63317
+ * items compare by area, and the largest stand at the back left, where they
63318
+ * hide the least. With no height column the blocks stand as one thin slab, a
63319
+ * treemap seen in 3D.
63320
+ *
63321
+ * **Helix draws the frame, and the chart draws the blocks in 3D itself, in
63322
+ * SVG**: a picture a print and a page without WebGL show too, which a drag
63323
+ * or Shift with an arrow turns. Put a box inside the chart, and
63324
+ * `connectSpatialTreemap` from `@fusion.dev/helix-plot`, given
63325
+ * `threeTreemapDriver` from `@fusion.dev/helix-plot/three`, draws the blocks
63326
+ * in it with three.js, lit and in perspective.
63327
+ *
63328
+ * **The table is the reading.** Every number is in it, and screen readers
63329
+ * read it. The `summary` part names the number of items and groups and the
63330
+ * range of their sizes, and describes the plot.
63331
+ *
63332
+ * **The plot is read by key, in the table's order.** It takes focus, named
63333
+ * by `label` or the caption. The left and right arrows move from item to
63334
+ * item, the down and up arrows among the item's measures, which the readout
63335
+ * says first, and Home and End go to the first and the last item. Shift
63336
+ * with an arrow turns the view, and Escape lets the item go.
63337
+ *
63338
+ * **A reading shows its row in a tooltip**, as on every chart: the block a
63339
+ * mouse or a pen rests on, the block tapped, or the one the keys move to.
63340
+ *
63341
+ * **Readings are sent as every chart sends them.** `helix-reading-change`
63342
+ * says each move of the reading, and `helix-reading-press` a block clicked
63343
+ * or pressed with Enter or Space, each with the row of the table in `index`.
63344
+ *
63345
+ * **Keyboard.** The plot is one tab stop once it has readings.
63346
+ *
63347
+ * | Key | What it does |
63348
+ * |---|---|
63349
+ * | Tab | Moves focus to the plot. |
63350
+ * | Right, Left | Moves to the next or the previous item, in the table's order. |
63351
+ * | Down, Up | Moves among the item's measures, which the readout says first. |
63352
+ * | Home, End | Moves to the first or the last item. |
63353
+ * | Shift with an arrow | Turns the view across, or tilts it up and down. |
63354
+ * | Enter, Space | Presses the item, which sends `helix-reading-press`. |
63355
+ * | Escape | Lets the item go. |
63356
+ *
63357
+ * ## Attributes & Properties
63358
+ *
63359
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
63360
+ *
63361
+ * - `group-by`/`groupBy`: The column of text that gathers the rows into groups, by its heading. None by default.
63362
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
63363
+ * alone and fill the plot, as a picture on a product's own page does. The
63364
+ * table, the summary, the tooltip, and the keys still carry every value,
63365
+ * and a renderer draws no box either.
63366
+ * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
63367
+ * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}` and `{groups}` are the number
63368
+ * of items and groups, written in the locale, and `{low}` and `{high}` the
63369
+ * smallest and the largest size.
63370
+ * - `empty-text`/`emptyText`: The words shown in place of the drawing when the table has no readings,
63371
+ * and the fallback of the `empty` slot.
63372
+ * - `loading`: Whether the readings are still on their way. The chart shows
63373
+ * `loading-text` in place of an empty drawing until it has readings.
63374
+ *
63375
+ * Reflected, so a stylesheet can treat the chart while it waits. A chart
63376
+ * that already has readings keeps drawing them, so a refresh does not
63377
+ * blank it.
63378
+ * - `loading-text`/`loadingText`: The words shown in place of the drawing while `loading` is set and
63379
+ * there are no readings yet, and the fallback of the `loading` slot.
63380
+ * - `for`: The id of the table to read.
63381
+ *
63382
+ * Names a table in the same tree, so a chart inside another component's
63383
+ * shadow root reads a table in that root rather than one in the document. A
63384
+ * `<table>` or anything built from grid roles, including `helix-table`.
63385
+ *
63386
+ * **In React this arrives as a property and not as an attribute**, the way
63387
+ * `Tooltip.for` does, so it does not reflect and nothing styles on it.
63388
+ * - `label`: The chart's name, which starts the chart's text summary.
63389
+ *
63390
+ * Absent falls back to the table's own caption, which is usually the right
63391
+ * words and is already written.
63392
+ * - `locale`: The locale the chart's own numbers are written in: its axis, its
63393
+ * percentages and its totals, such as `de` for `1.240` and `32 %`.
63394
+ *
63395
+ * Absent reads the nearest `lang`, then the runtime's own. The table's
63396
+ * cells are shown as the table writes them, whatever this says.
63397
+ * - `position-label`/`positionLabel`: Where a reading the keys moved to stands among the readings, said after
63398
+ * it. `{position}` and `{count}` are replaced with the numbers, written in
63399
+ * `locale`.
63400
+ *
63401
+ * Set it to the words of the page's language, such as `{position} von
63402
+ * {count}`, or to nothing to say no position. A slice or a series a
63403
+ * legend hid is not counted.
63404
+ * - `field`: The table read as blocks. **The first numeric column is each block's
63405
+ * size, and the second its height.** A renderer reads it. (property only) (readonly)
63406
+ * - `active`: The block the keys or the pointer rest on, as its place in `field.blocks`, or `-1`. (property only) (readonly)
63407
+ * - `readings`: The number of blocks, which the keys walk. (property only) (readonly)
63408
+ * - `data`: The readings as data, in the shape of a table, where the page has no
63409
+ * table to point `for` at. `for` wins where both are set.
63410
+ *
63411
+ * ```js
63412
+ * chart.data = {
63413
+ * caption: 'Sessions by channel',
63414
+ * columns: ['Month', 'Direct', 'Referral'],
63415
+ * rows: [['Jan', 10, 4], ['Feb', 20, 8]],
63416
+ * }
63417
+ * ```
63418
+ *
63419
+ * The first column holds each row's label and every column after it a
63420
+ * series, as in a table. A cell is a number, words, `null` for a blank,
63421
+ * or `{ value, text }` for a number shown as words, such as `$128k`. A
63422
+ * number is shown in `locale`.
63423
+ *
63424
+ * **A table is still the better source where the page can show one**:
63425
+ * it reads with no script and before hydration, and a reader can sort and
63426
+ * copy it. Data is drawn on the client only, so a server serves the
63427
+ * frame, and the summary, the keys and the readout are then the whole of
63428
+ * what a screen reader is given. Set a new object to redraw: the chart
63429
+ * does not look inside the one it has. (property only)
63430
+ * - `series`: The table's columns, one series each. Empty when there is no table.
63431
+ *
63432
+ * Held by the controller between edits, so a render reading this five
63433
+ * times parses the table once. See `SourceController.series`. (property only) (readonly)
63434
+ * - `named`: The chart's name: an `aria-label` written on the chart, then `label`,
63435
+ * then the table's caption.
63436
+ *
63437
+ * The fallback is the reason this is shared rather than copied: a caption is
63438
+ * already written, already the right words, and already the thing a reader
63439
+ * of the table sees. A chart that made the consumer say it twice would be
63440
+ * asking for the second one to drift.
63441
+ *
63442
+ * **An `aria-label` on the chart comes first**, because it is how a page
63443
+ * names an element, and the chart is a generic around its plot: written
63444
+ * on the host, the name reached nobody. The plot takes it, as Heatmap's
63445
+ * strip always did. (property only) (readonly)
63446
+ * - `plottedColumns`: The positions of the cells in a row that hold numbers, in table order.
63447
+ *
63448
+ * The same test `readSeries` applies when it drops a column of notes: a
63449
+ * column is a series where any row parses, so a series survives one blank
63450
+ * cell and a column of words is never one. (property only) (readonly)
63451
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
63452
+ *
63453
+ * **Named `whenSettled` because `settled` is taken four times over**, by
63454
+ * Image, Splitter and both color controls, none of them about transitions. A
63455
+ * base class takes the name every subclass then cannot use.
63456
+ *
63457
+ * **The state it reports cannot be watched, which is why this exists.** A
63458
+ * custom state is deliberately not in the DOM, so there is no
63459
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
63460
+ * instead.
63461
+ *
63462
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
63463
+ * the suppression is still active in. That is the distinction `readyToMove`
63464
+ * in `@fusion.dev/helix-testing` is written around.
63465
+ *
63466
+ * It never resolves where `requestAnimationFrame` never fires, which is a
63467
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
63468
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
63469
+ * browser harness's awaits it alone: a browser always runs the frame, and a
63470
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
63471
+ *
63472
+ * ## Events
63473
+ *
63474
+ * Events that will be emitted by the component.
63475
+ *
63476
+ * - `helix-plot-change`: The blocks or the block the keys rest on changed, which the renderer is told. It stays on the chart.
63477
+ * - `helix-plot-turn`: Shift with an arrow asked the view to turn, by a step across or up.
63478
+ * - `helix-reading-change`: The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it.
63479
+ * - `helix-reading-press`: A block was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`.
63480
+ *
63481
+ * ## Slots
63482
+ *
63483
+ * Areas where markup can be added to the component.
63484
+ *
63485
+ * - `(default)`: The renderer's box, which the 3D drawing is made in.
63486
+ * - `empty`: Content shown when the table has no readings. Falls back to `empty-text`.
63487
+ * - `loading`: Content shown while `loading` is set and there are no readings yet. Falls back to `loading-text`.
63488
+ *
63489
+ * ## Methods
63490
+ *
63491
+ * Methods that can be called to access component functionality.
63492
+ *
63493
+ * - `rendererDrawn(on = true) => void`: Says whether a renderer has drawn the blocks, which hides the chart's own
63494
+ * drawing or shows it again. Called by the connector.
63495
+ * - `requestActive(index: number, kind: 'mouse' | 'pen' | 'touch' = 'mouse') => void`: Puts the reading on the block at `index`, or lets it go with `-1`, as a
63496
+ * pointer resting on it in the renderer's drawing or a press there does.
63497
+ * A touch keeps it until a tap lands elsewhere, and a mouse leaving a
63498
+ * reading the keys moved to leaves it. Called by the connector.
63499
+ * - `placeReading(at: { x: number; y: number } | undefined) => void`: Says where the renderer draws the reading, as fractions of the plot from
63500
+ * its top left, or `undefined` while it draws none. The tooltip points
63501
+ * there. Called by the connector.
63502
+ * - `seriesOf(cell: number) => number | undefined`: The palette slot for the cell at this position in a row.
63503
+ *
63504
+ * **A cell's place in its row is not its series' depth, and the tooltip
63505
+ * spent a while assuming it was.** `readSeries` drops a column nothing
63506
+ * parses and `readRows` keeps it, so one column of notes among the figures
63507
+ * moves every column after it one color along in the bubble: a row reading
63508
+ * `Referral 1,080` wearing series three's green beside a legend that says
63509
+ * series three is something else, which is the one failure the dot exists
63510
+ * to prevent.
63511
+ *
63512
+ * Overridden where a chart reads the table some other way. `ScatterChart`
63513
+ * splits the first plotted column off as the measure across, so its first
63514
+ * *plotted* series is this table's second numeric column.
63515
+ * - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
63516
+ * reading the same table hid it.
63517
+ *
63518
+ * Asked of the table rather than of a legend, the table being the one
63519
+ * thing the two share: see `SourceController.hide`. A series keeps its
63520
+ * palette slot while it is hidden, so the colors of the others do not move.
63521
+ * For a ring the names are its rows, the slices being the rows.
63522
+ * - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
63523
+ * by its column's heading. The keys and the readout pass over one a
63524
+ * legend hid.
63525
+ *
63526
+ * A column's heading is the cell's name in every row, so the first row
63527
+ * answers for the column.
63528
+ * - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
63529
+ * column's heading, read from the first row that has a cell there, so a
63530
+ * short first row does not lose the heading. `''` where no row has one.
63531
+ *
63532
+ * ## CSS Custom Properties
63533
+ *
63534
+ * CSS variables available for styling the component.
63535
+ *
63536
+ * - `--spatial-treemap-shade`: How far a block's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.
63537
+ *
63538
+ * ## CSS Parts
63539
+ *
63540
+ * Custom selectors for styling elements within the component.
63541
+ *
63542
+ * - `axis-name`: The height's name, along its edge of the box, in the chart's own drawing.
63543
+ * - `block`: One block, its faces in its group's color.
63544
+ * - `block-active`: The block the pointer or the keys rest on. Set alongside `block`.
63545
+ * - `drawing`: The chart's own drawing in SVG: the box, its grid and numbers, and the blocks.
63546
+ * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
63547
+ * - `face`: One face of a block the view shows, shaded by which way it faces.
63548
+ * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
63549
+ * - `grid`: The box's edges and its grid, in the chart's own drawing.
63550
+ * - `live`: The readout: a polite live region that says the item the keys moved to. Hide it visually.
63551
+ * - `loading`: The words while `loading` is set and there are no readings.
63552
+ * - `mark`: The invisible point the tooltip is anchored to, where the renderer draws the reading.
63553
+ * - `plot`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
63554
+ * - `ring`: The outline around the block the pointer or the keys rest on, painted after it, so the blocks in front of it cover it.
63555
+ * - `summary`: The number of items and groups and the range of their sizes, written as a sentence for screen readers, which describes the plot. Hide it visually.
63556
+ * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.
63557
+ * - `tick`: A height at a tick, along its edge of the box, in the chart's own drawing.
63558
+ * - `tooltip`: The bubble, forwarded from `Tooltip`.
63559
+ * - `tooltip-anchor`: The `Tooltip` element itself.
63560
+ * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
63561
+ * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
63562
+ * - `tooltip-arrow-left`: The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.
63563
+ * - `tooltip-arrow-right`: The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.
63564
+ * - `tooltip-arrow-top`: The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
63565
+ * - `tooltip-bottom`: The bubble while it is below the reading. Set alongside `tooltip`.
63566
+ * - `tooltip-cell`: One column's name and value inside the tooltip.
63567
+ * - `tooltip-cell-current`: The cell a chart's series keys rest on, which every chart's tooltip can mark. This chart marks none, since its readout says the measure. Set alongside `tooltip-cell`.
63568
+ * - `tooltip-label`: The row's own name inside the tooltip.
63569
+ * - `tooltip-left`: The bubble while it is left of the reading. Set alongside `tooltip`.
63570
+ * - `tooltip-name`: A column's name inside the tooltip.
63571
+ * - `tooltip-right`: The bubble while it is right of the reading. Set alongside `tooltip`.
63572
+ * - `tooltip-top`: The bubble while it is above the reading. Set alongside `tooltip`.
63573
+ * - `tooltip-value`: A column's value inside the tooltip.
63574
+ *
63575
+ * ## CSS States
63576
+ *
63577
+ * These can be used to apply styling when a component is in a given state.
63578
+ *
63579
+ * - `active`: While a block is shown, under the pointer or the keys.
63580
+ * - `drawn`: While a renderer has drawn the blocks, and the chart's own drawing is hidden.
63581
+ * - `empty`: While the `empty` part stands in place of the readings.
63582
+ * - `loading`: While the `loading` part stands in place of the readings.
63583
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
63584
+ */
63585
+ "helix-headless-spatial-treemap": Partial<
63586
+ HelixHeadlessSpatialTreemapProps &
63587
+ BaseProps<HelixHeadlessSpatialTreemap> &
63588
+ BaseEvents<HelixHeadlessSpatialTreemap>
63589
+ >;
63590
+
61655
63591
  /**
61656
63592
  * A `group` of the dial's menu, named by its label, as React Aria's menu
61657
63593
  * sections and Menu's groups are: a reader hears the name on entering the set,
@@ -68399,6 +70335,12 @@ export type CustomElements = {
68399
70335
  * permitted is the browser's policy, and what follows a refused autoplay is a
68400
70336
  * paused player showing its start control, which is the correct thing to be
68401
70337
  * looking at.
70338
+ *
70339
+ * **Not where the reader asked for less motion**, or while the page has
70340
+ * paused its motion, through `pauseMotion` or `Motion Toggle`: the player
70341
+ * waits on its start control. A page that pauses its motion pauses a video
70342
+ * that started itself, and one that lets it run again plays it again. A
70343
+ * video the reader started is theirs, and neither touches it.
68402
70344
  * - `captions-hidden-label`/`captionsHiddenLabel`: What the live region says when `c` turns captions off.
68403
70345
  * - `captions-label`/`captionsLabel`: The name of the captions control when the video has one track. The control
68404
70346
  * turns that track on and off.
@@ -72647,6 +74589,12 @@ export type CustomElementsSolidJs = {
72647
74589
  * Component attributes and properties that can be applied to the element or by using JavaScript.
72648
74590
  *
72649
74591
  * - `autoplay`: Whether the carousel advances on its own.
74592
+ *
74593
+ * **Not where the reader asked for less motion**, or where the page has
74594
+ * paused its motion, through `pauseMotion` or `Motion Toggle`: the carousel
74595
+ * starts still, and its rotation control starts it. A page that pauses its
74596
+ * motion later stops the rotation, and one that lets it run again starts it
74597
+ * again, unless the reader stopped it.
72650
74598
  * - `controls`: Whether the previous and next controls are shown.
72651
74599
  *
72652
74600
  * `auto`, which is the resting behavior and what an absent attribute means,
@@ -80594,6 +82542,9 @@ export type CustomElementsSolidJs = {
80594
82542
  * - `selection-label`/`selectionLabel`: What screen readers hear after a reader selects a note, in the list or in
80595
82543
  * the drawing, with `{note}` for its name and `{count}` for how many notes
80596
82544
  * the list then holds, written with `count-label`.
82545
+ * - `settling-label`/`settlingLabel`: What the `settling` part says while a layout runs unseen, where the reader
82546
+ * asked for less motion or the page paused its motion.
82547
+ * - `stop-layout-label`/`stopLayoutLabel`: What the button that stops a long layout says.
80597
82548
  * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over the graph with `gestures="cooperative"`.
80598
82549
  * - `using-label`/`usingLabel`: The line shown while the graph, with `gestures="activate"`, has the gestures.
80599
82550
  * - `walk-label`/`walkLabel`: What screen readers hear when a walk along the links moves to a note:
@@ -80769,6 +82720,15 @@ export type CustomElementsSolidJs = {
80769
82720
  * `helix-graph-layout` for the page to keep. Called by `connectGraph` once
80770
82721
  * its layout has settled; a page laying out its own graph calls it the same
80771
82722
  * way.
82723
+ * - `settling(stop?: () => void, unseen = false) => void`: Says a layout is running, with what ends it where the notes stand, or
82724
+ * with nothing, that it has ended. Called by `connectGraph`.
82725
+ *
82726
+ * **A layout that runs past five seconds offers a button that stops it**,
82727
+ * the `stop-layout` part, as WCAG 2.2.2 asks of motion that starts by itself
82728
+ * and runs that long. **`unseen` hides the drawing while the notes move**,
82729
+ * which the connector asks for where the reader asked for less motion or
82730
+ * the page paused its motion: the `settling` part says the notes are being
82731
+ * placed, and the drawing shows them where they settle.
80772
82732
  * - `signal(from: string, to: string, options: { tone?: GraphSignalDetail['tone'] } = {}) => void`: Shows something passing from one note to another, such as a message, a
80773
82733
  * request or a payment, drawn traveling along the drawing and arriving with
80774
82734
  * a pulse. `tone` says what it means and colors it. Call it as often as
@@ -80830,7 +82790,9 @@ export type CustomElementsSolidJs = {
80830
82790
  * - `region`: The frame: the drawing, its controls and the list.
80831
82791
  * - `search`: The bar holding the icon, the search field and the count.
80832
82792
  * - `search-field`: The field that finds a note by its name.
82793
+ * - `settling`: What is said while a layout runs unseen, where the reader asked for less motion or the page paused its motion, over the hidden drawing.
80833
82794
  * - `stage`: The drawing and its controls.
82795
+ * - `stop-layout`: The button that stops a layout that has run past five seconds, where the notes stand.
80834
82796
  * - `viewport`: The box the renderer draws in.
80835
82797
  * - `zoom-in`: The zoom in button.
80836
82798
  * - `zoom-out`: The zoom out button.
@@ -80848,6 +82810,8 @@ export type CustomElementsSolidJs = {
80848
82810
  * - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
80849
82811
  * - `searching`: The search field holds words, and the list holds only the notes they find.
80850
82812
  * - `selected`: A note is selected, in the list or in the drawing.
82813
+ * - `settling`: A layout is running.
82814
+ * - `settling-unseen`: A layout is running with the drawing hidden, where the reader asked for less motion or the page paused its motion.
80851
82815
  * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
80852
82816
  * - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
80853
82817
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -84643,9 +86607,11 @@ export type CustomElementsSolidJs = {
84643
86607
  * While `playing` is set, the layer shows the frames in order, `interval`
84644
86608
  * milliseconds each, and starts again from the first.
84645
86609
  *
84646
- * The frames do not play while the user has asked for reduced motion, and the
84647
- * layer shows its last frame. Content that moves for more than five seconds
84648
- * needs a way to pause it, so give `playing` a control on your page.
86610
+ * The frames do not play while the user has asked for reduced motion, or
86611
+ * while the page has paused its motion, through `pauseMotion` or `Motion
86612
+ * Toggle`, and the layer holds the frame it shows. Content that moves for more
86613
+ * than five seconds needs a way to pause it, which `Motion Toggle` gives the
86614
+ * whole page, or give `playing` a control of its own.
84649
86615
  *
84650
86616
  * Put the tile provider's credit in `attribution`. The frame shows it beside
84651
86617
  * the map's own credit.
@@ -86169,6 +88135,92 @@ export type CustomElementsSolidJs = {
86169
88135
  BaseEvents<HelixHeadlessMeter>
86170
88136
  >;
86171
88137
 
88138
+ /**
88139
+ * WCAG 2.2.2 asks that motion which starts by itself and runs longer than
88140
+ * five seconds can be paused. **This is one control for the whole page**: a
88141
+ * press pauses every Helix component that moves by itself, and another lets
88142
+ * them run again.
88143
+ *
88144
+ * - `Carousel` stops rotating under `autoplay`.
88145
+ * - `Video` pauses a video that started itself under `autoplay`.
88146
+ * - `Aura`, `Orb`, and `Strands` hold the frame they show.
88147
+ * - A graph that `connectGraph` lays out stops where its notes stand, and its
88148
+ * three.js view stops turning.
88149
+ * - A map layer's `frames` stop on the frame they show.
88150
+ *
88151
+ * **The choice is the page's**, held on the document element as
88152
+ * `data-helix-motion="paused"`, so two of these on one page agree, and a page
88153
+ * can set it in its markup or with `pauseMotion` from
88154
+ * `@fusion.dev/helix-core`. A stylesheet can select on the attribute to
88155
+ * pause motion of its own.
88156
+ *
88157
+ * It is a toggle button: a `<button>` that says whether motion is paused with
88158
+ * `aria-pressed`. It keeps one name, `label`, whichever way it stands, as a
88159
+ * toggle button does, and its icon shows what a press does next.
88160
+ *
88161
+ * Put it where a reader looks first, such as the page's header. Where the
88162
+ * reader asked for reduced motion, nothing moves by itself to begin with.
88163
+ *
88164
+ * ## Attributes & Properties
88165
+ *
88166
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
88167
+ *
88168
+ * - `label`: The button's name, which stays the same whichever way it stands.
88169
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
88170
+ *
88171
+ * **Named `whenSettled` because `settled` is taken four times over**, by
88172
+ * Image, Splitter and both color controls, none of them about transitions. A
88173
+ * base class takes the name every subclass then cannot use.
88174
+ *
88175
+ * **The state it reports cannot be watched, which is why this exists.** A
88176
+ * custom state is deliberately not in the DOM, so there is no
88177
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
88178
+ * instead.
88179
+ *
88180
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
88181
+ * the suppression is still active in. That is the distinction `readyToMove`
88182
+ * in `@fusion.dev/helix-testing` is written around.
88183
+ *
88184
+ * It never resolves where `requestAnimationFrame` never fires, which is a
88185
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
88186
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
88187
+ * browser harness's awaits it alone: a browser always runs the frame, and a
88188
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
88189
+ *
88190
+ * ## Events
88191
+ *
88192
+ * Events that will be emitted by the component.
88193
+ *
88194
+ * - `change`: Fired after a press pauses the page's motion or lets it run.
88195
+ *
88196
+ * ## Slots
88197
+ *
88198
+ * Areas where markup can be added to the component.
88199
+ *
88200
+ * - `(default)`: The button's text, where it shows more than its icon. Defaults to nothing, the icon alone, named by `label`.
88201
+ * - `icon`: Replaces the icon, which is pause while motion runs and play while it is paused.
88202
+ *
88203
+ * ## CSS Parts
88204
+ *
88205
+ * Custom selectors for styling elements within the component.
88206
+ *
88207
+ * - `button`: The toggle button, with `aria-pressed` while the page's motion is paused.
88208
+ * - `icon`: The icon inside the button.
88209
+ *
88210
+ * ## CSS States
88211
+ *
88212
+ * These can be used to apply styling when a component is in a given state.
88213
+ *
88214
+ * - `paused`: The page's motion is paused.
88215
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
88216
+ */
88217
+ "helix-headless-motion-toggle": Partial<
88218
+ HelixHeadlessMotionToggleProps &
88219
+ HelixHeadlessMotionToggleSolidJsProps &
88220
+ BaseProps<HelixHeadlessMotionToggle> &
88221
+ BaseEvents<HelixHeadlessMotionToggle>
88222
+ >;
88223
+
86172
88224
  /**
86173
88225
  * Renders a real `<nav>`, the landmark that screen reader users jump to.
86174
88226
  * Navigation is its own component, separate from `AppHeader`, so you can use it
@@ -91654,6 +93706,293 @@ export type CustomElementsSolidJs = {
91654
93706
  BaseEvents<HelixHeadlessSparkline>
91655
93707
  >;
91656
93708
 
93709
+ /**
93710
+ * A 3D bar chart reads its table as `Bar Chart` does: **each row is a
93711
+ * category, named by its label, and each numeric column a series**, named by
93712
+ * its heading. The bars stand on a grid of categories across and series in
93713
+ * depth, each as tall as its value from zero and colored by its series, so
93714
+ * one series is a single row of bars and several make a block of them.
93715
+ *
93716
+ * **The flat `Bar Chart` is read more exactly.** Measured, a reader judges
93717
+ * a 3D bar's value less closely than a flat one's, and a bar can stand
93718
+ * behind another. Use this one where the shape across two sets of names
93719
+ * matters more than any one exact value, such as sales by region and by
93720
+ * quarter. The tooltip and the table carry the exact values, and a drag
93721
+ * turns the view to show a bar another hides.
93722
+ *
93723
+ * **Helix draws the frame, and the chart draws the bars in 3D itself, in
93724
+ * SVG**: a picture a print and a page without WebGL show too, which a drag
93725
+ * or Shift with an arrow turns. Put a box inside the chart, and
93726
+ * `connectSpatialBarChart` from `@fusion.dev/helix-plot`, given
93727
+ * `threeBarDriver` from `@fusion.dev/helix-plot/three`, draws the bars in it
93728
+ * with three.js, lit and in perspective.
93729
+ *
93730
+ * **The table is the reading.** Every number is in it, and screen readers
93731
+ * read it. The `summary` part names the number of bars, series, and
93732
+ * categories, and the range of values, and describes the plot.
93733
+ *
93734
+ * **The plot is read by key, across and in depth.** It takes focus, named by
93735
+ * `label` or the caption. The left and right arrows move from category to
93736
+ * category, the down and up arrows from series to series, and Home and End
93737
+ * go to the first and the last bar. The `live` part says the bar's category,
93738
+ * series, and value in words. Shift with an arrow turns the view, and
93739
+ * Escape lets the bar go.
93740
+ *
93741
+ * **A reading shows its row in a tooltip**, as on every chart: the bar a
93742
+ * mouse or a pen rests on, the bar tapped, or the one the keys move to.
93743
+ *
93744
+ * **Readings are sent as every chart sends them.** `helix-reading-change`
93745
+ * says each move of the reading, and `helix-reading-press` a bar clicked or
93746
+ * pressed with Enter or Space, each with the row of the table in `index`.
93747
+ *
93748
+ * **Keyboard.** The plot is one tab stop once it has readings.
93749
+ *
93750
+ * | Key | What it does |
93751
+ * |---|---|
93752
+ * | Tab | Moves focus to the plot. |
93753
+ * | Right, Left | Moves to the next or the previous category. |
93754
+ * | Down, Up | Moves to the next or the previous series. |
93755
+ * | Home, End | Moves to the first or the last bar. |
93756
+ * | Shift with an arrow | Turns the view across, or tilts it up and down. |
93757
+ * | Enter, Space | Presses the bar, which sends `helix-reading-press`. |
93758
+ * | Escape | Lets the bar go. |
93759
+ *
93760
+ * ## Attributes & Properties
93761
+ *
93762
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
93763
+ *
93764
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
93765
+ * alone and fill the plot, as a picture on a product's own page does. The
93766
+ * table, the summary, the tooltip, and the keys still carry every value,
93767
+ * and a renderer draws no box either.
93768
+ * - `open-label`/`openLabel`: What the readout says for a place with no value. `{category}` and
93769
+ * `{series}` name the place.
93770
+ * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
93771
+ * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{categories}`
93772
+ * are the number of bars, series, and categories, written in the locale,
93773
+ * and `{low}` and `{high}` the lowest and the highest value.
93774
+ * - `empty-text`/`emptyText`: The words shown in place of the drawing when the table has no readings,
93775
+ * and the fallback of the `empty` slot.
93776
+ * - `loading`: Whether the readings are still on their way. The chart shows
93777
+ * `loading-text` in place of an empty drawing until it has readings.
93778
+ *
93779
+ * Reflected, so a stylesheet can treat the chart while it waits. A chart
93780
+ * that already has readings keeps drawing them, so a refresh does not
93781
+ * blank it.
93782
+ * - `loading-text`/`loadingText`: The words shown in place of the drawing while `loading` is set and
93783
+ * there are no readings yet, and the fallback of the `loading` slot.
93784
+ * - `for`: The id of the table to read.
93785
+ *
93786
+ * Names a table in the same tree, so a chart inside another component's
93787
+ * shadow root reads a table in that root rather than one in the document. A
93788
+ * `<table>` or anything built from grid roles, including `helix-table`.
93789
+ *
93790
+ * **In React this arrives as a property and not as an attribute**, the way
93791
+ * `Tooltip.for` does, so it does not reflect and nothing styles on it.
93792
+ * - `label`: The chart's name, which starts the chart's text summary.
93793
+ *
93794
+ * Absent falls back to the table's own caption, which is usually the right
93795
+ * words and is already written.
93796
+ * - `locale`: The locale the chart's own numbers are written in: its axis, its
93797
+ * percentages and its totals, such as `de` for `1.240` and `32 %`.
93798
+ *
93799
+ * Absent reads the nearest `lang`, then the runtime's own. The table's
93800
+ * cells are shown as the table writes them, whatever this says.
93801
+ * - `position-label`/`positionLabel`: Where a reading the keys moved to stands among the readings, said after
93802
+ * it. `{position}` and `{count}` are replaced with the numbers, written in
93803
+ * `locale`.
93804
+ *
93805
+ * Set it to the words of the page's language, such as `{position} von
93806
+ * {count}`, or to nothing to say no position. A slice or a series a
93807
+ * legend hid is not counted.
93808
+ * - `field`: The table read as bars. **Each row is a category, and each numeric
93809
+ * column a series.** A renderer reads it. (property only) (readonly)
93810
+ * - `active`: The bar the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
93811
+ * - `readings`: The number of places on the grid, which the keys walk. (property only) (readonly)
93812
+ * - `data`: The readings as data, in the shape of a table, where the page has no
93813
+ * table to point `for` at. `for` wins where both are set.
93814
+ *
93815
+ * ```js
93816
+ * chart.data = {
93817
+ * caption: 'Sessions by channel',
93818
+ * columns: ['Month', 'Direct', 'Referral'],
93819
+ * rows: [['Jan', 10, 4], ['Feb', 20, 8]],
93820
+ * }
93821
+ * ```
93822
+ *
93823
+ * The first column holds each row's label and every column after it a
93824
+ * series, as in a table. A cell is a number, words, `null` for a blank,
93825
+ * or `{ value, text }` for a number shown as words, such as `$128k`. A
93826
+ * number is shown in `locale`.
93827
+ *
93828
+ * **A table is still the better source where the page can show one**:
93829
+ * it reads with no script and before hydration, and a reader can sort and
93830
+ * copy it. Data is drawn on the client only, so a server serves the
93831
+ * frame, and the summary, the keys and the readout are then the whole of
93832
+ * what a screen reader is given. Set a new object to redraw: the chart
93833
+ * does not look inside the one it has. (property only)
93834
+ * - `series`: The table's columns, one series each. Empty when there is no table.
93835
+ *
93836
+ * Held by the controller between edits, so a render reading this five
93837
+ * times parses the table once. See `SourceController.series`. (property only) (readonly)
93838
+ * - `named`: The chart's name: an `aria-label` written on the chart, then `label`,
93839
+ * then the table's caption.
93840
+ *
93841
+ * The fallback is the reason this is shared rather than copied: a caption is
93842
+ * already written, already the right words, and already the thing a reader
93843
+ * of the table sees. A chart that made the consumer say it twice would be
93844
+ * asking for the second one to drift.
93845
+ *
93846
+ * **An `aria-label` on the chart comes first**, because it is how a page
93847
+ * names an element, and the chart is a generic around its plot: written
93848
+ * on the host, the name reached nobody. The plot takes it, as Heatmap's
93849
+ * strip always did. (property only) (readonly)
93850
+ * - `plottedColumns`: The positions of the cells in a row that hold numbers, in table order.
93851
+ *
93852
+ * The same test `readSeries` applies when it drops a column of notes: a
93853
+ * column is a series where any row parses, so a series survives one blank
93854
+ * cell and a column of words is never one. (property only) (readonly)
93855
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
93856
+ *
93857
+ * **Named `whenSettled` because `settled` is taken four times over**, by
93858
+ * Image, Splitter and both color controls, none of them about transitions. A
93859
+ * base class takes the name every subclass then cannot use.
93860
+ *
93861
+ * **The state it reports cannot be watched, which is why this exists.** A
93862
+ * custom state is deliberately not in the DOM, so there is no
93863
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
93864
+ * instead.
93865
+ *
93866
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
93867
+ * the suppression is still active in. That is the distinction `readyToMove`
93868
+ * in `@fusion.dev/helix-testing` is written around.
93869
+ *
93870
+ * It never resolves where `requestAnimationFrame` never fires, which is a
93871
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
93872
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
93873
+ * browser harness's awaits it alone: a browser always runs the frame, and a
93874
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
93875
+ *
93876
+ * ## Events
93877
+ *
93878
+ * Events that will be emitted by the component.
93879
+ *
93880
+ * - `helix-plot-change`: The bars or the bar the keys rest on changed, which the renderer is told. It stays on the chart.
93881
+ * - `helix-plot-turn`: Shift with an arrow asked the view to turn, by a step across or up.
93882
+ * - `helix-reading-change`: The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it.
93883
+ * - `helix-reading-press`: A bar was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`.
93884
+ *
93885
+ * ## Slots
93886
+ *
93887
+ * Areas where markup can be added to the component.
93888
+ *
93889
+ * - `(default)`: The renderer's box, which the 3D drawing is made in.
93890
+ * - `empty`: Content shown when the table has no readings. Falls back to `empty-text`.
93891
+ * - `loading`: Content shown while `loading` is set and there are no readings yet. Falls back to `loading-text`.
93892
+ *
93893
+ * ## Methods
93894
+ *
93895
+ * Methods that can be called to access component functionality.
93896
+ *
93897
+ * - `rendererDrawn(on = true) => void`: Says whether a renderer has drawn the bars, which hides the chart's own
93898
+ * drawing or shows it again. Called by the connector.
93899
+ * - `requestActive(index: number, kind: 'mouse' | 'pen' | 'touch' = 'mouse') => void`: Puts the reading on the bar at `index`, or lets it go with `-1`, as a
93900
+ * pointer resting on it in the renderer's drawing or a press there does.
93901
+ * A touch keeps it until a tap lands elsewhere, and a mouse leaving a
93902
+ * reading the keys moved to leaves it. Called by the connector.
93903
+ * - `placeReading(at: { x: number; y: number } | undefined) => void`: Says where the renderer draws the reading, as fractions of the plot from
93904
+ * its top left, or `undefined` while it draws none. The tooltip points
93905
+ * there. Called by the connector.
93906
+ * - `seriesOf(cell: number) => number | undefined`: The palette slot for the cell at this position in a row.
93907
+ *
93908
+ * **A cell's place in its row is not its series' depth, and the tooltip
93909
+ * spent a while assuming it was.** `readSeries` drops a column nothing
93910
+ * parses and `readRows` keeps it, so one column of notes among the figures
93911
+ * moves every column after it one color along in the bubble: a row reading
93912
+ * `Referral 1,080` wearing series three's green beside a legend that says
93913
+ * series three is something else, which is the one failure the dot exists
93914
+ * to prevent.
93915
+ *
93916
+ * Overridden where a chart reads the table some other way. `ScatterChart`
93917
+ * splits the first plotted column off as the measure across, so its first
93918
+ * *plotted* series is this table's second numeric column.
93919
+ * - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
93920
+ * reading the same table hid it.
93921
+ *
93922
+ * Asked of the table rather than of a legend, the table being the one
93923
+ * thing the two share: see `SourceController.hide`. A series keeps its
93924
+ * palette slot while it is hidden, so the colors of the others do not move.
93925
+ * For a ring the names are its rows, the slices being the rows.
93926
+ * - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
93927
+ * by its column's heading. The keys and the readout pass over one a
93928
+ * legend hid.
93929
+ *
93930
+ * A column's heading is the cell's name in every row, so the first row
93931
+ * answers for the column.
93932
+ * - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
93933
+ * column's heading, read from the first row that has a cell there, so a
93934
+ * short first row does not lose the heading. `''` where no row has one.
93935
+ *
93936
+ * ## CSS Custom Properties
93937
+ *
93938
+ * CSS variables available for styling the component.
93939
+ *
93940
+ * - `--spatial-bar-chart-shade`: How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.
93941
+ *
93942
+ * ## CSS Parts
93943
+ *
93944
+ * Custom selectors for styling elements within the component.
93945
+ *
93946
+ * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
93947
+ * - `bar`: One bar, its faces in its series' color.
93948
+ * - `bar-active`: The bar the pointer or the keys rest on. Set alongside `bar`.
93949
+ * - `drawing`: The chart's own drawing in SVG: the box, its grid and names, and the bars.
93950
+ * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
93951
+ * - `face`: One face of a bar the view shows, shaded by which way it faces.
93952
+ * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
93953
+ * - `grid`: The box's edges and its grid, in the chart's own drawing.
93954
+ * - `live`: The readout: a polite live region that says the bar the keys moved to. Hide it visually.
93955
+ * - `loading`: The words while `loading` is set and there are no readings.
93956
+ * - `mark`: The invisible point the tooltip is anchored to, where the renderer draws the reading.
93957
+ * - `plot`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
93958
+ * - `ring`: The outline around the bar the pointer or the keys rest on, painted after it, so the bars in front of it cover it.
93959
+ * - `summary`: The number of bars, series, and categories, and the range of values, written as a sentence for screen readers, which describes the plot. Hide it visually.
93960
+ * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.
93961
+ * - `tick`: A category's or a series' name, or a value at a tick, along its edge of the box, in the chart's own drawing.
93962
+ * - `tooltip`: The bubble, forwarded from `Tooltip`.
93963
+ * - `tooltip-anchor`: The `Tooltip` element itself.
93964
+ * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
93965
+ * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
93966
+ * - `tooltip-arrow-left`: The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.
93967
+ * - `tooltip-arrow-right`: The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.
93968
+ * - `tooltip-arrow-top`: The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
93969
+ * - `tooltip-bottom`: The bubble while it is below the reading. Set alongside `tooltip`.
93970
+ * - `tooltip-cell`: One column's name and value inside the tooltip.
93971
+ * - `tooltip-cell-current`: The cell a chart's series keys rest on, which every chart's tooltip can mark. This chart marks none, since its readout says the measure. Set alongside `tooltip-cell`.
93972
+ * - `tooltip-label`: The row's own name inside the tooltip.
93973
+ * - `tooltip-left`: The bubble while it is left of the reading. Set alongside `tooltip`.
93974
+ * - `tooltip-name`: A column's name inside the tooltip.
93975
+ * - `tooltip-right`: The bubble while it is right of the reading. Set alongside `tooltip`.
93976
+ * - `tooltip-top`: The bubble while it is above the reading. Set alongside `tooltip`.
93977
+ * - `tooltip-value`: A column's value inside the tooltip.
93978
+ *
93979
+ * ## CSS States
93980
+ *
93981
+ * These can be used to apply styling when a component is in a given state.
93982
+ *
93983
+ * - `active`: While a bar is shown, under the pointer or the keys.
93984
+ * - `drawn`: While a renderer has drawn the bars, and the chart's own drawing is hidden.
93985
+ * - `empty`: While the `empty` part stands in place of the readings.
93986
+ * - `loading`: While the `loading` part stands in place of the readings.
93987
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
93988
+ */
93989
+ "helix-headless-spatial-bar-chart": Partial<
93990
+ HelixHeadlessSpatialBarChartProps &
93991
+ HelixHeadlessSpatialBarChartSolidJsProps &
93992
+ BaseProps<HelixHeadlessSpatialBarChart> &
93993
+ BaseEvents<HelixHeadlessSpatialBarChart>
93994
+ >;
93995
+
91657
93996
  /**
91658
93997
  * The same strip as `Heatmap`, seen from above at an angle. Each reading is a
91659
93998
  * prism: its top face takes the cell's tone, and its height repeats the value,
@@ -91992,61 +94331,346 @@ export type CustomElementsSolidJs = {
91992
94331
  * - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
91993
94332
  * column's heading, read from the first row that has a cell there, so a
91994
94333
  * short first row does not lose the heading. `''` where no row has one.
91995
- * - `pageFrom(at: number, forward: boolean) => number | undefined`: Where PageUp or PageDown goes from the drawn cell at `at`: the same day a
91996
- * month on or back, by the dates the rows' headers carry. Undefined where
91997
- * they carry none, and the keys move four columns.
94334
+ * - `pageFrom(at: number, forward: boolean) => number | undefined`: Where PageUp or PageDown goes from the drawn cell at `at`: the same day a
94335
+ * month on or back, by the dates the rows' headers carry. Undefined where
94336
+ * they carry none, and the keys move four columns.
94337
+ *
94338
+ * ## CSS Custom Properties
94339
+ *
94340
+ * CSS variables available for styling the component.
94341
+ *
94342
+ * - `--spatial-heatmap-label-x`: Where the `start` or the `end` label stands clear of the drawing, from the footer's inline start, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns.
94343
+ * - `--spatial-heatmap-label-y`: Where the `start` or the `end` label stands clear of the drawing, from the footer's top, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns.
94344
+ * - `--spatial-heatmap-span`: 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.
94345
+ * - `--heatmap-rows`: How many rows the strip lays out. The component writes it from the data, and the stylesheet that draws the strip reads it.
94346
+ * - `--heatmap-tone`: The tone of the cell it is set on. The component writes it, and the stylesheet that paints the cell reads it.
94347
+ * - `--heatmap-tone-1`: The weakest step of the magnitude ramp, used by `tones="1 …"`.
94348
+ * - `--heatmap-tone-2`: The second step of the magnitude ramp.
94349
+ * - `--heatmap-tone-3`: The third step of the magnitude ramp.
94350
+ * - `--heatmap-tone-4`: The fourth step of the magnitude ramp.
94351
+ * - `--heatmap-tone-5`: The strongest step of the magnitude ramp.
94352
+ * - `--heatmap-tone-accent`: The color of the `accent` tone.
94353
+ * - `--heatmap-tone-danger`: The color of the `danger` tone.
94354
+ * - `--heatmap-tone-info`: The color of the `info` tone.
94355
+ * - `--heatmap-tone-muted`: The color of the `muted` tone: a quiet background, for a bucket that means nothing happened.
94356
+ * - `--heatmap-tone-primary`: The color of the `primary` tone.
94357
+ * - `--heatmap-tone-success`: The color of the `success` tone, named in `tones` or in `data-tone`.
94358
+ * - `--heatmap-tone-warning`: The color of the `warning` tone.
94359
+ *
94360
+ * ## CSS Parts
94361
+ *
94362
+ * Custom selectors for styling elements within the component.
94363
+ *
94364
+ * - `base`: The slab the prisms stand on: a group holding its top and its two sides. Hidden from screen readers.
94365
+ * - `base-left`: The slab's side toward the viewer at the lower left, under the strip's last row.
94366
+ * - `base-right`: The slab's side toward the viewer at the lower right, under the newest column.
94367
+ * - `base-top`: The slab's top, which is the floor the prisms stand on.
94368
+ * - `cell`: One reading drawn as a prism: a group holding the faces the view shows. Under `selection-mode` it is the picture of a grid cell, hidden from screen readers.
94369
+ * - `drawing`: The SVG every prism is drawn in. It is mirrored on a right-to-left page.
94370
+ * - `left-face`: The side of a prism facing the light more: from the isometric view, the side toward the next row, drawn at its lower left. Left out where the view shows no side.
94371
+ * - `right-face`: The side of a prism facing the light less: from the isometric view, the side toward the next column, drawn at its lower right. Left out where the view shows one side or none.
94372
+ * - `row`: A column of the strip, which a grid reads as a row, under `selection-mode`. It holds the column's grid cells, which draw nothing: the prisms are painted apart, in the order the view needs.
94373
+ * - `strip`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
94374
+ * - `top-face`: The top of a prism, which carries the reading's tone.
94375
+ * - `cell-active`: The cell the pointer or the keys rest on. Set alongside `cell`.
94376
+ * - `cell-selected`: A cell that is selected, under `selection-mode`. Set alongside `cell`.
94377
+ * - `empty`: The words under the strip when the table has no readings: the `empty` slot, falling back to `empty-text`. Not drawn while the table cannot be read yet, on the server and during hydration, there being no document to resolve `for` in.
94378
+ * - `end`: The trailing slot's box.
94379
+ * - `footer`: The three-slot row under the strip.
94380
+ * - `live`: The readout: a polite live region that says the cell the keys moved to. Hide it visually.
94381
+ * - `loading`: The words under the strip while `loading` is set and there are no readings: the `loading` slot, falling back to `loading-text`.
94382
+ * - `mark`: The invisible point the tooltip is anchored to.
94383
+ * - `overview`: The busiest reading and the total of the readings drawn, written as a sentence for screen readers, which describes the strip. Rendered once there are cells. Hide it visually.
94384
+ * - `plot`: The same element as `strip`, under the name every chart gives the drawing that takes focus.
94385
+ * - `selection`: A polite region that says how many cells are selected after a change, rendered from the first change. Hide it visually.
94386
+ * - `start`: The leading slot's box.
94387
+ * - `summary`: The middle slot's box.
94388
+ * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.
94389
+ * - `tooltip`: The bubble, forwarded from `Tooltip`.
94390
+ * - `tooltip-anchor`: The `Tooltip` element itself.
94391
+ * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
94392
+ * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
94393
+ * - `tooltip-arrow-left`: The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.
94394
+ * - `tooltip-arrow-right`: The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.
94395
+ * - `tooltip-arrow-top`: The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
94396
+ * - `tooltip-bottom`: The bubble while it is below the reading. Set alongside `tooltip`.
94397
+ * - `tooltip-cell`: One column's name and value inside the tooltip.
94398
+ * - `tooltip-cell-current`: The cell the series keys rest on, in the charts whose readings hold several series. A strip draws one, so it is never set here.
94399
+ * - `tooltip-label`: The reading's own name inside the tooltip.
94400
+ * - `tooltip-left`: The bubble while it is left of the reading. Set alongside `tooltip`.
94401
+ * - `tooltip-name`: A column's name inside the tooltip.
94402
+ * - `tooltip-right`: The bubble while it is right of the reading. Set alongside `tooltip`.
94403
+ * - `tooltip-top`: The bubble while it is above the reading. Set alongside `tooltip`.
94404
+ * - `tooltip-value`: A column's value inside the tooltip.
94405
+ *
94406
+ * ## CSS States
94407
+ *
94408
+ * These can be used to apply styling when a component is in a given state.
94409
+ *
94410
+ * - `drawn`: While a renderer has drawn the relief, and the chart's own drawing stays unseen under it.
94411
+ * - `active`: While a cell is shown, under the pointer or the keys, with its tooltip open.
94412
+ * - `empty`: While the `empty` part stands in place of the cells.
94413
+ * - `loading`: While the `loading` part stands in place of the cells.
94414
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
94415
+ */
94416
+ "helix-headless-spatial-heatmap": Partial<
94417
+ HelixHeadlessSpatialHeatmapProps &
94418
+ HelixHeadlessSpatialHeatmapSolidJsProps &
94419
+ BaseProps<HelixHeadlessSpatialHeatmap> &
94420
+ BaseEvents<HelixHeadlessSpatialHeatmap>
94421
+ >;
94422
+
94423
+ /**
94424
+ * A 3D ribbon chart reads its table as `Line Chart` does: **each row is a
94425
+ * place across, such as a day, named by its label, and each numeric column a
94426
+ * series**, named by its heading. Each series is a ribbon in a depth of its
94427
+ * own, the first in front, its top following the values and its face falling
94428
+ * to zero, so several series that would tangle as lines stand apart.
94429
+ *
94430
+ * **The flat `Line Chart` is read more exactly.** Use this one where the
94431
+ * shape of each series, and how the series differ, matters more than any one
94432
+ * value, such as response times by region over a month. The tooltip and the
94433
+ * table carry the exact values, and a drag turns the view to show a ribbon
94434
+ * another hides.
94435
+ *
94436
+ * **Helix draws the frame, and the chart draws the ribbons in 3D itself, in
94437
+ * SVG**: a picture a print and a page without WebGL show too, which a drag
94438
+ * or Shift with an arrow turns. Put a box inside the chart, and
94439
+ * `connectSpatialRibbonChart` from `@fusion.dev/helix-plot`, given
94440
+ * `threeRibbonDriver` from `@fusion.dev/helix-plot/three`, draws the ribbons
94441
+ * in it with three.js, lit and in perspective.
94442
+ *
94443
+ * **The table is the reading.** Every number is in it, and screen readers
94444
+ * read it. The `summary` part names the number of readings, series, and
94445
+ * places, and the range of values, and describes the plot.
94446
+ *
94447
+ * **The plot is read by key, across and in depth.** It takes focus, named by
94448
+ * `label` or the caption. The left and right arrows move from place to
94449
+ * place, the down and up arrows from series to series, and Home and End go
94450
+ * to the first and the last reading. The `live` part says the reading's
94451
+ * place, series, and value in words. Shift with an arrow turns the view, and
94452
+ * Escape lets the reading go.
94453
+ *
94454
+ * **A reading shows its row in a tooltip**, as on every chart: the reading a
94455
+ * mouse or a pen rests nearest, the one tapped, or the one the keys move to.
94456
+ *
94457
+ * **Readings are sent as every chart sends them.** `helix-reading-change`
94458
+ * says each move of the reading, and `helix-reading-press` a reading clicked
94459
+ * or pressed with Enter or Space, each with the row of the table in `index`.
94460
+ *
94461
+ * **Keyboard.** The plot is one tab stop once it has readings.
94462
+ *
94463
+ * | Key | What it does |
94464
+ * |---|---|
94465
+ * | Tab | Moves focus to the plot. |
94466
+ * | Right, Left | Moves to the next or the previous place. |
94467
+ * | Down, Up | Moves to the next or the previous series. |
94468
+ * | Home, End | Moves to the first or the last reading. |
94469
+ * | Shift with an arrow | Turns the view across, or tilts it up and down. |
94470
+ * | Enter, Space | Presses the reading, which sends `helix-reading-press`. |
94471
+ * | Escape | Lets the reading go. |
94472
+ *
94473
+ * ## Attributes & Properties
94474
+ *
94475
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
94476
+ *
94477
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
94478
+ * alone and fill the plot, as a picture on a product's own page does. The
94479
+ * table, the summary, the tooltip, and the keys still carry every value,
94480
+ * and a renderer draws no box either.
94481
+ * - `open-label`/`openLabel`: What the readout says for a reading the table has no value for.
94482
+ * `{place}` and `{series}` name it.
94483
+ * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
94484
+ * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}`, `{series}`, and `{places}` are
94485
+ * the number of readings, series, and places, written in the locale,
94486
+ * and `{low}` and `{high}` the lowest and the highest value.
94487
+ * - `empty-text`/`emptyText`: The words shown in place of the drawing when the table has no readings,
94488
+ * and the fallback of the `empty` slot.
94489
+ * - `loading`: Whether the readings are still on their way. The chart shows
94490
+ * `loading-text` in place of an empty drawing until it has readings.
94491
+ *
94492
+ * Reflected, so a stylesheet can treat the chart while it waits. A chart
94493
+ * that already has readings keeps drawing them, so a refresh does not
94494
+ * blank it.
94495
+ * - `loading-text`/`loadingText`: The words shown in place of the drawing while `loading` is set and
94496
+ * there are no readings yet, and the fallback of the `loading` slot.
94497
+ * - `for`: The id of the table to read.
94498
+ *
94499
+ * Names a table in the same tree, so a chart inside another component's
94500
+ * shadow root reads a table in that root rather than one in the document. A
94501
+ * `<table>` or anything built from grid roles, including `helix-table`.
94502
+ *
94503
+ * **In React this arrives as a property and not as an attribute**, the way
94504
+ * `Tooltip.for` does, so it does not reflect and nothing styles on it.
94505
+ * - `label`: The chart's name, which starts the chart's text summary.
94506
+ *
94507
+ * Absent falls back to the table's own caption, which is usually the right
94508
+ * words and is already written.
94509
+ * - `locale`: The locale the chart's own numbers are written in: its axis, its
94510
+ * percentages and its totals, such as `de` for `1.240` and `32 %`.
94511
+ *
94512
+ * Absent reads the nearest `lang`, then the runtime's own. The table's
94513
+ * cells are shown as the table writes them, whatever this says.
94514
+ * - `position-label`/`positionLabel`: Where a reading the keys moved to stands among the readings, said after
94515
+ * it. `{position}` and `{count}` are replaced with the numbers, written in
94516
+ * `locale`.
94517
+ *
94518
+ * Set it to the words of the page's language, such as `{position} von
94519
+ * {count}`, or to nothing to say no position. A slice or a series a
94520
+ * legend hid is not counted.
94521
+ * - `field`: The table read as ribbons. **Each row is a place across, and each
94522
+ * numeric column a series.** A renderer reads it. (property only) (readonly)
94523
+ * - `active`: The reading the keys or the pointer rest on, as its place in `field.cells`, or `-1`. (property only) (readonly)
94524
+ * - `readings`: The number of places on the grid, which the keys walk. (property only) (readonly)
94525
+ * - `data`: The readings as data, in the shape of a table, where the page has no
94526
+ * table to point `for` at. `for` wins where both are set.
94527
+ *
94528
+ * ```js
94529
+ * chart.data = {
94530
+ * caption: 'Sessions by channel',
94531
+ * columns: ['Month', 'Direct', 'Referral'],
94532
+ * rows: [['Jan', 10, 4], ['Feb', 20, 8]],
94533
+ * }
94534
+ * ```
94535
+ *
94536
+ * The first column holds each row's label and every column after it a
94537
+ * series, as in a table. A cell is a number, words, `null` for a blank,
94538
+ * or `{ value, text }` for a number shown as words, such as `$128k`. A
94539
+ * number is shown in `locale`.
94540
+ *
94541
+ * **A table is still the better source where the page can show one**:
94542
+ * it reads with no script and before hydration, and a reader can sort and
94543
+ * copy it. Data is drawn on the client only, so a server serves the
94544
+ * frame, and the summary, the keys and the readout are then the whole of
94545
+ * what a screen reader is given. Set a new object to redraw: the chart
94546
+ * does not look inside the one it has. (property only)
94547
+ * - `series`: The table's columns, one series each. Empty when there is no table.
94548
+ *
94549
+ * Held by the controller between edits, so a render reading this five
94550
+ * times parses the table once. See `SourceController.series`. (property only) (readonly)
94551
+ * - `named`: The chart's name: an `aria-label` written on the chart, then `label`,
94552
+ * then the table's caption.
94553
+ *
94554
+ * The fallback is the reason this is shared rather than copied: a caption is
94555
+ * already written, already the right words, and already the thing a reader
94556
+ * of the table sees. A chart that made the consumer say it twice would be
94557
+ * asking for the second one to drift.
94558
+ *
94559
+ * **An `aria-label` on the chart comes first**, because it is how a page
94560
+ * names an element, and the chart is a generic around its plot: written
94561
+ * on the host, the name reached nobody. The plot takes it, as Heatmap's
94562
+ * strip always did. (property only) (readonly)
94563
+ * - `plottedColumns`: The positions of the cells in a row that hold numbers, in table order.
94564
+ *
94565
+ * The same test `readSeries` applies when it drops a column of notes: a
94566
+ * column is a series where any row parses, so a series survives one blank
94567
+ * cell and a column of words is never one. (property only) (readonly)
94568
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
94569
+ *
94570
+ * **Named `whenSettled` because `settled` is taken four times over**, by
94571
+ * Image, Splitter and both color controls, none of them about transitions. A
94572
+ * base class takes the name every subclass then cannot use.
94573
+ *
94574
+ * **The state it reports cannot be watched, which is why this exists.** A
94575
+ * custom state is deliberately not in the DOM, so there is no
94576
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
94577
+ * instead.
94578
+ *
94579
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
94580
+ * the suppression is still active in. That is the distinction `readyToMove`
94581
+ * in `@fusion.dev/helix-testing` is written around.
94582
+ *
94583
+ * It never resolves where `requestAnimationFrame` never fires, which is a
94584
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
94585
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
94586
+ * browser harness's awaits it alone: a browser always runs the frame, and a
94587
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
94588
+ *
94589
+ * ## Events
94590
+ *
94591
+ * Events that will be emitted by the component.
94592
+ *
94593
+ * - `helix-plot-change`: The readings or the reading the keys rest on changed, which the renderer is told. It stays on the chart.
94594
+ * - `helix-plot-turn`: Shift with an arrow asked the view to turn, by a step across or up.
94595
+ * - `helix-reading-change`: The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it.
94596
+ * - `helix-reading-press`: A reading was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`.
94597
+ *
94598
+ * ## Slots
94599
+ *
94600
+ * Areas where markup can be added to the component.
94601
+ *
94602
+ * - `(default)`: The renderer's box, which the 3D drawing is made in.
94603
+ * - `empty`: Content shown when the table has no readings. Falls back to `empty-text`.
94604
+ * - `loading`: Content shown while `loading` is set and there are no readings yet. Falls back to `loading-text`.
94605
+ *
94606
+ * ## Methods
94607
+ *
94608
+ * Methods that can be called to access component functionality.
94609
+ *
94610
+ * - `rendererDrawn(on = true) => void`: Says whether a renderer has drawn the ribbons, which hides the chart's own
94611
+ * drawing or shows it again. Called by the connector.
94612
+ * - `requestActive(index: number, kind: 'mouse' | 'pen' | 'touch' = 'mouse') => void`: Puts the reading on the one at `index`, or lets it go with `-1`, as a
94613
+ * pointer resting on it in the renderer's drawing or a press there does.
94614
+ * A touch keeps it until a tap lands elsewhere, and a mouse leaving a
94615
+ * reading the keys moved to leaves it. Called by the connector.
94616
+ * - `placeReading(at: { x: number; y: number } | undefined) => void`: Says where the renderer draws the reading, as fractions of the plot from
94617
+ * its top left, or `undefined` while it draws none. The tooltip points
94618
+ * there. Called by the connector.
94619
+ * - `seriesOf(cell: number) => number | undefined`: The palette slot for the cell at this position in a row.
94620
+ *
94621
+ * **A cell's place in its row is not its series' depth, and the tooltip
94622
+ * spent a while assuming it was.** `readSeries` drops a column nothing
94623
+ * parses and `readRows` keeps it, so one column of notes among the figures
94624
+ * moves every column after it one color along in the bubble: a row reading
94625
+ * `Referral 1,080` wearing series three's green beside a legend that says
94626
+ * series three is something else, which is the one failure the dot exists
94627
+ * to prevent.
94628
+ *
94629
+ * Overridden where a chart reads the table some other way. `ScatterChart`
94630
+ * splits the first plotted column off as the measure across, so its first
94631
+ * *plotted* series is this table's second numeric column.
94632
+ * - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
94633
+ * reading the same table hid it.
94634
+ *
94635
+ * Asked of the table rather than of a legend, the table being the one
94636
+ * thing the two share: see `SourceController.hide`. A series keeps its
94637
+ * palette slot while it is hidden, so the colors of the others do not move.
94638
+ * For a ring the names are its rows, the slices being the rows.
94639
+ * - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
94640
+ * by its column's heading. The keys and the readout pass over one a
94641
+ * legend hid.
94642
+ *
94643
+ * A column's heading is the cell's name in every row, so the first row
94644
+ * answers for the column.
94645
+ * - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
94646
+ * column's heading, read from the first row that has a cell there, so a
94647
+ * short first row does not lose the heading. `''` where no row has one.
91998
94648
  *
91999
94649
  * ## CSS Custom Properties
92000
94650
  *
92001
94651
  * CSS variables available for styling the component.
92002
94652
  *
92003
- * - `--spatial-heatmap-label-x`: Where the `start` or the `end` label stands clear of the drawing, from the footer's inline start, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns.
92004
- * - `--spatial-heatmap-label-y`: Where the `start` or the `end` label stands clear of the drawing, from the footer's top, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns.
92005
- * - `--spatial-heatmap-span`: 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.
92006
- * - `--heatmap-rows`: How many rows the strip lays out. The component writes it from the data, and the stylesheet that draws the strip reads it.
92007
- * - `--heatmap-tone`: The tone of the cell it is set on. The component writes it, and the stylesheet that paints the cell reads it.
92008
- * - `--heatmap-tone-1`: The weakest step of the magnitude ramp, used by `tones="1 …"`.
92009
- * - `--heatmap-tone-2`: The second step of the magnitude ramp.
92010
- * - `--heatmap-tone-3`: The third step of the magnitude ramp.
92011
- * - `--heatmap-tone-4`: The fourth step of the magnitude ramp.
92012
- * - `--heatmap-tone-5`: The strongest step of the magnitude ramp.
92013
- * - `--heatmap-tone-accent`: The color of the `accent` tone.
92014
- * - `--heatmap-tone-danger`: The color of the `danger` tone.
92015
- * - `--heatmap-tone-info`: The color of the `info` tone.
92016
- * - `--heatmap-tone-muted`: The color of the `muted` tone: a quiet background, for a bucket that means nothing happened.
92017
- * - `--heatmap-tone-primary`: The color of the `primary` tone.
92018
- * - `--heatmap-tone-success`: The color of the `success` tone, named in `tones` or in `data-tone`.
92019
- * - `--heatmap-tone-warning`: The color of the `warning` tone.
94653
+ * - `--spatial-ribbon-chart-shade`: How far a ribbon's face turns from the light, from 0 for a level top. The component writes it on each face, and the stylesheet that shades the face reads it.
92020
94654
  *
92021
94655
  * ## CSS Parts
92022
94656
  *
92023
94657
  * Custom selectors for styling elements within the component.
92024
94658
  *
92025
- * - `base`: The slab the prisms stand on: a group holding its top and its two sides. Hidden from screen readers.
92026
- * - `base-left`: The slab's side toward the viewer at the lower left, under the strip's last row.
92027
- * - `base-right`: The slab's side toward the viewer at the lower right, under the newest column.
92028
- * - `base-top`: The slab's top, which is the floor the prisms stand on.
92029
- * - `cell`: One reading drawn as a prism: a group holding the faces the view shows. Under `selection-mode` it is the picture of a grid cell, hidden from screen readers.
92030
- * - `drawing`: The SVG every prism is drawn in. It is mirrored on a right-to-left page.
92031
- * - `left-face`: The side of a prism facing the light more: from the isometric view, the side toward the next row, drawn at its lower left. Left out where the view shows no side.
92032
- * - `right-face`: The side of a prism facing the light less: from the isometric view, the side toward the next column, drawn at its lower right. Left out where the view shows one side or none.
92033
- * - `row`: A column of the strip, which a grid reads as a row, under `selection-mode`. It holds the column's grid cells, which draw nothing: the prisms are painted apart, in the order the view needs.
92034
- * - `strip`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
92035
- * - `top-face`: The top of a prism, which carries the reading's tone.
92036
- * - `cell-active`: The cell the pointer or the keys rest on. Set alongside `cell`.
92037
- * - `cell-selected`: A cell that is selected, under `selection-mode`. Set alongside `cell`.
92038
- * - `empty`: The words under the strip when the table has no readings: the `empty` slot, falling back to `empty-text`. Not drawn while the table cannot be read yet, on the server and during hydration, there being no document to resolve `for` in.
92039
- * - `end`: The trailing slot's box.
92040
- * - `footer`: The three-slot row under the strip.
92041
- * - `live`: The readout: a polite live region that says the cell the keys moved to. Hide it visually.
92042
- * - `loading`: The words under the strip while `loading` is set and there are no readings: the `loading` slot, falling back to `loading-text`.
92043
- * - `mark`: The invisible point the tooltip is anchored to.
92044
- * - `overview`: The busiest reading and the total of the readings drawn, written as a sentence for screen readers, which describes the strip. Rendered once there are cells. Hide it visually.
92045
- * - `plot`: The same element as `strip`, under the name every chart gives the drawing that takes focus.
92046
- * - `selection`: A polite region that says how many cells are selected after a change, rendered from the first change. Hide it visually.
92047
- * - `start`: The leading slot's box.
92048
- * - `summary`: The middle slot's box.
94659
+ * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
94660
+ * - `drawing`: The chart's own drawing in SVG: the box, its grid and names, and the ribbons.
94661
+ * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
94662
+ * - `face`: One face of a ribbon the view shows: a piece of its top, an end, or its side, shaded by how far it turns from the light.
94663
+ * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
94664
+ * - `grid`: The box's edges and its grid, in the chart's own drawing.
94665
+ * - `live`: The readout: a polite live region that says the reading the keys moved to. Hide it visually.
94666
+ * - `loading`: The words while `loading` is set and there are no readings.
94667
+ * - `mark`: The invisible point the tooltip is anchored to, where the renderer draws the reading.
94668
+ * - `plot`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
94669
+ * - `ribbon`: One ribbon, its faces in its series' color.
94670
+ * - `ring`: The ring around the reading the pointer or the keys rest on, drawn over the ribbons.
94671
+ * - `summary`: The number of readings, series, and places, and the range of values, written as a sentence for screen readers, which describes the plot. Hide it visually.
92049
94672
  * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.
94673
+ * - `tick`: A place's or a series' name, or a value at a tick, along its edge of the box, in the chart's own drawing.
92050
94674
  * - `tooltip`: The bubble, forwarded from `Tooltip`.
92051
94675
  * - `tooltip-anchor`: The `Tooltip` element itself.
92052
94676
  * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
@@ -92056,8 +94680,8 @@ export type CustomElementsSolidJs = {
92056
94680
  * - `tooltip-arrow-top`: The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
92057
94681
  * - `tooltip-bottom`: The bubble while it is below the reading. Set alongside `tooltip`.
92058
94682
  * - `tooltip-cell`: One column's name and value inside the tooltip.
92059
- * - `tooltip-cell-current`: The cell the series keys rest on, in the charts whose readings hold several series. A strip draws one, so it is never set here.
92060
- * - `tooltip-label`: The reading's own name inside the tooltip.
94683
+ * - `tooltip-cell-current`: The cell a chart's series keys rest on, which every chart's tooltip can mark. This chart marks none, since its readout says the measure. Set alongside `tooltip-cell`.
94684
+ * - `tooltip-label`: The row's own name inside the tooltip.
92061
94685
  * - `tooltip-left`: The bubble while it is left of the reading. Set alongside `tooltip`.
92062
94686
  * - `tooltip-name`: A column's name inside the tooltip.
92063
94687
  * - `tooltip-right`: The bubble while it is right of the reading. Set alongside `tooltip`.
@@ -92068,17 +94692,17 @@ export type CustomElementsSolidJs = {
92068
94692
  *
92069
94693
  * These can be used to apply styling when a component is in a given state.
92070
94694
  *
92071
- * - `drawn`: While a renderer has drawn the relief, and the chart's own drawing stays unseen under it.
92072
- * - `active`: While a cell is shown, under the pointer or the keys, with its tooltip open.
92073
- * - `empty`: While the `empty` part stands in place of the cells.
92074
- * - `loading`: While the `loading` part stands in place of the cells.
94695
+ * - `active`: While a reading is shown, under the pointer or the keys.
94696
+ * - `drawn`: While a renderer has drawn the ribbons, and the chart's own drawing is hidden.
94697
+ * - `empty`: While the `empty` part stands in place of the readings.
94698
+ * - `loading`: While the `loading` part stands in place of the readings.
92075
94699
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
92076
94700
  */
92077
- "helix-headless-spatial-heatmap": Partial<
92078
- HelixHeadlessSpatialHeatmapProps &
92079
- HelixHeadlessSpatialHeatmapSolidJsProps &
92080
- BaseProps<HelixHeadlessSpatialHeatmap> &
92081
- BaseEvents<HelixHeadlessSpatialHeatmap>
94701
+ "helix-headless-spatial-ribbon-chart": Partial<
94702
+ HelixHeadlessSpatialRibbonChartProps &
94703
+ HelixHeadlessSpatialRibbonChartSolidJsProps &
94704
+ BaseProps<HelixHeadlessSpatialRibbonChart> &
94705
+ BaseEvents<HelixHeadlessSpatialRibbonChart>
92082
94706
  >;
92083
94707
 
92084
94708
  /**
@@ -92132,7 +94756,14 @@ export type CustomElementsSolidJs = {
92132
94756
  *
92133
94757
  * Component attributes and properties that can be applied to the element or by using JavaScript.
92134
94758
  *
94759
+ * - `drop-lines`/`dropLines`: Draws a line from each point straight down to the floor of the box, in
94760
+ * its group's color, so where a point stands across and in depth reads off
94761
+ * the floor's grid. A renderer draws them too.
92135
94762
  * - `group-by`/`groupBy`: The column of text that puts each point in a group, by its heading. None by default.
94763
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
94764
+ * alone and fill the plot, as a picture on a product's own page does. The
94765
+ * table, the summary, the tooltip, and the keys still carry every value,
94766
+ * and a renderer draws no box either.
92136
94767
  * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
92137
94768
  * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}` is the number of points, written
92138
94769
  * in the locale, and `{x}`, `{y}`, and `{z}` are the three measures' names.
@@ -92305,6 +94936,7 @@ export type CustomElementsSolidJs = {
92305
94936
  *
92306
94937
  * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
92307
94938
  * - `drawing`: The chart's own drawing in SVG: the box, its grid and numbers, and the points.
94939
+ * - `drop-line`: The line from a point straight down to the floor of the box, drawn under `drop-lines`, in its group's color.
92308
94940
  * - `empty`: The words when the table has no points: the `empty` slot, falling back to `empty-text`.
92309
94941
  * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
92310
94942
  * - `grid`: The box's edges and its grid at the ticks, in the chart's own drawing.
@@ -92405,6 +95037,13 @@ export type CustomElementsSolidJs = {
92405
95037
  *
92406
95038
  * Component attributes and properties that can be applied to the element or by using JavaScript.
92407
95039
  *
95040
+ * - `contours`: Draws the surface's contour lines on it, at each tick of its height, in
95041
+ * the ramp's colors, so its shape reads as on a map and two places at the
95042
+ * same height read as such. A renderer draws them too.
95043
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
95044
+ * alone and fill the plot, as a picture on a product's own page does. The
95045
+ * table, the summary, the tooltip, and the keys still carry every value,
95046
+ * and a renderer draws no box either.
92408
95047
  * - `open-label`/`openLabel`: What the readout says for a place with no reading. `{x}` and `{z}` are
92409
95048
  * the place's numbers across and in depth, and `{across}` and `{depth}`
92410
95049
  * the two measures' names.
@@ -92588,6 +95227,7 @@ export type CustomElementsSolidJs = {
92588
95227
  * Custom selectors for styling elements within the component.
92589
95228
  *
92590
95229
  * - `axis-name`: A measure's name, along its edge of the box, in the chart's own drawing.
95230
+ * - `contour`: The pieces of one contour line that cross one square of the surface, drawn under `contours` at their height, colored along the ramp by it.
92591
95231
  * - `drawing`: The chart's own drawing in SVG: the box, its grid and numbers, and the surface.
92592
95232
  * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
92593
95233
  * - `face`: One square of the surface between four readings, or a triangle where one is missing, shaded by its height and by which way it faces.
@@ -92635,6 +95275,292 @@ export type CustomElementsSolidJs = {
92635
95275
  BaseEvents<HelixHeadlessSpatialSurfaceChart>
92636
95276
  >;
92637
95277
 
95278
+ /**
95279
+ * A 3D treemap shares a floor out among the rows of its table: **the first
95280
+ * numeric column is each block's size, and its share of the floor is in
95281
+ * proportion to it**. The second numeric column, where there is one, is each
95282
+ * block's height, from zero, so one block shows two measures: how large an
95283
+ * item is, and how it stands on another count, such as each service's
95284
+ * requests and its errors. `group-by` names a column of text, such as a team,
95285
+ * that gathers its rows into one part of the floor, in one color, and the
95286
+ * part is as large as their total.
95287
+ *
95288
+ * **Each part is laid out as near to square as its share allows**, so two
95289
+ * items compare by area, and the largest stand at the back left, where they
95290
+ * hide the least. With no height column the blocks stand as one thin slab, a
95291
+ * treemap seen in 3D.
95292
+ *
95293
+ * **Helix draws the frame, and the chart draws the blocks in 3D itself, in
95294
+ * SVG**: a picture a print and a page without WebGL show too, which a drag
95295
+ * or Shift with an arrow turns. Put a box inside the chart, and
95296
+ * `connectSpatialTreemap` from `@fusion.dev/helix-plot`, given
95297
+ * `threeTreemapDriver` from `@fusion.dev/helix-plot/three`, draws the blocks
95298
+ * in it with three.js, lit and in perspective.
95299
+ *
95300
+ * **The table is the reading.** Every number is in it, and screen readers
95301
+ * read it. The `summary` part names the number of items and groups and the
95302
+ * range of their sizes, and describes the plot.
95303
+ *
95304
+ * **The plot is read by key, in the table's order.** It takes focus, named
95305
+ * by `label` or the caption. The left and right arrows move from item to
95306
+ * item, the down and up arrows among the item's measures, which the readout
95307
+ * says first, and Home and End go to the first and the last item. Shift
95308
+ * with an arrow turns the view, and Escape lets the item go.
95309
+ *
95310
+ * **A reading shows its row in a tooltip**, as on every chart: the block a
95311
+ * mouse or a pen rests on, the block tapped, or the one the keys move to.
95312
+ *
95313
+ * **Readings are sent as every chart sends them.** `helix-reading-change`
95314
+ * says each move of the reading, and `helix-reading-press` a block clicked
95315
+ * or pressed with Enter or Space, each with the row of the table in `index`.
95316
+ *
95317
+ * **Keyboard.** The plot is one tab stop once it has readings.
95318
+ *
95319
+ * | Key | What it does |
95320
+ * |---|---|
95321
+ * | Tab | Moves focus to the plot. |
95322
+ * | Right, Left | Moves to the next or the previous item, in the table's order. |
95323
+ * | Down, Up | Moves among the item's measures, which the readout says first. |
95324
+ * | Home, End | Moves to the first or the last item. |
95325
+ * | Shift with an arrow | Turns the view across, or tilts it up and down. |
95326
+ * | Enter, Space | Presses the item, which sends `helix-reading-press`. |
95327
+ * | Escape | Lets the item go. |
95328
+ *
95329
+ * ## Attributes & Properties
95330
+ *
95331
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
95332
+ *
95333
+ * - `group-by`/`groupBy`: The column of text that gathers the rows into groups, by its heading. None by default.
95334
+ * - `no-box`/`noBox`: Draws no box: no edges, grid, numbers, or names, so the readings stand
95335
+ * alone and fill the plot, as a picture on a product's own page does. The
95336
+ * table, the summary, the tooltip, and the keys still carry every value,
95337
+ * and a renderer draws no box either.
95338
+ * - `plot-label`/`plotLabel`: The plot's name where the chart has none: no `aria-label`, `label`, or table caption.
95339
+ * - `summary-label`/`summaryLabel`: The `summary` part's sentence. `{count}` and `{groups}` are the number
95340
+ * of items and groups, written in the locale, and `{low}` and `{high}` the
95341
+ * smallest and the largest size.
95342
+ * - `empty-text`/`emptyText`: The words shown in place of the drawing when the table has no readings,
95343
+ * and the fallback of the `empty` slot.
95344
+ * - `loading`: Whether the readings are still on their way. The chart shows
95345
+ * `loading-text` in place of an empty drawing until it has readings.
95346
+ *
95347
+ * Reflected, so a stylesheet can treat the chart while it waits. A chart
95348
+ * that already has readings keeps drawing them, so a refresh does not
95349
+ * blank it.
95350
+ * - `loading-text`/`loadingText`: The words shown in place of the drawing while `loading` is set and
95351
+ * there are no readings yet, and the fallback of the `loading` slot.
95352
+ * - `for`: The id of the table to read.
95353
+ *
95354
+ * Names a table in the same tree, so a chart inside another component's
95355
+ * shadow root reads a table in that root rather than one in the document. A
95356
+ * `<table>` or anything built from grid roles, including `helix-table`.
95357
+ *
95358
+ * **In React this arrives as a property and not as an attribute**, the way
95359
+ * `Tooltip.for` does, so it does not reflect and nothing styles on it.
95360
+ * - `label`: The chart's name, which starts the chart's text summary.
95361
+ *
95362
+ * Absent falls back to the table's own caption, which is usually the right
95363
+ * words and is already written.
95364
+ * - `locale`: The locale the chart's own numbers are written in: its axis, its
95365
+ * percentages and its totals, such as `de` for `1.240` and `32 %`.
95366
+ *
95367
+ * Absent reads the nearest `lang`, then the runtime's own. The table's
95368
+ * cells are shown as the table writes them, whatever this says.
95369
+ * - `position-label`/`positionLabel`: Where a reading the keys moved to stands among the readings, said after
95370
+ * it. `{position}` and `{count}` are replaced with the numbers, written in
95371
+ * `locale`.
95372
+ *
95373
+ * Set it to the words of the page's language, such as `{position} von
95374
+ * {count}`, or to nothing to say no position. A slice or a series a
95375
+ * legend hid is not counted.
95376
+ * - `field`: The table read as blocks. **The first numeric column is each block's
95377
+ * size, and the second its height.** A renderer reads it. (property only) (readonly)
95378
+ * - `active`: The block the keys or the pointer rest on, as its place in `field.blocks`, or `-1`. (property only) (readonly)
95379
+ * - `readings`: The number of blocks, which the keys walk. (property only) (readonly)
95380
+ * - `data`: The readings as data, in the shape of a table, where the page has no
95381
+ * table to point `for` at. `for` wins where both are set.
95382
+ *
95383
+ * ```js
95384
+ * chart.data = {
95385
+ * caption: 'Sessions by channel',
95386
+ * columns: ['Month', 'Direct', 'Referral'],
95387
+ * rows: [['Jan', 10, 4], ['Feb', 20, 8]],
95388
+ * }
95389
+ * ```
95390
+ *
95391
+ * The first column holds each row's label and every column after it a
95392
+ * series, as in a table. A cell is a number, words, `null` for a blank,
95393
+ * or `{ value, text }` for a number shown as words, such as `$128k`. A
95394
+ * number is shown in `locale`.
95395
+ *
95396
+ * **A table is still the better source where the page can show one**:
95397
+ * it reads with no script and before hydration, and a reader can sort and
95398
+ * copy it. Data is drawn on the client only, so a server serves the
95399
+ * frame, and the summary, the keys and the readout are then the whole of
95400
+ * what a screen reader is given. Set a new object to redraw: the chart
95401
+ * does not look inside the one it has. (property only)
95402
+ * - `series`: The table's columns, one series each. Empty when there is no table.
95403
+ *
95404
+ * Held by the controller between edits, so a render reading this five
95405
+ * times parses the table once. See `SourceController.series`. (property only) (readonly)
95406
+ * - `named`: The chart's name: an `aria-label` written on the chart, then `label`,
95407
+ * then the table's caption.
95408
+ *
95409
+ * The fallback is the reason this is shared rather than copied: a caption is
95410
+ * already written, already the right words, and already the thing a reader
95411
+ * of the table sees. A chart that made the consumer say it twice would be
95412
+ * asking for the second one to drift.
95413
+ *
95414
+ * **An `aria-label` on the chart comes first**, because it is how a page
95415
+ * names an element, and the chart is a generic around its plot: written
95416
+ * on the host, the name reached nobody. The plot takes it, as Heatmap's
95417
+ * strip always did. (property only) (readonly)
95418
+ * - `plottedColumns`: The positions of the cells in a row that hold numbers, in table order.
95419
+ *
95420
+ * The same test `readSeries` applies when it drops a column of notes: a
95421
+ * column is a series where any row parses, so a series survives one blank
95422
+ * cell and a column of words is never one. (property only) (readonly)
95423
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
95424
+ *
95425
+ * **Named `whenSettled` because `settled` is taken four times over**, by
95426
+ * Image, Splitter and both color controls, none of them about transitions. A
95427
+ * base class takes the name every subclass then cannot use.
95428
+ *
95429
+ * **The state it reports cannot be watched, which is why this exists.** A
95430
+ * custom state is deliberately not in the DOM, so there is no
95431
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
95432
+ * instead.
95433
+ *
95434
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
95435
+ * the suppression is still active in. That is the distinction `readyToMove`
95436
+ * in `@fusion.dev/helix-testing` is written around.
95437
+ *
95438
+ * It never resolves where `requestAnimationFrame` never fires, which is a
95439
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
95440
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
95441
+ * browser harness's awaits it alone: a browser always runs the frame, and a
95442
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
95443
+ *
95444
+ * ## Events
95445
+ *
95446
+ * Events that will be emitted by the component.
95447
+ *
95448
+ * - `helix-plot-change`: The blocks or the block the keys rest on changed, which the renderer is told. It stays on the chart.
95449
+ * - `helix-plot-turn`: Shift with an arrow asked the view to turn, by a step across or up.
95450
+ * - `helix-reading-change`: The reading moved, or was put away: `index` is the row, or `-1` for none, with its `label` and the `pointerType` that moved it.
95451
+ * - `helix-reading-press`: A block was clicked or pressed with Enter or Space, with the same detail as `helix-reading-change`.
95452
+ *
95453
+ * ## Slots
95454
+ *
95455
+ * Areas where markup can be added to the component.
95456
+ *
95457
+ * - `(default)`: The renderer's box, which the 3D drawing is made in.
95458
+ * - `empty`: Content shown when the table has no readings. Falls back to `empty-text`.
95459
+ * - `loading`: Content shown while `loading` is set and there are no readings yet. Falls back to `loading-text`.
95460
+ *
95461
+ * ## Methods
95462
+ *
95463
+ * Methods that can be called to access component functionality.
95464
+ *
95465
+ * - `rendererDrawn(on = true) => void`: Says whether a renderer has drawn the blocks, which hides the chart's own
95466
+ * drawing or shows it again. Called by the connector.
95467
+ * - `requestActive(index: number, kind: 'mouse' | 'pen' | 'touch' = 'mouse') => void`: Puts the reading on the block at `index`, or lets it go with `-1`, as a
95468
+ * pointer resting on it in the renderer's drawing or a press there does.
95469
+ * A touch keeps it until a tap lands elsewhere, and a mouse leaving a
95470
+ * reading the keys moved to leaves it. Called by the connector.
95471
+ * - `placeReading(at: { x: number; y: number } | undefined) => void`: Says where the renderer draws the reading, as fractions of the plot from
95472
+ * its top left, or `undefined` while it draws none. The tooltip points
95473
+ * there. Called by the connector.
95474
+ * - `seriesOf(cell: number) => number | undefined`: The palette slot for the cell at this position in a row.
95475
+ *
95476
+ * **A cell's place in its row is not its series' depth, and the tooltip
95477
+ * spent a while assuming it was.** `readSeries` drops a column nothing
95478
+ * parses and `readRows` keeps it, so one column of notes among the figures
95479
+ * moves every column after it one color along in the bubble: a row reading
95480
+ * `Referral 1,080` wearing series three's green beside a legend that says
95481
+ * series three is something else, which is the one failure the dot exists
95482
+ * to prevent.
95483
+ *
95484
+ * Overridden where a chart reads the table some other way. `ScatterChart`
95485
+ * splits the first plotted column off as the measure across, so its first
95486
+ * *plotted* series is this table's second numeric column.
95487
+ * - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
95488
+ * reading the same table hid it.
95489
+ *
95490
+ * Asked of the table rather than of a legend, the table being the one
95491
+ * thing the two share: see `SourceController.hide`. A series keeps its
95492
+ * palette slot while it is hidden, so the colors of the others do not move.
95493
+ * For a ring the names are its rows, the slices being the rows.
95494
+ * - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
95495
+ * by its column's heading. The keys and the readout pass over one a
95496
+ * legend hid.
95497
+ *
95498
+ * A column's heading is the cell's name in every row, so the first row
95499
+ * answers for the column.
95500
+ * - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
95501
+ * column's heading, read from the first row that has a cell there, so a
95502
+ * short first row does not lose the heading. `''` where no row has one.
95503
+ *
95504
+ * ## CSS Custom Properties
95505
+ *
95506
+ * CSS variables available for styling the component.
95507
+ *
95508
+ * - `--spatial-treemap-shade`: How far a block's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it.
95509
+ *
95510
+ * ## CSS Parts
95511
+ *
95512
+ * Custom selectors for styling elements within the component.
95513
+ *
95514
+ * - `axis-name`: The height's name, along its edge of the box, in the chart's own drawing.
95515
+ * - `block`: One block, its faces in its group's color.
95516
+ * - `block-active`: The block the pointer or the keys rest on. Set alongside `block`.
95517
+ * - `drawing`: The chart's own drawing in SVG: the box, its grid and numbers, and the blocks.
95518
+ * - `empty`: The words when the table has no readings: the `empty` slot, falling back to `empty-text`.
95519
+ * - `face`: One face of a block the view shows, shaded by which way it faces.
95520
+ * - `fallback`: The box the chart's own drawing fills, shown until a renderer has drawn and where none is connected. Hidden from screen readers.
95521
+ * - `grid`: The box's edges and its grid, in the chart's own drawing.
95522
+ * - `live`: The readout: a polite live region that says the item the keys moved to. Hide it visually.
95523
+ * - `loading`: The words while `loading` is set and there are no readings.
95524
+ * - `mark`: The invisible point the tooltip is anchored to, where the renderer draws the reading.
95525
+ * - `plot`: The box the drawing fills, which takes focus to be read by key. It is named by the host's `aria-labelledby` or `aria-label`, then by `label`, then by the caption of the table.
95526
+ * - `ring`: The outline around the block the pointer or the keys rest on, painted after it, so the blocks in front of it cover it.
95527
+ * - `summary`: The number of items and groups and the range of their sizes, written as a sentence for screen readers, which describes the plot. Hide it visually.
95528
+ * - `table`: The readings as a table, for a screen reader, rendered only where they were drawn from `data`. Hide it visually.
95529
+ * - `tick`: A height at a tick, along its edge of the box, in the chart's own drawing.
95530
+ * - `tooltip`: The bubble, forwarded from `Tooltip`.
95531
+ * - `tooltip-anchor`: The `Tooltip` element itself.
95532
+ * - `tooltip-arrow`: The bubble's point, forwarded from `Tooltip`.
95533
+ * - `tooltip-arrow-bottom`: The point while the bubble is below the reading, on its top edge. Set alongside `tooltip-arrow`.
95534
+ * - `tooltip-arrow-left`: The point while the bubble is left of the reading, on its right edge. Set alongside `tooltip-arrow`.
95535
+ * - `tooltip-arrow-right`: The point while the bubble is right of the reading, on its left edge. Set alongside `tooltip-arrow`.
95536
+ * - `tooltip-arrow-top`: The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
95537
+ * - `tooltip-bottom`: The bubble while it is below the reading. Set alongside `tooltip`.
95538
+ * - `tooltip-cell`: One column's name and value inside the tooltip.
95539
+ * - `tooltip-cell-current`: The cell a chart's series keys rest on, which every chart's tooltip can mark. This chart marks none, since its readout says the measure. Set alongside `tooltip-cell`.
95540
+ * - `tooltip-label`: The row's own name inside the tooltip.
95541
+ * - `tooltip-left`: The bubble while it is left of the reading. Set alongside `tooltip`.
95542
+ * - `tooltip-name`: A column's name inside the tooltip.
95543
+ * - `tooltip-right`: The bubble while it is right of the reading. Set alongside `tooltip`.
95544
+ * - `tooltip-top`: The bubble while it is above the reading. Set alongside `tooltip`.
95545
+ * - `tooltip-value`: A column's value inside the tooltip.
95546
+ *
95547
+ * ## CSS States
95548
+ *
95549
+ * These can be used to apply styling when a component is in a given state.
95550
+ *
95551
+ * - `active`: While a block is shown, under the pointer or the keys.
95552
+ * - `drawn`: While a renderer has drawn the blocks, and the chart's own drawing is hidden.
95553
+ * - `empty`: While the `empty` part stands in place of the readings.
95554
+ * - `loading`: While the `loading` part stands in place of the readings.
95555
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
95556
+ */
95557
+ "helix-headless-spatial-treemap": Partial<
95558
+ HelixHeadlessSpatialTreemapProps &
95559
+ HelixHeadlessSpatialTreemapSolidJsProps &
95560
+ BaseProps<HelixHeadlessSpatialTreemap> &
95561
+ BaseEvents<HelixHeadlessSpatialTreemap>
95562
+ >;
95563
+
92638
95564
  /**
92639
95565
  * A `group` of the dial's menu, named by its label, as React Aria's menu
92640
95566
  * sections and Menu's groups are: a reader hears the name on entering the set,
@@ -99476,6 +102402,12 @@ export type CustomElementsSolidJs = {
99476
102402
  * permitted is the browser's policy, and what follows a refused autoplay is a
99477
102403
  * paused player showing its start control, which is the correct thing to be
99478
102404
  * looking at.
102405
+ *
102406
+ * **Not where the reader asked for less motion**, or while the page has
102407
+ * paused its motion, through `pauseMotion` or `Motion Toggle`: the player
102408
+ * waits on its start control. A page that pauses its motion pauses a video
102409
+ * that started itself, and one that lets it run again plays it again. A
102410
+ * video the reader started is theirs, and neither touches it.
99479
102411
  * - `captions-hidden-label`/`captionsHiddenLabel`: What the live region says when `c` turns captions off.
99480
102412
  * - `captions-label`/`captionsLabel`: The name of the captions control when the video has one track. The control
99481
102413
  * turns that track on and off.
@@ -100381,16 +103313,22 @@ export type CustomCssProperties = {
100381
103313
  "--slider-marker-at"?: (string) | undefined;
100382
103314
  /** Where the filled span ends, as a fraction of the track, 0 to 1: a range's upper thumb, or the farther of a single thumb and its `origin`. */
100383
103315
  "--slider-to"?: (string) | undefined;
103316
+ /** How far a bar's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it. */
103317
+ "--spatial-bar-chart-shade"?: (string) | undefined;
100384
103318
  /** Where the `start` or the `end` label stands clear of the drawing, from the footer's inline start, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns. */
100385
103319
  "--spatial-heatmap-label-x"?: (string) | undefined;
100386
103320
  /** Where the `start` or the `end` label stands clear of the drawing, from the footer's top, in pixels. The component measures it and writes it on the label, with `data-placed`, as the view turns. */
100387
103321
  "--spatial-heatmap-label-y"?: (string) | undefined;
100388
103322
  /** 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. */
100389
103323
  "--spatial-heatmap-span"?: (string) | undefined;
103324
+ /** How far a ribbon's face turns from the light, from 0 for a level top. The component writes it on each face, and the stylesheet that shades the face reads it. */
103325
+ "--spatial-ribbon-chart-shade"?: (string) | undefined;
100390
103326
  /** 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. */
100391
103327
  "--spatial-surface-chart-level"?: (string) | undefined;
100392
103328
  /** 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. */
100393
103329
  "--spatial-surface-chart-shade"?: (string) | undefined;
103330
+ /** How far a block's face turns from the light, from 0 for its top. The component writes it on each face, and the stylesheet that shades the face reads it. */
103331
+ "--spatial-treemap-shade"?: (string) | undefined;
100394
103332
  /** Where a nested splitter crosses this one, as a percentage. */
100395
103333
  "--splitter-corner-at"?: (string) | undefined;
100396
103334
  /** Where the divider sits, as a percentage of the box. */