@fusion.dev/helix 0.198.0 → 0.199.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 (50) hide show
  1. package/api.json +1 -1
  2. package/custom-elements.json +9200 -2296
  3. package/dist/element-events.generated.js +19 -0
  4. package/dist/graph/root/graph-root.css.js +1 -1
  5. package/dist/heatmap/root/heatmap-root.css.js +1 -1
  6. package/dist/heatmap/root/heatmap-root.d.ts +20 -0
  7. package/dist/heatmap/root/heatmap-root.js +7 -0
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.js +4 -0
  10. package/dist/motion-toggle/index.d.ts +1 -0
  11. package/dist/motion-toggle/index.js +1 -0
  12. package/dist/motion-toggle/root/motion-toggle-root.css.d.ts +1 -0
  13. package/dist/motion-toggle/root/motion-toggle-root.css.js +2 -0
  14. package/dist/motion-toggle/root/motion-toggle-root.d.ts +26 -0
  15. package/dist/motion-toggle/root/motion-toggle-root.js +12 -0
  16. package/dist/spatial-bar-chart/index.d.ts +1 -0
  17. package/dist/spatial-bar-chart/index.js +1 -0
  18. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.css.d.ts +1 -0
  19. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.css.js +2 -0
  20. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.d.ts +49 -0
  21. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.js +22 -0
  22. package/dist/spatial-heatmap/root/spatial-heatmap-root.css.js +1 -1
  23. package/dist/spatial-heatmap/root/spatial-heatmap-root.d.ts +21 -0
  24. package/dist/spatial-heatmap/root/spatial-heatmap-root.js +7 -0
  25. package/dist/spatial-ribbon-chart/index.d.ts +1 -0
  26. package/dist/spatial-ribbon-chart/index.js +1 -0
  27. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.css.d.ts +1 -0
  28. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.css.js +2 -0
  29. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.d.ts +49 -0
  30. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.js +22 -0
  31. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.css.js +1 -1
  32. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.d.ts +20 -0
  33. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.js +7 -0
  34. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.css.js +1 -1
  35. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.d.ts +22 -0
  36. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.js +7 -0
  37. package/dist/spatial-treemap/index.d.ts +1 -0
  38. package/dist/spatial-treemap/index.js +1 -0
  39. package/dist/spatial-treemap/root/spatial-treemap-root.css.d.ts +1 -0
  40. package/dist/spatial-treemap/root/spatial-treemap-root.css.js +2 -0
  41. package/dist/spatial-treemap/root/spatial-treemap-root.d.ts +49 -0
  42. package/dist/spatial-treemap/root/spatial-treemap-root.js +22 -0
  43. package/examples.json +1 -1
  44. package/lint.json +1 -1
  45. package/package.json +6 -6
  46. package/skills/helix/SKILL.md +2 -2
  47. package/types/jsx.d.ts +3510 -450
  48. package/types/svelte.d.ts +4 -0
  49. package/types/vue.d.ts +637 -2
  50. package/types/words.d.ts +25 -5
