@fusion.dev/helix 0.184.0 → 0.185.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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.184.0",
4
+ "version": "0.185.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -54,14 +54,14 @@
54
54
  },
55
55
  "bugs": "https://github.com/project-fusion/fusion/issues",
56
56
  "dependencies": {
57
- "@fusion.dev/helix-core": "0.184.0",
58
- "@fusion.dev/helix-headless": "0.184.0",
59
- "@fusion.dev/helix-styles": "0.184.0",
57
+ "@fusion.dev/helix-core": "0.185.0",
58
+ "@fusion.dev/helix-headless": "0.185.0",
59
+ "@fusion.dev/helix-styles": "0.185.0",
60
60
  "tslib": "^2.8.1"
61
61
  },
62
62
  "devDependencies": {
63
- "@fusion.dev/helix-cem": "0.184.0",
64
- "@fusion.dev/helix-testing": "0.184.0",
63
+ "@fusion.dev/helix-cem": "0.185.0",
64
+ "@fusion.dev/helix-testing": "0.185.0",
65
65
  "@fusion.dev/scripts": "0.0.0-dev",
66
66
  "@happy-dom/global-registrator": "^20.14.5",
67
67
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -11141,6 +11141,16 @@ and the grid becomes a tree grid.
11141
11141
  Reflected, because the styled tier indents a tree grid's row headers by
11142
11142
  it. No default, so a table that sets none writes nothing onto its host. */
11143
11143
  childField?: (HelixDataTable["childField"]) | undefined;
11144
+ /** The column tracks, as a grid track list such as `2fr 1fr max-content`,
11145
+ dealt out one track to a column in the order the columns are written. A
11146
+ column's own `width` wins in its place, and a column it does not reach
11147
+ takes the track a column with no `width` takes.
11148
+
11149
+ **The one track list a server can send.** A server rendering this element
11150
+ has no columns to read a `width` from, and neither has a stylesheet laying
11151
+ out the rows a page served before the table upgrades, so a table sized here
11152
+ lays those rows out at the widths it draws. */
11153
+ columns?: (HelixDataTable["columns"]) | undefined;
11144
11154
  /** The keys of the rows open at the start, separated by commas. Used until
11145
11155
  `expanded` is set. */
11146
11156
  "default-expanded"?: (HelixDataTable["defaultExpanded"]) | undefined;
@@ -11560,6 +11570,16 @@ and the grid becomes a tree grid.
11560
11570
  Reflected, because the styled tier indents a tree grid's row headers by
11561
11571
  it. No default, so a table that sets none writes nothing onto its host. */
11562
11572
  "prop:childField"?: (HelixDataTable["childField"]) | undefined;
11573
+ /** The column tracks, as a grid track list such as `2fr 1fr max-content`,
11574
+ dealt out one track to a column in the order the columns are written. A
11575
+ column's own `width` wins in its place, and a column it does not reach
11576
+ takes the track a column with no `width` takes.
11577
+
11578
+ **The one track list a server can send.** A server rendering this element
11579
+ has no columns to read a `width` from, and neither has a stylesheet laying
11580
+ out the rows a page served before the table upgrades, so a table sized here
11581
+ lays those rows out at the widths it draws. */
11582
+ "prop:columns"?: (HelixDataTable["columns"]) | undefined;
11563
11583
  /** The keys of the rows open at the start, separated by commas. Used until
11564
11584
  `expanded` is set. */
11565
11585
  "attr:default-expanded"?: (HelixDataTable["defaultExpanded"]) | undefined;
@@ -34752,13 +34772,11 @@ and each column may say otherwise.
34752
34772
  **It is also the only track list a server can send.** The shim has no tree
34753
34773
  to walk, so a render there knows of no columns and this attribute is the
34754
34774
  whole answer: a table given one lays its grid out in the first paint, and a
34755
- table sized only by its columns is one track wide until it upgrades.
34775
+ table sized only by its columns takes, until it upgrades, a track for each
34776
+ column at the width a column with no `width` takes (`helix.css`).
34756
34777
 
34757
- **Data Table has none of this, and should not.** Its columns are its schema
34758
- rather than an option, so there is always a column to write a `width` on
34759
- and a list here would be a second way to say what that says. This table's
34760
- cells are markup, and a table written as rows of cells with no column
34761
- declared in it has nowhere else to be sized from. */
34778
+ Data Table takes the same list, for the same reason: a data table that
34779
+ serves its first page as rows is laid out by it before it upgrades. */
34762
34780
  columns?: (HelixTable["columns"]) | undefined;
34763
34781
  /** The keys of the rows whose rows are shown at the start, separated by
34764
34782
  commas. Used until `expanded` is set. */
@@ -35015,13 +35033,11 @@ and each column may say otherwise.
35015
35033
  **It is also the only track list a server can send.** The shim has no tree
35016
35034
  to walk, so a render there knows of no columns and this attribute is the
35017
35035
  whole answer: a table given one lays its grid out in the first paint, and a
35018
- table sized only by its columns is one track wide until it upgrades.
35036
+ table sized only by its columns takes, until it upgrades, a track for each
35037
+ column at the width a column with no `width` takes (`helix.css`).
35019
35038
 
35020
- **Data Table has none of this, and should not.** Its columns are its schema
35021
- rather than an option, so there is always a column to write a `width` on
35022
- and a list here would be a second way to say what that says. This table's
35023
- cells are markup, and a table written as rows of cells with no column
35024
- declared in it has nowhere else to be sized from. */
35039
+ Data Table takes the same list, for the same reason: a data table that
35040
+ serves its first page as rows is laid out by it before it upgrades. */
35025
35041
  "prop:columns"?: (HelixTable["columns"]) | undefined;
35026
35042
  /** The keys of the rows whose rows are shown at the start, separated by
35027
35043
  commas. Used until `expanded` is set. */
@@ -49411,7 +49427,9 @@ export type CustomElements = {
49411
49427
  * Write it under the columns as `helix-table-row` and `helix-table-cell`
49412
49428
  * elements. `@fusion.dev/helix-styles/helix.css` lays them out as the table
49413
49429
  * draws them before it upgrades, and the table shows them until `rows` holds a
49414
- * row.
49430
+ * row. It holds the checkbox column and the pagination's row from the first
49431
+ * paint, and takes the widths from `columns`, so nothing moves when the table
49432
+ * upgrades or draws its own rows.
49415
49433
  *
49416
49434
  * ## Attributes & Properties
49417
49435
  *
@@ -49432,6 +49450,15 @@ export type CustomElements = {
49432
49450
  *
49433
49451
  * Reflected, because the styled tier indents a tree grid's row headers by
49434
49452
  * it. No default, so a table that sets none writes nothing onto its host.
49453
+ * - `columns`: The column tracks, as a grid track list such as `2fr 1fr max-content`,
49454
+ * dealt out one track to a column in the order the columns are written. A
49455
+ * column's own `width` wins in its place, and a column it does not reach
49456
+ * takes the track a column with no `width` takes.
49457
+ *
49458
+ * **The one track list a server can send.** A server rendering this element
49459
+ * has no columns to read a `width` from, and neither has a stylesheet laying
49460
+ * out the rows a page served before the table upgrades, so a table sized here
49461
+ * lays those rows out at the widths it draws.
49435
49462
  * - `default-expanded`/`defaultExpanded`: The keys of the rows open at the start, separated by commas. Used until
49436
49463
  * `expanded` is set.
49437
49464
  * - `default-filter`/`defaultFilter`: The starting search query, used until `filter` is set.
@@ -66111,7 +66138,7 @@ export type CustomElements = {
66111
66138
  *
66112
66139
  * The ribbon stops moving in these cases:
66113
66140
  * - `prefers-reduced-motion` is set. The element shows one still frame, and in
66114
- * `travel` still follows the scroll, without easing.
66141
+ * `travel` still follows the scroll.
66115
66142
  * - The element is off screen or in a background tab.
66116
66143
  *
66117
66144
  * It shows a gradient from the same tokens in these cases, and matches
@@ -66840,13 +66867,11 @@ export type CustomElements = {
66840
66867
  * **It is also the only track list a server can send.** The shim has no tree
66841
66868
  * to walk, so a render there knows of no columns and this attribute is the
66842
66869
  * whole answer: a table given one lays its grid out in the first paint, and a
66843
- * table sized only by its columns is one track wide until it upgrades.
66870
+ * table sized only by its columns takes, until it upgrades, a track for each
66871
+ * column at the width a column with no `width` takes (`helix.css`).
66844
66872
  *
66845
- * **Data Table has none of this, and should not.** Its columns are its schema
66846
- * rather than an option, so there is always a column to write a `width` on
66847
- * and a list here would be a second way to say what that says. This table's
66848
- * cells are markup, and a table written as rows of cells with no column
66849
- * declared in it has nowhere else to be sized from.
66873
+ * Data Table takes the same list, for the same reason: a data table that
66874
+ * serves its first page as rows is laid out by it before it upgrades.
66850
66875
  * - `default-expanded`/`defaultExpanded`: The keys of the rows whose rows are shown at the start, separated by
66851
66876
  * commas. Used until `expanded` is set.
66852
66877
  * - `default-selected`/`defaultSelected`: The keys selected at the start, separated by commas. Used until `selected`
@@ -79254,7 +79279,9 @@ export type CustomElementsSolidJs = {
79254
79279
  * Write it under the columns as `helix-table-row` and `helix-table-cell`
79255
79280
  * elements. `@fusion.dev/helix-styles/helix.css` lays them out as the table
79256
79281
  * draws them before it upgrades, and the table shows them until `rows` holds a
79257
- * row.
79282
+ * row. It holds the checkbox column and the pagination's row from the first
79283
+ * paint, and takes the widths from `columns`, so nothing moves when the table
79284
+ * upgrades or draws its own rows.
79258
79285
  *
79259
79286
  * ## Attributes & Properties
79260
79287
  *
@@ -79275,6 +79302,15 @@ export type CustomElementsSolidJs = {
79275
79302
  *
79276
79303
  * Reflected, because the styled tier indents a tree grid's row headers by
79277
79304
  * it. No default, so a table that sets none writes nothing onto its host.
79305
+ * - `columns`: The column tracks, as a grid track list such as `2fr 1fr max-content`,
79306
+ * dealt out one track to a column in the order the columns are written. A
79307
+ * column's own `width` wins in its place, and a column it does not reach
79308
+ * takes the track a column with no `width` takes.
79309
+ *
79310
+ * **The one track list a server can send.** A server rendering this element
79311
+ * has no columns to read a `width` from, and neither has a stylesheet laying
79312
+ * out the rows a page served before the table upgrades, so a table sized here
79313
+ * lays those rows out at the widths it draws.
79278
79314
  * - `default-expanded`/`defaultExpanded`: The keys of the rows open at the start, separated by commas. Used until
79279
79315
  * `expanded` is set.
79280
79316
  * - `default-filter`/`defaultFilter`: The starting search query, used until `filter` is set.
@@ -96243,7 +96279,7 @@ export type CustomElementsSolidJs = {
96243
96279
  *
96244
96280
  * The ribbon stops moving in these cases:
96245
96281
  * - `prefers-reduced-motion` is set. The element shows one still frame, and in
96246
- * `travel` still follows the scroll, without easing.
96282
+ * `travel` still follows the scroll.
96247
96283
  * - The element is off screen or in a background tab.
96248
96284
  *
96249
96285
  * It shows a gradient from the same tokens in these cases, and matches
@@ -96987,13 +97023,11 @@ export type CustomElementsSolidJs = {
96987
97023
  * **It is also the only track list a server can send.** The shim has no tree
96988
97024
  * to walk, so a render there knows of no columns and this attribute is the
96989
97025
  * whole answer: a table given one lays its grid out in the first paint, and a
96990
- * table sized only by its columns is one track wide until it upgrades.
97026
+ * table sized only by its columns takes, until it upgrades, a track for each
97027
+ * column at the width a column with no `width` takes (`helix.css`).
96991
97028
  *
96992
- * **Data Table has none of this, and should not.** Its columns are its schema
96993
- * rather than an option, so there is always a column to write a `width` on
96994
- * and a list here would be a second way to say what that says. This table's
96995
- * cells are markup, and a table written as rows of cells with no column
96996
- * declared in it has nowhere else to be sized from.
97029
+ * Data Table takes the same list, for the same reason: a data table that
97030
+ * serves its first page as rows is laid out by it before it upgrades.
96997
97031
  * - `default-expanded`/`defaultExpanded`: The keys of the rows whose rows are shown at the start, separated by
96998
97032
  * commas. Used until `expanded` is set.
96999
97033
  * - `default-selected`/`defaultSelected`: The keys selected at the start, separated by commas. Used until `selected`
package/types/vue.d.ts CHANGED
@@ -5762,6 +5762,16 @@ and the grid becomes a tree grid.
5762
5762
  Reflected, because the styled tier indents a tree grid's row headers by
5763
5763
  it. No default, so a table that sets none writes nothing onto its host. */
5764
5764
  childField?: (HelixDataTable["childField"]) | undefined;
5765
+ /** The column tracks, as a grid track list such as `2fr 1fr max-content`,
5766
+ dealt out one track to a column in the order the columns are written. A
5767
+ column's own `width` wins in its place, and a column it does not reach
5768
+ takes the track a column with no `width` takes.
5769
+
5770
+ **The one track list a server can send.** A server rendering this element
5771
+ has no columns to read a `width` from, and neither has a stylesheet laying
5772
+ out the rows a page served before the table upgrades, so a table sized here
5773
+ lays those rows out at the widths it draws. */
5774
+ columns?: (HelixDataTable["columns"]) | undefined;
5765
5775
  /** The keys of the rows open at the start, separated by commas. Used until
5766
5776
  `expanded` is set. */
5767
5777
  "default-expanded"?: (HelixDataTable["defaultExpanded"]) | undefined;
@@ -17848,13 +17858,11 @@ and each column may say otherwise.
17848
17858
  **It is also the only track list a server can send.** The shim has no tree
17849
17859
  to walk, so a render there knows of no columns and this attribute is the
17850
17860
  whole answer: a table given one lays its grid out in the first paint, and a
17851
- table sized only by its columns is one track wide until it upgrades.
17861
+ table sized only by its columns takes, until it upgrades, a track for each
17862
+ column at the width a column with no `width` takes (`helix.css`).
17852
17863
 
17853
- **Data Table has none of this, and should not.** Its columns are its schema
17854
- rather than an option, so there is always a column to write a `width` on
17855
- and a list here would be a second way to say what that says. This table's
17856
- cells are markup, and a table written as rows of cells with no column
17857
- declared in it has nowhere else to be sized from. */
17864
+ Data Table takes the same list, for the same reason: a data table that
17865
+ serves its first page as rows is laid out by it before it upgrades. */
17858
17866
  columns?: (HelixTable["columns"]) | undefined;
17859
17867
  /** The keys of the rows whose rows are shown at the start, separated by
17860
17868
  commas. Used until `expanded` is set. */
@@ -24455,7 +24463,7 @@ export interface WcToolkitVueGlobalComponents {
24455
24463
  HelixCopyButtonVueProps,
24456
24464
  HelixCopyButtonVueEvents
24457
24465
  >;
24458
- /** Rows have hairline rules between them and no fill, and the headings are set apart by weight and color. Helix shows depth with a single border and no elevation, and a header band would be elevation. The grid scrolls in its own box, and the toolbar and footer sit outside it, so the search field stays in place when the columns scroll sideways. 'windowed' draws only the rows in view, for a result too long to lay out at once, and the headings stay in place while the rows scroll. It works with or without 'paginated' and with either 'mode', so a page or a chunk from a server can be windowed. **Write the first page as rows, so the served HTML carries the values.** Write it under the columns as 'helix-table-row' and 'helix-table-cell' elements. '@fusion.dev/helix-styles/helix.css' lays them out as the table draws them before it upgrades, and the table shows them until 'rows' holds a row. */
24466
+ /** Rows have hairline rules between them and no fill, and the headings are set apart by weight and color. Helix shows depth with a single border and no elevation, and a header band would be elevation. The grid scrolls in its own box, and the toolbar and footer sit outside it, so the search field stays in place when the columns scroll sideways. 'windowed' draws only the rows in view, for a result too long to lay out at once, and the headings stay in place while the rows scroll. It works with or without 'paginated' and with either 'mode', so a page or a chunk from a server can be windowed. **Write the first page as rows, so the served HTML carries the values.** Write it under the columns as 'helix-table-row' and 'helix-table-cell' elements. '@fusion.dev/helix-styles/helix.css' lays them out as the table draws them before it upgrades, and the table shows them until 'rows' holds a row. It holds the checkbox column and the pagination's row from the first paint, and takes the widths from 'columns', so nothing moves when the table upgrades or draws its own rows. */
24459
24467
  "helix-data-table": DefineCustomElement<
24460
24468
  HelixDataTable,
24461
24469
  HelixDataTableVueProps,
@@ -25025,7 +25033,7 @@ export interface WcToolkitVueGlobalComponents {
25025
25033
  HelixStepVueProps,
25026
25034
  HelixStepVueEvents
25027
25035
  >;
25028
- /** Hundreds of thin strands are drawn as one ribbon, and the light they add together is bloomed, so where they converge the ribbon burns hot. The ribbon moves on its own all the time: it sways and breathes, its strands wave and roll over one another, and light runs along them. Its palette comes from the tokens. The strands are '--helix-color-primary', a few are '--helix-color-accent' for depth, and the page they light is '--helix-color-background'. On a light page the light becomes ink, because light added to near-white cannot be seen. **Four forms, set with 'variant'.** 'bend' turns bright strands through one tight point, with its arms opening to the right. 'ribbon', the default, is a broad, soft ribbon in long curves. 'sweep' enters at a top corner, the one 'at' is nearer, and crosses in one diagonal to the far side. 'waves' is sharp strands crossing the full width. **Quiet behind words.** 'quiet' names elements, such as a hero's words, that the light dims behind to a faint glow, so a bright ribbon can cross the page under them and they stay crisp. **In its own box, by default.** The element fills the box it is given, the way an image does, and 'at' places the bend's apex or the ribbon's axis across it. Content placed inside sits over the ribbon, in the 'content' part. **Down the whole page, with 'travel'.** The element fixes itself behind the page, on '--helix-layer-beneath', and lays one ribbon from the top of the page to the bottom, so scrolling travels along it. Put 'helix-strands-stop' elements inside to pin a form to a section: each names an element with 'for' and says which form the ribbon takes there. Between stops the ribbon fills the gap in its own 'variant', and between two waves less than a screen and a half apart it turns off screen so each wave reads alone. Set 'z-index' on the element to move it. The ribbon stops moving in these cases: - 'prefers-reduced-motion' is set. The element shows one still frame, and in 'travel' still follows the scroll, without easing. - The element is off screen or in a background tab. It shows a gradient from the same tokens in these cases, and matches ':state(fallback)' and sends 'helix-strands-fallback' with the reason: - The renderer draws on the CPU, such as a headless browser or a machine with no usable GPU. - There is no WebGL, or the browser took the drawing context back. Strands is styled only and has behavior, as 'Aura' does: its behavior is drawing to a canvas, so there is no structure for a headless version to hold. */
25036
+ /** Hundreds of thin strands are drawn as one ribbon, and the light they add together is bloomed, so where they converge the ribbon burns hot. The ribbon moves on its own all the time: it sways and breathes, its strands wave and roll over one another, and light runs along them. Its palette comes from the tokens. The strands are '--helix-color-primary', a few are '--helix-color-accent' for depth, and the page they light is '--helix-color-background'. On a light page the light becomes ink, because light added to near-white cannot be seen. **Four forms, set with 'variant'.** 'bend' turns bright strands through one tight point, with its arms opening to the right. 'ribbon', the default, is a broad, soft ribbon in long curves. 'sweep' enters at a top corner, the one 'at' is nearer, and crosses in one diagonal to the far side. 'waves' is sharp strands crossing the full width. **Quiet behind words.** 'quiet' names elements, such as a hero's words, that the light dims behind to a faint glow, so a bright ribbon can cross the page under them and they stay crisp. **In its own box, by default.** The element fills the box it is given, the way an image does, and 'at' places the bend's apex or the ribbon's axis across it. Content placed inside sits over the ribbon, in the 'content' part. **Down the whole page, with 'travel'.** The element fixes itself behind the page, on '--helix-layer-beneath', and lays one ribbon from the top of the page to the bottom, so scrolling travels along it. Put 'helix-strands-stop' elements inside to pin a form to a section: each names an element with 'for' and says which form the ribbon takes there. Between stops the ribbon fills the gap in its own 'variant', and between two waves less than a screen and a half apart it turns off screen so each wave reads alone. Set 'z-index' on the element to move it. The ribbon stops moving in these cases: - 'prefers-reduced-motion' is set. The element shows one still frame, and in 'travel' still follows the scroll. - The element is off screen or in a background tab. It shows a gradient from the same tokens in these cases, and matches ':state(fallback)' and sends 'helix-strands-fallback' with the reason: - The renderer draws on the CPU, such as a headless browser or a machine with no usable GPU. - There is no WebGL, or the browser took the drawing context back. Strands is styled only and has behavior, as 'Aura' does: its behavior is drawing to a canvas, so there is no structure for a headless version to hold. */
25029
25037
  "helix-strands": DefineCustomElement<
25030
25038
  HelixStrands,
25031
25039
  HelixStrandsVueProps,