@fusion.dev/helix 0.187.0 → 0.189.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/api.json +1 -1
  2. package/custom-elements.json +17244 -13377
  3. package/dist/element-events.generated.js +21 -7
  4. package/dist/index.d.ts +3 -1
  5. package/dist/index.js +3 -1
  6. package/dist/orb/shapes.d.ts +2 -2
  7. package/dist/spatial-heatmap/index.d.ts +1 -0
  8. package/dist/spatial-heatmap/index.js +1 -0
  9. package/dist/spatial-heatmap/root/spatial-heatmap-root.css.js +2 -0
  10. package/dist/spatial-heatmap/root/spatial-heatmap-root.d.ts +39 -0
  11. package/dist/spatial-heatmap/root/spatial-heatmap-root.js +18 -0
  12. package/dist/spatial-scatter-chart/index.d.ts +1 -0
  13. package/dist/spatial-scatter-chart/index.js +1 -0
  14. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.css.d.ts +1 -0
  15. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.css.js +2 -0
  16. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.d.ts +27 -0
  17. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.js +15 -0
  18. package/dist/spatial-surface-chart/index.d.ts +1 -0
  19. package/dist/spatial-surface-chart/index.js +1 -0
  20. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.css.d.ts +1 -0
  21. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.css.js +2 -0
  22. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.d.ts +30 -0
  23. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.js +14 -0
  24. package/dist/table/root/table-root.d.ts +1 -0
  25. package/examples.json +1 -1
  26. package/lint.json +1 -1
  27. package/package.json +8 -6
  28. package/skills/helix/SKILL.md +476 -0
  29. package/types/jsx.d.ts +5286 -3714
  30. package/types/svelte.d.ts +3 -1
  31. package/types/vue.d.ts +676 -372
  32. package/types/words.d.ts +14 -0
  33. package/dist/isometric-heatmap/index.d.ts +0 -1
  34. package/dist/isometric-heatmap/index.js +0 -1
  35. package/dist/isometric-heatmap/root/isometric-heatmap-root.css.js +0 -2
  36. package/dist/isometric-heatmap/root/isometric-heatmap-root.d.ts +0 -39
  37. package/dist/isometric-heatmap/root/isometric-heatmap-root.js +0 -18
  38. /package/dist/{isometric-heatmap/root/isometric-heatmap-root.css.d.ts → spatial-heatmap/root/spatial-heatmap-root.css.d.ts} +0 -0