@@ -208,6 +208,7 @@ registerElementEvents({
208
208
  ],
209
209
  'helix-menu-item': ['helix-before-toggle', 'helix-select'],
210
210
  'helix-meter': ['helix-band'],
211
+ 'helix-motion-toggle': ['change'],
211
212
  'helix-notification': ['helix-dismiss', 'helix-read'],
212
213
  'helix-notification-group': ['helix-before-close', 'helix-before-open', 'toggle'],
213
214
  'helix-notifications': ['helix-dismiss', 'helix-load-more', 'helix-read'],
@@ -263,6 +264,12 @@ registerElementEvents({
263
264
  ],
264
265
  'helix-slider': ['change', 'helix-before-change', 'input'],
265
266
  'helix-sparkline': ['helix-reading-change', 'helix-reading-press'],
267
+ 'helix-spatial-bar-chart': [
268
+ 'helix-plot-change',
269
+ 'helix-plot-turn',
270
+ 'helix-reading-change',
271
+ 'helix-reading-press',
272
+ ],
266
273
  'helix-spatial-heatmap': [
267
274
  'change',
268
275
  'helix-before-change',
@@ -272,6 +279,12 @@ registerElementEvents({
272
279
  'helix-reading-press',
273
280
  'helix-resize',
274
281
  ],
282
+ 'helix-spatial-ribbon-chart': [
283
+ 'helix-plot-change',
284
+ 'helix-plot-turn',
285
+ 'helix-reading-change',
286
+ 'helix-reading-press',
287
+ ],
275
288
  'helix-spatial-scatter-chart': [
276
289
  'helix-plot-change',
277
290
  'helix-plot-turn',
@@ -284,6 +297,12 @@ registerElementEvents({
284
297
  'helix-reading-change',
285
298
  'helix-reading-press',
286
299
  ],
300
+ 'helix-spatial-treemap': [
301
+ 'helix-plot-change',
302
+ 'helix-plot-turn',
303
+ 'helix-reading-change',
304
+ 'helix-reading-press',
305
+ ],
287
306
  'helix-speed-dial': ['helix-before-close', 'helix-before-open', 'helix-select', 'toggle'],
288
307
  'helix-speed-dial-item': ['helix-select'],
289
308
  'helix-splitter': [
@@ -1,2 +1,2 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {display: contents}[part="region"] {background-color: var(--graph-background-color, var(--helix-color-surface-sunken));block-size: var(--graph-block-size, 32rem);border: var(--helix-border-thin) solid var(--graph-border-color, var(--helix-color-border));border-radius: var(--helix-radii-sm);box-sizing: border-box;container-type: inline-size;display: grid;grid-template-rows: auto minmax(0, 1fr) auto;overflow: hidden;position: relative}[part="body"] {display: grid;grid-template-columns: minmax(0, 1fr) var(--graph-panel-size, 18rem);min-block-size: 0}[part="stage"] {isolation: isolate;min-block-size: 0;overflow: hidden;position: relative}[part="viewport"] {inset: 0;position: absolute}[part="viewport"] ::slotted(*) {block-size: 100%;inline-size: 100%}[part="panel"] {background-color: var(--graph-panel-background-color, var(--helix-color-surface));border-inline-start: var(--helix-border-thin) solid var(--helix-color-border);color: var(--graph-panel-color, var(--helix-color-foreground));display: grid;grid-template-columns: minmax(0, 1fr);grid-template-rows: auto minmax(0, 1fr);min-block-size: 0}@container (inline-size < 40rem) {[part="body"] {grid-template-columns: minmax(0, 1fr);grid-template-rows: minmax(0, 3fr) minmax(0, 2fr)}[part="panel"] {border-block-start: var(--helix-border-thin) solid var(--helix-color-border);border-inline-start: none}}:host([no-panel]) [part="body"] {grid-template-columns: minmax(0, 1fr);grid-template-rows: minmax(0, 1fr);position: relative}:host([no-panel]) [part="panel"] {border: var(--helix-border-floating) solid var(--helix-color-border);border-radius: var(--helix-radii-sm);box-shadow: var(--helix-shadow-floating);inline-size: min(var(--graph-panel-size, 18rem), calc(100% - var(--helix-space-sm) * 2));inset-block: var(--helix-space-sm);inset-inline-end: var(--helix-space-sm);overflow: hidden;position: absolute;z-index: 1}:host([no-panel]) [part="panel"][hidden] {display: none}:host([no-panel]) [part="body"]:has([part="panel"]:not([hidden])) [part="controls"] {inset-inline-end: calc(min(var(--graph-panel-size, 18rem), 100%) + var(--helix-space-sm) * 2)}[part="notes-toggle"] {grid-area: notes}[part="notes-toggle"] svg {block-size: 1em;inline-size: 1em}[part="controls"]:has([part="notes-toggle"]):not(:has([part="pan-up"])) {grid-template-areas: "zoomin" "zoomout" "notes" "full"}[part="controls"]:has([part="notes-toggle"]):has([part="pan-up"]) {grid-template-areas: ". up . zoomin" "start . end zoomout" ". down . notes" ". . . full"}[part="legend"] {display: flex;flex-wrap: wrap;gap: var(--helix-space-2xs);inset-block-end: var(--helix-space-sm);inset-inline-start: var(--helix-space-sm);max-inline-size: calc(100% - var(--helix-space-sm) * 3 - var(--helix-size-control-sm));position: absolute}:host([controls-placement="bottom-start"]) [part="legend"] {inset-inline: auto var(--helix-space-sm)}@container (inline-size < 40rem) {[part="legend"] {flex-wrap: nowrap;inset-block-end: calc(var(--helix-space-sm) - var(--helix-space-2xs));inset-inline-start: calc(var(--helix-space-sm) - var(--helix-space-2xs));overflow-x: auto;padding: var(--helix-space-2xs);scrollbar-width: none}}[part~="legend-item"] {align-items: center;background-color: var(--viewport-control-background-color, var(--helix-color-surface-overlay));block-size: var(--helix-size-control-tight);border: var(--helix-border-floating) solid var(--helix-color-border);border-radius: var(--helix-radii-sm);box-shadow: var(--helix-shadow-floating);color: var(--helix-color-foreground);cursor: pointer;display: inline-flex;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);font-weight: var(--helix-weight-medium);gap: var(--helix-space-2xs);padding-inline: var(--helix-space-xs);white-space: nowrap}[part~="legend-item"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part~="legend-item"]:nth-child(24n + 1) {--_graph-swatch: var(--helix-color-series-1)}[part~="legend-item"]:nth-child(24n + 2) {--_graph-swatch: var(--helix-color-series-2)}[part~="legend-item"]:nth-child(24n + 3) {--_graph-swatch: var(--helix-color-series-3)}[part~="legend-item"]:nth-child(24n + 4) {--_graph-swatch: var(--helix-color-series-4)}[part~="legend-item"]:nth-child(24n + 5) {--_graph-swatch: var(--helix-color-series-5)}[part~="legend-item"]:nth-child(24n + 6) {--_graph-swatch: var(--helix-color-series-6)}[part~="legend-item"]:nth-child(24n + 7) {--_graph-swatch: var(--helix-color-series-7)}[part~="legend-item"]:nth-child(24n + 8) {--_graph-swatch: var(--helix-color-series-8)}[part~="legend-item"]:nth-child(24n + 9) {--_graph-swatch: var(--helix-color-series-9)}[part~="legend-item"]:nth-child(24n + 10) {--_graph-swatch: var(--helix-color-series-10)}[part~="legend-item"]:nth-child(24n + 11) {--_graph-swatch: var(--helix-color-series-11)}[part~="legend-item"]:nth-child(24n + 12) {--_graph-swatch: var(--helix-color-series-12)}[part~="legend-item"]:nth-child(24n + 13) {--_graph-swatch: var(--helix-color-series-13)}[part~="legend-item"]:nth-child(24n + 14) {--_graph-swatch: var(--helix-color-series-14)}[part~="legend-item"]:nth-child(24n + 15) {--_graph-swatch: var(--helix-color-series-15)}[part~="legend-item"]:nth-child(24n + 16) {--_graph-swatch: var(--helix-color-series-16)}[part~="legend-item"]:nth-child(24n + 17) {--_graph-swatch: var(--helix-color-series-17)}[part~="legend-item"]:nth-child(24n + 18) {--_graph-swatch: var(--helix-color-series-18)}[part~="legend-item"]:nth-child(24n + 19) {--_graph-swatch: var(--helix-color-series-19)}[part~="legend-item"]:nth-child(24n + 20) {--_graph-swatch: var(--helix-color-series-20)}[part~="legend-item"]:nth-child(24n + 21) {--_graph-swatch: var(--helix-color-series-21)}[part~="legend-item"]:nth-child(24n + 22) {--_graph-swatch: var(--helix-color-series-22)}[part~="legend-item"]:nth-child(24n + 23) {--_graph-swatch: var(--helix-color-series-23)}[part~="legend-item"]:nth-child(24n + 24) {--_graph-swatch: var(--helix-color-series-24)}[part~="legend-item"][data-tone="accent"] {--_graph-swatch: var(--helix-color-accent)}[part~="legend-item"][data-tone="danger"] {--_graph-swatch: var(--helix-color-danger)}[part~="legend-item"][data-tone="info"] {--_graph-swatch: var(--helix-color-info)}[part~="legend-item"][data-tone="neutral"] {--_graph-swatch: var(--helix-color-foreground-muted)}[part~="legend-item"][data-tone="primary"] {--_graph-swatch: var(--helix-color-primary)}[part~="legend-item"][data-tone="success"] {--_graph-swatch: var(--helix-color-success)}[part~="legend-item"][data-tone="warning"] {--_graph-swatch: var(--helix-color-warning)}[part="legend-swatch"] {block-size: var(--helix-space-xs);border: var(--helix-border-thin) solid var(--_graph-swatch, var(--helix-color-foreground-muted));border-radius: var(--helix-radii-full);box-sizing: border-box;background-color: var(--_graph-swatch, var(--helix-color-foreground-muted));flex: 0 0 auto;inline-size: var(--helix-space-xs)}[part~="legend-item-hidden"] {color: var(--helix-color-foreground-subtle)}[part~="legend-item-hidden"] [part="legend-swatch"] {background-color: transparent}[part="search"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);display: flex;gap: var(--helix-space-2xs);padding: var(--helix-space-2xs);padding-inline-start: var(--helix-space-xs)}[part="filter-icon"] {align-items: center;color: var(--helix-color-foreground-subtle);display: inline-flex;flex: 0 0 auto}[part="filter-icon"] svg, slot[name="filter-icon"]::slotted(*) {--icon-size: var(--helix-size-icon-tight);block-size: var(--helix-size-icon-tight);inline-size: var(--helix-size-icon-tight)}[part="search-field"] {appearance: none;background-color: transparent;block-size: var(--helix-size-control-tight);border: none;box-sizing: border-box;color: var(--helix-color-foreground);flex: 1 1 auto;font-family: var(--helix-font-sans);font-size: max(var(--helix-text-field-min), var(--helix-text-sm));font-weight: var(--helix-weight-medium);min-inline-size: 0;padding-inline: var(--helix-space-2xs)}[part="search-field"]::placeholder {color: var(--helix-color-foreground-subtle)}[part="search-field"]:focus-visible {outline: none}[part="search"]:has([part="search-field"]:focus-visible), [part="list"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1)}[part="count"] {color: var(--helix-color-foreground-muted);flex: 0 0 auto;font-size: var(--helix-text-xs);font-variant-numeric: tabular-nums;padding-inline-end: calc(var(--helix-space-xs) - var(--helix-space-2xs))}[part="empty"], [part="loading"] {color: var(--helix-color-foreground-muted);font-size: var(--helix-text-sm);grid-area: 2 / 1;padding: var(--helix-space-sm)}[part="list"] {min-block-size: 0;overflow-y: auto;overscroll-behavior: contain;padding-block: var(--helix-space-2xs)}[part~="note"] {align-items: center;box-sizing: border-box;cursor: pointer;display: flex;font-size: var(--graph-note-text, var(--helix-text-sm));gap: var(--helix-space-sm);min-block-size: var(--helix-size-control-tight);padding-block: var(--helix-space-2xs);padding-inline: var(--graph-note-padding-inline, var(--helix-space-xs));user-select: none}[part~="note"]:hover, [part="list"]:focus-visible [part~="note-cursor"], [part="search"]:has([aria-activedescendant]) ~ [part="list"] [part~="note-cursor"] {--_graph-wash: var(--graph-note-hover-color, light-dark(color-mix(in oklab, var(--helix-color-foreground) 8%, transparent), color-mix(in oklab, var(--helix-color-foreground) 12%, transparent)));background-image: linear-gradient(var(--_graph-wash), var(--_graph-wash))}[part="note-name"] {flex: 0 1 auto;max-inline-size: 70%;min-inline-size: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}[part="note-relation"] {color: var(--graph-note-relation-color, var(--helix-color-foreground-muted));flex: 1 1 0;font-size: var(--helix-text-xs);min-inline-size: 0;overflow: hidden;text-align: end;text-overflow: ellipsis;white-space: nowrap}[part~="note-selected"] {background-color: var(--graph-note-selected-background-color, var(--helix-color-surface-sunken))}[part~="note-selected"] [part="note-name"] {font-weight: var(--graph-note-selected-weight, var(--helix-weight-semibold))}[part="header"], [part="footer"] {min-inline-size: 0}@media (forced-colors: active) {[part~="legend-item-hidden"] {color: GrayText}[part="legend-swatch"] {forced-color-adjust: none}[part="list"]:focus-visible [part~="note-cursor"], [part="search"]:has([aria-activedescendant]) ~ [part="list"] [part~="note-cursor"] {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1)}[part~="note-selected"], [part~="note-selected"] [part="note-relation"] {background-color: Highlight;color: HighlightText;forced-color-adjust: none}}@media print {:host {print-color-adjust: economy}}`);
2
+ export const styles = createSheet(`:host {display: contents}[part="region"] {background-color: var(--graph-background-color, var(--helix-color-surface-sunken));block-size: var(--graph-block-size, 32rem);border: var(--helix-border-thin) solid var(--graph-border-color, var(--helix-color-border));border-radius: var(--helix-radii-sm);box-sizing: border-box;container-type: inline-size;display: grid;grid-template-rows: auto minmax(0, 1fr) auto;overflow: hidden;position: relative}[part="body"] {display: grid;grid-template-columns: minmax(0, 1fr) var(--graph-panel-size, 18rem);min-block-size: 0}[part="stage"] {isolation: isolate;min-block-size: 0;overflow: hidden;position: relative}[part="viewport"] {inset: 0;position: absolute}[part="viewport"] ::slotted(*) {block-size: 100%;inline-size: 100%}[part="panel"] {background-color: var(--graph-panel-background-color, var(--helix-color-surface));border-inline-start: var(--helix-border-thin) solid var(--helix-color-border);color: var(--graph-panel-color, var(--helix-color-foreground));display: grid;grid-template-columns: minmax(0, 1fr);grid-template-rows: auto minmax(0, 1fr);min-block-size: 0}@container (inline-size < 40rem) {[part="body"] {grid-template-columns: minmax(0, 1fr);grid-template-rows: minmax(0, 3fr) minmax(0, 2fr)}[part="panel"] {border-block-start: var(--helix-border-thin) solid var(--helix-color-border);border-inline-start: none}}:host([no-panel]) [part="body"] {grid-template-columns: minmax(0, 1fr);grid-template-rows: minmax(0, 1fr);position: relative}:host([no-panel]) [part="panel"] {border: var(--helix-border-floating) solid var(--helix-color-border);border-radius: var(--helix-radii-sm);box-shadow: var(--helix-shadow-floating);inline-size: min(var(--graph-panel-size, 18rem), calc(100% - var(--helix-space-sm) * 2));inset-block: var(--helix-space-sm);inset-inline-end: var(--helix-space-sm);overflow: hidden;position: absolute;z-index: 1}:host([no-panel]) [part="panel"][hidden] {display: none}:host([no-panel]) [part="body"]:has([part="panel"]:not([hidden])) [part="controls"] {inset-inline-end: calc(min(var(--graph-panel-size, 18rem), 100%) + var(--helix-space-sm) * 2)}[part="notes-toggle"] {grid-area: notes}[part="notes-toggle"] svg {block-size: 1em;inline-size: 1em}[part="controls"]:has([part="notes-toggle"]):not(:has([part="pan-up"])) {grid-template-areas: "zoomin" "zoomout" "notes" "full"}[part="controls"]:has([part="notes-toggle"]):has([part="pan-up"]) {grid-template-areas: ". up . zoomin" "start . end zoomout" ". down . notes" ". . . full"}[part="legend"] {display: flex;flex-wrap: wrap;gap: var(--helix-space-2xs);inset-block-end: var(--helix-space-sm);inset-inline-start: var(--helix-space-sm);max-inline-size: calc(100% - var(--helix-space-sm) * 3 - var(--helix-size-control-sm));position: absolute}:host([controls-placement="bottom-start"]) [part="legend"] {inset-inline: auto var(--helix-space-sm)}@container (inline-size < 40rem) {[part="legend"] {flex-wrap: nowrap;inset-block-end: calc(var(--helix-space-sm) - var(--helix-space-2xs));inset-inline-start: calc(var(--helix-space-sm) - var(--helix-space-2xs));overflow-x: auto;padding: var(--helix-space-2xs);scrollbar-width: none}}[part~="legend-item"] {align-items: center;background-color: var(--viewport-control-background-color, var(--helix-color-surface-overlay));block-size: var(--helix-size-control-tight);border: var(--helix-border-floating) solid var(--helix-color-border);border-radius: var(--helix-radii-sm);box-shadow: var(--helix-shadow-floating);color: var(--helix-color-foreground);cursor: pointer;display: inline-flex;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);font-weight: var(--helix-weight-medium);gap: var(--helix-space-2xs);padding-inline: var(--helix-space-xs);white-space: nowrap}[part~="legend-item"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part~="legend-item"]:nth-child(24n + 1) {--_graph-swatch: var(--helix-color-series-1)}[part~="legend-item"]:nth-child(24n + 2) {--_graph-swatch: var(--helix-color-series-2)}[part~="legend-item"]:nth-child(24n + 3) {--_graph-swatch: var(--helix-color-series-3)}[part~="legend-item"]:nth-child(24n + 4) {--_graph-swatch: var(--helix-color-series-4)}[part~="legend-item"]:nth-child(24n + 5) {--_graph-swatch: var(--helix-color-series-5)}[part~="legend-item"]:nth-child(24n + 6) {--_graph-swatch: var(--helix-color-series-6)}[part~="legend-item"]:nth-child(24n + 7) {--_graph-swatch: var(--helix-color-series-7)}[part~="legend-item"]:nth-child(24n + 8) {--_graph-swatch: var(--helix-color-series-8)}[part~="legend-item"]:nth-child(24n + 9) {--_graph-swatch: var(--helix-color-series-9)}[part~="legend-item"]:nth-child(24n + 10) {--_graph-swatch: var(--helix-color-series-10)}[part~="legend-item"]:nth-child(24n + 11) {--_graph-swatch: var(--helix-color-series-11)}[part~="legend-item"]:nth-child(24n + 12) {--_graph-swatch: var(--helix-color-series-12)}[part~="legend-item"]:nth-child(24n + 13) {--_graph-swatch: var(--helix-color-series-13)}[part~="legend-item"]:nth-child(24n + 14) {--_graph-swatch: var(--helix-color-series-14)}[part~="legend-item"]:nth-child(24n + 15) {--_graph-swatch: var(--helix-color-series-15)}[part~="legend-item"]:nth-child(24n + 16) {--_graph-swatch: var(--helix-color-series-16)}[part~="legend-item"]:nth-child(24n + 17) {--_graph-swatch: var(--helix-color-series-17)}[part~="legend-item"]:nth-child(24n + 18) {--_graph-swatch: var(--helix-color-series-18)}[part~="legend-item"]:nth-child(24n + 19) {--_graph-swatch: var(--helix-color-series-19)}[part~="legend-item"]:nth-child(24n + 20) {--_graph-swatch: var(--helix-color-series-20)}[part~="legend-item"]:nth-child(24n + 21) {--_graph-swatch: var(--helix-color-series-21)}[part~="legend-item"]:nth-child(24n + 22) {--_graph-swatch: var(--helix-color-series-22)}[part~="legend-item"]:nth-child(24n + 23) {--_graph-swatch: var(--helix-color-series-23)}[part~="legend-item"]:nth-child(24n + 24) {--_graph-swatch: var(--helix-color-series-24)}[part~="legend-item"][data-tone="accent"] {--_graph-swatch: var(--helix-color-accent)}[part~="legend-item"][data-tone="danger"] {--_graph-swatch: var(--helix-color-danger)}[part~="legend-item"][data-tone="info"] {--_graph-swatch: var(--helix-color-info)}[part~="legend-item"][data-tone="neutral"] {--_graph-swatch: var(--helix-color-foreground-muted)}[part~="legend-item"][data-tone="primary"] {--_graph-swatch: var(--helix-color-primary)}[part~="legend-item"][data-tone="success"] {--_graph-swatch: var(--helix-color-success)}[part~="legend-item"][data-tone="warning"] {--_graph-swatch: var(--helix-color-warning)}[part="legend-swatch"] {block-size: var(--helix-space-xs);border: var(--helix-border-thin) solid var(--_graph-swatch, var(--helix-color-foreground-muted));border-radius: var(--helix-radii-full);box-sizing: border-box;background-color: var(--_graph-swatch, var(--helix-color-foreground-muted));flex: 0 0 auto;inline-size: var(--helix-space-xs)}[part~="legend-item-hidden"] {color: var(--helix-color-foreground-subtle)}[part~="legend-item-hidden"] [part="legend-swatch"] {background-color: transparent}[part="search"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);display: flex;gap: var(--helix-space-2xs);padding: var(--helix-space-2xs);padding-inline-start: var(--helix-space-xs)}[part="filter-icon"] {align-items: center;color: var(--helix-color-foreground-subtle);display: inline-flex;flex: 0 0 auto}[part="filter-icon"] svg, slot[name="filter-icon"]::slotted(*) {--icon-size: var(--helix-size-icon-tight);block-size: var(--helix-size-icon-tight);inline-size: var(--helix-size-icon-tight)}[part="search-field"] {appearance: none;background-color: transparent;block-size: var(--helix-size-control-tight);border: none;box-sizing: border-box;color: var(--helix-color-foreground);flex: 1 1 auto;font-family: var(--helix-font-sans);font-size: max(var(--helix-text-field-min), var(--helix-text-sm));font-weight: var(--helix-weight-medium);min-inline-size: 0;padding-inline: var(--helix-space-2xs)}[part="search-field"]::placeholder {color: var(--helix-color-foreground-subtle)}[part="search-field"]:focus-visible {outline: none}[part="search"]:has([part="search-field"]:focus-visible), [part="list"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1)}[part="count"] {color: var(--helix-color-foreground-muted);flex: 0 0 auto;font-size: var(--helix-text-xs);font-variant-numeric: tabular-nums;padding-inline-end: calc(var(--helix-space-xs) - var(--helix-space-2xs))}[part="empty"], [part="loading"] {color: var(--helix-color-foreground-muted);font-size: var(--helix-text-sm);grid-area: 2 / 1;padding: var(--helix-space-sm)}[part="list"] {min-block-size: 0;overflow-y: auto;overscroll-behavior: contain;padding-block: var(--helix-space-2xs)}[part~="note"] {align-items: center;box-sizing: border-box;cursor: pointer;display: flex;font-size: var(--graph-note-text, var(--helix-text-sm));gap: var(--helix-space-sm);min-block-size: var(--helix-size-control-tight);padding-block: var(--helix-space-2xs);padding-inline: var(--graph-note-padding-inline, var(--helix-space-xs));user-select: none}[part~="note"]:hover, [part="list"]:focus-visible [part~="note-cursor"], [part="search"]:has([aria-activedescendant]) ~ [part="list"] [part~="note-cursor"] {--_graph-wash: var(--graph-note-hover-color, light-dark(color-mix(in oklab, var(--helix-color-foreground) 8%, transparent), color-mix(in oklab, var(--helix-color-foreground) 12%, transparent)));background-image: linear-gradient(var(--_graph-wash), var(--_graph-wash))}[part="note-name"] {flex: 0 1 auto;max-inline-size: 70%;min-inline-size: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}[part="note-relation"] {color: var(--graph-note-relation-color, var(--helix-color-foreground-muted));flex: 1 1 0;font-size: var(--helix-text-xs);min-inline-size: 0;overflow: hidden;text-align: end;text-overflow: ellipsis;white-space: nowrap}[part~="note-selected"] {background-color: var(--graph-note-selected-background-color, var(--helix-color-surface-sunken))}[part~="note-selected"] [part="note-name"] {font-weight: var(--graph-note-selected-weight, var(--helix-weight-semibold))}[part="header"], [part="footer"] {min-inline-size: 0}@media (forced-colors: active) {[part~="legend-item-hidden"] {color: GrayText}[part="legend-swatch"] {forced-color-adjust: none}[part="list"]:focus-visible [part~="note-cursor"], [part="search"]:has([aria-activedescendant]) ~ [part="list"] [part~="note-cursor"] {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1)}[part~="note-selected"], [part~="note-selected"] [part="note-relation"] {background-color: Highlight;color: HighlightText;forced-color-adjust: none}}@media print {:host {print-color-adjust: economy}}:host(:state(settling-unseen)) [part="viewport"] ::slotted(*) {visibility: hidden}[part="settling"] {color: var(--helix-color-foreground-subtle);font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);inset-block-start: 50%;inset-inline: 0;position: absolute;text-align: center;translate: 0 -50%}[part="stop-layout"] {background-color: var(--viewport-control-background-color, var(--helix-color-surface-overlay));border: var(--helix-border-floating) solid var(--helix-color-border);border-radius: var(--helix-radii-sm);box-shadow: var(--helix-shadow-floating);color: var(--helix-color-foreground);cursor: pointer;font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);inset-block-end: var(--helix-space-sm);inset-inline-start: var(--helix-space-sm);min-block-size: var(--helix-size-control-sm);padding-inline: var(--helix-space-sm);position: absolute;z-index: var(--helix-layer-raised)}[part="stop-layout"]:hover {background-color: color-mix(in oklab, var(--helix-color-foreground) 10%, var(--viewport-control-background-color, var(--helix-color-surface-overlay)))}[part="stop-layout"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}`);
@@ -1,2 +1,2 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {--_heatmap-cell-width: var(--heatmap-cell-inline-size, var(--heatmap-cell-size, 0.75rem));--_heatmap-cell-height: var(--heatmap-cell-height, var(--heatmap-cell-size, 0.75rem));--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"] {display: grid;gap: var(--heatmap-gap, var(--helix-space-2xs));grid-auto-columns: var(--_heatmap-cell-width);grid-auto-flow: column;grid-template-rows: repeat(var(--heatmap-rows, 1), var(--_heatmap-cell-height));justify-content: start;position: relative}[part~="cell"] {background-color: var(--heatmap-tone, var(--helix-color-surface-sunken));border-radius: var(--heatmap-cell-radius, calc(var(--helix-radii-sm) * 0.5));inline-size: var(--_heatmap-cell-width)}[part="mark"] {block-size: 1px;inline-size: 1px;pointer-events: none;position: absolute}[part="tooltip-anchor"] {inset: 0;pointer-events: none;position: absolute}[part="tooltip-label"] {display: block;font-weight: var(--helix-weight-medium);opacity: 0.72}[part~="tooltip-cell"] {align-items: baseline;display: flex;gap: var(--helix-space-sm);justify-content: space-between}[part="tooltip-name"] {opacity: 0.72}[part="tooltip-value"] {font-variant-numeric: tabular-nums;font-weight: var(--helix-weight-medium)}@media (hover: hover) {[part~="cell"]:hover {outline: var(--helix-border-thin) solid var(--helix-color-foreground);outline-offset: var(--helix-border-thin)}[part~="strip"]:not([data-spaced]) [part~="cell"]:hover {outline-offset: calc(var(--helix-border-thin) * -1)}}[part~="cell-active"] {outline: var(--helix-border-thin) solid var(--helix-color-foreground);outline-offset: var(--helix-border-thin)}[part~="strip"]:not([data-spaced]) [part~="cell-active"] {outline-offset: calc(var(--helix-border-thin) * -1)}[part~="cell-selected"] {box-shadow: inset 0 0 0 var(--heatmap-selected-width, var(--helix-border-thick)) var(--heatmap-selected-color, var(--helix-color-primary))}[part~="strip"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part~="tooltip-cell-current"] {font-weight: var(--helix-weight-medium)}[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"] {align-items: baseline;color: var(--helix-color-foreground-subtle);display: grid;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);gap: var(--helix-space-xs);grid-template-columns: auto minmax(0, 1fr) auto;padding-block-start: var(--helix-space-xs)}[part="summary"] {text-align: center}[part="end"] {text-align: end}[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"] {outline: var(--helix-border-thin) solid var(--helix-color-border);outline-offset: calc(var(--helix-border-thin) * -1)}}@media (forced-colors: active) {[part~="cell"] {forced-color-adjust: none;outline: var(--helix-border-thin) solid CanvasText;outline-offset: calc(var(--helix-border-thin) * -1)}[part~="cell-active"] {outline: var(--helix-border-thick) solid Highlight;outline-offset: var(--helix-border-thin)}[part~="cell-selected"] {box-shadow: inset 0 0 0 var(--helix-border-thick) Highlight}}`);
2
+ export const styles = createSheet(`:host {--_heatmap-cell-width: var(--heatmap-cell-inline-size, var(--heatmap-cell-size, 0.75rem));--_heatmap-cell-height: var(--heatmap-cell-height, var(--heatmap-cell-size, 0.75rem));--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"] {display: grid;gap: var(--heatmap-gap, var(--helix-space-2xs));grid-auto-columns: var(--_heatmap-cell-width);grid-auto-flow: column;grid-template-rows: repeat(var(--heatmap-rows, 1), var(--_heatmap-cell-height));justify-content: start;position: relative}[part~="cell"] {--_heatmap-paint: var(--heatmap-tone, var(--helix-color-surface-sunken));background-color: color-mix(in oklab, var(--_heatmap-fill, var(--_heatmap-paint)) calc(var(--_heatmap-area, 1) * var(--_heatmap-through, 1) * 100%), transparent);border-radius: var(--heatmap-cell-radius, calc(var(--helix-radii-sm) * 0.5));inline-size: var(--_heatmap-cell-width)}:host([emphasis="outlined"]) [part~="cell"]:not([part~="cell-selected"]), :host([emphasis="subtle"]) [part~="cell"]:not([part~="cell-selected"]) {box-shadow: inset 0 0 0 var(--helix-border-thin) color-mix(in oklab, var(--_heatmap-paint) calc(var(--_heatmap-through, 1) * 100%), transparent)}:host([emphasis="outlined"]) [part~="cell"] {--_heatmap-fill: color-mix(in oklab, var(--_heatmap-paint) 60%, var(--helix-color-background))}:host([emphasis="subtle"]) [part~="cell"] {--_heatmap-area: 0.2}:host([material="glass"]) {--_heatmap-through: calc(0.62 * var(--helix-material-opacity))}:host([material="frosted"]) {--_heatmap-through: calc(0.88 * var(--helix-material-opacity))}[part="mark"] {block-size: 1px;inline-size: 1px;pointer-events: none;position: absolute}[part="tooltip-anchor"] {inset: 0;pointer-events: none;position: absolute}[part="tooltip-label"] {display: block;font-weight: var(--helix-weight-medium);opacity: 0.72}[part~="tooltip-cell"] {align-items: baseline;display: flex;gap: var(--helix-space-sm);justify-content: space-between}[part="tooltip-name"] {opacity: 0.72}[part="tooltip-value"] {font-variant-numeric: tabular-nums;font-weight: var(--helix-weight-medium)}@media (hover: hover) {[part~="cell"]:hover {outline: var(--helix-border-thin) solid var(--helix-color-foreground);outline-offset: var(--helix-border-thin)}[part~="strip"]:not([data-spaced]) [part~="cell"]:hover {outline-offset: calc(var(--helix-border-thin) * -1)}}[part~="cell-active"] {outline: var(--helix-border-thin) solid var(--helix-color-foreground);outline-offset: var(--helix-border-thin)}[part~="strip"]:not([data-spaced]) [part~="cell-active"] {outline-offset: calc(var(--helix-border-thin) * -1)}[part~="cell-selected"] {box-shadow: inset 0 0 0 var(--heatmap-selected-width, var(--helix-border-thick)) var(--heatmap-selected-color, var(--helix-color-primary))}[part~="strip"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part~="tooltip-cell-current"] {font-weight: var(--helix-weight-medium)}[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"] {align-items: baseline;color: var(--helix-color-foreground-subtle);display: grid;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);gap: var(--helix-space-xs);grid-template-columns: auto minmax(0, 1fr) auto;padding-block-start: var(--helix-space-xs)}[part="summary"] {text-align: center}[part="end"] {text-align: end}[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"] {outline: var(--helix-border-thin) solid var(--helix-color-border);outline-offset: calc(var(--helix-border-thin) * -1)}}@media (forced-colors: active) {[part~="cell"] {forced-color-adjust: none;outline: var(--helix-border-thin) solid CanvasText;outline-offset: calc(var(--helix-border-thin) * -1)}[part~="cell-active"] {outline: var(--helix-border-thick) solid Highlight;outline-offset: var(--helix-border-thin)}[part~="cell-selected"] {box-shadow: inset 0 0 0 var(--helix-border-thick) Highlight}}`);
@@ -19,6 +19,7 @@ import '../../tooltip/index.js';
19
19
  * @since 0.1.0
