@fusion.dev/helix-headless 0.53.6 → 0.55.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/types/jsx.d.ts CHANGED
@@ -1017,19 +1017,12 @@ is showing a count must not lose the count for being handed one. */
1017
1017
  };
1018
1018
 
1019
1019
  export type HelixHeadlessBarChartProps = {
1020
- /** Whether the categories run down the side rather than along the bottom.
1021
-
1022
- Absent is columns. `horizontal` is the one to reach for when the category
1023
- names are words rather than dates: a row of long names either overlaps or
1024
- turns on its side, and neither is as readable as putting them down the left
1025
- where they read normally. */
1026
- direction?: (HelixHeadlessBarChart["direction"]) | undefined;
1027
1020
  /** Which rules are drawn across the plot, if any.
1028
1021
 
1029
1022
  Absent draws none. `value` rules the axis the columns are *measured* on,
1030
1023
  `category` rules the axis they are *arranged* on with one through each
1031
1024
  group, and `both` draws both. Which of those is horizontal turns with
1032
- `direction`, because a rule belongs to an axis and not to a screen edge.
1025
+ `orientation`, because a rule belongs to an axis and not to a screen edge.
1033
1026
 
1034
1027
  **A bare `gridlines` means `value`**, and so does anything unrecognized: an
1035
1028
  unrecognized value that draws nothing is indistinguishable from the
@@ -1065,6 +1058,16 @@ A line among columns measures from zero, because the columns do and they
1065
1058
  share the axis. So does a line on the second scale, which is that scale's
1066
1059
  own rule rather than this one's. */
1067
1060
  lines?: (HelixHeadlessBarChart["lines"]) | undefined;
1061
+ /** Whether the categories run down the side rather than along the bottom.
1062
+
1063
+ Absent is columns. `horizontal` is the one to reach for when the category
1064
+ names are words rather than dates: a row of long names either overlaps or
1065
+ turns on its side, and neither is as readable as putting them down the left
1066
+ where they read normally.
1067
+
1068
+ `orientation` and not `orientation`, which `Trend` uses in the same group for
1069
+ which way a number moved. */
1070
+ orientation?: (HelixHeadlessBarChart["orientation"]) | undefined;
1068
1071
  /** Which series are measured against a scale of their own, by name.
1069
1072
 
1070
1073
  Separated and matched the way `lines` is, against the column headings the
@@ -1115,19 +1118,12 @@ words and is already written. */
1115
1118
  };
1116
1119
 