@@ -144,13 +144,6 @@ registerElementEvents({
144
144
  'helix-icon-button': ['helix-press'],
145
145
  'helix-image': ['error', 'load'],
146
146
  'helix-input': ['change', 'helix-before-change', 'helix-clear', 'input'],
147
- 'helix-isometric-heatmap': [
148
- 'change',
149
- 'helix-before-change',
150
- 'helix-reading-change',
151
- 'helix-reading-press',
152
- 'helix-resize',
153
- ],
154
147
  'helix-kbd': ['helix-shortcut'],
155
148
  'helix-legend': ['change', 'helix-before-change'],
156
149
  'helix-lightbox': [
@@ -270,6 +263,27 @@ registerElementEvents({
270
263
  ],
271
264
  'helix-slider': ['change', 'helix-before-change', 'input'],
272
265
  'helix-sparkline': ['helix-reading-change', 'helix-reading-press'],
266
+ 'helix-spatial-heatmap': [
267
+ 'change',
268
+ 'helix-before-change',
269
+ 'helix-plot-change',
270
+ 'helix-plot-turn',
271
+ 'helix-reading-change',
272
+ 'helix-reading-press',
273
+ 'helix-resize',
274
+ ],
275
+ 'helix-spatial-scatter-chart': [
276
+ 'helix-plot-change',
277
+ 'helix-plot-turn',
278
+ 'helix-reading-change',
279
+ 'helix-reading-press',
280
+ ],
281
+ 'helix-spatial-surface-chart': [
282
+ 'helix-plot-change',
283
+ 'helix-plot-turn',
284
+ 'helix-reading-change',
285
+ 'helix-reading-press',
286
+ ],
273
287
  'helix-speed-dial': ['helix-before-close', 'helix-before-open', 'helix-select', 'toggle'],
274
288
  'helix-speed-dial-item': ['helix-select'],
275
289
  'helix-splitter': [
package/dist/index.d.ts CHANGED
@@ -53,7 +53,6 @@ export * from './icon/index.js';
53
53
  export * from './icon-button/index.js';
54
54
  export * from './image/index.js';
55
55
  export * from './input/index.js';
56
- export * from './isometric-heatmap/index.js';
57
56
  export * from './kbd/index.js';
58
57
  export * from './legend/index.js';
59
58
  export * from './lightbox/index.js';
@@ -89,6 +88,9 @@ export * from './skeleton/index.js';
89
88
  export * from './skip-link/index.js';
90
89
  export * from './slider/index.js';
91
90
  export * from './sparkline/index.js';
91
+ export * from './spatial-heatmap/index.js';
92
+ export * from './spatial-scatter-chart/index.js';
93
+ export * from './spatial-surface-chart/index.js';
92
94
  export * from './speed-dial/index.js';
93
95
  export * from './splitter/index.js';
94
96
  export * from './stat/index.js';
package/dist/index.js CHANGED
@@ -48,7 +48,6 @@ export * from './icon/index.js';
48
48
  export * from './icon-button/index.js';
49
49
  export * from './image/index.js';
50
50
  export * from './input/index.js';
51
- export * from './isometric-heatmap/index.js';
52
51
  export * from './kbd/index.js';
53
52
  export * from './legend/index.js';
54
53
  export * from './lightbox/index.js';
@@ -84,6 +83,9 @@ export * from './skeleton/index.js';
84
83
  export * from './skip-link/index.js';
85
84
  export * from './slider/index.js';
86
85
  export * from './sparkline/index.js';
86
+ export * from './spatial-heatmap/index.js';
87
+ export * from './spatial-scatter-chart/index.js';
88
+ export * from './spatial-surface-chart/index.js';
87
89
  export * from './speed-dial/index.js';
88
90
  export * from './splitter/index.js';
89
91
  export * from './stat/index.js';
@@ -6,8 +6,8 @@
6
6
  * the text somebody wrote, so `(typeof ORB_STATES)[number]` reached it as a name
7
7
  * with no values in it and the reference page listed none: a reader was told the
8
8
  * attribute takes an `OrbState` and left to find out what one is. A union on one
9
- * line is what every reader of this repository's sources can resolve, the `axes`
10
- * rule included, and no type system is needed to do it.
9
+ * line is what every reader of the source can resolve, a lint rule included,
10
+ * and no type system is needed to do it.
11
11
  */
12
12
  export type OrbState = 'waiting' | 'connecting' | 'thinking' | 'fetching' | 'listening' | 'working' | 'done';
13
13
  /**
@@ -0,0 +1 @@
1
+ export { HelixSpatialHeatmap } from './root/spatial-heatmap-root.js';
@@ -0,0 +1 @@
1
+ export { HelixSpatialHeatmap } from './root/spatial-heatmap-root.js';
@@ -0,0 +1,2 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`:host {--_spatial-heatmap-cell: var(--spatial-heatmap-cell-size, 1.25rem);--heatmap-tone-accent: var(--helix-color-accent);--heatmap-tone-danger: var(--helix-color-danger);--heatmap-tone-info: var(--helix-color-info);--heatmap-tone-muted: var(--helix-color-surface-sunken);--heatmap-tone-primary: var(--helix-color-primary);--heatmap-tone-success: var(--helix-color-success);--heatmap-tone-warning: var(--helix-color-warning);--heatmap-tone-1: color-mix(in oklab, var(--helix-color-primary-active) 20%, var(--helix-color-surface-sunken));--heatmap-tone-2: color-mix(in oklab, var(--helix-color-primary-active) 40%, var(--helix-color-surface-sunken));--heatmap-tone-3: color-mix(in oklab, var(--helix-color-primary-active) 60%, var(--helix-color-surface-sunken));--heatmap-tone-4: color-mix(in oklab, var(--helix-color-primary-active) 80%, var(--helix-color-surface-sunken));--heatmap-tone-5: var(--helix-color-primary-active);display: grid;grid-template-columns: minmax(0, max-content)}[part~="strip"] {inline-size: calc(var(--spatial-heatmap-span, 1) * 0.866 * var(--_spatial-heatmap-cell));max-inline-size: 100%;position: relative}::slotted([slot="renderer"]) {inset: 0;position: absolute}[part="drawing"] {block-size: auto;display: block;inline-size: 100%;overflow: visible}[part~="cell"], [part~="base"] {--_spatial-heatmap-left: oklch(from var(--_spatial-heatmap-top) calc(l - var(--spatial-heatmap-left-shade, 0.07)) c h);--_spatial-heatmap-right: oklch(from var(--_spatial-heatmap-top) calc(l - var(--spatial-heatmap-right-shade, 0.14)) c h)}[part~="cell"] {--_spatial-heatmap-top: var(--heatmap-tone, color-mix(in oklab, var(--helix-color-surface-sunken), var(--helix-color-surface) 60%))}[part~="base"] {--_spatial-heatmap-top: color-mix(in oklab, var(--helix-color-surface-sunken), var(--helix-color-border) 45%)}[part~="top-face"], [part~="base-top"] {--_spatial-heatmap-face: var(--_spatial-heatmap-top)}[part~="left-face"], [part~="base-left"] {--_spatial-heatmap-face: var(--_spatial-heatmap-left)}[part~="right-face"], [part~="base-right"] {--_spatial-heatmap-face: var(--_spatial-heatmap-right)}[part~="cell"] > *, [part~="base"] > * {--_spatial-heatmap-ink: oklch(from var(--_spatial-heatmap-face) clamp(0, (0.6 - l) * 1000, 1) 0 0);--_spatial-heatmap-edge: oklch(from var(--_spatial-heatmap-face) calc(l + clamp(-0.08, (0.6 - l) * 1000, 0.1)) c h);fill: var(--_spatial-heatmap-face);stroke: var(--_spatial-heatmap-edge);stroke-linejoin: round;stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}[part~="cell-selected"] > * {stroke: var(--spatial-heatmap-selected-color, var(--_spatial-heatmap-ink));stroke-dasharray: 3px 2px;stroke-width: var(--helix-border-thick)}@media (hover: hover) {[part~="cell"]:hover > * {stroke: var(--_spatial-heatmap-ink);stroke-dasharray: none;stroke-width: var(--helix-border-thick)}}[part~="cell-active"] > * {stroke: var(--_spatial-heatmap-ink);stroke-dasharray: none;stroke-width: var(--helix-border-thick)}[part~="strip"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part="live"], [part="overview"], [part="selection"], [part="table"] {block-size: 1px;clip-path: inset(50%);inline-size: 1px;margin: var(--helix-space-none);overflow: hidden;position: absolute;white-space: nowrap}[part="footer"] {color: var(--helix-color-foreground-subtle);display: grid;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);min-block-size: 1lh;padding-block-start: var(--helix-space-xs);position: relative}[part="start"] {inset-block-start: 0;inset-inline-start: calc(var(--spatial-heatmap-start-x, 0) * 100%);margin-block-start: calc((var(--spatial-heatmap-start-y, 0) - var(--spatial-heatmap-depth, 0)) * 100% + 1lh);position: absolute;white-space: nowrap}[part="end"] {inset-block-start: 0;margin-block-start: calc((var(--spatial-heatmap-end-y, 0) - var(--spatial-heatmap-depth, 0)) * 100%);inset-inline-start: calc(var(--spatial-heatmap-end-x, 1) * 100%);position: absolute;translate: -50% 0;white-space: nowrap}[part="summary"] {text-align: center}[part="footer"][data-empty] {display: none}[part="empty"], [part="loading"] {color: var(--helix-color-foreground-subtle);font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);margin: var(--helix-space-none);text-align: center}@media print {[part~="cell"] > *, [part~="base"] > * {stroke: var(--helix-color-border);stroke-width: var(--helix-border-thin)}}@media (forced-colors: active) {[part~="cell"] > * {forced-color-adjust: none;stroke: CanvasText}[part~="base"] > * {fill: Canvas;stroke: CanvasText}[part~="cell-active"] > *, [part~="cell-selected"] > * {stroke: Highlight;stroke-width: var(--helix-border-thick)}}`);
@@ -0,0 +1,39 @@
1
+ import { HelixHeadlessSpatialHeatmap } from '@fusion.dev/helix-headless/spatial-heatmap';
2
+ import type { CSSResultGroup } from 'lit';
3
+ import '../../tooltip/index.js';
4
+ /**
5
+ * @summary A heatmap drawn as a relief, where each reading stands as tall as its value.
6
+ *
7
+ * @description
8
+ * Each reading is a prism. The top face takes the cell's tone, and the two
9
+ * sides are the same tone, shaded darker, so the whole relief follows your
10
+ * theme's colors.
11
+ *
12
+ * `tones="1 2 3 4 5"` uses the same five-step ramp as `Heatmap`, so the tone
13
+ * and the height both show the value. Set `--spatial-heatmap-cell-size` to
14
+ * change how large a cell may grow.
15
+ *
16
+ * @since 0.189.0
17
+ * @status experimental
18
+ * @category charts
19
+ * @documentation https://fusion.dev/helix/components/spatial-heatmap
20
+ *
21
+ * @cssproperty --spatial-heatmap-cell-size - The largest a cell grows, along its edge. The strip is never wider than its box, and draws smaller cells to fit.
22
+ * @cssproperty --spatial-heatmap-left-shade - How much less light the left face is than the top, as a step of OKLCH lightness from 0 to 1. 0.07 by default.
23
+ * @cssproperty --spatial-heatmap-right-shade - How much less light the right face is than the top, as a step of OKLCH lightness from 0 to 1. 0.14 by default.
24
+ * @cssproperty --spatial-heatmap-selected-color - The color of the dashed edges of a selected prism, under `selection-mode`. By default, white on a dark face and black on a light one.
25
+ */
26
+ export declare class HelixSpatialHeatmap extends HelixHeadlessSpatialHeatmap {
27
+ static tier: string;
28
+ static styles: CSSResultGroup;
29
+ /**
30
+ * The smallest cell, in CSS pixels, before the strip draws fewer columns.
31
+ * `gap` is two pixels at that size, so a prism covers five sixths of its cell.
32
+ */
33
+ minCell: number;
34
+ }
35
+ declare global {
36
+ interface HTMLElementTagNameMap {
37
+ 'helix-spatial-heatmap': HelixSpatialHeatmap;
38
+ }
39
+ }
@@ -0,0 +1,18 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@fusion.dev/helix-core';
3
+ import { HelixHeadlessSpatialHeatmap } from '@fusion.dev/helix-headless/spatial-heatmap';
4
+ import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
5
+ import { styles } from './spatial-heatmap-root.css.js';
6
+ import '../../tooltip/index.js';
7
+ let HelixSpatialHeatmap = class HelixSpatialHeatmap extends HelixHeadlessSpatialHeatmap {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.minCell = 10;
11
+ }
12
+ static { this.tier = 'helix-'; }
13
+ static { this.styles = [tooltipStyles, styles]; }
14
+ };
15
+ HelixSpatialHeatmap = __decorate([
16
+ customElement('helix-spatial-heatmap')
17
+ ], HelixSpatialHeatmap);
18
+ export { HelixSpatialHeatmap };
@@ -0,0 +1 @@
1
+ export { HelixSpatialScatterChart } from './root/spatial-scatter-chart-root.js';
@@ -0,0 +1 @@
1
+ export { HelixSpatialScatterChart } from './root/spatial-scatter-chart-root.js';
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,2 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`:host {display: block}[part="plot"] {background-color: var(--helix-color-surface-sunken);block-size: var(--spatial-scatter-chart-block-size, 22em);border-radius: var(--helix-radii-md);overflow: hidden;position: relative}::slotted(*) {inset: 0;position: absolute}[part="plot"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part="fallback"] {inset: var(--helix-space-md);position: absolute}[part="fallback"][hidden] {display: none}[part="drawing"] {block-size: 100%;display: block;font-family: var(--helix-font-sans);inline-size: 100%;overflow: visible}[part="grid"] {fill: none;opacity: 0.35;stroke: var(--helix-color-foreground-muted);stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}[part="tick"] {fill: var(--helix-color-foreground-muted);font-weight: var(--helix-weight-medium)}[part="axis-name"] {fill: var(--helix-color-foreground);font-weight: var(--helix-weight-semibold)}[part~="point"] {fill: var(--chart-series, var(--helix-color-primary));stroke: var(--helix-color-surface-sunken);stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}foreignObject > [part="mark"] {translate: -50% -50%}[part="ring"] {fill: none;pointer-events: none;stroke: var(--helix-color-foreground);stroke-width: var(--helix-border-thick);vector-effect: non-scaling-stroke}[part="live"], [part="summary"], [part="table"] {block-size: 1px;clip-path: inset(50%);inline-size: 1px;margin: var(--helix-space-none);overflow: hidden;position: absolute;white-space: nowrap}[part="empty"], [part="loading"] {color: var(--helix-color-foreground-subtle);font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);margin: var(--helix-space-none);text-align: center}@media print {[part~="point"] {stroke: var(--helix-color-border)}}@media (forced-colors: active) {[part~="point"] {forced-color-adjust: none;stroke: CanvasText}[part="grid"] {stroke: CanvasText}[part="tick"], [part="axis-name"] {fill: CanvasText}[part="ring"] {stroke: Highlight}}`);
@@ -0,0 +1,27 @@
1
+ import { HelixHeadlessSpatialScatterChart } from '@fusion.dev/helix-headless/spatial-scatter-chart';
2
+ import type { CSSResultGroup } from 'lit';
3
+ import '../../tooltip/index.js';
4
+ /**
5
+ * @summary A chart that plots each row as a point in three dimensions, for data with three measures.
6
+ *
7
+ * @description
8
+ * The points are drawn in 3D by a renderer the page connects, and as a flat
9
+ * scatter of the first two measures until it has drawn. Each group takes a
10
+ * series color from the theme, as every chart's series does.
11
+ *
12
+ * @since 0.189.0
13
+ * @status experimental
14
+ * @category charts
15
+ * @documentation https://fusion.dev/helix/components/spatial-scatter-chart
16
+ *
17
+ * @cssproperty --spatial-scatter-chart-block-size - How tall the plot is.
18
+ */
19
+ export declare class HelixSpatialScatterChart extends HelixHeadlessSpatialScatterChart {
20
+ static tier: string;
21
+ static styles: CSSResultGroup;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ 'helix-spatial-scatter-chart': HelixSpatialScatterChart;
26
+ }
27
+ }
@@ -0,0 +1,15 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@fusion.dev/helix-core';
3
+ import { HelixHeadlessSpatialScatterChart } from '@fusion.dev/helix-headless/spatial-scatter-chart';
4
+ import { styles as seriesStyles } from '../../shared/chart/series.css.js';
5
+ import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
6
+ import { styles } from './spatial-scatter-chart-root.css.js';
7
+ import '../../tooltip/index.js';
8
+ let HelixSpatialScatterChart = class HelixSpatialScatterChart extends HelixHeadlessSpatialScatterChart {
9
+ static { this.tier = 'helix-'; }
10
+ static { this.styles = [seriesStyles, tooltipStyles, styles]; }
11
+ };
12
+ HelixSpatialScatterChart = __decorate([
13
+ customElement('helix-spatial-scatter-chart')
14
+ ], HelixSpatialScatterChart);
15
+ export { HelixSpatialScatterChart };
@@ -0,0 +1 @@
1
+ export { HelixSpatialSurfaceChart } from './root/spatial-surface-chart-root.js';
@@ -0,0 +1 @@
1
+ export { HelixSpatialSurfaceChart } from './root/spatial-surface-chart-root.js';
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,2 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`:host {--_spatial-surface-chart-high: var(--spatial-surface-chart-high, var(--helix-color-primary-active));--_spatial-surface-chart-low: var(--spatial-surface-chart-low, color-mix(in oklab, var(--helix-color-primary-active) 15%, var(--helix-color-surface-sunken)));display: block}[part="plot"] {background-color: var(--helix-color-surface-sunken);block-size: var(--spatial-surface-chart-block-size, 22em);border-radius: var(--helix-radii-md);overflow: hidden;position: relative}::slotted(*) {inset: 0;position: absolute}[part="plot"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part="fallback"] {inset: var(--helix-space-md);position: absolute}[part="fallback"][hidden] {display: none}[part="drawing"] {block-size: 100%;display: block;font-family: var(--helix-font-sans);inline-size: 100%;overflow: visible}[part="grid"] {fill: none;opacity: 0.35;stroke: var(--helix-color-foreground-muted);stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}[part="tick"] {fill: var(--helix-color-foreground-muted);font-weight: var(--helix-weight-medium)}[part="axis-name"] {fill: var(--helix-color-foreground);font-weight: var(--helix-weight-semibold)}[part="face"] {--_spatial-surface-chart-color: color-mix(in oklab, var(--_spatial-surface-chart-high) calc(var(--spatial-surface-chart-level, 0) * 100%), var(--_spatial-surface-chart-low));--_spatial-surface-chart-lit: oklch(from var(--_spatial-surface-chart-color) calc(l - var(--spatial-surface-chart-shade, 0)) c h);--_spatial-surface-chart-rule: oklch(from var(--_spatial-surface-chart-lit) calc(l + clamp(-0.1, (0.6 - l) * 1000, 0.14)) c h);fill: var(--_spatial-surface-chart-lit);stroke: var(--_spatial-surface-chart-rule);stroke-linejoin: round;stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}foreignObject > [part="mark"] {translate: -50% -50%}[part="ring"] {fill: none;pointer-events: none;stroke: var(--helix-color-foreground);stroke-width: var(--helix-border-thick);vector-effect: non-scaling-stroke}[part="live"], [part="summary"], [part="table"] {block-size: 1px;clip-path: inset(50%);inline-size: 1px;margin: var(--helix-space-none);overflow: hidden;position: absolute;white-space: nowrap}[part="empty"], [part="loading"] {color: var(--helix-color-foreground-subtle);font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);margin: var(--helix-space-none);text-align: center}@media print {[part="face"] {stroke: var(--helix-color-border)}}@media (forced-colors: active) {[part="face"] {forced-color-adjust: none;stroke: CanvasText}[part="grid"] {stroke: CanvasText}[part="tick"], [part="axis-name"] {fill: CanvasText}[part="ring"] {stroke: Highlight}}`);
@@ -0,0 +1,30 @@
1
+ import { HelixHeadlessSpatialSurfaceChart } from '@fusion.dev/helix-headless/spatial-surface-chart';
2
+ import type { CSSResultGroup } from 'lit';
3
+ import '../../tooltip/index.js';
4
+ /**
5
+ * @summary A chart that draws a height over a grid as a surface in three dimensions, for a measure that varies over two others.
6
+ *
7
+ * @description
8
+ * The surface is drawn in 3D by a renderer the page connects, and as a flat
9
+ * grid seen from above until it has drawn. Every height is shaded along one
10
+ * ramp from the theme's primary color, quiet where it is low and strong where
11
+ * it is high, so the two drawings agree.
12
+ *
13
+ * @since 0.189.0
14
+ * @status experimental
15
+ * @category charts
16
+ * @documentation https://fusion.dev/helix/components/spatial-surface-chart
17
+ *
18
+ * @cssproperty --spatial-surface-chart-block-size - How tall the plot is.
19
+ * @cssproperty --spatial-surface-chart-high - The color of the highest reading, which the renderer reads too.
20
+ * @cssproperty --spatial-surface-chart-low - The color of the lowest reading, which the renderer reads too.
21
+ */
22
+ export declare class HelixSpatialSurfaceChart extends HelixHeadlessSpatialSurfaceChart {
23
+ static tier: string;
24
+ static styles: CSSResultGroup;
25
+ }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'helix-spatial-surface-chart': HelixSpatialSurfaceChart;
29
+ }
30
+ }
@@ -0,0 +1,14 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@fusion.dev/helix-core';
3
+ import { HelixHeadlessSpatialSurfaceChart } from '@fusion.dev/helix-headless/spatial-surface-chart';
4
+ import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
5
+ import { styles } from './spatial-surface-chart-root.css.js';
6
+ import '../../tooltip/index.js';
7
+ let HelixSpatialSurfaceChart = class HelixSpatialSurfaceChart extends HelixHeadlessSpatialSurfaceChart {
8
+ static { this.tier = 'helix-'; }
9
+ static { this.styles = [tooltipStyles, styles]; }
10
+ };
11
+ HelixSpatialSurfaceChart = __decorate([
12
+ customElement('helix-spatial-surface-chart')
13
+ ], HelixSpatialSurfaceChart);
14
+ export { HelixSpatialSurfaceChart };
@@ -14,6 +14,7 @@ import '../../checkbox/index.js';
14
14
  * @documentation https://fusion.dev/helix/components/table
15
15
  *
16
16
  * @slot - The table's rows.
17
+ * @slot columns - The columns, as `TableColumn` elements. The table moves each column here itself, so markup that runs in a browser leaves it out; a server-rendered page writes `slot="columns"` on each column so the headings sit in place before the table upgrades.
17
18
  * @slot empty - Content shown when there are no rows and none are loading, such as a picture and a link. Falls back to `empty-text`, which the live region still says.
18
19
  * @slot error - Content shown while `error-text` is set, such as a button that tries again. Falls back to `error-text`, which the live region still says.
19
20
  * @slot heading - Words that name the table, shown above it in the weight of a heading.