20
20
  * @status stable
21
21
  * @category charts
22
+ * @groups charts
22
23
  * @documentation https://fusion.dev/helix/components/heatmap
23
24
  *
24
25
  * @slot end - Below the strip, at the trailing edge.
@@ -71,6 +72,25 @@ import '../../tooltip/index.js';
71
72
  export declare class HelixHeatmap extends HelixHeadlessHeatmap {
72
73
  static tier: string;
73
74
  static styles: CSSResultGroup;
75
+ /**
76
+ * How strongly the cells are drawn, as on every chart.
77
+ *
78
+ * `outlined` is a cell as its edge in its tone over a fill faded toward the
79
+ * page, and `subtle` a faint wash of the tone under the same edge. Absent is
80
+ * the filled cell, per the rule that a reflected property takes no default,
81
+ * and `solid` writes it out.
82
+ *
83
+ * It composes with `material`: emphasis decides what is drawn, and material
84
+ * how much of it comes through. The ring on the cell the keys rest on keeps
85
+ * its own ink.
86
+ */
87
+ emphasis?: 'outlined' | 'solid' | 'subtle';
88
+ /**
89
+ * How much of each mark comes through, as on every chart: `glass` admits the
90
+ * most of what is behind it, `frosted` less, and absent is opaque. The
91
+ * strength is the theme's, scaled by `--helix-material-opacity`.
92
+ */
93
+ material?: 'frosted' | 'glass';
74
94
  /**
75
95
  * The starting estimate of the gap this stylesheet draws, used until the
76
96
  * strip is measured.
@@ -1,6 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { customElement } from '@fusion.dev/helix-core';
3
3
  import { HelixHeadlessHeatmap } from '@fusion.dev/helix-headless/heatmap';
4
+ import { property } from 'lit/decorators.js';
4
5
  import { styles } from './heatmap-root.css.js';
5
6
  import '../../tooltip/index.js';
6
7
  let HelixHeatmap = class HelixHeatmap extends HelixHeadlessHeatmap {
@@ -12,6 +13,12 @@ let HelixHeatmap = class HelixHeatmap extends HelixHeadlessHeatmap {
12
13
  static { this.tier = 'helix-'; }
13
14
  static { this.styles = styles; }
14
15
  };
16
+ __decorate([
17
+ property({ reflect: true })
18
+ ], HelixHeatmap.prototype, "emphasis", void 0);
19
+ __decorate([
20
+ property({ reflect: true })
21
+ ], HelixHeatmap.prototype, "material", void 0);
15
22
  HelixHeatmap = __decorate([
16
23
  customElement('helix-heatmap')
17
24
  ], HelixHeatmap);
package/dist/index.d.ts CHANGED
@@ -65,6 +65,7 @@ export * from './megamenu/index.js';
65
65
  export * from './menu/filter/index.js';
66
66
  export * from './menu/index.js';
67
67
  export * from './meter/index.js';
68
+ export * from './motion-toggle/index.js';
68
69
  export * from './navigation/index.js';
69
70
  export * from './notifications/index.js';
70
71
  export * from './number-input/index.js';
@@ -88,9 +89,12 @@ export * from './skeleton/index.js';
88
89
  export * from './skip-link/index.js';
89
90
  export * from './slider/index.js';
90
91
  export * from './sparkline/index.js';
92
+ export * from './spatial-bar-chart/index.js';
91
93
  export * from './spatial-heatmap/index.js';
94
+ export * from './spatial-ribbon-chart/index.js';
92
95
  export * from './spatial-scatter-chart/index.js';
93
96
  export * from './spatial-surface-chart/index.js';
97
+ export * from './spatial-treemap/index.js';
94
98
  export * from './speed-dial/index.js';
95
99
  export * from './splitter/index.js';
96
100
  export * from './stat/index.js';
package/dist/index.js CHANGED
@@ -60,6 +60,7 @@ export * from './megamenu/index.js';
60
60
  export * from './menu/filter/index.js';
61
61
  export * from './menu/index.js';
62
62
  export * from './meter/index.js';
63
+ export * from './motion-toggle/index.js';
63
64
  export * from './navigation/index.js';
64
65
  export * from './notifications/index.js';
65
66
  export * from './number-input/index.js';
@@ -83,9 +84,12 @@ export * from './skeleton/index.js';
83
84
  export * from './skip-link/index.js';
84
85
  export * from './slider/index.js';
85
86
  export * from './sparkline/index.js';
87
+ export * from './spatial-bar-chart/index.js';
86
88
  export * from './spatial-heatmap/index.js';
89
+ export * from './spatial-ribbon-chart/index.js';
87
90
  export * from './spatial-scatter-chart/index.js';
88
91
  export * from './spatial-surface-chart/index.js';
92
+ export * from './spatial-treemap/index.js';
89
93
  export * from './speed-dial/index.js';
90
94
  export * from './splitter/index.js';
91
95
  export * from './stat/index.js';
@@ -0,0 +1 @@
1
+ export { HelixMotionToggle } from './root/motion-toggle-root.js';
@@ -0,0 +1 @@
1
+ export { HelixMotionToggle } from './root/motion-toggle-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: inline-block}[part="button"] {align-items: center;background-color: var(--motion-toggle-background-color, var(--helix-color-surface-overlay));border: var(--helix-border-floating) solid var(--helix-color-border);border-radius: var(--helix-radii-sm);box-shadow: var(--helix-shadow-floating);color: var(--helix-color-foreground);cursor: pointer;display: inline-flex;font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);gap: var(--helix-space-xs);justify-content: center;min-block-size: var(--helix-size-control-sm);min-inline-size: var(--helix-size-control-sm);padding: 0 var(--helix-space-xs)}[part="icon"] {display: inline-flex}[part="icon"] svg, [part="icon"] ::slotted(*) {block-size: var(--helix-size-icon-sm);inline-size: var(--helix-size-icon-sm)}[part="button"]:hover {background-color: color-mix(in oklab, var(--helix-color-foreground) 10%, var(--motion-toggle-background-color, var(--helix-color-surface-overlay)))}[part="button"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}:host(:state(paused)) [part="button"] {background-color: color-mix(in oklab, var(--helix-color-foreground) 16%, var(--motion-toggle-background-color, var(--helix-color-surface-overlay)))}@media print {:host {display: none}}@media (forced-colors: active) {[part="button"] {border-color: ButtonText}:host(:state(paused)) [part="button"] {background-color: Highlight;color: HighlightText}}`);
@@ -0,0 +1,26 @@
1
+ import { HelixHeadlessMotionToggle } from '@fusion.dev/helix-headless/motion-toggle';
2
+ import type { CSSResultGroup } from 'lit';
3
+ /**
4
+ * @summary A button that pauses every motion on the page that starts by itself, and lets it run again.
5
+ *
6
+ * @description
7
+ * A quiet square button, as the controls over a map are, with the pause icon
8
+ * while motion runs and the play icon while it is paused. Text slotted into
9
+ * it stands beside the icon.
10
+ *
11
+ * @since 0.199.0
12
+ * @status experimental
13
+ * @category actions
14
+ * @documentation https://fusion.dev/helix/components/motion-toggle
15
+ *
16
+ * @cssproperty --motion-toggle-background-color - The button's fill. Defaults to the floating overlay surface.
17
+ */
18
+ export declare class HelixMotionToggle extends HelixHeadlessMotionToggle {
19
+ static tier: string;
20
+ static styles: CSSResultGroup;
21
+ }
22
+ declare global {
23
+ interface HTMLElementTagNameMap {
24
+ 'helix-motion-toggle': HelixMotionToggle;
25
+ }
26
+ }
@@ -0,0 +1,12 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@fusion.dev/helix-core';
3
+ import { HelixHeadlessMotionToggle } from '@fusion.dev/helix-headless/motion-toggle';
4
+ import { styles } from './motion-toggle-root.css.js';
5
+ let HelixMotionToggle = class HelixMotionToggle extends HelixHeadlessMotionToggle {
6
+ static { this.tier = 'helix-'; }
7
+ static { this.styles = styles; }
8
+ };
9
+ HelixMotionToggle = __decorate([
10
+ customElement('helix-motion-toggle')
11
+ ], HelixMotionToggle);
12
+ export { HelixMotionToggle };
@@ -0,0 +1 @@
1
+ export { HelixSpatialBarChart } from './root/spatial-bar-chart-root.js';
@@ -0,0 +1 @@
1
+ export { HelixSpatialBarChart } from './root/spatial-bar-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-bar-chart-block-size, 22em);border-radius: var(--helix-radii-md);overflow: hidden;position: relative}::slotted(*) {inset: 0;position: absolute}:host([no-box]) [part="plot"] {background-color: transparent}[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;touch-action: pan-y;user-select: none}[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~="bar"] {--_spatial-bar-chart-color: var(--chart-series, var(--helix-color-primary))}[part="face"] {--_spatial-bar-chart-face: oklch(from var(--_spatial-bar-chart-color) calc(l - var(--spatial-bar-chart-shade, 0) * 0.5) c h);--_spatial-bar-chart-edge: oklch(from var(--_spatial-bar-chart-face) calc(l + clamp(-0.08, (0.6 - l) * 1000, 0.1)) c h);fill: var(--_spatial-bar-chart-fill, var(--_spatial-bar-chart-face));fill-opacity: calc(var(--_spatial-bar-chart-area, 1) * var(--_spatial-bar-chart-through, 1));stroke: var(--_spatial-bar-chart-line, var(--_spatial-bar-chart-edge));stroke-linejoin: round;stroke-opacity: var(--_spatial-bar-chart-through, 1);stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}:host([emphasis="outlined"]) [part="face"] {--_spatial-bar-chart-fill: color-mix(in oklab, var(--_spatial-bar-chart-face) 60%, var(--helix-color-background));--_spatial-bar-chart-line: var(--_spatial-bar-chart-color)}:host([emphasis="subtle"]) [part="face"] {--_spatial-bar-chart-area: 0.2;--_spatial-bar-chart-line: var(--_spatial-bar-chart-color)}:host([material="glass"]) {--_spatial-bar-chart-through: calc(0.62 * var(--helix-material-opacity))}:host([material="frosted"]) {--_spatial-bar-chart-through: calc(0.88 * var(--helix-material-opacity))}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,49 @@
1
+ import { HelixHeadlessSpatialBarChart } from '@fusion.dev/helix-headless/spatial-bar-chart';
2
+ import type { CSSResultGroup } from 'lit';
3
+ import '../../tooltip/index.js';
4
+ /**
5
+ * @summary A bar chart drawn in three dimensions, each bar a block as tall as its value, for categories in one or more series.
6
+ *
7
+ * @description
8
+ * Each series takes a series color from the theme, as every chart's series
9
+ * does, and each face of a bar is that color darkened by how far it turns
10
+ * from the light. The chart draws the bars in 3D in SVG, and
11
+ * `@fusion.dev/helix-plot` can draw them with three.js.
12
+ *
13
+ * @since 0.199.0
14
+ * @status experimental
15
+ * @category charts
16
+ * @groups charts
17
+ * @documentation https://fusion.dev/helix/components/spatial-bar-chart
18
+ *
19
+ * @cssproperty --spatial-bar-chart-block-size - How tall the plot is.
20
+ */
21
+ export declare class HelixSpatialBarChart extends HelixHeadlessSpatialBarChart {
22
+ static tier: string;
23
+ static styles: CSSResultGroup;
24
+ /**
25
+ * How strongly the bars are drawn, as on every chart.
26
+ *
27
+ * `outlined` is a bar as its edges in its series' color over faces faded
28
+ * toward the page, and `subtle` the same edges over a faint wash, which
29
+ * shows the bars behind it. Absent is the filled bar, per the rule that a
30
+ * reflected property takes no default, and `solid` writes it out. A
31
+ * renderer draws the bars the same way.
32
+ *
33
+ * It composes with `material`: emphasis decides what is drawn, and material
34
+ * how much of it comes through. The outline on the bar the keys rest on
35
+ * keeps its own ink.
36
+ */
37
+ emphasis?: 'outlined' | 'solid' | 'subtle';
38
+ /**
39
+ * How much of each mark comes through, as on every chart: `glass` admits the
40
+ * most of what is behind it, `frosted` less, and absent is opaque. The
41
+ * strength is the theme's, scaled by `--helix-material-opacity`.
42
+ */
43
+ material?: 'frosted' | 'glass';
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'helix-spatial-bar-chart': HelixSpatialBarChart;
48
+ }
49
+ }
@@ -0,0 +1,22 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@fusion.dev/helix-core';
3
+ import { HelixHeadlessSpatialBarChart } from '@fusion.dev/helix-headless/spatial-bar-chart';
4
+ import { property } from 'lit/decorators.js';
5
+ import { styles as seriesStyles } from '../../shared/chart/series.css.js';
6
+ import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
7
+ import { styles } from './spatial-bar-chart-root.css.js';
8
+ import '../../tooltip/index.js';
9
+ let HelixSpatialBarChart = class HelixSpatialBarChart extends HelixHeadlessSpatialBarChart {
10
+ static { this.tier = 'helix-'; }
11
+ static { this.styles = [seriesStyles, tooltipStyles, styles]; }
12
+ };
13
+ __decorate([
14
+ property({ reflect: true })
15
+ ], HelixSpatialBarChart.prototype, "emphasis", void 0);
16
+ __decorate([
17
+ property({ reflect: true })
18
+ ], HelixSpatialBarChart.prototype, "material", void 0);
19
+ HelixSpatialBarChart = __decorate([
20
+ customElement('helix-spatial-bar-chart')
21
+ ], HelixSpatialBarChart);
22
+ export { HelixSpatialBarChart };
@@ -1,2 +1,2 @@
1
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;touch-action: pan-y;user-select: none}[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"], [part="end"] {inset-block-start: 0;position: absolute;white-space: nowrap}[part="start"] {inset-inline-start: 0}[part="end"] {inset-inline-end: 0}[part="start"][data-placed], [part="end"][data-placed] {inset-block-start: var(--spatial-heatmap-label-y);inset-inline-end: auto;inset-inline-start: var(--spatial-heatmap-label-x)}[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)}}`);
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;touch-action: pan-y;user-select: none}[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~="cell"] > * {fill: var(--_spatial-heatmap-fill, var(--_spatial-heatmap-face));fill-opacity: calc(var(--_spatial-heatmap-area, 1) * var(--_spatial-heatmap-through, 1));stroke: var(--_spatial-heatmap-line, var(--_spatial-heatmap-edge));stroke-opacity: var(--_spatial-heatmap-through, 1)}:host([emphasis="outlined"]) [part~="cell"] > * {--_spatial-heatmap-fill: color-mix(in oklab, var(--_spatial-heatmap-face) 60%, var(--helix-color-background));--_spatial-heatmap-line: var(--_spatial-heatmap-face)}:host([emphasis="subtle"]) [part~="cell"] > * {--_spatial-heatmap-area: 0.2;--_spatial-heatmap-line: var(--_spatial-heatmap-face)}:host([material="glass"]) {--_spatial-heatmap-through: calc(0.62 * var(--helix-material-opacity))}:host([material="frosted"]) {--_spatial-heatmap-through: calc(0.88 * var(--helix-material-opacity))}[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"], [part="end"] {inset-block-start: 0;position: absolute;white-space: nowrap}[part="start"] {inset-inline-start: 0}[part="end"] {inset-inline-end: 0}[part="start"][data-placed], [part="end"][data-placed] {inset-block-start: var(--spatial-heatmap-label-y);inset-inline-end: auto;inset-inline-start: var(--spatial-heatmap-label-x)}[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)}}`);
@@ -17,6 +17,7 @@ import '../../tooltip/index.js';
17
17
  * @since 0.190.0
18
18
  * @status experimental
19
19
  * @category charts
20
+ * @groups charts
20
21
  * @documentation https://fusion.dev/helix/components/spatial-heatmap
21
22
  *
22
23
  * @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.
@@ -27,6 +28,26 @@ import '../../tooltip/index.js';
27
28
  export declare class HelixSpatialHeatmap extends HelixHeadlessSpatialHeatmap {
28
29
  static tier: string;
29
30
  static styles: CSSResultGroup;
31
+ /**
32
+ * How strongly the prisms are drawn, as on every chart.
33
+ *
34
+ * `outlined` is a prism as its edges in its tone over faces faded toward the
35
+ * page, and `subtle` a faint wash of the tone under the same edges, which
36
+ * shows the prisms behind it. Absent is the filled prism, per the rule that
37
+ * a reflected property takes no default, and `solid` writes it out. A
38
+ * renderer draws the prisms the same way.
39
+ *
40
+ * It composes with `material`: emphasis decides what is drawn, and material
41
+ * how much of it comes through. The ring on the prism the keys rest on keeps
42
+ * its own ink.
43
+ */
44
+ emphasis?: 'outlined' | 'solid' | 'subtle';
45
+ /**
46
+ * How much of each mark comes through, as on every chart: `glass` admits the
47
+ * most of what is behind it, `frosted` less, and absent is opaque. The
48
+ * strength is the theme's, scaled by `--helix-material-opacity`.
49
+ */
50
+ material?: 'frosted' | 'glass';
30
51
  /**
31
52
  * The smallest cell, in CSS pixels, before the strip draws fewer columns.
32
53
  * `gap` is two pixels at that size, so a prism covers five sixths of its cell.
@@ -1,6 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { customElement } from '@fusion.dev/helix-core';
3
3
  import { HelixHeadlessSpatialHeatmap } from '@fusion.dev/helix-headless/spatial-heatmap';
4
+ import { property } from 'lit/decorators.js';
4
5
  import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
5
6
  import { styles } from './spatial-heatmap-root.css.js';
6
7
  import '../../tooltip/index.js';
@@ -12,6 +13,12 @@ let HelixSpatialHeatmap = class HelixSpatialHeatmap extends HelixHeadlessSpatial
12
13
  static { this.tier = 'helix-'; }
13
14
  static { this.styles = [tooltipStyles, styles]; }
14
15
  };
16
+ __decorate([
17
+ property({ reflect: true })
18
+ ], HelixSpatialHeatmap.prototype, "emphasis", void 0);
19
+ __decorate([
20
+ property({ reflect: true })
21
+ ], HelixSpatialHeatmap.prototype, "material", void 0);
15
22
  HelixSpatialHeatmap = __decorate([
16
23
  customElement('helix-spatial-heatmap')
17
24
  ], HelixSpatialHeatmap);
@@ -0,0 +1 @@
1
+ export { HelixSpatialRibbonChart } from './root/spatial-ribbon-chart-root.js';
@@ -0,0 +1 @@
1
+ export { HelixSpatialRibbonChart } from './root/spatial-ribbon-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-ribbon-chart-block-size, 22em);border-radius: var(--helix-radii-md);overflow: hidden;position: relative}::slotted(*) {inset: 0;position: absolute}:host([no-box]) [part="plot"] {background-color: transparent}[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;touch-action: pan-y;user-select: none}[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~="ribbon"] {--_spatial-ribbon-chart-color: var(--chart-series, var(--helix-color-primary))}[part="face"] {--_spatial-ribbon-chart-face: oklch(from var(--_spatial-ribbon-chart-color) calc(l - var(--spatial-ribbon-chart-shade, 0) * 0.5) c h);--_spatial-ribbon-chart-edge: oklch(from var(--_spatial-ribbon-chart-face) calc(l + clamp(-0.08, (0.6 - l) * 1000, 0.1)) c h);fill: var(--_spatial-ribbon-chart-fill, var(--_spatial-ribbon-chart-face));fill-opacity: calc(var(--_spatial-ribbon-chart-area, 1) * var(--_spatial-ribbon-chart-through, 1));stroke: var(--_spatial-ribbon-chart-line, var(--_spatial-ribbon-chart-edge));stroke-linejoin: round;stroke-opacity: var(--_spatial-ribbon-chart-through, 1);stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}:host([emphasis="outlined"]) [part="face"] {--_spatial-ribbon-chart-fill: color-mix(in oklab, var(--_spatial-ribbon-chart-face) 60%, var(--helix-color-background));--_spatial-ribbon-chart-line: var(--_spatial-ribbon-chart-color)}:host([emphasis="subtle"]) [part="face"] {--_spatial-ribbon-chart-area: 0.2;--_spatial-ribbon-chart-line: var(--_spatial-ribbon-chart-color)}:host([material="glass"]) {--_spatial-ribbon-chart-through: calc(0.62 * var(--helix-material-opacity))}:host([material="frosted"]) {--_spatial-ribbon-chart-through: calc(0.88 * var(--helix-material-opacity))}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,49 @@
1
+ import { HelixHeadlessSpatialRibbonChart } from '@fusion.dev/helix-headless/spatial-ribbon-chart';
2
+ import type { CSSResultGroup } from 'lit';
3
+ import '../../tooltip/index.js';
4
+ /**
5
+ * @summary A chart that draws each series as a ribbon in three dimensions, its top following the values, for several series over one set of places.
6
+ *
7
+ * @description
8
+ * Each series takes a series color from the theme, as every chart's series
9
+ * does, and each face of a ribbon is that color darkened by how far it turns
10
+ * from the light. The chart draws the ribbons in 3D in SVG, and
11
+ * `@fusion.dev/helix-plot` can draw them with three.js.
12
+ *
13
+ * @since 0.199.0
14
+ * @status experimental
15
+ * @category charts
16
+ * @groups charts
17
+ * @documentation https://fusion.dev/helix/components/spatial-ribbon-chart
18
+ *
19
+ * @cssproperty --spatial-ribbon-chart-block-size - How tall the plot is.
20
+ */
21
+ export declare class HelixSpatialRibbonChart extends HelixHeadlessSpatialRibbonChart {
22
+ static tier: string;
23
+ static styles: CSSResultGroup;
24
+ /**
25
+ * How strongly the ribbons are drawn, as on every chart.
26
+ *
27
+ * `outlined` is a ribbon as its edges in its series' color over faces
28
+ * faded toward the page, and `subtle` the same edges over a faint wash,
29
+ * which shows the ribbons behind it. Absent is the filled ribbon, per the
30
+ * rule that a reflected property takes no default, and `solid` writes it
31
+ * out. A renderer draws the ribbons the same way.
32
+ *
33
+ * It composes with `material`: emphasis decides what is drawn, and material
34
+ * how much of it comes through. The ring on the reading the keys rest on
35
+ * keeps its own ink.
36
+ */
37
+ emphasis?: 'outlined' | 'solid' | 'subtle';
38
+ /**
39
+ * How much of each mark comes through, as on every chart: `glass` admits the
40
+ * most of what is behind it, `frosted` less, and absent is opaque. The
41
+ * strength is the theme's, scaled by `--helix-material-opacity`.
42
+ */
43
+ material?: 'frosted' | 'glass';
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'helix-spatial-ribbon-chart': HelixSpatialRibbonChart;
48
+ }
49
+ }
@@ -0,0 +1,22 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@fusion.dev/helix-core';
3
+ import { HelixHeadlessSpatialRibbonChart } from '@fusion.dev/helix-headless/spatial-ribbon-chart';
4
+ import { property } from 'lit/decorators.js';
5
+ import { styles as seriesStyles } from '../../shared/chart/series.css.js';
6
+ import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
7
+ import { styles } from './spatial-ribbon-chart-root.css.js';
8
+ import '../../tooltip/index.js';
9
+ let HelixSpatialRibbonChart = class HelixSpatialRibbonChart extends HelixHeadlessSpatialRibbonChart {
10
+ static { this.tier = 'helix-'; }
11
+ static { this.styles = [seriesStyles, tooltipStyles, styles]; }
12
+ };
13
+ __decorate([
14
+ property({ reflect: true })
15
+ ], HelixSpatialRibbonChart.prototype, "emphasis", void 0);
16
+ __decorate([
17
+ property({ reflect: true })
18
+ ], HelixSpatialRibbonChart.prototype, "material", void 0);
19
+ HelixSpatialRibbonChart = __decorate([
20
+ customElement('helix-spatial-ribbon-chart')
21
+ ], HelixSpatialRibbonChart);
22
+ export { HelixSpatialRibbonChart };
@@ -1,2 +1,2 @@
1
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;touch-action: pan-y;user-select: none}[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}}`);
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}:host([no-box]) [part="plot"] {background-color: transparent}[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;touch-action: pan-y;user-select: none}[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="drop-line"] {opacity: 0.45;stroke: var(--chart-series, var(--helix-color-primary));stroke-width: var(--helix-border-thin);vector-effect: non-scaling-stroke}[part~="point"] {fill: var(--_spatial-scatter-chart-fill, var(--chart-series, var(--helix-color-primary)));fill-opacity: calc(var(--_spatial-scatter-chart-area, 1) * var(--_spatial-scatter-chart-through, 1));stroke: var(--_spatial-scatter-chart-line, var(--helix-color-surface-sunken));stroke-opacity: var(--_spatial-scatter-chart-through, 1);stroke-width: var(--_spatial-scatter-chart-weight, var(--helix-border-thin));vector-effect: non-scaling-stroke}:host([emphasis="outlined"]) [part~="point"] {--_spatial-scatter-chart-fill: color-mix(in oklab, var(--chart-series, var(--helix-color-primary)) 60%, var(--helix-color-background));--_spatial-scatter-chart-line: var(--chart-series, var(--helix-color-primary));--_spatial-scatter-chart-weight: var(--helix-border-thick)}:host([emphasis="subtle"]) [part~="point"] {--_spatial-scatter-chart-area: 0.2;--_spatial-scatter-chart-line: var(--chart-series, var(--helix-color-primary));--_spatial-scatter-chart-weight: var(--helix-border-thick)}:host([material="glass"]) {--_spatial-scatter-chart-through: calc(0.62 * var(--helix-material-opacity))}:host([material="frosted"]) {--_spatial-scatter-chart-through: calc(0.88 * var(--helix-material-opacity))}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="drop-line"] {stroke: CanvasText}[part="grid"] {stroke: CanvasText}[part="tick"], [part="axis-name"] {fill: CanvasText}[part="ring"] {stroke: Highlight}}`);
@@ -12,6 +12,7 @@ import '../../tooltip/index.js';
12
12
  * @since 0.190.0