1117
1120
  export type HelixHeadlessBarChartSolidJsProps = {
1118
- /** Whether the categories run down the side rather than along the bottom.
1119
-
1120
- Absent is columns. `horizontal` is the one to reach for when the category
1121
- names are words rather than dates: a row of long names either overlaps or
1122
- turns on its side, and neither is as readable as putting them down the left
1123
- where they read normally. */
1124
- "prop:direction"?: (HelixHeadlessBarChart["direction"]) | undefined;
1125
1121
  /** Which rules are drawn across the plot, if any.
1126
1122
 
1127
1123
  Absent draws none. `value` rules the axis the columns are *measured* on,
1128
1124
  `category` rules the axis they are *arranged* on with one through each
1129
1125
  group, and `both` draws both. Which of those is horizontal turns with
1130
- `direction`, because a rule belongs to an axis and not to a screen edge.
1126
+ `orientation`, because a rule belongs to an axis and not to a screen edge.
1131
1127
 
1132
1128
  **A bare `gridlines` means `value`**, and so does anything unrecognized: an
1133
1129
  unrecognized value that draws nothing is indistinguishable from the
@@ -1163,6 +1159,16 @@ A line among columns measures from zero, because the columns do and they
1163
1159
  share the axis. So does a line on the second scale, which is that scale's
1164
1160
  own rule rather than this one's. */
1165
1161
  "prop:lines"?: (HelixHeadlessBarChart["lines"]) | undefined;
1162
+ /** Whether the categories run down the side rather than along the bottom.
1163
+
1164
+ Absent is columns. `horizontal` is the one to reach for when the category
1165
+ names are words rather than dates: a row of long names either overlaps or
1166
+ turns on its side, and neither is as readable as putting them down the left
1167
+ where they read normally.
1168
+
1169
+ `orientation` and not `orientation`, which `Trend` uses in the same group for
1170
+ which way a number moved. */
1171
+ "prop:orientation"?: (HelixHeadlessBarChart["orientation"]) | undefined;
1166
1172
  /** Which series are measured against a scale of their own, by name.
1167
1173
 
1168
1174
  Separated and matched the way `lines` is, against the column headings the
@@ -9147,7 +9153,7 @@ which React reports as a mismatch and answers by rebuilding the subtree. The
9147
9153
  narrow exception the server specs describe covers a mirror that can only
9148
9154
  become true long after hydration, and a viewport measured before the first
9149
9155
  paint is the opposite case. See `MixinControllerOpen` on `open`. */
9150
- "full-below"?: (HelixHeadlessMegamenu["fullBelow"] | `${number}`) | undefined;
9156
+ "band-below"?: (HelixHeadlessMegamenu["bandBelow"] | `${number}`) | undefined;
9151
9157
  /** The width, in pixels, under which a card becomes a band. Zero never does.
9152
9158
 
9153
9159
  A card is a panel hung off one word, and there is no room to hang anything
@@ -9171,7 +9177,7 @@ which React reports as a mismatch and answers by rebuilding the subtree. The
9171
9177
  narrow exception the server specs describe covers a mirror that can only
9172
9178
  become true long after hydration, and a viewport measured before the first
9173
9179
  paint is the opposite case. See `MixinControllerOpen` on `open`. */
9174
- fullBelow?: (HelixHeadlessMegamenu["fullBelow"]) | undefined;
9180
+ bandBelow?: (HelixHeadlessMegamenu["bandBelow"]) | undefined;
9175
9181
  /** The section's name, which names the default trigger and the panel. */
9176
9182
  label?: (HelixHeadlessMegamenu["label"]) | undefined;
9177
9183
  /** Whether hovering the trigger opens the panel, or only a press does.
@@ -9191,16 +9197,23 @@ heavy enough that opening it on the way past is rude. */
9191
9197
  /** Whether the panel is a card under the trigger or a band across the page.
9192
9198
 
9193
9199
  The resting one is the card, hanging off the trigger and as wide as it
9194
- needs to be. `full` is the other shape navigations use: a band from edge to
9200
+ needs to be. `band` is the other shape navigations use: a run from edge to
9195
9201
  edge under the header, with its contents held to the page's own measure, so
9196
9202
  a set of destinations too wide to sit under one word gets the whole width
9197
9203
  to lay out in.
9198
9204
 
9199
- It changes where the panel goes as well as how it looks, which is why this
9200
- tier knows about it at all: a band spans the viewport, so there is nothing
9201
- to measure it against and nothing to flip or shift to, and the placing pass
9202
- is told not to run. Everything else the popover gives, the top layer and
9203
- the dismissal, is exactly what such a band needs. */
9205
+ **A band and not a width, which is why the word is not `full`.** It changes
9206
+ where the panel goes as well as how wide it is, which is why this tier
9207
+ knows about it at all: a band spans the viewport, so there is nothing to
9208
+ measure it against and nothing to flip or shift to, and the placing pass is
9209
+ told not to run. Everything else the popover gives, the top layer and the
9210
+ dismissal, is exactly what such a band needs. `full` is the registry's word
9211
+ for a width, and `Button` and `Dialog` are the two families answering that
9212
+ question; borrowing it here would put a third meaning on it.
9213
+
9214
+ `variant` and not an axis, for the reason the registry gives: a card under
9215
+ a word and a band under a header are two arrangements this family has, and
9216
+ no other family is being asked the same question. */
9204
9217
  variant?: (HelixHeadlessMegamenu["variant"]) | undefined;
9205
9218
  /** Whether the element is open.
9206
9219
 
@@ -9256,7 +9269,7 @@ which React reports as a mismatch and answers by rebuilding the subtree. The
9256
9269
  narrow exception the server specs describe covers a mirror that can only
9257
9270
  become true long after hydration, and a viewport measured before the first
9258
9271
  paint is the opposite case. See `MixinControllerOpen` on `open`. */
9259
- "attr:full-below"?: (HelixHeadlessMegamenu["fullBelow"] | `${number}`) | undefined;
9272
+ "attr:band-below"?: (HelixHeadlessMegamenu["bandBelow"] | `${number}`) | undefined;
9260
9273
  /** The width, in pixels, under which a card becomes a band. Zero never does.
9261
9274
 
9262
9275
  A card is a panel hung off one word, and there is no room to hang anything
@@ -9280,7 +9293,7 @@ which React reports as a mismatch and answers by rebuilding the subtree. The
9280
9293
  narrow exception the server specs describe covers a mirror that can only
9281
9294
  become true long after hydration, and a viewport measured before the first
9282
9295
  paint is the opposite case. See `MixinControllerOpen` on `open`. */
9283
- "prop:fullBelow"?: (HelixHeadlessMegamenu["fullBelow"]) | undefined;
9296
+ "prop:bandBelow"?: (HelixHeadlessMegamenu["bandBelow"]) | undefined;
9284
9297
  /** The section's name, which names the default trigger and the panel. */
9285
9298
  "prop:label"?: (HelixHeadlessMegamenu["label"]) | undefined;
9286
9299
  /** Whether hovering the trigger opens the panel, or only a press does.
@@ -9300,16 +9313,23 @@ heavy enough that opening it on the way past is rude. */
9300
9313
  /** Whether the panel is a card under the trigger or a band across the page.
9301
9314
 
9302
9315
  The resting one is the card, hanging off the trigger and as wide as it
9303
- needs to be. `full` is the other shape navigations use: a band from edge to
9316
+ needs to be. `band` is the other shape navigations use: a run from edge to
9304
9317
  edge under the header, with its contents held to the page's own measure, so
9305
9318
  a set of destinations too wide to sit under one word gets the whole width
9306
9319
  to lay out in.
9307
9320
 
9308
- It changes where the panel goes as well as how it looks, which is why this
9309
- tier knows about it at all: a band spans the viewport, so there is nothing
9310
- to measure it against and nothing to flip or shift to, and the placing pass
9311
- is told not to run. Everything else the popover gives, the top layer and
9312
- the dismissal, is exactly what such a band needs. */
9321
+ **A band and not a width, which is why the word is not `full`.** It changes
9322
+ where the panel goes as well as how wide it is, which is why this tier
9323
+ knows about it at all: a band spans the viewport, so there is nothing to
9324
+ measure it against and nothing to flip or shift to, and the placing pass is
9325
+ told not to run. Everything else the popover gives, the top layer and the
9326
+ dismissal, is exactly what such a band needs. `full` is the registry's word
9327
+ for a width, and `Button` and `Dialog` are the two families answering that
9328
+ question; borrowing it here would put a third meaning on it.
9329
+
9330
+ `variant` and not an axis, for the reason the registry gives: a card under
9331
+ a word and a band under a header are two arrangements this family has, and
9332
+ no other family is being asked the same question. */
9313
9333
  "prop:variant"?: (HelixHeadlessMegamenu["variant"]) | undefined;
9314
9334
  /** Whether the element is open.
9315
9335
 
@@ -14037,26 +14057,6 @@ export type HelixHeadlessTableColumnHelixBeforeResizeElementEvent =
14037
14057
  HelixHeadlessTableColumnElementEvent<HelixBeforeResizeEvent>;
14038
14058
 
14039
14059
  export type HelixHeadlessTableColumnProps = {
14040
- /** Which edge the values line up against.
14041
-
14042
- `end` is what a column of numbers wants, so digits of the same magnitude
14043
- sit above each other. Left unset the cell inherits the table's own
14044
- alignment, which is `start` for text in either writing direction.
14045
- `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
14046
- consumer wrote, so the table writes nothing onto them: it publishes the
14047
- edge to each cell under this column as `--table-cell-align`, which
14048
- `@fusion.dev/helix` reads. The heading is this element's own, and
14049
- `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
14050
- inline end, so in a right-to-left table it is the left.
14051
-
14052
- **Reflected, because the heading is drawn by a stylesheet and has no other
14053
- way to learn it.** Set as a property, which is how React sets it, an
14054
- unreflected `align` left no attribute to select on, so the heading stayed at
14055
- the start over a column of digits set to the end. It is the author's
14056
- declaration and nothing moves it afterwards, so an attribute cannot come to
14057
- disagree with the element, which is the reason `open` records a custom
14058
- state instead. No default, so an unset column writes nothing onto its host. */
14059
- align?: (HelixHeadlessTableColumn["align"]) | undefined;
14060
14060
  /** The key this column reads out of a row.
14061
14061
 
14062
14062
  Dot paths resolve, so `field="owner.name"` reads a nested value: a result
@@ -14091,6 +14091,62 @@ how React sets it, an unreflected `sortable` left no attribute to match.
14091
14091
  `false` reflects as no attribute at all, so an unset column writes nothing
14092
14092
  onto its host. */
14093
14093
  sortable?: (HelixHeadlessTableColumn["sortable"]) | undefined;
14094
+ /** Which edge the values line up against.
14095
+
14096
+ **Text alignment, and the name says so.** `Flex` and `Grid` ask the CSS
14097
+ box-alignment question, where a thing sits in a container, and they are
14098
+ named for the properties they mirror; this is `text-align` down a column of
14099
+ values, and `Dialog` answers the same question under the same name. One
14100
+ word for both questions is how a consumer who learned it on a layout writes
14101
+ it here and gets no error, a value a component does not have leaving the
14102
+ default in place and looking deliberate.
14103
+
14104
+ `end` is what a column of numbers wants, so digits of the same magnitude
14105
+ sit above each other. Left unset the cell inherits the table's own
14106
+ alignment, which is `start` for text in either writing direction.
14107
+ `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
14108
+ consumer wrote, so the table writes nothing onto them: it publishes the
14109
+ edge to each cell under this column as `--table-cell-align`, which
14110
+ `@fusion.dev/helix` reads. The heading is this element's own, and
14111
+ `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
14112
+ inline end, so in a right-to-left table it is the left.
14113
+
14114
+ **Reflected, because the heading is drawn by a stylesheet and has no other
14115
+ way to learn it.** Set as a property, which is how React sets it, an
14116
+ unreflected edge left no attribute to select on, so the heading stayed at
14117
+ the start over a column of digits set to the end. It is the author's
14118
+ declaration and nothing moves it afterwards, so an attribute cannot come to
14119
+ disagree with the element, which is the reason `open` records a custom
14120
+ state instead. No default, so an unset column writes nothing onto its host. */
14121
+ "text-align"?: (HelixHeadlessTableColumn["textAlign"]) | undefined;
14122
+ /** Which edge the values line up against.
14123
+
14124
+ **Text alignment, and the name says so.** `Flex` and `Grid` ask the CSS
14125
+ box-alignment question, where a thing sits in a container, and they are
14126
+ named for the properties they mirror; this is `text-align` down a column of
14127
+ values, and `Dialog` answers the same question under the same name. One
14128
+ word for both questions is how a consumer who learned it on a layout writes
14129
+ it here and gets no error, a value a component does not have leaving the
14130
+ default in place and looking deliberate.
14131
+
14132
+ `end` is what a column of numbers wants, so digits of the same magnitude
14133
+ sit above each other. Left unset the cell inherits the table's own
14134
+ alignment, which is `start` for text in either writing direction.
14135
+ `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
14136
+ consumer wrote, so the table writes nothing onto them: it publishes the
14137
+ edge to each cell under this column as `--table-cell-align`, which
14138
+ `@fusion.dev/helix` reads. The heading is this element's own, and
14139
+ `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
14140
+ inline end, so in a right-to-left table it is the left.
14141
+
14142
+ **Reflected, because the heading is drawn by a stylesheet and has no other
14143
+ way to learn it.** Set as a property, which is how React sets it, an
14144
+ unreflected edge left no attribute to select on, so the heading stayed at
14145
+ the start over a column of digits set to the end. It is the author's
14146
+ declaration and nothing moves it afterwards, so an attribute cannot come to
14147
+ disagree with the element, which is the reason `open` records a custom
14148
+ state instead. No default, so an unset column writes nothing onto its host. */
14149
+ textAlign?: (HelixHeadlessTableColumn["textAlign"]) | undefined;
14094
14150
  /** The track this column takes, as CSS.
14095
14151
 
14096
14152
  A single track value, so anything valid in `grid-template-columns` works:
@@ -14139,26 +14195,6 @@ correct default: the raw value is what an API sorted by. */
14139
14195
  };
