@fusion.dev/helix 0.37.0 → 0.39.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
@@ -4438,7 +4438,16 @@ toggles rather than replaces, and the arrows move without choosing. What
4438
4438
  this adds is the tags, and keeping the panel open between picks.
4439
4439
 
4440
4440
  A comma is therefore not available inside an option's value, which is the
4441
- listbox's contract and not this element's to change. */
4441
+ listbox's contract and not this element's to change.
4442
+
4443
+ **The list is told, and the field is not.** `aria-multiselectable` belongs
4444
+ to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
4445
+ ARIA 1.2; the list sets it on itself through `ElementInternals`, where a
4446
+ reader on the field hears it through `aria-controls`. This element wrote it
4447
+ onto its own `role="combobox"` input as well, which an audit reports as a
4448
+ property the role does not support and no spec here ever asserted: the one
4449
+ that covers this says in as many words that telling the list is what this
4450
+ element is responsible for. */
4442
4451
  multiple?: (HelixCombobox["multiple"]) | undefined;
4443
4452
  /** Text shown while nothing has been chosen. */
4444
4453
  placeholder?: (HelixCombobox["placeholder"]) | undefined;
@@ -4602,7 +4611,16 @@ toggles rather than replaces, and the arrows move without choosing. What
4602
4611
  this adds is the tags, and keeping the panel open between picks.
4603
4612
 
4604
4613
  A comma is therefore not available inside an option's value, which is the
4605
- listbox's contract and not this element's to change. */
4614
+ listbox's contract and not this element's to change.
4615
+
4616
+ **The list is told, and the field is not.** `aria-multiselectable` belongs
4617
+ to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
4618
+ ARIA 1.2; the list sets it on itself through `ElementInternals`, where a
4619
+ reader on the field hears it through `aria-controls`. This element wrote it
4620
+ onto its own `role="combobox"` input as well, which an audit reports as a
4621
+ property the role does not support and no spec here ever asserted: the one
4622
+ that covers this says in as many words that telling the list is what this
4623
+ element is responsible for. */
4606
4624
  "prop:multiple"?: (HelixCombobox["multiple"]) | undefined;
4607
4625
  /** Text shown while nothing has been chosen. */
4608
4626
  "prop:placeholder"?: (HelixCombobox["placeholder"]) | undefined;
@@ -6423,18 +6441,20 @@ reader makes in one of these. */
6423
6441
  };
6424
6442
 
6425
6443
  export type HelixDescriptionListItemProps = {
6426
- /** What the value is, for the common case of plain text.
6444
+ /** What the value is called, for the common case of plain text.
6427
6445
 
6428
6446
  The fallback of the `label` slot, so slotted content replaces it rather than
6429
- appearing beside it. */
6447
+ appearing beside it. The value itself is the default slot: it is the half
6448
+ that varies and is often more than text. */
6430
6449
  label?: (HelixDescriptionListItem["label"]) | undefined;
6431
6450
  };
6432
6451
 