13
13
  * @status experimental
14
14
  * @category charts
15
+ * @groups charts
15
16
  * @documentation https://fusion.dev/helix/components/spatial-scatter-chart
16
17
  *
17
18
  * @cssproperty --spatial-scatter-chart-block-size - How tall the plot is.
@@ -19,6 +20,25 @@ import '../../tooltip/index.js';
19
20
  export declare class HelixSpatialScatterChart extends HelixHeadlessSpatialScatterChart {
20
21
  static tier: string;
21
22
  static styles: CSSResultGroup;
23
+ /**
24
+ * How strongly the points are drawn, as on every chart.
25
+ *
26
+ * `outlined` is a point as a ring in its group's color over a dot faded
27
+ * toward the page, and `subtle` the same ring over a faint dot. Absent is
28
+ * the filled dot, per the rule that a reflected property takes no default,
29
+ * and `solid` writes it out. A renderer draws the points the same way.
30
+ *
31
+ * It composes with `material`: emphasis decides what is drawn, and material
32
+ * how much of it comes through. The ring on the point the keys rest on keeps
33
+ * its own ink.
34
+ */
35
+ emphasis?: 'outlined' | 'solid' | 'subtle';
36
+ /**
37
+ * How much of each mark comes through, as on every chart: `glass` admits the
38
+ * most of what is behind it, `frosted` less, and absent is opaque. The
39
+ * strength is the theme's, scaled by `--helix-material-opacity`.
40
+ */
41
+ material?: 'frosted' | 'glass';
22
42
  }
23
43
  declare global {
24
44
  interface HTMLElementTagNameMap {