@fusion.dev/helix-headless 0.34.2 → 0.35.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.
@@ -15478,11 +15478,10 @@
15478
15478
  "helix": {
15479
15479
  "category": "forms",
15480
15480
  "since": "0.1.0",
15481
- "status": "experimental",
15481
+ "status": "stable",
15482
15482
  "documentation": "https://helix.fusion.dev/components/checkbox",
15483
15483
  "aliases": [
15484
- "Tickbox",
15485
- "Toggle"
15484
+ "Tickbox"
15486
15485
  ],
15487
15486
  "tier": "headless",
15488
15487
  "group": "BaseCheckbox",
@@ -24255,7 +24254,7 @@
24255
24254
  "helix": {
24256
24255
  "category": "actions",
24257
24256
  "since": "0.1.0",
24258
- "status": "experimental",
24257
+ "status": "stable",
24259
24258
  "documentation": "https://helix.fusion.dev/components/copy-button",
24260
24259
  "aliases": [
24261
24260
  "Copy",
@@ -49231,7 +49230,7 @@
49231
49230
  "helix": {
49232
49231
  "category": "charts",
49233
49232
  "since": "0.1.0",
49234
- "status": "experimental",
49233
+ "status": "stable",
49235
49234
  "documentation": "https://helix.fusion.dev/components/legend",
49236
49235
  "aliases": [
49237
49236
  "Key",
@@ -79009,7 +79008,7 @@
79009
79008
  "helix": {
79010
79009
  "category": "charts",
79011
79010
  "since": "0.1.0",
79012
- "status": "experimental",
79011
+ "status": "stable",
79013
79012
  "documentation": "https://helix.fusion.dev/components/sparkline",
79014
79013
  "aliases": [
79015
79014
  "Micro Chart",
@@ -108095,7 +108094,7 @@
108095
108094
  "declarations": [
108096
108095
  {
108097
108096
  "kind": "class",
108098
- "description": "**The set arrives as data, which is what makes this a virtual list rather\nthan a box that hides children.** `for` names a\n`<script type=\"application/json\">` holding an array of objects, and a\n`<template>` child says what one row looks like: elements carrying\n`data-field=\"name\"` are filled with that field of the item.\n\nBoth halves are markup, and that is the reason for the shape. An `items`\nproperty cannot survive React hydration, which skips every property it would\nhave to apply imperatively, and light-DOM children exist by the time anything\ncould decide not to create them. Text in the document is neither, and it is\none node whatever the row count.\n\n**The accessible version is not a `<table>`**, the way it is for the charts\nthat share this `for=\"<id>\"` shape: ten thousand rows in one is the cost this\nexists to avoid. It is the rendered window plus `aria-setsize`.",
108097
+ "description": "**The set arrives as data, which is what makes this a virtual list rather\nthan a box that hides children.** `for` names a\n`<script type=\"application/json\">` holding an array of objects, and a\n`<template>` child says what one row looks like: elements carrying\n`data-field=\"name\"` are filled with that field of the item.\n\nBoth halves are markup, and that is the reason for the shape. An `items`\nproperty cannot survive React hydration, which skips every property it would\nhave to apply imperatively, and light-DOM children exist by the time anything\ncould decide not to create them. Text in the document is neither, and it is\none node whatever the row count.\n\n**The accessible version is not a `<table>`**, the way it is for the charts\nthat share this `for=\"<id>\"` shape: ten thousand rows in one is the cost this\nexists to avoid. It is the rendered window plus `aria-setsize`.\n\n**The box scrolls on this tier.** The viewport carries `data-scroller` and\n`core` ships `[data-scroller] { overflow: auto }` into every shadow root, so\n`scrollTop` exists with no stylesheet at all. What a headless consumer still\nhas to supply is a block size, which is a design decision; the `overflow`\nthey used to supply was a mechanism they had no way of knowing was missing.",
108099
108098
  "name": "HelixHeadlessVirtualList",
108100
108099
  "cssParts": [
108101
108100
  {
@@ -108107,7 +108106,7 @@
108107
108106
  "name": "before"
108108
108107
  },
108109
108108
  {
108110
- "description": "The scrolling box. Needs a block size and an overflow on this tier.",
108109
+ "description": "The scrolling box. Needs a block size on this tier, and nothing else.",
108111
108110
  "name": "viewport"
108112
108111
  }
108113
108112
  ],
@@ -108581,7 +108580,7 @@
108581
108580
  "helix": {
108582
108581
  "category": "layout",
108583
108582
  "since": "0.1.0",
108584
- "status": "experimental",
108583
+ "status": "stable",
108585
108584
  "documentation": "https://helix.fusion.dev/components/virtual-list",
108586
108585
  "tier": "headless",
108587
108586
  "group": "BaseVirtualList",
@@ -24,9 +24,9 @@ declare const HelixHeadlessCheckbox_base: (new (...args: any[]) => import("@fusi
24
24
  * third state that survives interaction is a control nobody can finish.
25
25
  *
26
26
  * @since 0.1.0
27
- * @status experimental
27
+ * @status stable
28
28
  * @category forms
29
- * @aliases Tickbox, Toggle
29
+ * @aliases Tickbox
30
30
  * @documentation https://helix.fusion.dev/components/checkbox
31
31
  *
32
32
  * @slot - The label.
@@ -17,7 +17,7 @@ import '../../tooltip/index.js';
17
17
  * the button exactly as it was.
18
18
  *
19
19
  * @since 0.1.0
20
- * @status experimental
20
+ * @status stable
21
21
  * @category actions
22
22
  * @aliases Copy, Copy to clipboard
23
23
  * @documentation https://helix.fusion.dev/components/copy-button
@@ -16,7 +16,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
16
16
  * **The table is resolved on the client and there is no server pass.**
17
17
  *
18
18
  * @since 0.1.0
19
- * @status experimental
19
+ * @status stable
20
20
  * @category charts
21
21
  * @aliases Key, Series Key
22
22
  * @documentation https://helix.fusion.dev/components/legend
@@ -4,10 +4,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { customElement, HelixElement, SourceController } from '@fusion.dev/helix-core';
7
+ import { customElement, HelixElement, SourceController, seriesIndex, } from '@fusion.dev/helix-core';
8
8
  import { html } from 'lit';
9
9
  import { property } from 'lit/decorators.js';
10
- const PALETTE = 24;
11
10
  let HelixHeadlessLegend = class HelixHeadlessLegend extends HelixElement {
12
11
  constructor() {
13
12
  super(...arguments);
@@ -28,9 +27,9 @@ let HelixHeadlessLegend = class HelixHeadlessLegend extends HelixElement {
28
27
  render() {
29
28
  return html `<ul part="list" role="list">
30
29
  ${this.names().map((name, index) => html `<li
31
- data-series=${(index % PALETTE) + 1}
30
+ data-series=${seriesIndex(index)}
32
31
  part="entry"
33
- style="--chart-series: var(--chart-series-${(index % PALETTE) + 1})"
32
+ style="--chart-series: var(--chart-series-${seriesIndex(index)})"
34
33
  role="listitem"
35
34
  >
36
35
  <span aria-hidden="true" part="swatch"></span>
@@ -32,7 +32,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
32
32
  * without measuring anything itself.
33
33
  *
34
34
  * @since 0.1.0
35
- * @status experimental
35
+ * @status stable
36
36
  * @category charts
37
37
  * @aliases Micro Chart, Trend Line, Inline Chart
38
38
  * @documentation https://helix.fusion.dev/components/sparkline
@@ -20,14 +20,20 @@ import { type PropertyValues, type TemplateResult } from 'lit';
20
20
  * that share this `for="<id>"` shape: ten thousand rows in one is the cost this
21
21
  * exists to avoid. It is the rendered window plus `aria-setsize`.
22
22
  *
23
+ * **The box scrolls on this tier.** The viewport carries `data-scroller` and
24
+ * `core` ships `[data-scroller] { overflow: auto }` into every shadow root, so
25
+ * `scrollTop` exists with no stylesheet at all. What a headless consumer still
26
+ * has to supply is a block size, which is a design decision; the `overflow`
27
+ * they used to supply was a mechanism they had no way of knowing was missing.
28
+ *
23
29
  * @since 0.1.0
24
- * @status experimental
30
+ * @status stable
25
31
  * @category layout
26
32
  * @documentation https://helix.fusion.dev/components/virtual-list
27
33
  *
28
34
  * @csspart after - The space standing in for rows below the window.
29
35
  * @csspart before - The space standing in for rows above the window.
30
- * @csspart viewport - The scrolling box. Needs a block size and an overflow on this tier.
36
+ * @csspart viewport - The scrolling box. Needs a block size on this tier, and nothing else.
31
37
  */
32
38
  export declare class HelixHeadlessVirtualList extends HelixElement {
33
39
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix-headless",
3
3
  "description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
4
- "version": "0.34.2",
4
+ "version": "0.35.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "bugs": "https://github.com/project-fusion/fusion/issues",
48
48
  "dependencies": {
49
- "@fusion.dev/helix-core": "0.34.2",
50
- "@fusion.dev/helix-icons": "0.34.2",
49
+ "@fusion.dev/helix-core": "0.35.0",
50
+ "@fusion.dev/helix-icons": "0.35.0",
51
51
  "uqr": "^0.1.3"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@custom-elements-manifest/analyzer": "^0.11.0",
55
- "@fusion.dev/helix-cem": "0.34.2",
56
- "@fusion.dev/helix-testing": "0.34.2",
55
+ "@fusion.dev/helix-cem": "0.35.0",
56
+ "@fusion.dev/helix-testing": "0.35.0",
57
57
  "@fusion.dev/scripts": "0.0.0-dev",
58
58
  "@happy-dom/global-registrator": "^20.0.0",
59
59
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -34363,6 +34363,12 @@ export type CustomElements = {
34363
34363
  * that share this `for="<id>"` shape: ten thousand rows in one is the cost this
34364
34364
  * exists to avoid. It is the rendered window plus `aria-setsize`.
34365
34365
  *
34366
+ * **The box scrolls on this tier.** The viewport carries `data-scroller` and
34367
+ * `core` ships `[data-scroller] { overflow: auto }` into every shadow root, so
34368
+ * `scrollTop` exists with no stylesheet at all. What a headless consumer still
34369
+ * has to supply is a block size, which is a design decision; the `overflow`
34370
+ * they used to supply was a mechanism they had no way of knowing was missing.
34371
+ *
34366
34372
  * ## Attributes & Properties
34367
34373
  *
34368
34374
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -34407,7 +34413,7 @@ export type CustomElements = {
34407
34413
  *
34408
34414
  * - `after`: The space standing in for rows below the window.
34409
34415
  * - `before`: The space standing in for rows above the window.
34410
- * - `viewport`: The scrolling box. Needs a block size and an overflow on this tier.
34416
+ * - `viewport`: The scrolling box. Needs a block size on this tier, and nothing else.
34411
34417
  *
34412
34418
  * ## CSS States
34413
34419
  *
@@ -52050,6 +52056,12 @@ export type CustomElementsSolidJs = {
52050
52056
  * that share this `for="<id>"` shape: ten thousand rows in one is the cost this
52051
52057
  * exists to avoid. It is the rendered window plus `aria-setsize`.
52052
52058
  *
52059
+ * **The box scrolls on this tier.** The viewport carries `data-scroller` and
52060
+ * `core` ships `[data-scroller] { overflow: auto }` into every shadow root, so
52061
+ * `scrollTop` exists with no stylesheet at all. What a headless consumer still
52062
+ * has to supply is a block size, which is a design decision; the `overflow`
52063
+ * they used to supply was a mechanism they had no way of knowing was missing.
52064
+ *
52053
52065
  * ## Attributes & Properties
52054
52066
  *
52055
52067
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -52094,7 +52106,7 @@ export type CustomElementsSolidJs = {
52094
52106
  *
52095
52107
  * - `after`: The space standing in for rows below the window.
52096
52108
  * - `before`: The space standing in for rows above the window.
52097
- * - `viewport`: The scrolling box. Needs a block size and an overflow on this tier.
52109
+ * - `viewport`: The scrolling box. Needs a block size on this tier, and nothing else.
52098
52110
  *
52099
52111
  * ## CSS States
52100
52112
  *
package/types/vue.d.ts CHANGED
@@ -9637,7 +9637,7 @@ export interface WcToolkitVueGlobalComponents {
9637
9637
  HelixHeadlessVideoVueProps,
9638
9638
  HelixHeadlessVideoVueEvents
9639
9639
  >;
9640
- /** **The set arrives as data, which is what makes this a virtual list rather than a box that hides children.** 'for' names a '<script type="application/json">' holding an array of objects, and a '<template>' child says what one row looks like: elements carrying 'data-field="name"' are filled with that field of the item. Both halves are markup, and that is the reason for the shape. An 'items' property cannot survive React hydration, which skips every property it would have to apply imperatively, and light-DOM children exist by the time anything could decide not to create them. Text in the document is neither, and it is one node whatever the row count. **The accessible version is not a '<table>'**, the way it is for the charts that share this 'for="<id>"' shape: ten thousand rows in one is the cost this exists to avoid. It is the rendered window plus 'aria-setsize'. */
9640
+ /** **The set arrives as data, which is what makes this a virtual list rather than a box that hides children.** 'for' names a '<script type="application/json">' holding an array of objects, and a '<template>' child says what one row looks like: elements carrying 'data-field="name"' are filled with that field of the item. Both halves are markup, and that is the reason for the shape. An 'items' property cannot survive React hydration, which skips every property it would have to apply imperatively, and light-DOM children exist by the time anything could decide not to create them. Text in the document is neither, and it is one node whatever the row count. **The accessible version is not a '<table>'**, the way it is for the charts that share this 'for="<id>"' shape: ten thousand rows in one is the cost this exists to avoid. It is the rendered window plus 'aria-setsize'. **The box scrolls on this tier.** The viewport carries 'data-scroller' and 'core' ships '[data-scroller] { overflow: auto }' into every shadow root, so 'scrollTop' exists with no stylesheet at all. What a headless consumer still has to supply is a block size, which is a design decision; the 'overflow' they used to supply was a mechanism they had no way of knowing was missing. */
9641
9641
  "helix-headless-virtual-list": DefineCustomElement<
9642
9642
  HelixHeadlessVirtualList,
9643
9643
  HelixHeadlessVirtualListVueProps,