14140
14196
 
14141
14197
  export type HelixHeadlessTableColumnSolidJsProps = {
14142
- /** Which edge the values line up against.
14143
-
14144
- `end` is what a column of numbers wants, so digits of the same magnitude
14145
- sit above each other. Left unset the cell inherits the table's own
14146
- alignment, which is `start` for text in either writing direction.
14147
- `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
14148
- consumer wrote, so the table writes nothing onto them: it publishes the
14149
- edge to each cell under this column as `--table-cell-align`, which
14150
- `@fusion.dev/helix` reads. The heading is this element's own, and
14151
- `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
14152
- inline end, so in a right-to-left table it is the left.
14153
-
14154
- **Reflected, because the heading is drawn by a stylesheet and has no other
14155
- way to learn it.** Set as a property, which is how React sets it, an
14156
- unreflected `align` left no attribute to select on, so the heading stayed at
14157
- the start over a column of digits set to the end. It is the author's
14158
- declaration and nothing moves it afterwards, so an attribute cannot come to
14159
- disagree with the element, which is the reason `open` records a custom
14160
- state instead. No default, so an unset column writes nothing onto its host. */
14161
- "prop:align"?: (HelixHeadlessTableColumn["align"]) | undefined;
14162
14198
  /** The key this column reads out of a row.
14163
14199
 
14164
14200
  Dot paths resolve, so `field="owner.name"` reads a nested value: a result
@@ -14193,6 +14229,62 @@ how React sets it, an unreflected `sortable` left no attribute to match.
14193
14229
  `false` reflects as no attribute at all, so an unset column writes nothing
14194
14230
  onto its host. */
14195
14231
  "prop:sortable"?: (HelixHeadlessTableColumn["sortable"]) | undefined;
14232
+ /** Which edge the values line up against.
14233
+
14234
+ **Text alignment, and the name says so.** `Flex` and `Grid` ask the CSS
14235
+ box-alignment question, where a thing sits in a container, and they are
14236
+ named for the properties they mirror; this is `text-align` down a column of
14237
+ values, and `Dialog` answers the same question under the same name. One
14238
+ word for both questions is how a consumer who learned it on a layout writes
14239
+ it here and gets no error, a value a component does not have leaving the
14240
+ default in place and looking deliberate.
14241
+
14242
+ `end` is what a column of numbers wants, so digits of the same magnitude
14243
+ sit above each other. Left unset the cell inherits the table's own
14244
+ alignment, which is `start` for text in either writing direction.
14245
+ `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
14246
+ consumer wrote, so the table writes nothing onto them: it publishes the
14247
+ edge to each cell under this column as `--table-cell-align`, which
14248
+ `@fusion.dev/helix` reads. The heading is this element's own, and
14249
+ `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
14250
+ inline end, so in a right-to-left table it is the left.
14251
+
14252
+ **Reflected, because the heading is drawn by a stylesheet and has no other
14253
+ way to learn it.** Set as a property, which is how React sets it, an
14254
+ unreflected edge left no attribute to select on, so the heading stayed at
14255
+ the start over a column of digits set to the end. It is the author's
14256
+ declaration and nothing moves it afterwards, so an attribute cannot come to
14257
+ disagree with the element, which is the reason `open` records a custom
14258
+ state instead. No default, so an unset column writes nothing onto its host. */
14259
+ "attr:text-align"?: (HelixHeadlessTableColumn["textAlign"]) | undefined;
14260
+ /** Which edge the values line up against.
14261
+
14262
+ **Text alignment, and the name says so.** `Flex` and `Grid` ask the CSS
14263
+ box-alignment question, where a thing sits in a container, and they are
14264
+ named for the properties they mirror; this is `text-align` down a column of
14265
+ values, and `Dialog` answers the same question under the same name. One
14266
+ word for both questions is how a consumer who learned it on a layout writes
14267
+ it here and gets no error, a value a component does not have leaving the
14268
+ default in place and looking deliberate.
14269
+
14270
+ `end` is what a column of numbers wants, so digits of the same magnitude
14271
+ sit above each other. Left unset the cell inherits the table's own
14272
+ alignment, which is `start` for text in either writing direction.
14273
+ `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
14274
+ consumer wrote, so the table writes nothing onto them: it publishes the
14275
+ edge to each cell under this column as `--table-cell-align`, which
14276
+ `@fusion.dev/helix` reads. The heading is this element's own, and
14277
+ `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
14278
+ inline end, so in a right-to-left table it is the left.
14279
+
14280
+ **Reflected, because the heading is drawn by a stylesheet and has no other
14281
+ way to learn it.** Set as a property, which is how React sets it, an
14282
+ unreflected edge left no attribute to select on, so the heading stayed at
14283
+ the start over a column of digits set to the end. It is the author's
14284
+ declaration and nothing moves it afterwards, so an attribute cannot come to
14285
+ disagree with the element, which is the reason `open` records a custom
14286
+ state instead. No default, so an unset column writes nothing onto its host. */
14287
+ "prop:textAlign"?: (HelixHeadlessTableColumn["textAlign"]) | undefined;
14196
14288
  /** The track this column takes, as CSS.
14197
14289
 
14198
14290
  A single track value, so anything valid in `grid-template-columns` works:
@@ -18692,18 +18784,12 @@ export type CustomElements = {
18692
18784
  *
18693
18785
  * Component attributes and properties that can be applied to the element or by using JavaScript.
18694
18786
  *
18695
- * - `direction`: Whether the categories run down the side rather than along the bottom.
18696
- *
18697
- * Absent is columns. `horizontal` is the one to reach for when the category
18698
- * names are words rather than dates: a row of long names either overlaps or
18699
- * turns on its side, and neither is as readable as putting them down the left
18700
- * where they read normally.
18701
18787
  * - `gridlines`: Which rules are drawn across the plot, if any.
18702
18788
  *
18703
18789
  * Absent draws none. `value` rules the axis the columns are *measured* on,
18704
18790
  * `category` rules the axis they are *arranged* on with one through each
18705
18791
  * group, and `both` draws both. Which of those is horizontal turns with
18706
- * `direction`, because a rule belongs to an axis and not to a screen edge.
18792
+ * `orientation`, because a rule belongs to an axis and not to a screen edge.
18707
18793
  *
18708
18794
  * **A bare `gridlines` means `value`**, and so does anything unrecognized: an
18709
18795
  * unrecognized value that draws nothing is indistinguishable from the
@@ -18737,6 +18823,15 @@ export type CustomElements = {
18737
18823
  * A line among columns measures from zero, because the columns do and they
18738
18824
  * share the axis. So does a line on the second scale, which is that scale's
18739
18825
  * own rule rather than this one's.
18826
+ * - `orientation`: Whether the categories run down the side rather than along the bottom.
18827
+ *
18828
+ * Absent is columns. `horizontal` is the one to reach for when the category
18829
+ * names are words rather than dates: a row of long names either overlaps or
18830
+ * turns on its side, and neither is as readable as putting them down the left
18831
+ * where they read normally.
18832
+ *
18833
+ * `orientation` and not `orientation`, which `Trend` uses in the same group for
18834
+ * which way a number moved.
18740
18835
  * - `secondary`: Which series are measured against a scale of their own, by name.
18741
18836
  *
18742
18837
  * Separated and matched the way `lines` is, against the column headings the
@@ -21284,9 +21379,8 @@ export type CustomElements = {
21284
21379
  * - `footer`: The row holding the value and the tools.
21285
21380
  * - `format`: The control that changes the syntax the value is written in.
21286
21381
  * - `format-button`: The inner control.
21287
- * - `grid`: The saturation and brightness square.
21382
+ * - `grid`: The saturation and brightness square. The mark showing where in the square the color sits is drawn on the square itself, which is `::part(grid)::after` from a consumer's sheet: the two channels are already on the square as `--color-picker-saturation` and `--color-picker-brightness`, so a box would have carried nothing, and this tier ships no CSS.
21288
21383
  * - `grid-brightness`: The range input for its vertical axis.
21289
- * - `grid-handle`: The mark showing where in the square the color sits.
21290
21384
  * - `grid-saturation`: The range input for the square's horizontal axis.
21291
21385
  * - `sample`: The chip of the current color, which copies it when pressed.
21292
21386
  * - `swatch`: One preset.
@@ -21964,7 +22058,7 @@ export type CustomElements = {
21964
22058
  * ```html
21965
22059
  * <helix-headless-data-table .rows=${rows} sort="name:asc" page-size="20">
21966
22060
  * <helix-headless-table-column field="name" sortable>Name</helix-headless-table-column>
21967
- * <helix-headless-table-column field="size" align="end" sortable .cell=${bytes}>Size</helix-headless-table-column>
22061
+ * <helix-headless-table-column field="size" text-align="end" sortable .cell=${bytes}>Size</helix-headless-table-column>
21968
22062
  * </helix-headless-data-table>
21969
22063
  * ```
21970
22064
  *
@@ -25954,10 +26048,9 @@ export type CustomElements = {
25954
26048
  *
25955
26049
  * Custom selectors for styling elements within the component.
25956
26050
  *
25957
- * - `entry`: One name and its swatch.
26051
+ * - `entry`: One name and its swatch. The swatch is drawn on the entry, which is `::part(entry)::before` from a consumer's sheet: the series is already on the entry as `--chart-series`, so a box would have carried nothing, and this tier ships no CSS.
25958
26052
  * - `list`: The list itself.
25959
26053
  * - `name`: One series name.
25960
- * - `swatch`: The color a series is drawn in.
25961
26054
  *
25962
26055
  * ## CSS States
25963
26056
  *
@@ -26738,7 +26831,7 @@ export type CustomElements = {
26738
26831
  *
26739
26832
  * Component attributes and properties that can be applied to the element or by using JavaScript.
26740
26833
  *
26741
- * - `full-below`/`fullBelow`: The width, in pixels, under which a card becomes a band. Zero never does.
26834
+ * - `band-below`/`bandBelow`: The width, in pixels, under which a card becomes a band. Zero never does.
26742
26835
  *
26743
26836
  * A card is a panel hung off one word, and there is no room to hang anything
26744
26837
  * off a word on a phone: the columns do not shrink past
@@ -26771,16 +26864,23 @@ export type CustomElements = {
26771
26864
  * - `variant`: Whether the panel is a card under the trigger or a band across the page.
26772
26865
  *
26773
26866
  * The resting one is the card, hanging off the trigger and as wide as it
26774
- * needs to be. `full` is the other shape navigations use: a band from edge to
26867
+ * needs to be. `band` is the other shape navigations use: a run from edge to
26775
26868
  * edge under the header, with its contents held to the page's own measure, so
26776
26869
  * a set of destinations too wide to sit under one word gets the whole width
26777
26870
  * to lay out in.
26778
26871
  *
26779
- * It changes where the panel goes as well as how it looks, which is why this
26780
- * tier knows about it at all: a band spans the viewport, so there is nothing
26781
- * to measure it against and nothing to flip or shift to, and the placing pass
26782
- * is told not to run. Everything else the popover gives, the top layer and
26783
- * the dismissal, is exactly what such a band needs.
26872
+ * **A band and not a width, which is why the word is not `full`.** It changes
26873
+ * where the panel goes as well as how wide it is, which is why this tier
26874
+ * knows about it at all: a band spans the viewport, so there is nothing to
26875
+ * measure it against and nothing to flip or shift to, and the placing pass is
26876
+ * told not to run. Everything else the popover gives, the top layer and the
26877
+ * dismissal, is exactly what such a band needs. `full` is the registry's word
26878
+ * for a width, and `Button` and `Dialog` are the two families answering that
26879
+ * question; borrowing it here would put a third meaning on it.
26880
+ *
26881
+ * `variant` and not an axis, for the reason the registry gives: a card under
26882
+ * a word and a band under a header are two arrangements this family has, and
26883
+ * no other family is being asked the same question.
26784
26884
  * - `open`: Whether the element is open.
26785
26885
  *
26786
26886
  * One property, not two, so `dialog.open` answers the question anyone
@@ -26860,7 +26960,7 @@ export type CustomElements = {
26860
26960
  *
26861
26961
  * These can be used to apply styling when a component is in a given state.
26862
26962
  *
26863
- * - `narrow`: While the page is under `full-below`, so the panel is a band whether or not one was asked for.
26963
+ * - `narrow`: While the page is under `band-below`, so the panel is a band whether or not one was asked for.
26864
26964
  * - `open`: While the panel is open, which is when the trigger reads as current.
26865
26965
  * - `settled`: Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.
26866
26966
  */
@@ -29807,10 +29907,9 @@ export type CustomElements = {
29807
29907
  *
29808
29908
  * Custom selectors for styling elements within the component.
29809
29909
  *
29810
- * - `box`: The circle.
29910
+ * - `box`: The circle. The dot inside it is drawn on the box itself, which is `::part(box)::after` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
29811
29911
  * - `item`: The button, which is the whole row.
29812
29912
  * - `label`: The words beside it.
29813
- * - `mark`: The dot inside it.
29814
29913
  *
29815
29914
  * ## CSS States
29816
29915
  *
@@ -31717,6 +31816,13 @@ export type CustomElements = {
31717
31816
  * with two hidden in CSS: the accessibility tree would otherwise carry marks
31718
31817
  * that are not there.
31719
31818
  *
31819
+ * **The two half lines either side of the mark are a sheet's, on `::before` and
31820
+ * `::after` of the step.** Both are placed entirely from properties the list
31821
+ * hands down, so there was nothing about them for a box to carry, and this tier
31822
+ * ships no CSS: a box it rendered for one to paint would be an empty child
31823
+ * costing whatever the consumer's own layout charges for a child. `ListItem`
31824
+ * measured that.
31825
+ *
31720
31826
  * ## Attributes & Properties
31721
31827
  *
31722
31828
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -31776,10 +31882,8 @@ export type CustomElements = {
31776
31882
  * - `description`: The line under it.
31777
31883
  * - `label`: The step's name, which is a control.
31778
31884
  * - `label-button`: The inner control.
31779
- * - `lead`: The half line arriving from the step before.
31780
31885
  * - `mark`: The glyph inside the marker: a tick, a dot, or an empty ring.
31781
31886
  * - `marker`: The shape carrying the number or the check.
31782
- * - `trail`: The half line running on to the next.
31783
31887
  *
31784
31888
  * ## CSS States
31785
31889
  *
@@ -31957,8 +32061,7 @@ export type CustomElements = {
31957
32061
  * - `field`: The row: the track and its label.
31958
32062
  * - `hint`: Help under the control, while nothing is wrong.
31959
32063
  * - `label`: The words beside it.
31960
- * - `thumb`: The part that moves.
31961
- * - `track`: The groove the thumb travels in.
32064
+ * - `track`: The groove. The thumb that travels in it is drawn on the groove itself, which is `::part(track)::after` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
31962
32065
  *
31963
32066
  * ## CSS States
31964
32067
  *
@@ -32042,7 +32145,7 @@ export type CustomElements = {
32042
32145
  *
32043
32146
  * **It is also where every per-column fact goes**, which is the reason
32044
32147
  * `DataTable` needs no column config object. `field` names the key the cell
32045
- * reads, `sortable` says a reader may reorder by it, `align` says which edge
32148
+ * reads, `sortable` says a reader may reorder by it, `text-align` says which edge
32046
32149
  * the values line up against, and `cell` takes a function for anything the
32047
32150
  * field alone cannot express. The schema is markup and the data is a property:
32048
32151
  * a schema is small, declarative, and something a reader should be able to see
@@ -32077,25 +32180,6 @@ export type CustomElements = {
32077
32180
  *
32078
32181
  * Component attributes and properties that can be applied to the element or by using JavaScript.
32079
32182
  *
32080
- * - `align`: Which edge the values line up against.
32081
- *
32082
- * `end` is what a column of numbers wants, so digits of the same magnitude
32083
- * sit above each other. Left unset the cell inherits the table's own
32084
- * alignment, which is `start` for text in either writing direction.
32085
- * `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
32086
- * consumer wrote, so the table writes nothing onto them: it publishes the
32087
- * edge to each cell under this column as `--table-cell-align`, which
32088
- * `@fusion.dev/helix` reads. The heading is this element's own, and
32089
- * `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
32090
- * inline end, so in a right-to-left table it is the left.
32091
- *
32092
- * **Reflected, because the heading is drawn by a stylesheet and has no other
32093
- * way to learn it.** Set as a property, which is how React sets it, an
32094
- * unreflected `align` left no attribute to select on, so the heading stayed at
32095
- * the start over a column of digits set to the end. It is the author's
32096
- * declaration and nothing moves it afterwards, so an attribute cannot come to
32097
- * disagree with the element, which is the reason `open` records a custom
32098
- * state instead. No default, so an unset column writes nothing onto its host.
32099
32183
  * - `field`: The key this column reads out of a row.
32100
32184
  *
32101
32185
  * Dot paths resolve, so `field="owner.name"` reads a nested value: a result
@@ -32127,6 +32211,33 @@ export type CustomElements = {
32127
32211
  * how React sets it, an unreflected `sortable` left no attribute to match.
32128
32212
  * `false` reflects as no attribute at all, so an unset column writes nothing
32129
32213
  * onto its host.
32214
+ * - `text-align`/`textAlign`: Which edge the values line up against.
32215
+ *
32216
+ * **Text alignment, and the name says so.** `Flex` and `Grid` ask the CSS
32217
+ * box-alignment question, where a thing sits in a container, and they are
32218
+ * named for the properties they mirror; this is `text-align` down a column of
32219
+ * values, and `Dialog` answers the same question under the same name. One
32220
+ * word for both questions is how a consumer who learned it on a layout writes
32221
+ * it here and gets no error, a value a component does not have leaving the
32222
+ * default in place and looking deliberate.
32223
+ *
32224
+ * `end` is what a column of numbers wants, so digits of the same magnitude
32225
+ * sit above each other. Left unset the cell inherits the table's own
32226
+ * alignment, which is `start` for text in either writing direction.
32227
+ * `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
32228
+ * consumer wrote, so the table writes nothing onto them: it publishes the
32229
+ * edge to each cell under this column as `--table-cell-align`, which
32230
+ * `@fusion.dev/helix` reads. The heading is this element's own, and
32231
+ * `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
32232
+ * inline end, so in a right-to-left table it is the left.
32233
+ *
32234
+ * **Reflected, because the heading is drawn by a stylesheet and has no other
32235
+ * way to learn it.** Set as a property, which is how React sets it, an
32236
+ * unreflected edge left no attribute to select on, so the heading stayed at
32237
+ * the start over a column of digits set to the end. It is the author's
32238
+ * declaration and nothing moves it afterwards, so an attribute cannot come to
32239
+ * disagree with the element, which is the reason `open` records a custom
32240
+ * state instead. No default, so an unset column writes nothing onto its host.
32130
32241
  * - `width`: The track this column takes, as CSS.
32131
32242
  *
32132
32243
  * A single track value, so anything valid in `grid-template-columns` works:
@@ -33609,11 +33720,10 @@ export type CustomElements = {
33609
33720
  *
33610
33721
  * Custom selectors for styling elements within the component.
33611
33722
  *
33612
- * - `connector`: The line arriving at this entry.
33613
33723
  * - `content`: What happened, and the time above it.
33614
33724
  * - `dot`: The mark drawn where nothing was slotted for one.
33615
33725
  * - `marker`: The mark on the line.
33616
- * - `rail`: The column holding the mark and the line.
33726
+ * - `rail`: The column holding the mark and the line. Both halves of the line are drawn on the rail, which is `::part(rail)::before` and `::after` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
33617
33727
  * - `time`: When it happened.
33618
33728
  *
33619
33729
  * ## CSS States
@@ -34068,13 +34178,12 @@ export type CustomElements = {
34068
34178
  *
34069
34179
  * Custom selectors for styling elements within the component.
34070
34180
  *
34071
- * - `divider`: The rule after an inline label, separating it from the items.
34072
34181
  * - `feedback`: What is wrong with it.
34073
34182
  * - `hint`: Help under the row, while nothing is wrong.
34074
34183
  * - `indicator`: The moving marker behind the selected item.
34075
34184
  * - `label`: The question, over the row.
34076
34185
  * - `row`: The line the track sits on, with whatever flanks it.
34077
- * - `track`: The bar the items sit in.
34186
+ * - `track`: The bar the items sit in. The rule after an inline label, separating it from the items, is drawn on the bar, which is `::part(track)::before` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
34078
34187
  *
34079
34188
  * ## CSS States
34080
34189
  *
@@ -35624,8 +35733,7 @@ export type CustomElements = {
35624
35733
  * - `failure`: What is said when the source will not play.
35625
35734
  * - `forward`: The control that goes on ten seconds.
35626
35735
  * - `fullscreen`: The whole screen, and back.
35627
- * - `loading`: What is said while the picture waits for more of itself.
35628
- * - `loading-mark`: The part of that which spins.
35736
+ * - `loading`: What is said while the picture waits for more of itself. The part of that which spins is drawn on it, which is `::part(loading)::before` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
35629
35737
  * - `more`: The button that opens it.
35630
35738
  * - `mute`: Sound on and off.
35631
35739
  * - `next`: Asks for the next item, where it was asked for.
@@ -36647,18 +36755,12 @@ export type CustomElementsSolidJs = {
36647
36755
  *
36648
36756
  * Component attributes and properties that can be applied to the element or by using JavaScript.
36649
36757
  *
36650
- * - `direction`: Whether the categories run down the side rather than along the bottom.
36651
- *
36652
- * Absent is columns. `horizontal` is the one to reach for when the category
36653
- * names are words rather than dates: a row of long names either overlaps or
36654
- * turns on its side, and neither is as readable as putting them down the left
36655
- * where they read normally.
36656
36758
  * - `gridlines`: Which rules are drawn across the plot, if any.
36657
36759
  *
36658
36760
  * Absent draws none. `value` rules the axis the columns are *measured* on,
36659
36761
  * `category` rules the axis they are *arranged* on with one through each
36660
36762
  * group, and `both` draws both. Which of those is horizontal turns with
36661
- * `direction`, because a rule belongs to an axis and not to a screen edge.
36763
+ * `orientation`, because a rule belongs to an axis and not to a screen edge.
36662
36764
  *
36663
36765
  * **A bare `gridlines` means `value`**, and so does anything unrecognized: an
36664
36766
  * unrecognized value that draws nothing is indistinguishable from the
@@ -36692,6 +36794,15 @@ export type CustomElementsSolidJs = {
36692
36794
  * A line among columns measures from zero, because the columns do and they
36693
36795
  * share the axis. So does a line on the second scale, which is that scale's
36694
36796
  * own rule rather than this one's.
36797
+ * - `orientation`: Whether the categories run down the side rather than along the bottom.
36798
+ *
36799
+ * Absent is columns. `horizontal` is the one to reach for when the category
36800
+ * names are words rather than dates: a row of long names either overlaps or
36801
+ * turns on its side, and neither is as readable as putting them down the left
36802
+ * where they read normally.
36803
+ *
36804
+ * `orientation` and not `orientation`, which `Trend` uses in the same group for
36805
+ * which way a number moved.
36695
36806
  * - `secondary`: Which series are measured against a scale of their own, by name.
36696
36807
  *
36697
36808
  * Separated and matched the way `lines` is, against the column headings the
@@ -39274,9 +39385,8 @@ export type CustomElementsSolidJs = {
39274
39385
  * - `footer`: The row holding the value and the tools.
39275
39386
  * - `format`: The control that changes the syntax the value is written in.
39276
39387
  * - `format-button`: The inner control.
39277
- * - `grid`: The saturation and brightness square.
39388
+ * - `grid`: The saturation and brightness square. The mark showing where in the square the color sits is drawn on the square itself, which is `::part(grid)::after` from a consumer's sheet: the two channels are already on the square as `--color-picker-saturation` and `--color-picker-brightness`, so a box would have carried nothing, and this tier ships no CSS.
39278
39389
  * - `grid-brightness`: The range input for its vertical axis.
39279
- * - `grid-handle`: The mark showing where in the square the color sits.
39280
39390
  * - `grid-saturation`: The range input for the square's horizontal axis.
39281
39391
  * - `sample`: The chip of the current color, which copies it when pressed.
39282
39392
  * - `swatch`: One preset.
@@ -39962,7 +40072,7 @@ export type CustomElementsSolidJs = {
39962
40072
  * ```html
39963
40073
  * <helix-headless-data-table .rows=${rows} sort="name:asc" page-size="20">
39964
40074
  * <helix-headless-table-column field="name" sortable>Name</helix-headless-table-column>
39965
- * <helix-headless-table-column field="size" align="end" sortable .cell=${bytes}>Size</helix-headless-table-column>
40075
+ * <helix-headless-table-column field="size" text-align="end" sortable .cell=${bytes}>Size</helix-headless-table-column>
39966
40076
  * </helix-headless-data-table>
39967
40077
  * ```
39968
40078
  *
@@ -44003,10 +44113,9 @@ export type CustomElementsSolidJs = {
44003
44113
  *
44004
44114
  * Custom selectors for styling elements within the component.
44005
44115
  *
44006
- * - `entry`: One name and its swatch.
44116
+ * - `entry`: One name and its swatch. The swatch is drawn on the entry, which is `::part(entry)::before` from a consumer's sheet: the series is already on the entry as `--chart-series`, so a box would have carried nothing, and this tier ships no CSS.
44007
44117
  * - `list`: The list itself.
44008
44118
  * - `name`: One series name.
44009
- * - `swatch`: The color a series is drawn in.
44010
44119
  *
44011
44120
  * ## CSS States
44012
44121
  *
@@ -44805,7 +44914,7 @@ export type CustomElementsSolidJs = {
44805
44914
  *
44806
44915
  * Component attributes and properties that can be applied to the element or by using JavaScript.
44807
44916
  *
44808
- * - `full-below`/`fullBelow`: The width, in pixels, under which a card becomes a band. Zero never does.
44917
+ * - `band-below`/`bandBelow`: The width, in pixels, under which a card becomes a band. Zero never does.
44809
44918
  *
44810
44919
  * A card is a panel hung off one word, and there is no room to hang anything
44811
44920
  * off a word on a phone: the columns do not shrink past
@@ -44838,16 +44947,23 @@ export type CustomElementsSolidJs = {
44838
44947
  * - `variant`: Whether the panel is a card under the trigger or a band across the page.
44839
44948
  *
44840
44949
  * The resting one is the card, hanging off the trigger and as wide as it
44841
- * needs to be. `full` is the other shape navigations use: a band from edge to
44950
+ * needs to be. `band` is the other shape navigations use: a run from edge to
44842
44951
  * edge under the header, with its contents held to the page's own measure, so
44843
44952
  * a set of destinations too wide to sit under one word gets the whole width
44844
44953
  * to lay out in.
44845
44954
  *
44846
- * It changes where the panel goes as well as how it looks, which is why this
44847
- * tier knows about it at all: a band spans the viewport, so there is nothing
44848
- * to measure it against and nothing to flip or shift to, and the placing pass
44849
- * is told not to run. Everything else the popover gives, the top layer and
44850
- * the dismissal, is exactly what such a band needs.
44955
+ * **A band and not a width, which is why the word is not `full`.** It changes
44956
+ * where the panel goes as well as how wide it is, which is why this tier
44957
+ * knows about it at all: a band spans the viewport, so there is nothing to
44958
+ * measure it against and nothing to flip or shift to, and the placing pass is
44959
+ * told not to run. Everything else the popover gives, the top layer and the
44960
+ * dismissal, is exactly what such a band needs. `full` is the registry's word
44961
+ * for a width, and `Button` and `Dialog` are the two families answering that
44962
+ * question; borrowing it here would put a third meaning on it.
44963
+ *
44964
+ * `variant` and not an axis, for the reason the registry gives: a card under
44965
+ * a word and a band under a header are two arrangements this family has, and
44966
+ * no other family is being asked the same question.
44851
44967
  * - `open`: Whether the element is open.
44852
44968
  *
44853
44969
  * One property, not two, so `dialog.open` answers the question anyone
@@ -44927,7 +45043,7 @@ export type CustomElementsSolidJs = {
44927
45043
  *
44928
45044
  * These can be used to apply styling when a component is in a given state.
44929
45045
  *
44930
- * - `narrow`: While the page is under `full-below`, so the panel is a band whether or not one was asked for.
45046
+ * - `narrow`: While the page is under `band-below`, so the panel is a band whether or not one was asked for.
44931
45047
  * - `open`: While the panel is open, which is when the trigger reads as current.
44932
45048
  * - `settled`: Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.
44933
45049
  */
@@ -47918,10 +48034,9 @@ export type CustomElementsSolidJs = {
47918
48034
  *
47919
48035
  * Custom selectors for styling elements within the component.
47920
48036
  *
47921
- * - `box`: The circle.
48037
+ * - `box`: The circle. The dot inside it is drawn on the box itself, which is `::part(box)::after` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
47922
48038
  * - `item`: The button, which is the whole row.
47923
48039
  * - `label`: The words beside it.
47924
- * - `mark`: The dot inside it.
47925
48040
  *
47926
48041
  * ## CSS States
47927
48042
  *
@@ -49867,6 +49982,13 @@ export type CustomElementsSolidJs = {
49867
49982
  * with two hidden in CSS: the accessibility tree would otherwise carry marks
49868
49983
  * that are not there.
49869
49984
  *
49985
+ * **The two half lines either side of the mark are a sheet's, on `::before` and
49986
+ * `::after` of the step.** Both are placed entirely from properties the list
49987
+ * hands down, so there was nothing about them for a box to carry, and this tier
49988
+ * ships no CSS: a box it rendered for one to paint would be an empty child
49989
+ * costing whatever the consumer's own layout charges for a child. `ListItem`
49990
+ * measured that.
49991
+ *
49870
49992
  * ## Attributes & Properties
49871
49993
  *
49872
49994
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -49926,10 +50048,8 @@ export type CustomElementsSolidJs = {
49926
50048
  * - `description`: The line under it.
49927
50049
  * - `label`: The step's name, which is a control.
49928
50050
  * - `label-button`: The inner control.
49929
- * - `lead`: The half line arriving from the step before.
49930
50051
  * - `mark`: The glyph inside the marker: a tick, a dot, or an empty ring.
49931
50052
  * - `marker`: The shape carrying the number or the check.
49932
- * - `trail`: The half line running on to the next.
49933
50053
  *
49934
50054
  * ## CSS States
49935
50055
  *
@@ -50110,8 +50230,7 @@ export type CustomElementsSolidJs = {
50110
50230
  * - `field`: The row: the track and its label.
50111
50231
  * - `hint`: Help under the control, while nothing is wrong.
50112
50232
  * - `label`: The words beside it.
50113
- * - `thumb`: The part that moves.
50114
- * - `track`: The groove the thumb travels in.
50233
+ * - `track`: The groove. The thumb that travels in it is drawn on the groove itself, which is `::part(track)::after` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
50115
50234
  *
50116
50235
  * ## CSS States
50117
50236
  *
@@ -50201,7 +50320,7 @@ export type CustomElementsSolidJs = {
50201
50320
  *
50202
50321
  * **It is also where every per-column fact goes**, which is the reason
50203
50322
  * `DataTable` needs no column config object. `field` names the key the cell
50204
- * reads, `sortable` says a reader may reorder by it, `align` says which edge
50323
+ * reads, `sortable` says a reader may reorder by it, `text-align` says which edge
50205
50324
  * the values line up against, and `cell` takes a function for anything the
50206
50325
  * field alone cannot express. The schema is markup and the data is a property:
50207
50326
  * a schema is small, declarative, and something a reader should be able to see
@@ -50236,25 +50355,6 @@ export type CustomElementsSolidJs = {
50236
50355
  *
50237
50356
  * Component attributes and properties that can be applied to the element or by using JavaScript.
50238
50357
  *
50239
- * - `align`: Which edge the values line up against.
50240
- *
50241
- * `end` is what a column of numbers wants, so digits of the same magnitude
50242
- * sit above each other. Left unset the cell inherits the table's own
50243
- * alignment, which is `start` for text in either writing direction.
50244
- * `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
50245
- * consumer wrote, so the table writes nothing onto them: it publishes the
50246
- * edge to each cell under this column as `--table-cell-align`, which
50247
- * `@fusion.dev/helix` reads. The heading is this element's own, and
50248
- * `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
50249
- * inline end, so in a right-to-left table it is the left.
50250
- *
50251
- * **Reflected, because the heading is drawn by a stylesheet and has no other
50252
- * way to learn it.** Set as a property, which is how React sets it, an
50253
- * unreflected `align` left no attribute to select on, so the heading stayed at
50254
- * the start over a column of digits set to the end. It is the author's
50255
- * declaration and nothing moves it afterwards, so an attribute cannot come to
50256
- * disagree with the element, which is the reason `open` records a custom
50257
- * state instead. No default, so an unset column writes nothing onto its host.
50258
50358
  * - `field`: The key this column reads out of a row.
50259
50359
  *
50260
50360
  * Dot paths resolve, so `field="owner.name"` reads a nested value: a result
@@ -50286,6 +50386,33 @@ export type CustomElementsSolidJs = {
50286
50386
  * how React sets it, an unreflected `sortable` left no attribute to match.
50287
50387
  * `false` reflects as no attribute at all, so an unset column writes nothing
50288
50388
  * onto its host.
50389
+ * - `text-align`/`textAlign`: Which edge the values line up against.
50390
+ *
50391
+ * **Text alignment, and the name says so.** `Flex` and `Grid` ask the CSS
50392
+ * box-alignment question, where a thing sits in a container, and they are
50393
+ * named for the properties they mirror; this is `text-align` down a column of
50394
+ * values, and `Dialog` answers the same question under the same name. One
50395
+ * word for both questions is how a consumer who learned it on a layout writes
50396
+ * it here and gets no error, a value a component does not have leaving the
50397
+ * default in place and looking deliberate.
50398
+ *
50399
+ * `end` is what a column of numbers wants, so digits of the same magnitude
50400
+ * sit above each other. Left unset the cell inherits the table's own
50401
+ * alignment, which is `start` for text in either writing direction.
50402
+ * `DataTable` aligns the cells it draws. A `Table`'s cells are markup the
50403
+ * consumer wrote, so the table writes nothing onto them: it publishes the
50404
+ * edge to each cell under this column as `--table-cell-align`, which
50405
+ * `@fusion.dev/helix` reads. The heading is this element's own, and
50406
+ * `@fusion.dev/helix` sets it to the same edge in either table. `end` is the
50407
+ * inline end, so in a right-to-left table it is the left.
50408
+ *
50409
+ * **Reflected, because the heading is drawn by a stylesheet and has no other
50410
+ * way to learn it.** Set as a property, which is how React sets it, an
50411
+ * unreflected edge left no attribute to select on, so the heading stayed at
50412
+ * the start over a column of digits set to the end. It is the author's
50413
+ * declaration and nothing moves it afterwards, so an attribute cannot come to
50414
+ * disagree with the element, which is the reason `open` records a custom
50415
+ * state instead. No default, so an unset column writes nothing onto its host.
50289
50416
  * - `width`: The track this column takes, as CSS.
50290
50417
  *
50291
50418
  * A single track value, so anything valid in `grid-template-columns` works:
@@ -51794,11 +51921,10 @@ export type CustomElementsSolidJs = {
51794
51921
  *
51795
51922
  * Custom selectors for styling elements within the component.
51796
51923
  *
51797
- * - `connector`: The line arriving at this entry.
51798
51924
  * - `content`: What happened, and the time above it.
51799
51925
  * - `dot`: The mark drawn where nothing was slotted for one.
51800
51926
  * - `marker`: The mark on the line.
51801
- * - `rail`: The column holding the mark and the line.
51927
+ * - `rail`: The column holding the mark and the line. Both halves of the line are drawn on the rail, which is `::part(rail)::before` and `::after` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
51802
51928
  * - `time`: When it happened.
51803
51929
  *
51804
51930
  * ## CSS States
@@ -52263,13 +52389,12 @@ export type CustomElementsSolidJs = {
52263
52389
  *
52264
52390
  * Custom selectors for styling elements within the component.
52265
52391
  *
52266
- * - `divider`: The rule after an inline label, separating it from the items.
52267
52392
  * - `feedback`: What is wrong with it.
52268
52393
  * - `hint`: Help under the row, while nothing is wrong.
52269
52394
  * - `indicator`: The moving marker behind the selected item.
52270
52395
  * - `label`: The question, over the row.
52271
52396
  * - `row`: The line the track sits on, with whatever flanks it.
52272
- * - `track`: The bar the items sit in.
52397
+ * - `track`: The bar the items sit in. The rule after an inline label, separating it from the items, is drawn on the bar, which is `::part(track)::before` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
52273
52398
  *
52274
52399
  * ## CSS States
52275
52400
  *
@@ -53847,8 +53972,7 @@ export type CustomElementsSolidJs = {
53847
53972
  * - `failure`: What is said when the source will not play.
53848
53973
  * - `forward`: The control that goes on ten seconds.
53849
53974
  * - `fullscreen`: The whole screen, and back.
53850
- * - `loading`: What is said while the picture waits for more of itself.
53851
- * - `loading-mark`: The part of that which spins.
53975
+ * - `loading`: What is said while the picture waits for more of itself. The part of that which spins is drawn on it, which is `::part(loading)::before` from a consumer's sheet: this tier ships no CSS, so a box it renders for one to paint is an empty child costing whatever the consumer's own layout charges for a child. `ListItem` measured that.
53852
53976
  * - `more`: The button that opens it.
53853
53977
  * - `mute`: Sound on and off.
53854
53978
  * - `next`: Asks for the next item, where it was asked for.