6433
6452
  export type HelixDescriptionListItemSolidJsProps = {
6434
- /** What the value is, for the common case of plain text.
6453
+ /** What the value is called, for the common case of plain text.
6435
6454
 
6436
6455
  The fallback of the `label` slot, so slotted content replaces it rather than
6437
- appearing beside it. */
6456
+ appearing beside it. The value itself is the default slot: it is the half
6457
+ that varies and is often more than text. */
6438
6458
  "prop:label"?: (HelixDescriptionListItem["label"]) | undefined;
6439
6459
 
6440
6460
  /** Set the innerHTML of the element */
@@ -6939,12 +6959,12 @@ the circle is not drawn. */
6939
6959
 
6940
6960
  /** `HelixDrawer` component event */
6941
6961
  export type HelixDrawerElementEvent<E = Event> = TypedEvent<HelixDrawer, E>;
6942
- /** `helix-before-open` event type */
6943
- export type HelixDrawerHelixBeforeOpenElementEvent =
6944
- HelixDrawerElementEvent<HelixBeforeOpenEvent>;
6945
6962
  /** `helix-before-close` event type */
6946
6963
  export type HelixDrawerHelixBeforeCloseElementEvent =
6947
6964
  HelixDrawerElementEvent<HelixBeforeCloseEvent>;
6965
+ /** `helix-before-open` event type */
6966
+ export type HelixDrawerHelixBeforeOpenElementEvent =
6967
+ HelixDrawerElementEvent<HelixBeforeOpenEvent>;
6948
6968
 
6949
6969
  export type HelixDrawerProps = {
6950
6970
  /** Whether the panel is glass rather than opaque.
@@ -7038,12 +7058,12 @@ Held here as well as on the element, so a value set before the first render
7038
7058
  survives to it and a consumer reading one back gets what they wrote. */
7039
7059
  returnValue?: (HelixDrawer["returnValue"]) | undefined;
7040
7060
 
7041
- /** Fired before the drawer opens or closes. Cancelable: refusing it takes the decision and nothing moves. */
7042
- "onhelix-before-open"?: ((e: HelixDrawerHelixBeforeOpenElementEvent) => void) | undefined;
7043
7061
  /** Relayed, because the platform's own does not escape. */
7044
7062
  onclose?: ((e: HelixDrawerElementEvent) => void) | undefined;
7045
7063
  /** Fired before the panel closes, and cancelable. */
7046
7064
  "onhelix-before-close"?: ((e: HelixDrawerHelixBeforeCloseElementEvent) => void) | undefined;
7065
+ /** Fired before the panel opens. Cancelable: refusing it takes the decision and nothing moves. */
7066
+ "onhelix-before-open"?: ((e: HelixDrawerHelixBeforeOpenElementEvent) => void) | undefined;
7047
7067
  /** Says the state moved, carrying `newState` and `oldState`. */
7048
7068
  ontoggle?: ((e: HelixDrawerElementEvent) => void) | undefined;
7049
7069
  };
@@ -7139,14 +7159,14 @@ alone, and `Dialog`'s `close()` is the one that takes the value directly.
7139
7159
  Held here as well as on the element, so a value set before the first render
7140
7160
  survives to it and a consumer reading one back gets what they wrote. */
7141
7161
  "prop:returnValue"?: (HelixDrawer["returnValue"]) | undefined;
7142
- /** Fired before the drawer opens or closes. Cancelable: refusing it takes the decision and nothing moves. */
7143
- "on:helix-before-open"?: ((e: HelixDrawerHelixBeforeOpenElementEvent) => void) | undefined;
7144
7162
  /** Relayed, because the platform's own does not escape. */
7145
7163
  "on:close"?: ((e: HelixDrawerElementEvent) => void) | undefined;
7146
7164
  /** Fired before the panel closes, and cancelable. */
7147
7165
  "on:helix-before-close"?: ((
7148
7166
  e: HelixDrawerHelixBeforeCloseElementEvent,
7149
7167
  ) => void) | undefined;
7168
+ /** Fired before the panel opens. Cancelable: refusing it takes the decision and nothing moves. */
7169
+ "on:helix-before-open"?: ((e: HelixDrawerHelixBeforeOpenElementEvent) => void) | undefined;
7150
7170
  /** Says the state moved, carrying `newState` and `oldState`. */
7151
7171
  "on:toggle"?: ((e: HelixDrawerElementEvent) => void) | undefined;
7152
7172
 
@@ -8252,9 +8272,15 @@ shadow root names a table in that root rather than in the document. A
8252
8272
  Absent falls back to the table's own caption, which is usually the right
8253
8273
  words and is already written. */
8254
8274
  label?: (HelixHeatmap["label"]) | undefined;
8255
- /** Shown when the table has no readings in it. */
8275
+ /** Shown when the table has no readings in it.
8276
+
8277
+ Never shown while the table cannot be read at all, which is a server render
8278
+ and the hydrating one after it: see `sourceKnown`. */
8256
8279
  "empty-text"?: (HelixHeatmap["emptyText"]) | undefined;
8257
- /** Shown when the table has no readings in it. */
8280
+ /** Shown when the table has no readings in it.
8281
+
8282
+ Never shown while the table cannot be read at all, which is a server render
8283
+ and the hydrating one after it: see `sourceKnown`. */
8258
8284
  emptyText?: (HelixHeatmap["emptyText"]) | undefined;
8259
8285
  /** Space between cells, in CSS pixels, for the same reason `min-cell` is a
8260
8286
  number. */
@@ -8341,9 +8367,15 @@ shadow root names a table in that root rather than in the document. A
8341
8367
  Absent falls back to the table's own caption, which is usually the right
8342
8368
  words and is already written. */
8343
8369
  "prop:label"?: (HelixHeatmap["label"]) | undefined;
8344
- /** Shown when the table has no readings in it. */
8370
+ /** Shown when the table has no readings in it.
8371
+
8372
+ Never shown while the table cannot be read at all, which is a server render
8373
+ and the hydrating one after it: see `sourceKnown`. */
8345
8374
  "attr:empty-text"?: (HelixHeatmap["emptyText"]) | undefined;
8346
- /** Shown when the table has no readings in it. */
8375
+ /** Shown when the table has no readings in it.
8376
+
8377
+ Never shown while the table cannot be read at all, which is a server render
8378
+ and the hydrating one after it: see `sourceKnown`. */
8347
8379
  "prop:emptyText"?: (HelixHeatmap["emptyText"]) | undefined;
8348
8380
  /** Space between cells, in CSS pixels, for the same reason `min-cell` is a
8349
8381
  number. */
@@ -10332,8 +10364,16 @@ fits.
10332
10364
  a band is not a question of paint: a band is not placed against the trigger,
10333
10365
  so the controller has to be told not to measure, and that decision is here
10334
10366
  whatever the stylesheet says. Writing the width in both places would be one
10335
- number in two languages, drifting the first time either moved. This sets
10336
- `data-narrow` on the host and the stylesheet arranges itself off that. */
10367
+ number in two languages, drifting the first time either moved. This records
10368
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
10369
+
10370
+ **A custom state and never `data-narrow`, which is what it was.** The width
10371
+ is read in `connectedCallback`, so on a phone this is true on the very first
10372
+ update: an attribute written there is markup a consumer's server never sent,
10373
+ which React reports as a mismatch and answers by rebuilding the subtree. The
10374
+ narrow exception the server specs describe covers a mirror that can only
10375
+ become true long after hydration, and a viewport measured before the first
10376
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
10337
10377
  "full-below"?: (HelixMegamenu["fullBelow"] | `${number}`) | undefined;
10338
10378
  /** The width, in pixels, under which a card becomes a band. Zero never does.
10339
10379
 
@@ -10348,8 +10388,16 @@ fits.
10348
10388
  a band is not a question of paint: a band is not placed against the trigger,
10349
10389
  so the controller has to be told not to measure, and that decision is here
10350
10390
  whatever the stylesheet says. Writing the width in both places would be one
10351
- number in two languages, drifting the first time either moved. This sets
10352
- `data-narrow` on the host and the stylesheet arranges itself off that. */
10391
+ number in two languages, drifting the first time either moved. This records
10392
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
10393
+
10394
+ **A custom state and never `data-narrow`, which is what it was.** The width
10395
+ is read in `connectedCallback`, so on a phone this is true on the very first
10396
+ update: an attribute written there is markup a consumer's server never sent,
10397
+ which React reports as a mismatch and answers by rebuilding the subtree. The
10398
+ narrow exception the server specs describe covers a mirror that can only
10399
+ become true long after hydration, and a viewport measured before the first
10400
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
10353
10401
  fullBelow?: (HelixMegamenu["fullBelow"]) | undefined;
10354
10402
  /** The section's name, which names the default trigger and the panel. */
10355
10403
  label?: (HelixMegamenu["label"]) | undefined;
@@ -10423,8 +10471,16 @@ fits.
10423
10471
  a band is not a question of paint: a band is not placed against the trigger,
10424
10472
  so the controller has to be told not to measure, and that decision is here
10425
10473
  whatever the stylesheet says. Writing the width in both places would be one
10426
- number in two languages, drifting the first time either moved. This sets
10427
- `data-narrow` on the host and the stylesheet arranges itself off that. */
10474
+ number in two languages, drifting the first time either moved. This records
10475
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
10476
+
10477
+ **A custom state and never `data-narrow`, which is what it was.** The width
10478
+ is read in `connectedCallback`, so on a phone this is true on the very first
10479
+ update: an attribute written there is markup a consumer's server never sent,
10480
+ which React reports as a mismatch and answers by rebuilding the subtree. The
10481
+ narrow exception the server specs describe covers a mirror that can only
10482
+ become true long after hydration, and a viewport measured before the first
10483
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
10428
10484
  "attr:full-below"?: (HelixMegamenu["fullBelow"] | `${number}`) | undefined;
10429
10485
  /** The width, in pixels, under which a card becomes a band. Zero never does.
10430
10486
 
@@ -10439,8 +10495,16 @@ fits.
10439
10495
  a band is not a question of paint: a band is not placed against the trigger,
10440
10496
  so the controller has to be told not to measure, and that decision is here
10441
10497
  whatever the stylesheet says. Writing the width in both places would be one
10442
- number in two languages, drifting the first time either moved. This sets
10443
- `data-narrow` on the host and the stylesheet arranges itself off that. */
10498
+ number in two languages, drifting the first time either moved. This records
10499
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
10500
+
10501
+ **A custom state and never `data-narrow`, which is what it was.** The width
10502
+ is read in `connectedCallback`, so on a phone this is true on the very first
10503
+ update: an attribute written there is markup a consumer's server never sent,
10504
+ which React reports as a mismatch and answers by rebuilding the subtree. The
10505
+ narrow exception the server specs describe covers a mirror that can only
10506
+ become true long after hydration, and a viewport measured before the first
10507
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
10444
10508
  "prop:fullBelow"?: (HelixMegamenu["fullBelow"]) | undefined;
10445
10509
  /** The section's name, which names the default trigger and the panel. */
10446
10510
  "prop:label"?: (HelixMegamenu["label"]) | undefined;
@@ -11629,12 +11693,26 @@ page's markup should not take the page down over a comma. */
11629
11693
  /** Whether to leave the copy button off.
11630
11694
 
11631
11695
  Negative for the reason Code Block's is: a boolean attribute defaulting to
11632
- true could never be turned off from markup. */
11696
+ true could never be turned off from markup.
11697
+
11698
+ **It does not reflect, where Code Block's does**, and the difference is what
11699
+ the two sheets need. Code Block reserves the button's width with
11700
+ `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
11701
+ who set the property. This button is positioned out of the flow and takes no
11702
+ room, so nothing selects on it, and reflection exists so that a selector can
11703
+ reach a value. */
11633
11704
  "no-copy"?: (HelixObjectInspector["noCopy"]) | undefined;
11634
11705
  /** Whether to leave the copy button off.
11635
11706
 
11636
11707
  Negative for the reason Code Block's is: a boolean attribute defaulting to
11637
- true could never be turned off from markup. */
11708
+ true could never be turned off from markup.
11709
+
11710
+ **It does not reflect, where Code Block's does**, and the difference is what
11711
+ the two sheets need. Code Block reserves the button's width with
11712
+ `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
11713
+ who set the property. This button is positioned out of the flow and takes no
11714
+ room, so nothing selects on it, and reflection exists so that a selector can
11715
+ reach a value. */
11638
11716
  noCopy?: (HelixObjectInspector["noCopy"]) | undefined;
11639
11717
  /** Whether to draw only the rows in view.
11640
11718
 
@@ -11677,12 +11755,26 @@ page's markup should not take the page down over a comma. */
11677
11755
  /** Whether to leave the copy button off.
11678
11756
 
11679
11757
  Negative for the reason Code Block's is: a boolean attribute defaulting to
11680
- true could never be turned off from markup. */
11758
+ true could never be turned off from markup.
11759
+
11760
+ **It does not reflect, where Code Block's does**, and the difference is what
11761
+ the two sheets need. Code Block reserves the button's width with
11762
+ `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
11763
+ who set the property. This button is positioned out of the flow and takes no
11764
+ room, so nothing selects on it, and reflection exists so that a selector can
11765
+ reach a value. */
11681
11766
  "bool:no-copy"?: (HelixObjectInspector["noCopy"]) | undefined;
11682
11767
  /** Whether to leave the copy button off.
11683
11768
 
11684
11769
  Negative for the reason Code Block's is: a boolean attribute defaulting to
11685
- true could never be turned off from markup. */
11770
+ true could never be turned off from markup.
11771
+
11772
+ **It does not reflect, where Code Block's does**, and the difference is what
11773
+ the two sheets need. Code Block reserves the button's width with
11774
+ `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
11775
+ who set the property. This button is positioned out of the flow and takes no
11776
+ room, so nothing selects on it, and reflection exists so that a selector can
11777
+ reach a value. */
11686
11778
  "prop:noCopy"?: (HelixObjectInspector["noCopy"]) | undefined;
11687
11779
  /** Whether to draw only the rows in view.
11688
11780
 
@@ -11977,9 +12069,9 @@ markup. */
11977
12069
 
11978
12070
  /** `HelixOutline` component event */
11979
12071
  export type HelixOutlineElementEvent<E = Event> = TypedEvent<HelixOutline, E>;
11980
- /** `helix-before-activate` event type */
11981
- export type HelixOutlineHelixBeforeActivateElementEvent =
11982
- HelixOutlineElementEvent<HelixBeforeActivateEvent>;
12072
+ /** `helix-activate` event type */
12073
+ export type HelixOutlineHelixActivateElementEvent =
12074
+ HelixOutlineElementEvent<HelixActivateEvent>;
11983
12075
 
11984
12076
  export type HelixOutlineProps = {
11985
12077
  /** How a click on one of these links travels to its section.
@@ -12012,10 +12104,8 @@ a little more: without it the current section changes as a heading slides
12012
12104
  under the chrome rather than as it reaches the top of what can be seen. */
12013
12105
  offset?: (HelixOutline["offset"]) | undefined;
12014
12106
 
12015
- /** The section being read has changed, carrying its id as the value. Cancelable: refusing it takes the decision and nothing moves. */
12016
- "onhelix-before-activate"?: ((
12017
- e: HelixOutlineHelixBeforeActivateElementEvent,
12018
- ) => void) | undefined;
12107
+ /** The section being read has changed, carrying its id as the value. An announcement: it is read off where the page is scrolled to, so there is no decision here to take. */
12108
+ "onhelix-activate"?: ((e: HelixOutlineHelixActivateElementEvent) => void) | undefined;
12019
12109
  };
12020
12110
 
12021
12111
  export type HelixOutlineSolidJsProps = {
@@ -12048,10 +12138,8 @@ The reading line. A page with a sticky masthead sets this to its height, or
12048
12138
  a little more: without it the current section changes as a heading slides
12049
12139
  under the chrome rather than as it reaches the top of what can be seen. */
12050
12140
  "prop:offset"?: (HelixOutline["offset"]) | undefined;
12051
- /** The section being read has changed, carrying its id as the value. Cancelable: refusing it takes the decision and nothing moves. */
12052
- "on:helix-before-activate"?: ((
12053
- e: HelixOutlineHelixBeforeActivateElementEvent,
12054
- ) => void) | undefined;
12141
+ /** The section being read has changed, carrying its id as the value. An announcement: it is read off where the page is scrolled to, so there is no decision here to take. */
12142
+ "on:helix-activate"?: ((e: HelixOutlineHelixActivateElementEvent) => void) | undefined;
12055
12143
 
12056
12144
  /** Set the innerHTML of the element */
12057
12145
  innerHTML?: (string) | undefined;
@@ -23647,6 +23735,15 @@ export type CustomElements = {
23647
23735
  *
23648
23736
  * A comma is therefore not available inside an option's value, which is the
23649
23737
  * listbox's contract and not this element's to change.
23738
+ *
23739
+ * **The list is told, and the field is not.** `aria-multiselectable` belongs
23740
+ * to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
23741
+ * ARIA 1.2; the list sets it on itself through `ElementInternals`, where a
23742
+ * reader on the field hears it through `aria-controls`. This element wrote it
23743
+ * onto its own `role="combobox"` input as well, which an audit reports as a
23744
+ * property the role does not support and no spec here ever asserted: the one
23745
+ * that covers this says in as many words that telling the list is what this
23746
+ * element is responsible for.
23650
23747
  * - `placeholder`: Text shown while nothing has been chosen.
23651
23748
  * - `remove-label`/`removeLabel`: What a tag's remove control is called, since the mark has no name.
23652
23749
  * - `suggest`: Whether the field finishes the word as it is typed.
@@ -23801,7 +23898,7 @@ export type CustomElements = {
23801
23898
  * - `--combobox-background-color`: Fill behind the field. (default: `undefined`)
23802
23899
  * - `--combobox-border-color`: Color of the panel's edge. (default: `undefined`)
23803
23900
  * - `--combobox-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. (default: `undefined`)
23804
- * - `--combobox-control-size`: Smallest the text field shrinks to (default: `undefined`)
23901
+ * - `--combobox-control-size`: Smallest the text field shrinks to once tags share its line. (default: `undefined`)
23805
23902
  * - `--combobox-panel-size`: Width of the panel. Follows the field by default. (default: `undefined`)
23806
23903
  * - `--combobox-shadow`: Lift under the panel. Follows `--helix-shadow-floating`: a floating surface sits over content nobody can predict, so it keeps a lift by default. (default: `undefined`)
23807
23904
  *
@@ -24455,6 +24552,7 @@ export type CustomElements = {
24455
24552
  * - `--data-table-padding-inline`: Space either side of a cell's content. (default: `undefined`)
24456
24553
  * - `--data-table-rule-color`: Color of the hairline between rows. A color and not a border: it lands in the color slot of a shorthand, so a whole border written into it produces invalid CSS and drops the rule. Drawn on the cells rather than the row, which is `display: contents` and measures `0px`. (default: `undefined`)
24457
24554
  * - `--data-table-text`: Type size, headings and cells alike. (default: `undefined`)
24555
+ * - `--data-table-cell-align`: The edge the column a cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the component onto each cell it draws, read by the sheet that paints one; `helix-table` publishes `--table-cell-align` for the same attribute on the cells a consumer wrote, under its own family's name. (default: `undefined`)
24458
24556
  * - `--data-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. `--data-table-columns` is the one to set. (default: `undefined`)
24459
24557
  *
24460
24558
  * ## CSS Parts
@@ -24476,7 +24574,7 @@ export type CustomElements = {
24476
24574
  * - `checkbox-mark`: The tick, or the dash while some rows are selected.
24477
24575
  * - `checkbox-mark-checked`: The mark while its box is checked, beside `checkbox-mark`.
24478
24576
  * - `checkbox-mark-indeterminate`: The dash while only some rows are selected, beside `checkbox-mark`.
24479
- * - `empty`: Shown when no rows match.
24577
+ * - `empty`: Shown when the result has nothing in it, whether it arrived empty or a filter emptied it. A result still on its way is `loading` instead, which wins over this.
24480
24578
  * - `footer`: The region below the grid.
24481
24579
  * - `head`: The row the column headings sit in. `display: contents`, so it takes no space.
24482
24580
  * - `loading`: Shown while the rows are still on their way.
@@ -25071,10 +25169,11 @@ export type CustomElements = {
25071
25169
  *
25072
25170
  * Component attributes and properties that can be applied to the element or by using JavaScript.
25073
25171
  *
25074
- * - `label`: What the value is, for the common case of plain text.
25172
+ * - `label`: What the value is called, for the common case of plain text.
25075
25173
  *
25076
25174
  * The fallback of the `label` slot, so slotted content replaces it rather than
25077
- * appearing beside it.
25175
+ * appearing beside it. The value itself is the default slot: it is the half
25176
+ * that varies and is often more than text.
25078
25177
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
25079
25178
  *
25080
25179
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -25204,7 +25303,7 @@ export type CustomElements = {
25204
25303
  *
25205
25304
  * CSS variables available for styling the component.
25206
25305
  *
25207
- * - `--description-list-gap`: Space between one pair and the next. (default: `undefined`)
25306
+ * - `--description-list-gap`: Space between one pair and the next. Its resting value is tighter with `direction="row"` than stacked, a row of pairs needing less air between them than a column of them does, and setting this takes both. (default: `undefined`)
25208
25307
  *
25209
25308
  * ## CSS Parts
25210
25309
  *
@@ -25763,9 +25862,9 @@ export type CustomElements = {
25763
25862
  *
25764
25863
  * Events that will be emitted by the component.
25765
25864
  *
25766
- * - `helix-before-open`: Fired before the drawer opens or closes. Cancelable: refusing it takes the decision and nothing moves.
25767
25865
  * - `close`: Relayed, because the platform's own does not escape.
25768
25866
  * - `helix-before-close`: Fired before the panel closes, and cancelable.
25867
+ * - `helix-before-open`: Fired before the panel opens. Cancelable: refusing it takes the decision and nothing moves.
25769
25868
  * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
25770
25869
  *
25771
25870
  * ## Slots
@@ -25792,12 +25891,12 @@ export type CustomElements = {
25792
25891
  *
25793
25892
  * CSS variables available for styling the component.
25794
25893
  *
25795
- * - `--drawer-backdrop`: Filter applied behind a `material="glass"` drawer. Follows the theme's material policy; set it to override the strength on one drawer. (default: `undefined`)
25894
+ * - `--drawer-backdrop`: Filter applied behind a `frosted` or `glass` drawer. Follows the theme's material policy; set it to override the strength on one drawer. (default: `undefined`)
25796
25895
  * - `--drawer-background-color`: Surface behind the panel. (default: `undefined`)
25797
25896
  * - `--drawer-border-color`: Color of the panel's edge. (default: `undefined`)
25798
25897
  * - `--drawer-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. (default: `undefined`)
25799
25898
  * - `--drawer-padding`: Padding inside the panel. (default: `undefined`)
25800
- * - `--drawer-padding-block-start`: Padding above the content, which clears the close control. (default: `undefined`)
25899
+ * - `--drawer-padding-block-start`: Padding above the header, which is a step deeper than the other three so the first line clears the window's own edge. Falls back to `--drawer-padding`, so setting that alone governs all four sides. (default: `undefined`)
25801
25900
  * - `--drawer-radius`: Corner radius on the edges that face the page. (default: `undefined`)
25802
25901
  * - `--drawer-scrim`: The wash over the page behind the drawer. Set on the host, where a token still resolves: a `var()` written inside `::backdrop` cannot see one. (default: `undefined`)
25803
25902
  * - `--drawer-shadow`: Lift under the panel. Follows `--helix-shadow-floating`: a floating surface sits over content nobody can predict, so it keeps a lift by default. (default: `undefined`)
@@ -26008,6 +26107,7 @@ export type CustomElements = {
26008
26107
  *
26009
26108
  * These can be used to apply styling when a component is in a given state.
26010
26109
  *
26110
+ * - `drilled`: While a row's page is showing rather than the top one, so a frame around this can answer the depth it is at.
26011
26111
  * - `settled`: Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.
26012
26112
  */
26013
26113
  "helix-drilldown": Partial<
@@ -27175,6 +27275,9 @@ export type CustomElements = {
27175
27275
  * Absent falls back to the table's own caption, which is usually the right
27176
27276
  * words and is already written.
27177
27277
  * - `empty-text`/`emptyText`: Shown when the table has no readings in it.
27278
+ *
27279
+ * Never shown while the table cannot be read at all, which is a server render
27280
+ * and the hydrating one after it: see `sourceKnown`.
27178
27281
  * - `gap`: Space between cells, in CSS pixels, for the same reason `min-cell` is a
27179
27282
  * number.
27180
27283
  * - `min-cell`/`minCell`: The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
@@ -27291,7 +27394,6 @@ export type CustomElements = {
27291
27394
  *
27292
27395
  * Areas where markup can be added to the component.
27293
27396
  *
27294
- * - `(default)`: The `<table>` this draws, where it is not named by `for`.
27295
27397
  * - `end`: Below the strip, at the trailing edge.
27296
27398
  * - `start`: Below the strip, at the leading edge.
27297
27399
  * - `summary`: Below the strip, in the middle.
@@ -27343,7 +27445,7 @@ export type CustomElements = {
27343
27445
  * - `tooltip-right`: The bubble while it is right of the reading, beside `tooltip`.
27344
27446
  * - `tooltip-top`: The bubble while it is above the reading, beside `tooltip`.
27345
27447
  * - `tooltip-value`: A column's value inside the tooltip.
27346
- * - `empty`: Shown when the table has no readings in it.
27448
+ * - `empty`: Shown when the table has no readings in it, and not before the table can be read at all: on a server, and while hydrating what one sent, there is no document to resolve `for` in and nothing is known yet.
27347
27449
  * - `end`: The trailing slot's box.
27348
27450
  * - `start`: The leading slot's box.
27349
27451
  * - `summary`: The middle slot's box.
@@ -29059,8 +29161,16 @@ export type CustomElements = {
29059
29161
  * a band is not a question of paint: a band is not placed against the trigger,
29060
29162
  * so the controller has to be told not to measure, and that decision is here
29061
29163
  * whatever the stylesheet says. Writing the width in both places would be one
29062
- * number in two languages, drifting the first time either moved. This sets
29063
- * `data-narrow` on the host and the stylesheet arranges itself off that.
29164
+ * number in two languages, drifting the first time either moved. This records
29165
+ * `:state(narrow)` on the host and the stylesheet arranges itself off that.
29166
+ *
29167
+ * **A custom state and never `data-narrow`, which is what it was.** The width
29168
+ * is read in `connectedCallback`, so on a phone this is true on the very first
29169
+ * update: an attribute written there is markup a consumer's server never sent,
29170
+ * which React reports as a mismatch and answers by rebuilding the subtree. The
29171
+ * narrow exception the server specs describe covers a mirror that can only
29172
+ * become true long after hydration, and a viewport measured before the first
29173
+ * paint is the opposite case. See `MixinControllerOpen` on `open`.
29064
29174
  * - `label`: The section's name, which names the default trigger and the panel.
29065
29175
  * - `open-on`/`openOn`: Whether hovering the trigger opens the panel, or only a press does.
29066
29176
  *
@@ -29134,7 +29244,7 @@ export type CustomElements = {
29134
29244
  *
29135
29245
  * CSS variables available for styling the component.
29136
29246
  *
29137
- * - `--megamenu-backdrop`: A filter behind the panel, for glass. (default: `undefined`)
29247
+ * - `--megamenu-backdrop`: A filter behind the panel, which is `none` until one is asked for: this family carries no `material`, so the pair is two hooks rather than a word. (default: `undefined`)
29138
29248
  * - `--megamenu-background-color`: The panel's own fill. (default: `undefined`)
29139
29249
  * - `--megamenu-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. (default: `undefined`)
29140
29250
  * - `--megamenu-column-size`: The narrowest a column goes before the grid wraps. (default: `undefined`)
@@ -29154,6 +29264,7 @@ export type CustomElements = {
29154
29264
  *
29155
29265
  * These can be used to apply styling when a component is in a given state.
29156
29266
  *
29267
+ * - `narrow`: While the page is under `full-below`, so the panel is a band whether or not one was asked for.
29157
29268
  * - `open`: While the panel is open, which is when the trigger reads as current.
29158
29269
  * - `settled`: Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.
29159
29270
  */
@@ -30379,6 +30490,13 @@ export type CustomElements = {
30379
30490
  *
30380
30491
  * Negative for the reason Code Block's is: a boolean attribute defaulting to
30381
30492
  * true could never be turned off from markup.
30493
+ *
30494
+ * **It does not reflect, where Code Block's does**, and the difference is what
30495
+ * the two sheets need. Code Block reserves the button's width with
30496
+ * `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
30497
+ * who set the property. This button is positioned out of the flow and takes no
30498
+ * room, so nothing selects on it, and reflection exists so that a selector can
30499
+ * reach a value.
30382
30500
  * - `windowed`: Whether to draw only the rows in view.
30383
30501
  *
30384
30502
  * For a value of thousands of entries. Reflected, because the box it scrolls
@@ -30819,9 +30937,11 @@ export type CustomElements = {
30819
30937
  * the shape a table of contents has taken since printed marginalia: the line
30820
30938
  * says the list is one thing, and the lit segment says where in it you are.
30821
30939
  *
30822
- * Nesting is the consumer's, expressed as `data-level` on a link. An outline
30823
- * that read heading levels itself would have to look at the document, and the
30824
- * document is not always where the headings are.
30940
+ * Nesting is the consumer's, expressed as `data-level` on a link, and the
30941
+ * levels are the heading levels: `2` through `6` each take one more step of
30942
+ * `--outline-indent`, and a link with no `data-level` is the top one. An
30943
+ * outline that read heading levels itself would have to look at the document,
30944
+ * and the document is not always where the headings are.
30825
30945
  *
30826
30946
  * ## Attributes & Properties
30827
30947
  *
@@ -30886,7 +31006,7 @@ export type CustomElements = {
30886
31006
  *
30887
31007
  * Events that will be emitted by the component.
30888
31008
  *
30889
- * - `helix-before-activate`: The section being read has changed, carrying its id as the value. Cancelable: refusing it takes the decision and nothing moves.
31009
+ * - `helix-activate`: The section being read has changed, carrying its id as the value. An announcement: it is read off where the page is scrolled to, so there is no decision here to take.
30890
31010
  *
30891
31011
  * ## Slots
30892
31012
  *
@@ -37337,7 +37457,7 @@ export type CustomElements = {
37337
37457
  * CSS variables available for styling the component.
37338
37458
  *
37339
37459
  * - `--tooltip-arrow-size`: Size of the point at the bubble's edge. (default: `undefined`)
37340
- * - `--tooltip-backdrop`: Blur behind a `glass` bubble. (default: `undefined`)
37460
+ * - `--tooltip-backdrop`: Blur behind a `frosted` or `glass` bubble. (default: `undefined`)
37341
37461
  * - `--tooltip-background-color`: Fill of the bubble. (default: `undefined`)
37342
37462
  * - `--tooltip-max-inline-size`: Widest the bubble grows before wrapping. (default: `undefined`)
37343
37463
  *
@@ -42534,6 +42654,15 @@ export type CustomElementsSolidJs = {
42534
42654
  *
42535
42655
  * A comma is therefore not available inside an option's value, which is the
42536
42656
  * listbox's contract and not this element's to change.
42657
+ *
42658
+ * **The list is told, and the field is not.** `aria-multiselectable` belongs
42659
+ * to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
42660
+ * ARIA 1.2; the list sets it on itself through `ElementInternals`, where a
42661
+ * reader on the field hears it through `aria-controls`. This element wrote it
42662
+ * onto its own `role="combobox"` input as well, which an audit reports as a
42663
+ * property the role does not support and no spec here ever asserted: the one
42664
+ * that covers this says in as many words that telling the list is what this
42665
+ * element is responsible for.
42537
42666
  * - `placeholder`: Text shown while nothing has been chosen.
42538
42667
  * - `remove-label`/`removeLabel`: What a tag's remove control is called, since the mark has no name.
42539
42668
  * - `suggest`: Whether the field finishes the word as it is typed.
@@ -42688,7 +42817,7 @@ export type CustomElementsSolidJs = {
42688
42817
  * - `--combobox-background-color`: Fill behind the field. (default: `undefined`)
42689
42818
  * - `--combobox-border-color`: Color of the panel's edge. (default: `undefined`)
42690
42819
  * - `--combobox-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. (default: `undefined`)
42691
- * - `--combobox-control-size`: Smallest the text field shrinks to (default: `undefined`)
42820
+ * - `--combobox-control-size`: Smallest the text field shrinks to once tags share its line. (default: `undefined`)
42692
42821
  * - `--combobox-panel-size`: Width of the panel. Follows the field by default. (default: `undefined`)
42693
42822
  * - `--combobox-shadow`: Lift under the panel. Follows `--helix-shadow-floating`: a floating surface sits over content nobody can predict, so it keeps a lift by default. (default: `undefined`)
42694
42823
  *
@@ -43351,6 +43480,7 @@ export type CustomElementsSolidJs = {
43351
43480
  * - `--data-table-padding-inline`: Space either side of a cell's content. (default: `undefined`)
43352
43481
  * - `--data-table-rule-color`: Color of the hairline between rows. A color and not a border: it lands in the color slot of a shorthand, so a whole border written into it produces invalid CSS and drops the rule. Drawn on the cells rather than the row, which is `display: contents` and measures `0px`. (default: `undefined`)
43353
43482
  * - `--data-table-text`: Type size, headings and cells alike. (default: `undefined`)
43483
+ * - `--data-table-cell-align`: The edge the column a cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the component onto each cell it draws, read by the sheet that paints one; `helix-table` publishes `--table-cell-align` for the same attribute on the cells a consumer wrote, under its own family's name. (default: `undefined`)
43354
43484
  * - `--data-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. `--data-table-columns` is the one to set. (default: `undefined`)
43355
43485
  *
43356
43486
  * ## CSS Parts
@@ -43372,7 +43502,7 @@ export type CustomElementsSolidJs = {
43372
43502
  * - `checkbox-mark`: The tick, or the dash while some rows are selected.
43373
43503
  * - `checkbox-mark-checked`: The mark while its box is checked, beside `checkbox-mark`.
43374
43504
  * - `checkbox-mark-indeterminate`: The dash while only some rows are selected, beside `checkbox-mark`.
43375
- * - `empty`: Shown when no rows match.
43505
+ * - `empty`: Shown when the result has nothing in it, whether it arrived empty or a filter emptied it. A result still on its way is `loading` instead, which wins over this.
43376
43506
  * - `footer`: The region below the grid.
43377
43507
  * - `head`: The row the column headings sit in. `display: contents`, so it takes no space.
43378
43508
  * - `loading`: Shown while the rows are still on their way.
@@ -43976,10 +44106,11 @@ export type CustomElementsSolidJs = {
43976
44106
  *
43977
44107
  * Component attributes and properties that can be applied to the element or by using JavaScript.
43978
44108
  *
43979
- * - `label`: What the value is, for the common case of plain text.
44109
+ * - `label`: What the value is called, for the common case of plain text.
43980
44110
  *
43981
44111
  * The fallback of the `label` slot, so slotted content replaces it rather than
43982
- * appearing beside it.
44112
+ * appearing beside it. The value itself is the default slot: it is the half
44113
+ * that varies and is often more than text.
43983
44114
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
43984
44115
  *
43985
44116
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -44110,7 +44241,7 @@ export type CustomElementsSolidJs = {
44110
44241
  *
44111
44242
  * CSS variables available for styling the component.
44112
44243
  *
44113
- * - `--description-list-gap`: Space between one pair and the next. (default: `undefined`)
44244
+ * - `--description-list-gap`: Space between one pair and the next. Its resting value is tighter with `direction="row"` than stacked, a row of pairs needing less air between them than a column of them does, and setting this takes both. (default: `undefined`)
44114
44245
  *
44115
44246
  * ## CSS Parts
44116
44247
  *
@@ -44681,9 +44812,9 @@ export type CustomElementsSolidJs = {
44681
44812
  *
44682
44813
  * Events that will be emitted by the component.
44683
44814
  *
44684
- * - `helix-before-open`: Fired before the drawer opens or closes. Cancelable: refusing it takes the decision and nothing moves.
44685
44815
  * - `close`: Relayed, because the platform's own does not escape.
44686
44816
  * - `helix-before-close`: Fired before the panel closes, and cancelable.
44817
+ * - `helix-before-open`: Fired before the panel opens. Cancelable: refusing it takes the decision and nothing moves.
44687
44818
  * - `toggle`: Says the state moved, carrying `newState` and `oldState`.
44688
44819
  *
44689
44820
  * ## Slots
@@ -44710,12 +44841,12 @@ export type CustomElementsSolidJs = {
44710
44841
  *
44711
44842
  * CSS variables available for styling the component.
44712
44843
  *
44713
- * - `--drawer-backdrop`: Filter applied behind a `material="glass"` drawer. Follows the theme's material policy; set it to override the strength on one drawer. (default: `undefined`)
44844
+ * - `--drawer-backdrop`: Filter applied behind a `frosted` or `glass` drawer. Follows the theme's material policy; set it to override the strength on one drawer. (default: `undefined`)
44714
44845
  * - `--drawer-background-color`: Surface behind the panel. (default: `undefined`)
44715
44846
  * - `--drawer-border-color`: Color of the panel's edge. (default: `undefined`)
44716
44847
  * - `--drawer-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. (default: `undefined`)
44717
44848
  * - `--drawer-padding`: Padding inside the panel. (default: `undefined`)
44718
- * - `--drawer-padding-block-start`: Padding above the content, which clears the close control. (default: `undefined`)
44849
+ * - `--drawer-padding-block-start`: Padding above the header, which is a step deeper than the other three so the first line clears the window's own edge. Falls back to `--drawer-padding`, so setting that alone governs all four sides. (default: `undefined`)
44719
44850
  * - `--drawer-radius`: Corner radius on the edges that face the page. (default: `undefined`)
44720
44851
  * - `--drawer-scrim`: The wash over the page behind the drawer. Set on the host, where a token still resolves: a `var()` written inside `::backdrop` cannot see one. (default: `undefined`)
44721
44852
  * - `--drawer-shadow`: Lift under the panel. Follows `--helix-shadow-floating`: a floating surface sits over content nobody can predict, so it keeps a lift by default. (default: `undefined`)
@@ -44932,6 +45063,7 @@ export type CustomElementsSolidJs = {
44932
45063
  *
44933
45064
  * These can be used to apply styling when a component is in a given state.
44934
45065
  *
45066
+ * - `drilled`: While a row's page is showing rather than the top one, so a frame around this can answer the depth it is at.
44935
45067
  * - `settled`: Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.
44936
45068
  */
44937
45069
  "helix-drilldown": Partial<
@@ -46132,6 +46264,9 @@ export type CustomElementsSolidJs = {
46132
46264
  * Absent falls back to the table's own caption, which is usually the right
46133
46265
  * words and is already written.
46134
46266
  * - `empty-text`/`emptyText`: Shown when the table has no readings in it.
46267
+ *
46268
+ * Never shown while the table cannot be read at all, which is a server render
46269
+ * and the hydrating one after it: see `sourceKnown`.
46135
46270
  * - `gap`: Space between cells, in CSS pixels, for the same reason `min-cell` is a
46136
46271
  * number.
46137
46272
  * - `min-cell`/`minCell`: The smallest a cell may get before the strip draws fewer of them, in CSS pixels.
@@ -46248,7 +46383,6 @@ export type CustomElementsSolidJs = {
46248
46383
  *
46249
46384
  * Areas where markup can be added to the component.
46250
46385
  *
46251
- * - `(default)`: The `<table>` this draws, where it is not named by `for`.
46252
46386
  * - `end`: Below the strip, at the trailing edge.
46253
46387
  * - `start`: Below the strip, at the leading edge.
46254
46388
  * - `summary`: Below the strip, in the middle.
@@ -46300,7 +46434,7 @@ export type CustomElementsSolidJs = {
46300
46434
  * - `tooltip-right`: The bubble while it is right of the reading, beside `tooltip`.
46301
46435
  * - `tooltip-top`: The bubble while it is above the reading, beside `tooltip`.
46302
46436
  * - `tooltip-value`: A column's value inside the tooltip.
46303
- * - `empty`: Shown when the table has no readings in it.
46437
+ * - `empty`: Shown when the table has no readings in it, and not before the table can be read at all: on a server, and while hydrating what one sent, there is no document to resolve `for` in and nothing is known yet.
46304
46438
  * - `end`: The trailing slot's box.
46305
46439
  * - `start`: The leading slot's box.
46306
46440
  * - `summary`: The middle slot's box.
@@ -48053,8 +48187,16 @@ export type CustomElementsSolidJs = {
48053
48187
  * a band is not a question of paint: a band is not placed against the trigger,
48054
48188
  * so the controller has to be told not to measure, and that decision is here
48055
48189
  * whatever the stylesheet says. Writing the width in both places would be one
48056
- * number in two languages, drifting the first time either moved. This sets
48057
- * `data-narrow` on the host and the stylesheet arranges itself off that.
48190
+ * number in two languages, drifting the first time either moved. This records
48191
+ * `:state(narrow)` on the host and the stylesheet arranges itself off that.
48192
+ *
48193
+ * **A custom state and never `data-narrow`, which is what it was.** The width
48194
+ * is read in `connectedCallback`, so on a phone this is true on the very first
48195
+ * update: an attribute written there is markup a consumer's server never sent,
48196
+ * which React reports as a mismatch and answers by rebuilding the subtree. The
48197
+ * narrow exception the server specs describe covers a mirror that can only
48198
+ * become true long after hydration, and a viewport measured before the first
48199
+ * paint is the opposite case. See `MixinControllerOpen` on `open`.
48058
48200
  * - `label`: The section's name, which names the default trigger and the panel.
48059
48201
  * - `open-on`/`openOn`: Whether hovering the trigger opens the panel, or only a press does.
48060
48202
  *
@@ -48128,7 +48270,7 @@ export type CustomElementsSolidJs = {
48128
48270
  *
48129
48271
  * CSS variables available for styling the component.
48130
48272
  *
48131
- * - `--megamenu-backdrop`: A filter behind the panel, for glass. (default: `undefined`)
48273
+ * - `--megamenu-backdrop`: A filter behind the panel, which is `none` until one is asked for: this family carries no `material`, so the pair is two hooks rather than a word. (default: `undefined`)
48132
48274
  * - `--megamenu-background-color`: The panel's own fill. (default: `undefined`)
48133
48275
  * - `--megamenu-border-width`: Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. (default: `undefined`)
48134
48276
  * - `--megamenu-column-size`: The narrowest a column goes before the grid wraps. (default: `undefined`)
@@ -48148,6 +48290,7 @@ export type CustomElementsSolidJs = {
48148
48290
  *
48149
48291
  * These can be used to apply styling when a component is in a given state.
48150
48292
  *
48293
+ * - `narrow`: While the page is under `full-below`, so the panel is a band whether or not one was asked for.
48151
48294
  * - `open`: While the panel is open, which is when the trigger reads as current.
48152
48295
  * - `settled`: Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.
48153
48296
  */
@@ -49401,6 +49544,13 @@ export type CustomElementsSolidJs = {
49401
49544
  *
49402
49545
  * Negative for the reason Code Block's is: a boolean attribute defaulting to
49403
49546
  * true could never be turned off from markup.
49547
+ *
49548
+ * **It does not reflect, where Code Block's does**, and the difference is what
49549
+ * the two sheets need. Code Block reserves the button's width with
49550
+ * `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
49551
+ * who set the property. This button is positioned out of the flow and takes no
49552
+ * room, so nothing selects on it, and reflection exists so that a selector can
49553
+ * reach a value.
49404
49554
  * - `windowed`: Whether to draw only the rows in view.
49405
49555
  *
49406
49556
  * For a value of thousands of entries. Reflected, because the box it scrolls
@@ -49852,9 +50002,11 @@ export type CustomElementsSolidJs = {
49852
50002
  * the shape a table of contents has taken since printed marginalia: the line
49853
50003
  * says the list is one thing, and the lit segment says where in it you are.
49854
50004
  *
49855
- * Nesting is the consumer's, expressed as `data-level` on a link. An outline
49856
- * that read heading levels itself would have to look at the document, and the
49857
- * document is not always where the headings are.
50005
+ * Nesting is the consumer's, expressed as `data-level` on a link, and the
50006
+ * levels are the heading levels: `2` through `6` each take one more step of
50007
+ * `--outline-indent`, and a link with no `data-level` is the top one. An
50008
+ * outline that read heading levels itself would have to look at the document,
50009
+ * and the document is not always where the headings are.
49858
50010
  *
49859
50011
  * ## Attributes & Properties
49860
50012
  *
@@ -49919,7 +50071,7 @@ export type CustomElementsSolidJs = {
49919
50071
  *
49920
50072
  * Events that will be emitted by the component.
49921
50073
  *
49922
- * - `helix-before-activate`: The section being read has changed, carrying its id as the value. Cancelable: refusing it takes the decision and nothing moves.
50074
+ * - `helix-activate`: The section being read has changed, carrying its id as the value. An announcement: it is read off where the page is scrolled to, so there is no decision here to take.
49923
50075
  *
49924
50076
  * ## Slots
49925
50077
  *
@@ -56530,7 +56682,7 @@ export type CustomElementsSolidJs = {
56530
56682
  * CSS variables available for styling the component.
56531
56683
  *
56532
56684
  * - `--tooltip-arrow-size`: Size of the point at the bubble's edge. (default: `undefined`)
56533
- * - `--tooltip-backdrop`: Blur behind a `glass` bubble. (default: `undefined`)
56685
+ * - `--tooltip-backdrop`: Blur behind a `frosted` or `glass` bubble. (default: `undefined`)
56534
56686
  * - `--tooltip-background-color`: Fill of the bubble. (default: `undefined`)
56535
56687
  * - `--tooltip-max-inline-size`: Widest the bubble grows before wrapping. (default: `undefined`)
56536
56688
  *
@@ -58095,7 +58247,7 @@ export type CustomCssProperties = {
58095
58247
  "--combobox-border-color"?: (string) | undefined;
58096
58248
  /** Width of the panel's edge. Follows `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a theme says otherwise. */
58097
58249
  "--combobox-border-width"?: (string) | undefined;
58098
- /** Smallest the text field shrinks to */
58250
+ /** Smallest the text field shrinks to once tags share its line. */
58099
58251
  "--combobox-control-size"?: (string) | undefined;
58100
58252
  /** Width of the panel. Follows the field by default. */
58101
58253
  "--combobox-panel-size"?: (string) | undefined;
@@ -58129,6 +58281,8 @@ export type CustomCssProperties = {
58129
58281
  "--data-table-rule-color"?: (string) | undefined;
58130
58282
  /** Type size, headings and cells alike. */
58131
58283
  "--data-table-text"?: (string) | undefined;
58284
+ /** The edge the column a cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the component onto each cell it draws, read by the sheet that paints one; `helix-table` publishes `--table-cell-align` for the same attribute on the cells a consumer wrote, under its own family's name. */
58285
+ "--data-table-cell-align"?: (string) | undefined;
58132
58286
  /** 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. `--data-table-columns` is the one to set. */
58133
58287
  "--data-table-template"?: (string) | undefined;
58134
58288
  /** Fill behind the field. */
@@ -58153,7 +58307,7 @@ export type CustomCssProperties = {
58153
58307
  "--date-picker-track-size"?: (string) | undefined;
58154
58308
  /** How many month columns are drawn, capped at two. `--date-picker-columns` overrides it. */
58155
58309
  "--date-picker-column-count"?: (string) | undefined;
58156
- /** Space between one pair and the next. */
58310
+ /** Space between one pair and the next. Its resting value is tighter with `direction="row"` than stacked, a row of pairs needing less air between them than a column of them does, and setting this takes both. */
58157
58311
  "--description-list-gap"?: (string) | undefined;
58158
58312
  /** Color of the panel's edge. */
58159
58313
  "--dialog-border-color"?: (string) | undefined;
@@ -58191,7 +58345,7 @@ export type CustomCssProperties = {
58191
58345
  "--donut-chart-track-color"?: (string) | undefined;
58192
58346
  /** How thick the ring is drawn, derived from `hole`. */
58193
58347
  "--donut-chart-stroke"?: (string) | undefined;
58194
- /** Filter applied behind a `material="glass"` drawer. Follows the theme's material policy; set it to override the strength on one drawer. */
58348
+ /** Filter applied behind a `frosted` or `glass` drawer. Follows the theme's material policy; set it to override the strength on one drawer. */
58195
58349
  "--drawer-backdrop"?: (string) | undefined;
58196
58350
  /** Surface behind the panel. */
58197
58351
  "--drawer-background-color"?: (string) | undefined;
@@ -58201,7 +58355,7 @@ export type CustomCssProperties = {
58201
58355
  "--drawer-border-width"?: (string) | undefined;
58202
58356
  /** Padding inside the panel. */
58203
58357
  "--drawer-padding"?: (string) | undefined;
58204
- /** Padding above the content, which clears the close control. */
58358
+ /** Padding above the header, which is a step deeper than the other three so the first line clears the window's own edge. Falls back to `--drawer-padding`, so setting that alone governs all four sides. */
58205
58359
  "--drawer-padding-block-start"?: (string) | undefined;
58206
58360
  /** Corner radius on the edges that face the page. */
58207
58361
  "--drawer-radius"?: (string) | undefined;
@@ -58359,7 +58513,7 @@ export type CustomCssProperties = {
58359
58513
  "--loader-size"?: (string) | undefined;
58360
58514
  /** Color of the circle behind it. */
58361
58515
  "--loader-track-color"?: (string) | undefined;
58362
- /** A filter behind the panel, for glass. */
58516
+ /** A filter behind the panel, which is `none` until one is asked for: this family carries no `material`, so the pair is two hooks rather than a word. */
58363
58517
  "--megamenu-backdrop"?: (string) | undefined;
58364
58518
  /** The panel's own fill. */
58365
58519
  "--megamenu-background-color"?: (string) | undefined;
@@ -58795,7 +58949,7 @@ export type CustomCssProperties = {
58795
58949
  "--toolbar-gap"?: (string) | undefined;
58796
58950
  /** Size of the point at the bubble's edge. */
58797
58951
  "--tooltip-arrow-size"?: (string) | undefined;
58798
- /** Blur behind a `glass` bubble. */
58952
+ /** Blur behind a `frosted` or `glass` bubble. */
58799
58953
  "--tooltip-backdrop"?: (string) | undefined;
58800
58954
  /** Fill of the bubble. */
58801
58955
  "--tooltip-background-color"?: (string) | undefined;