@fusion.dev/helix 0.46.1 → 0.47.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.
@@ -110888,7 +110888,7 @@
110888
110888
  "summary": "One cell of a table.",
110889
110889
  "helix": {
110890
110890
  "since": "0.1.0",
110891
- "status": "experimental",
110891
+ "status": "stable",
110892
110892
  "documentation": "https://fusion.dev/helix/components/table",
110893
110893
  "tier": "styled",
110894
110894
  "group": "Table",
@@ -111692,7 +111692,7 @@
111692
111692
  "summary": "One column of a table: its heading, and how wide it is.",
111693
111693
  "helix": {
111694
111694
  "since": "0.1.0",
111695
- "status": "experimental",
111695
+ "status": "stable",
111696
111696
  "documentation": "https://fusion.dev/helix/components/table",
111697
111697
  "aliases": [
111698
111698
  "Column header",
@@ -111954,12 +111954,8 @@
111954
111954
  "name": "HelixTable",
111955
111955
  "cssProperties": [
111956
111956
  {
111957
- "description": "Track list for the columns.",
111958
- "name": "--table-columns",
111959
- "inheritedFrom": {
111960
- "name": "HelixHeadlessTable",
111961
- "module": "src/table/root/table-root.ts"
111962
- }
111957
+ "description": "Track list for the columns, which wins over the one the columns worked out.",
111958
+ "name": "--table-columns"
111963
111959
  },
111964
111960
  {
111965
111961
  "description": "The column track list this element worked out from the columns declared in it. Written by the component, read by the sheet that paints: a stylesheet takes it to lay the grid out, and setting it does nothing, because the component writes it inline on the very element that reads it and an inline declaration beats any sheet. `--table-columns` is the one to set.",
@@ -112166,7 +112162,7 @@
112166
112162
  "text": "string"
112167
112163
  },
112168
112164
  "default": "''",
112169
- "description": "The column widths as one track list, written once on the table.\n\nWith `helix-table-column` children, each track sizes the column in its\nplace, a hidden column counted, so hiding one takes its track with it and\nthe rest keep theirs. The columns decide how many tracks there are and this\nlist only how wide: a track past the last column is dropped, and a column\npast the last track shares what is left. With no columns declared it is\nthe whole track list. Tracks count as the grid counts them, so\n`minmax(0, 1fr)` is one and `repeat(2, 8rem)` is two, and one the grid\nwould refuse leaves its column at the default rather than taking the table\ndown to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.",
112165
+ "description": "The column widths as one track list, written once on the table.\n\nWith `helix-table-column` children, each track sizes the column in its\nplace, a hidden column counted, so hiding one takes its track with it and\nthe rest keep theirs. The columns decide how many tracks there are and this\nlist only how wide: a track past the last column is dropped, and a column\npast the last track shares what is left. With no columns declared it is\nthe whole track list. Tracks count as the grid counts them, so\n`minmax(0, 1fr)` is one and `repeat(2, 8rem)` is two, and one the grid\nwould refuse leaves its column at the default rather than taking the table\ndown to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.\n\n**It is also the only track list a server can send.** The shim has no tree\nto walk, so a render there knows of no columns and this attribute is the\nwhole answer: a table given one lays its grid out in the first paint, and a\ntable sized only by its columns is one track wide until it upgrades.\n\n**`helix-data-table` has none of this, and should not.** Its columns are\nits schema rather than an option, so there is always a column to write a\n`width` on and a list here would be a second way to say what that says.\nThis table's cells are markup, and a table written as rows of cells with no\n`helix-table-column` in it has nowhere else to be sized from. Both families\ntake the same CSS hook, `--table-columns` and `--data-table-columns`, which\nwins over whichever list the element worked out.",
112170
112166
  "attribute": "columns",
112171
112167
  "inheritedFrom": {
112172
112168
  "name": "HelixHeadlessTable",
@@ -112642,7 +112638,7 @@
112642
112638
  "helix": {
112643
112639
  "category": "data",
112644
112640
  "since": "0.1.0",
112645
- "status": "experimental",
112641
+ "status": "stable",
112646
112642
  "documentation": "https://fusion.dev/helix/components/table",
112647
112643
  "tier": "styled",
112648
112644
  "group": "Table",
@@ -112707,7 +112703,7 @@
112707
112703
  "text": "string"
112708
112704
  },
112709
112705
  "default": "''",
112710
- "description": "The column widths as one track list, written once on the table.\n\nWith `helix-table-column` children, each track sizes the column in its\nplace, a hidden column counted, so hiding one takes its track with it and\nthe rest keep theirs. The columns decide how many tracks there are and this\nlist only how wide: a track past the last column is dropped, and a column\npast the last track shares what is left. With no columns declared it is\nthe whole track list. Tracks count as the grid counts them, so\n`minmax(0, 1fr)` is one and `repeat(2, 8rem)` is two, and one the grid\nwould refuse leaves its column at the default rather than taking the table\ndown to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.",
112706
+ "description": "The column widths as one track list, written once on the table.\n\nWith `helix-table-column` children, each track sizes the column in its\nplace, a hidden column counted, so hiding one takes its track with it and\nthe rest keep theirs. The columns decide how many tracks there are and this\nlist only how wide: a track past the last column is dropped, and a column\npast the last track shares what is left. With no columns declared it is\nthe whole track list. Tracks count as the grid counts them, so\n`minmax(0, 1fr)` is one and `repeat(2, 8rem)` is two, and one the grid\nwould refuse leaves its column at the default rather than taking the table\ndown to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.\n\n**It is also the only track list a server can send.** The shim has no tree\nto walk, so a render there knows of no columns and this attribute is the\nwhole answer: a table given one lays its grid out in the first paint, and a\ntable sized only by its columns is one track wide until it upgrades.\n\n**`helix-data-table` has none of this, and should not.** Its columns are\nits schema rather than an option, so there is always a column to write a\n`width` on and a list here would be a second way to say what that says.\nThis table's cells are markup, and a table written as rows of cells with no\n`helix-table-column` in it has nowhere else to be sized from. Both families\ntake the same CSS hook, `--table-columns` and `--data-table-columns`, which\nwins over whichever list the element worked out.",
112711
112707
  "fieldName": "columns",
112712
112708
  "inheritedFrom": {
112713
112709
  "name": "HelixHeadlessTable",
@@ -113146,7 +113142,7 @@
113146
113142
  "summary": "One row of a table.",
113147
113143
  "helix": {
113148
113144
  "since": "0.1.0",
113149
- "status": "experimental",
113145
+ "status": "stable",
113150
113146
  "documentation": "https://fusion.dev/helix/components/table",
113151
113147
  "tier": "styled",
113152
113148
  "group": "Table",
@@ -131256,8 +131252,7 @@
131256
131252
  "type": {
131257
131253
  "text": "number | undefined"
131258
131254
  },
131259
- "description": "Depth from the root, set by the tree so indentation needs no CSS nesting.\n\nNot reflected. The tree assigns this after it upgrades, so an attribute\nhere would be a change to markup the consumer rendered and hydration would\nreport it. The indent it drives is written onto the row instead, inside the\nshadow root, which is not part of the tree React hydrates.",
131260
- "attribute": "level",
131255
+ "description": "Depth from the root, counted by the tree so indentation needs no CSS nesting.\n\n**Read rather than written, and no attribute at all.** The tree counts the\nitems a row sits inside and assigns this on every sync, so a value declared\nhere is overwritten before the first paint: measured at `level=\"2\"` on three\nrows of a flat list, all three back to 1 with `--tree-level: 1` on every\nrow. It carried an attribute and a shipped example setting it for as long as\nboth existed, which is a depth a consumer could state and nothing would\nhonor. Depth in this tree is where a row is, not what it claims: a branch's\nchildren go in its `children` slot, and that nesting is also what decides\nwhich rows a shut branch hides and which row the outward arrow moves to.\n\nNot reflected either. The tree assigns this after it upgrades, so an\nattribute here would be a change to markup the consumer rendered and\nhydration would report it. The indent it drives is written onto the row\ninstead, inside the shadow root, which is not part of the tree React\nhydrates.",
131261
131256
  "inheritedFrom": {
131262
131257
  "name": "HelixHeadlessTreeItem",
131263
131258
  "module": "src/tree/item/tree-item.ts"
@@ -131284,7 +131279,7 @@
131284
131279
  "text": "boolean"
131285
131280
  },
131286
131281
  "default": "false",
131287
- "description": "Whether this item is the current one.\n\nNot reflected, for the reason `level` below gives in full: the tree assigns\nthis after it upgrades, so the attribute would be a change to markup the\nconsumer rendered and hydration would report it. Mirroring to\n`data-selected` on the host instead is the same fault under another name.\n\nThe stylesheet reads it from the row inside this shadow root, because the\nrow is not part of the tree React hydrates.",
131282
+ "description": "Whether this item is the current one.\n\nNot reflected, for the reason `level` above gives in full: the tree assigns\nthis after it upgrades, so the attribute would be a change to markup the\nconsumer rendered and hydration would report it. Mirroring to\n`data-selected` on the host instead is the same fault under another name.\n\nThe stylesheet reads it from the row inside this shadow root, because the\nrow is not part of the tree React hydrates.",
131288
131283
  "attribute": "selected",
131289
131284
  "inheritedFrom": {
131290
131285
  "name": "HelixHeadlessTreeItem",
@@ -131829,7 +131824,7 @@
131829
131824
  "summary": "One node in a tree.",
131830
131825
  "helix": {
131831
131826
  "since": "0.1.0",
131832
- "status": "experimental",
131827
+ "status": "stable",
131833
131828
  "documentation": "https://fusion.dev/helix/components/tree",
131834
131829
  "aliases": [
131835
131830
  "TreeNode",
@@ -131881,18 +131876,6 @@
131881
131876
  "module": "src/tree/item/tree-item.ts"
131882
131877
  }
131883
131878
  },
131884
- {
131885
- "name": "level",
131886
- "type": {
131887
- "text": "number | undefined"
131888
- },
131889
- "description": "Depth from the root, set by the tree so indentation needs no CSS nesting.\n\nNot reflected. The tree assigns this after it upgrades, so an attribute\nhere would be a change to markup the consumer rendered and hydration would\nreport it. The indent it drives is written onto the row instead, inside the\nshadow root, which is not part of the tree React hydrates.",
131890
- "fieldName": "level",
131891
- "inheritedFrom": {
131892
- "name": "HelixHeadlessTreeItem",
131893
- "module": "src/tree/item/tree-item.ts"
131894
- }
131895
- },
131896
131879
  {
131897
131880
  "name": "rel",
131898
131881
  "type": {
@@ -131912,7 +131895,7 @@
131912
131895
  "text": "boolean"
131913
131896
  },
131914
131897
  "default": "false",
131915
- "description": "Whether this item is the current one.\n\nNot reflected, for the reason `level` below gives in full: the tree assigns\nthis after it upgrades, so the attribute would be a change to markup the\nconsumer rendered and hydration would report it. Mirroring to\n`data-selected` on the host instead is the same fault under another name.\n\nThe stylesheet reads it from the row inside this shadow root, because the\nrow is not part of the tree React hydrates.",
131898
+ "description": "Whether this item is the current one.\n\nNot reflected, for the reason `level` above gives in full: the tree assigns\nthis after it upgrades, so the attribute would be a change to markup the\nconsumer rendered and hydration would report it. Mirroring to\n`data-selected` on the host instead is the same fault under another name.\n\nThe stylesheet reads it from the row inside this shadow root, because the\nrow is not part of the tree React hydrates.",
131916
131899
  "fieldName": "selected",
131917
131900
  "inheritedFrom": {
131918
131901
  "name": "HelixHeadlessTreeItem",
@@ -132986,7 +132969,7 @@
132986
132969
  "helix": {
132987
132970
  "category": "navigation",
132988
132971
  "since": "0.1.0",
132989
- "status": "experimental",
132972
+ "status": "stable",
132990
132973
  "documentation": "https://fusion.dev/helix/components/tree",
132991
132974
  "aliases": [
132992
132975
  "FileTree",
@@ -133012,10 +132995,6 @@
133012
132995
  "description": "Choosing bubbles to the tree and opening does not, which is why they are bound apart.",
133013
132996
  "slug": "events"
133014
132997
  },
133015
- {
133016
- "description": "A node told its own depth, for a tree built from a flat list rather than by nesting.",
133017
- "slug": "flattened"
133018
- },
133019
132998
  {
133020
132999
  "description": "Depth as a position, depth as a rank, and a branch that is a heading.",
133021
133000
  "slug": "nesting"
@@ -10,7 +10,7 @@ import type { CSSResultGroup } from 'lit';
10
10
  * identifier breaks rather than running into the next column.
11
11
  *
12
12
  * @since 0.1.0
13
- * @status experimental
13
+ * @status stable
14
14
  * @documentation https://fusion.dev/helix/components/table
15
15
  *
16
16
  * @slot - The cell's content.
@@ -9,7 +9,7 @@ import type { CSSResultGroup } from 'lit';
9
9
  * table.
10
10
  *
11
11
  * @since 0.1.0
12
- * @status experimental
12
+ * @status stable
13
13
  * @aliases Column header, Th
14
14
  * @documentation https://fusion.dev/helix/components/table
15
15
  */
@@ -9,7 +9,7 @@ import type { CSSResultGroup } from 'lit';
9
9
  * decorating none of it.
10
10
  *
11
11
  * @since 0.1.0
12
- * @status experimental
12
+ * @status stable
13
13
  * @category data
14
14
  * @documentation https://fusion.dev/helix/components/table
15
15
  *
@@ -17,7 +17,7 @@ import type { CSSResultGroup } from 'lit';
17
17
  *
18
18
  * @csspart table - The grid.
19
19
  *
20
- * @cssproperty --table-columns - Track list for the columns.
20
+ * @cssproperty --table-columns - Track list for the columns, which wins over the one the columns worked out.
21
21
  */
22
22
  export declare class HelixTable extends HelixHeadlessTable {
23
23
  static styles: CSSResultGroup;
@@ -10,7 +10,7 @@ import type { CSSResultGroup } from 'lit';
10
10
  * columns.
11
11
  *
12
12
  * @since 0.1.0
13
- * @status experimental
13
+ * @status stable
14
14
  * @documentation https://fusion.dev/helix/components/table
15
15
  *
16
16
  * @slot - The row's cells.
@@ -14,7 +14,7 @@ import type { CSSResultGroup } from 'lit';
14
14
  * the row itself stays flat.
15
15
  *
16
16
  * @since 0.1.0
17
- * @status experimental
17
+ * @status stable
18
18
  * @aliases TreeNode, Branch, Leaf
19
19
  * @documentation https://fusion.dev/helix/components/tree
20
20
  *
@@ -9,7 +9,7 @@ import type { CSSResultGroup } from 'lit';
9
9
  * to it is one more thing between the reader and the label.
10
10
  *
11
11
  * @since 0.1.0
12
- * @status experimental
12
+ * @status stable
13
13
  * @category navigation
14
14
  * @aliases FileTree, Navigation tree
15
15
  * @documentation https://fusion.dev/helix/components/tree
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.46.1",
4
+ "version": "0.47.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -47,14 +47,14 @@
47
47
  },
48
48
  "bugs": "https://github.com/project-fusion/fusion/issues",
49
49
  "dependencies": {
50
- "@fusion.dev/helix-core": "0.46.1",
51
- "@fusion.dev/helix-headless": "0.46.1",
52
- "@fusion.dev/helix-styles": "0.46.1"
50
+ "@fusion.dev/helix-core": "0.47.0",
51
+ "@fusion.dev/helix-headless": "0.47.0",
52
+ "@fusion.dev/helix-styles": "0.47.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@custom-elements-manifest/analyzer": "^0.11.0",
56
- "@fusion.dev/helix-cem": "0.46.1",
57
- "@fusion.dev/helix-testing": "0.46.1",
56
+ "@fusion.dev/helix-cem": "0.47.0",
57
+ "@fusion.dev/helix-testing": "0.47.0",
58
58
  "@fusion.dev/scripts": "0.0.0-dev",
59
59
  "@happy-dom/global-registrator": "^20.0.0",
60
60
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -16525,7 +16525,20 @@ on the column it sizes, which is the more particular statement, and it is
16525
16525
  where a resize lands: a reader dragging a column's edge writes `width`, so
16526
16526
  were this list to win, the drag would move the separator and leave the
16527
16527
  track where the list put it. This is the table's default for its columns,
16528
- and each column may say otherwise. */
16528
+ and each column may say otherwise.
16529
+
16530
+ **It is also the only track list a server can send.** The shim has no tree
16531
+ to walk, so a render there knows of no columns and this attribute is the
16532
+ whole answer: a table given one lays its grid out in the first paint, and a
16533
+ table sized only by its columns is one track wide until it upgrades.
16534
+
16535
+ **`helix-data-table` has none of this, and should not.** Its columns are
16536
+ its schema rather than an option, so there is always a column to write a
16537
+ `width` on and a list here would be a second way to say what that says.
16538
+ This table's cells are markup, and a table written as rows of cells with no
16539
+ `helix-table-column` in it has nowhere else to be sized from. Both families
16540
+ take the same CSS hook, `--table-columns` and `--data-table-columns`, which
16541
+ wins over whichever list the element worked out. */
16529
16542
  columns?: (HelixTable["columns"]) | undefined;
16530
16543
  /** Accessible name for the table. */
16531
16544
  label?: (HelixTable["label"]) | undefined;
@@ -16563,7 +16576,20 @@ on the column it sizes, which is the more particular statement, and it is
16563
16576
  where a resize lands: a reader dragging a column's edge writes `width`, so
16564
16577
  were this list to win, the drag would move the separator and leave the
16565
16578
  track where the list put it. This is the table's default for its columns,
16566
- and each column may say otherwise. */
16579
+ and each column may say otherwise.
16580
+
16581
+ **It is also the only track list a server can send.** The shim has no tree
16582
+ to walk, so a render there knows of no columns and this attribute is the
16583
+ whole answer: a table given one lays its grid out in the first paint, and a
16584
+ table sized only by its columns is one track wide until it upgrades.
16585
+
16586
+ **`helix-data-table` has none of this, and should not.** Its columns are
16587
+ its schema rather than an option, so there is always a column to write a
16588
+ `width` on and a list here would be a second way to say what that says.
16589
+ This table's cells are markup, and a table written as rows of cells with no
16590
+ `helix-table-column` in it has nowhere else to be sized from. Both families
16591
+ take the same CSS hook, `--table-columns` and `--data-table-columns`, which
16592
+ wins over whichever list the element worked out. */
16567
16593
  "prop:columns"?: (HelixTable["columns"]) | undefined;
16568
16594
  /** Accessible name for the table. */
16569
16595
  "prop:label"?: (HelixTable["label"]) | undefined;
@@ -19067,13 +19093,6 @@ Unset by default, and unreflected: a tree of choosable nodes is not a tree
19067
19093
  of links, and an empty `href` written onto every row would be a link to the
19068
19094
  current page on every item a consumer never asked to be one. */
19069
19095
  href?: (HelixTreeItem["href"]) | undefined;
19070
- /** Depth from the root, set by the tree so indentation needs no CSS nesting.
19071
-
19072
- Not reflected. The tree assigns this after it upgrades, so an attribute
19073
- here would be a change to markup the consumer rendered and hydration would
19074
- report it. The indent it drives is written onto the row instead, inside the
19075
- shadow root, which is not part of the tree React hydrates. */
19076
- level?: (HelixTreeItem["level"]) | undefined;
19077
19096
  /** What the link declares about where it goes.
19078
19097
 
19079
19098
  Set by the consumer rather than derived from `target`: `noreferrer` is a
@@ -19083,7 +19102,7 @@ this library supports implies it for `target="_blank"` already. */
19083
19102
  rel?: (HelixTreeItem["rel"]) | undefined;
19084
19103
  /** Whether this item is the current one.
19085
19104
 
19086
- Not reflected, for the reason `level` below gives in full: the tree assigns
19105
+ Not reflected, for the reason `level` above gives in full: the tree assigns
19087
19106
  this after it upgrades, so the attribute would be a change to markup the
19088
19107
  consumer rendered and hydration would report it. Mirroring to
19089
19108
  `data-selected` on the host instead is the same fault under another name.
@@ -19095,6 +19114,24 @@ row is not part of the tree React hydrates. */
19095
19114
  target?: (HelixTreeItem["target"]) | undefined;
19096
19115
  /** Identifies the item to the consumer, carried in `helix-select`. */
19097
19116
  value?: (HelixTreeItem["value"]) | undefined;
19117
+ /** Depth from the root, counted by the tree so indentation needs no CSS nesting.
19118
+
19119
+ **Read rather than written, and no attribute at all.** The tree counts the
19120
+ items a row sits inside and assigns this on every sync, so a value declared
19121
+ here is overwritten before the first paint: measured at `level="2"` on three
19122
+ rows of a flat list, all three back to 1 with `--tree-level: 1` on every
19123
+ row. It carried an attribute and a shipped example setting it for as long as
19124
+ both existed, which is a depth a consumer could state and nothing would
19125
+ honor. Depth in this tree is where a row is, not what it claims: a branch's
19126
+ children go in its `children` slot, and that nesting is also what decides
19127
+ which rows a shut branch hides and which row the outward arrow moves to.
19128
+
19129
+ Not reflected either. The tree assigns this after it upgrades, so an
19130
+ attribute here would be a change to markup the consumer rendered and
19131
+ hydration would report it. The indent it drives is written onto the row
19132
+ instead, inside the shadow root, which is not part of the tree React
19133
+ hydrates. */
19134
+ level?: (HelixTreeItem["level"]) | undefined;
19098
19135
  /** Whether this item holds the tree's single tab stop. */
19099
19136
  focusable?: (HelixTreeItem["focusable"]) | undefined;
19100
19137
 
@@ -19134,13 +19171,6 @@ Unset by default, and unreflected: a tree of choosable nodes is not a tree
19134
19171
  of links, and an empty `href` written onto every row would be a link to the
19135
19172
  current page on every item a consumer never asked to be one. */
19136
19173
  "prop:href"?: (HelixTreeItem["href"]) | undefined;
19137
- /** Depth from the root, set by the tree so indentation needs no CSS nesting.
19138
-
19139
- Not reflected. The tree assigns this after it upgrades, so an attribute
19140
- here would be a change to markup the consumer rendered and hydration would
19141
- report it. The indent it drives is written onto the row instead, inside the
19142
- shadow root, which is not part of the tree React hydrates. */
19143
- "prop:level"?: (HelixTreeItem["level"]) | undefined;
19144
19174
  /** What the link declares about where it goes.
19145
19175
 
19146
19176
  Set by the consumer rather than derived from `target`: `noreferrer` is a
@@ -19150,7 +19180,7 @@ this library supports implies it for `target="_blank"` already. */
19150
19180
  "prop:rel"?: (HelixTreeItem["rel"]) | undefined;
19151
19181
  /** Whether this item is the current one.
19152
19182
 
19153
- Not reflected, for the reason `level` below gives in full: the tree assigns
19183
+ Not reflected, for the reason `level` above gives in full: the tree assigns
19154
19184
  this after it upgrades, so the attribute would be a change to markup the
19155
19185
  consumer rendered and hydration would report it. Mirroring to
19156
19186
  `data-selected` on the host instead is the same fault under another name.
@@ -19162,6 +19192,24 @@ row is not part of the tree React hydrates. */
19162
19192
  "prop:target"?: (HelixTreeItem["target"]) | undefined;
19163
19193
  /** Identifies the item to the consumer, carried in `helix-select`. */
19164
19194
  "prop:value"?: (HelixTreeItem["value"]) | undefined;
19195
+ /** Depth from the root, counted by the tree so indentation needs no CSS nesting.
19196
+
19197
+ **Read rather than written, and no attribute at all.** The tree counts the
19198
+ items a row sits inside and assigns this on every sync, so a value declared
19199
+ here is overwritten before the first paint: measured at `level="2"` on three
19200
+ rows of a flat list, all three back to 1 with `--tree-level: 1` on every
19201
+ row. It carried an attribute and a shipped example setting it for as long as
19202
+ both existed, which is a depth a consumer could state and nothing would
19203
+ honor. Depth in this tree is where a row is, not what it claims: a branch's
19204
+ children go in its `children` slot, and that nesting is also what decides
19205
+ which rows a shut branch hides and which row the outward arrow moves to.
19206
+
19207
+ Not reflected either. The tree assigns this after it upgrades, so an
19208
+ attribute here would be a change to markup the consumer rendered and
19209
+ hydration would report it. The indent it drives is written onto the row
19210
+ instead, inside the shadow root, which is not part of the tree React
19211
+ hydrates. */
19212
+ "prop:level"?: (HelixTreeItem["level"]) | undefined;
19165
19213
  /** Whether this item holds the tree's single tab stop. */
19166
19214
  "prop:focusable"?: (HelixTreeItem["focusable"]) | undefined;
19167
19215
  /** Fired when the item is chosen. Cancelable: refusing it takes the decision and nothing moves. */
@@ -36009,6 +36057,19 @@ export type CustomElements = {
36009
36057
  * were this list to win, the drag would move the separator and leave the
36010
36058
  * track where the list put it. This is the table's default for its columns,
36011
36059
  * and each column may say otherwise.
36060
+ *
36061
+ * **It is also the only track list a server can send.** The shim has no tree
36062
+ * to walk, so a render there knows of no columns and this attribute is the
36063
+ * whole answer: a table given one lays its grid out in the first paint, and a
36064
+ * table sized only by its columns is one track wide until it upgrades.
36065
+ *
36066
+ * **`helix-data-table` has none of this, and should not.** Its columns are
36067
+ * its schema rather than an option, so there is always a column to write a
36068
+ * `width` on and a list here would be a second way to say what that says.
36069
+ * This table's cells are markup, and a table written as rows of cells with no
36070
+ * `helix-table-column` in it has nowhere else to be sized from. Both families
36071
+ * take the same CSS hook, `--table-columns` and `--data-table-columns`, which
36072
+ * wins over whichever list the element worked out.
36012
36073
  * - `label`: Accessible name for the table.
36013
36074
  * - `tableColumns`: The columns declared as children, in the order they are written. (property only) (readonly)
36014
36075
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -36042,7 +36103,7 @@ export type CustomElements = {
36042
36103
  *
36043
36104
  * CSS variables available for styling the component.
36044
36105
  *
36045
- * - `--table-columns`: Track list for the columns. (default: `undefined`)
36106
+ * - `--table-columns`: Track list for the columns, which wins over the one the columns worked out. (default: `undefined`)
36046
36107
  * - `--table-template`: The column track list this element worked out from the columns declared in it. Written by the component, read by the sheet that paints: a stylesheet takes it to lay the grid out, and setting it does nothing, because the component writes it inline on the very element that reads it and an inline declaration beats any sheet. `--table-columns` is the one to set. (default: `undefined`)
36047
36108
  *
36048
36109
  * ## CSS Parts
@@ -38507,12 +38568,6 @@ export type CustomElements = {
38507
38568
  * Unset by default, and unreflected: a tree of choosable nodes is not a tree
38508
38569
  * of links, and an empty `href` written onto every row would be a link to the
38509
38570
  * current page on every item a consumer never asked to be one.
38510
- * - `level`: Depth from the root, set by the tree so indentation needs no CSS nesting.
38511
- *
38512
- * Not reflected. The tree assigns this after it upgrades, so an attribute
38513
- * here would be a change to markup the consumer rendered and hydration would
38514
- * report it. The indent it drives is written onto the row instead, inside the
38515
- * shadow root, which is not part of the tree React hydrates.
38516
38571
  * - `rel`: What the link declares about where it goes.
38517
38572
  *
38518
38573
  * Set by the consumer rather than derived from `target`: `noreferrer` is a
@@ -38521,7 +38576,7 @@ export type CustomElements = {
38521
38576
  * this library supports implies it for `target="_blank"` already.
38522
38577
  * - `selected`: Whether this item is the current one.
38523
38578
  *
38524
- * Not reflected, for the reason `level` below gives in full: the tree assigns
38579
+ * Not reflected, for the reason `level` above gives in full: the tree assigns
38525
38580
  * this after it upgrades, so the attribute would be a change to markup the
38526
38581
  * consumer rendered and hydration would report it. Mirroring to
38527
38582
  * `data-selected` on the host instead is the same fault under another name.
@@ -38530,6 +38585,23 @@ export type CustomElements = {
38530
38585
  * row is not part of the tree React hydrates.
38531
38586
  * - `target`: Where the link opens, for the rare row that leaves the site.
38532
38587
  * - `value`: Identifies the item to the consumer, carried in `helix-select`.
38588
+ * - `level`: Depth from the root, counted by the tree so indentation needs no CSS nesting.
38589
+ *
38590
+ * **Read rather than written, and no attribute at all.** The tree counts the
38591
+ * items a row sits inside and assigns this on every sync, so a value declared
38592
+ * here is overwritten before the first paint: measured at `level="2"` on three
38593
+ * rows of a flat list, all three back to 1 with `--tree-level: 1` on every
38594
+ * row. It carried an attribute and a shipped example setting it for as long as
38595
+ * both existed, which is a depth a consumer could state and nothing would
38596
+ * honor. Depth in this tree is where a row is, not what it claims: a branch's
38597
+ * children go in its `children` slot, and that nesting is also what decides
38598
+ * which rows a shut branch hides and which row the outward arrow moves to.
38599
+ *
38600
+ * Not reflected either. The tree assigns this after it upgrades, so an
38601
+ * attribute here would be a change to markup the consumer rendered and
38602
+ * hydration would report it. The indent it drives is written onto the row
38603
+ * instead, inside the shadow root, which is not part of the tree React
38604
+ * hydrates. (property only)
38533
38605
  * - `focusable`: Whether this item holds the tree's single tab stop. (property only)
38534
38606
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
38535
38607
  *
@@ -55600,6 +55672,19 @@ export type CustomElementsSolidJs = {
55600
55672
  * were this list to win, the drag would move the separator and leave the
55601
55673
  * track where the list put it. This is the table's default for its columns,
55602
55674
  * and each column may say otherwise.
55675
+ *
55676
+ * **It is also the only track list a server can send.** The shim has no tree
55677
+ * to walk, so a render there knows of no columns and this attribute is the
55678
+ * whole answer: a table given one lays its grid out in the first paint, and a
55679
+ * table sized only by its columns is one track wide until it upgrades.
55680
+ *
55681
+ * **`helix-data-table` has none of this, and should not.** Its columns are
55682
+ * its schema rather than an option, so there is always a column to write a
55683
+ * `width` on and a list here would be a second way to say what that says.
55684
+ * This table's cells are markup, and a table written as rows of cells with no
55685
+ * `helix-table-column` in it has nowhere else to be sized from. Both families
55686
+ * take the same CSS hook, `--table-columns` and `--data-table-columns`, which
55687
+ * wins over whichever list the element worked out.
55603
55688
  * - `label`: Accessible name for the table.
55604
55689
  * - `tableColumns`: The columns declared as children, in the order they are written. (property only) (readonly)
55605
55690
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
@@ -55633,7 +55718,7 @@ export type CustomElementsSolidJs = {
55633
55718
  *
55634
55719
  * CSS variables available for styling the component.
55635
55720
  *
55636
- * - `--table-columns`: Track list for the columns. (default: `undefined`)
55721
+ * - `--table-columns`: Track list for the columns, which wins over the one the columns worked out. (default: `undefined`)
55637
55722
  * - `--table-template`: The column track list this element worked out from the columns declared in it. Written by the component, read by the sheet that paints: a stylesheet takes it to lay the grid out, and setting it does nothing, because the component writes it inline on the very element that reads it and an inline declaration beats any sheet. `--table-columns` is the one to set. (default: `undefined`)
55638
55723
  *
55639
55724
  * ## CSS Parts
@@ -58157,12 +58242,6 @@ export type CustomElementsSolidJs = {
58157
58242
  * Unset by default, and unreflected: a tree of choosable nodes is not a tree
58158
58243
  * of links, and an empty `href` written onto every row would be a link to the
58159
58244
  * current page on every item a consumer never asked to be one.
58160
- * - `level`: Depth from the root, set by the tree so indentation needs no CSS nesting.
58161
- *
58162
- * Not reflected. The tree assigns this after it upgrades, so an attribute
58163
- * here would be a change to markup the consumer rendered and hydration would
58164
- * report it. The indent it drives is written onto the row instead, inside the
58165
- * shadow root, which is not part of the tree React hydrates.
58166
58245
  * - `rel`: What the link declares about where it goes.
58167
58246
  *
58168
58247
  * Set by the consumer rather than derived from `target`: `noreferrer` is a
@@ -58171,7 +58250,7 @@ export type CustomElementsSolidJs = {
58171
58250
  * this library supports implies it for `target="_blank"` already.
58172
58251
  * - `selected`: Whether this item is the current one.
58173
58252
  *
58174
- * Not reflected, for the reason `level` below gives in full: the tree assigns
58253
+ * Not reflected, for the reason `level` above gives in full: the tree assigns
58175
58254
  * this after it upgrades, so the attribute would be a change to markup the
58176
58255
  * consumer rendered and hydration would report it. Mirroring to
58177
58256
  * `data-selected` on the host instead is the same fault under another name.
@@ -58180,6 +58259,23 @@ export type CustomElementsSolidJs = {
58180
58259
  * row is not part of the tree React hydrates.
58181
58260
  * - `target`: Where the link opens, for the rare row that leaves the site.
58182
58261
  * - `value`: Identifies the item to the consumer, carried in `helix-select`.
58262
+ * - `level`: Depth from the root, counted by the tree so indentation needs no CSS nesting.
58263
+ *
58264
+ * **Read rather than written, and no attribute at all.** The tree counts the
58265
+ * items a row sits inside and assigns this on every sync, so a value declared
58266
+ * here is overwritten before the first paint: measured at `level="2"` on three
58267
+ * rows of a flat list, all three back to 1 with `--tree-level: 1` on every
58268
+ * row. It carried an attribute and a shipped example setting it for as long as
58269
+ * both existed, which is a depth a consumer could state and nothing would
58270
+ * honor. Depth in this tree is where a row is, not what it claims: a branch's
58271
+ * children go in its `children` slot, and that nesting is also what decides
58272
+ * which rows a shut branch hides and which row the outward arrow moves to.
58273
+ *
58274
+ * Not reflected either. The tree assigns this after it upgrades, so an
58275
+ * attribute here would be a change to markup the consumer rendered and
58276
+ * hydration would report it. The indent it drives is written onto the row
58277
+ * instead, inside the shadow root, which is not part of the tree React
58278
+ * hydrates. (property only)
58183
58279
  * - `focusable`: Whether this item holds the tree's single tab stop. (property only)
58184
58280
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
58185
58281
  *
@@ -60117,7 +60213,7 @@ export type CustomCssProperties = {
60117
60213
  "--switch-thumb-color"?: (string) | undefined;
60118
60214
  /** The edge the column this cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the table around it, since the cell is the consumer's markup and nothing is written onto it; read by the sheet that draws the cell, where `justify-content` and `text-align` both take it as it comes and both follow the writing direction. */
60119
60215
  "--table-cell-align"?: (string) | undefined;
60120
- /** Track list for the columns. */
60216
+ /** Track list for the columns, which wins over the one the columns worked out. */
60121
60217
  "--table-columns"?: (string) | undefined;
60122
60218
  /** The column track list this element worked out from the columns declared in it. Written by the component, read by the sheet that paints: a stylesheet takes it to lay the grid out, and setting it does nothing, because the component writes it inline on the very element that reads it and an inline declaration beats any sheet. `--table-columns` is the one to set. */
60123
60219
  "--table-template"?: (string) | undefined;
package/types/vue.d.ts CHANGED
@@ -8482,7 +8482,20 @@ on the column it sizes, which is the more particular statement, and it is
8482
8482
  where a resize lands: a reader dragging a column's edge writes `width`, so
8483
8483
  were this list to win, the drag would move the separator and leave the
8484
8484
  track where the list put it. This is the table's default for its columns,
8485
- and each column may say otherwise. */
8485
+ and each column may say otherwise.
8486
+
8487
+ **It is also the only track list a server can send.** The shim has no tree
8488
+ to walk, so a render there knows of no columns and this attribute is the
8489
+ whole answer: a table given one lays its grid out in the first paint, and a
8490
+ table sized only by its columns is one track wide until it upgrades.
8491
+
8492
+ **`helix-data-table` has none of this, and should not.** Its columns are
8493
+ its schema rather than an option, so there is always a column to write a
8494
+ `width` on and a list here would be a second way to say what that says.
8495
+ This table's cells are markup, and a table written as rows of cells with no
8496
+ `helix-table-column` in it has nowhere else to be sized from. Both families
8497
+ take the same CSS hook, `--table-columns` and `--data-table-columns`, which
8498
+ wins over whichever list the element worked out. */
8486
8499
  columns?: (HelixTable["columns"]) | undefined;
8487
8500
  /** Accessible name for the table. */
8488
8501
  label?: (HelixTable["label"]) | undefined;
@@ -9792,13 +9805,6 @@ Unset by default, and unreflected: a tree of choosable nodes is not a tree
9792
9805
  of links, and an empty `href` written onto every row would be a link to the
9793
9806
  current page on every item a consumer never asked to be one. */
9794
9807
  href?: (HelixTreeItem["href"]) | undefined;
9795
- /** Depth from the root, set by the tree so indentation needs no CSS nesting.
9796
-
9797
- Not reflected. The tree assigns this after it upgrades, so an attribute
9798
- here would be a change to markup the consumer rendered and hydration would
9799
- report it. The indent it drives is written onto the row instead, inside the
9800
- shadow root, which is not part of the tree React hydrates. */
9801
- level?: (HelixTreeItem["level"]) | undefined;
9802
9808
  /** What the link declares about where it goes.
9803
9809
 
9804
9810
  Set by the consumer rather than derived from `target`: `noreferrer` is a
@@ -9808,7 +9814,7 @@ this library supports implies it for `target="_blank"` already. */
9808
9814
  rel?: (HelixTreeItem["rel"]) | undefined;
9809
9815
  /** Whether this item is the current one.
9810
9816
 
9811
- Not reflected, for the reason `level` below gives in full: the tree assigns
9817
+ Not reflected, for the reason `level` above gives in full: the tree assigns
9812
9818
  this after it upgrades, so the attribute would be a change to markup the
9813
9819
  consumer rendered and hydration would report it. Mirroring to
9814
9820
  `data-selected` on the host instead is the same fault under another name.
@@ -9820,6 +9826,24 @@ row is not part of the tree React hydrates. */
9820
9826
  target?: (HelixTreeItem["target"]) | undefined;
9821
9827
  /** Identifies the item to the consumer, carried in `helix-select`. */
9822
9828
  value?: (HelixTreeItem["value"]) | undefined;
9829
+ /** Depth from the root, counted by the tree so indentation needs no CSS nesting.
9830
+
9831
+ **Read rather than written, and no attribute at all.** The tree counts the
9832
+ items a row sits inside and assigns this on every sync, so a value declared
9833
+ here is overwritten before the first paint: measured at `level="2"` on three
9834
+ rows of a flat list, all three back to 1 with `--tree-level: 1` on every
9835
+ row. It carried an attribute and a shipped example setting it for as long as
9836
+ both existed, which is a depth a consumer could state and nothing would
9837
+ honor. Depth in this tree is where a row is, not what it claims: a branch's
9838
+ children go in its `children` slot, and that nesting is also what decides
9839
+ which rows a shut branch hides and which row the outward arrow moves to.
9840
+
9841
+ Not reflected either. The tree assigns this after it upgrades, so an
9842
+ attribute here would be a change to markup the consumer rendered and
9843
+ hydration would report it. The indent it drives is written onto the row
9844
+ instead, inside the shadow root, which is not part of the tree React
9845
+ hydrates. */
9846
+ level?: (HelixTreeItem["level"]) | undefined;
9823
9847
  /** Whether this item holds the tree's single tab stop. */
9824
9848
  focusable?: (HelixTreeItem["focusable"]) | undefined;
9825
9849
  };
@@ -11299,7 +11323,7 @@ export type CustomCssProperties = {
11299
11323
  "--switch-thumb-color"?: (string) | undefined;
11300
11324
  /** The edge the column this cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the table around it, since the cell is the consumer's markup and nothing is written onto it; read by the sheet that draws the cell, where `justify-content` and `text-align` both take it as it comes and both follow the writing direction. */
11301
11325
  "--table-cell-align"?: (string) | undefined;
11302
- /** Track list for the columns. */
11326
+ /** Track list for the columns, which wins over the one the columns worked out. */
11303
11327
  "--table-columns"?: (string) | undefined;
11304
11328
  /** The column track list this element worked out from the columns declared in it. Written by the component, read by the sheet that paints: a stylesheet takes it to lay the grid out, and setting it does nothing, because the component writes it inline on the very element that reads it and an inline declaration beats any sheet. `--table-columns` is the one to set. */
11305
11329
  "--table-template"?: (string) | undefined;