@fusion.dev/helix-headless 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/vue.d.ts CHANGED
@@ -105,6 +105,7 @@ import type {
105
105
  HelixHeadlessSwitch,
106
106
  HelixHeadlessTableCell,
107
107
  at,
108
+ edgeOf,
108
109
  HelixHeadlessTableColumn,
109
110
  HelixHeadlessTable,
110
111
  HelixHeadlessTableRow,
@@ -159,11 +160,11 @@ import type {
159
160
  HelixResizeEvent,
160
161
  HelixShortcutEvent,
161
162
  HelixReadEvent,
162
- HelixBeforeActivateEvent,
163
+ HelixActivateEvent,
163
164
  HelixCompleteEvent,
164
165
  HelixBeforeCollapseEvent,
165
166
  HelixBeforeResizeEvent,
166
- HelixActivateEvent,
167
+ HelixBeforeActivateEvent,
167
168
  HelixTourAskEvent,
168
169
  HelixNextEvent,
169
170
  HelixPreviousEvent,
@@ -1724,7 +1725,16 @@ toggles rather than replaces, and the arrows move without choosing. What
1724
1725
  this adds is the tags, and keeping the panel open between picks.
1725
1726
 
1726
1727
  A comma is therefore not available inside an option's value, which is the
1727
- listbox's contract and not this element's to change. */
1728
+ listbox's contract and not this element's to change.
1729
+
1730
+ **The list is told, and the field is not.** `aria-multiselectable` belongs
1731
+ to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
1732
+ ARIA 1.2; the list sets it on itself through `ElementInternals`, where a
1733
+ reader on the field hears it through `aria-controls`. This element wrote it
1734
+ onto its own `role="combobox"` input as well, which an audit reports as a
1735
+ property the role does not support and no spec here ever asserted: the one
1736
+ that covers this says in as many words that telling the list is what this
1737
+ element is responsible for. */
1728
1738
  multiple?: (HelixHeadlessCombobox["multiple"]) | undefined;
1729
1739
  /** Text shown while nothing has been chosen. */
1730
1740
  placeholder?: (HelixHeadlessCombobox["placeholder"]) | undefined;
@@ -2720,10 +2730,11 @@ export type HelixHeadlessDatePickerVueEvents = {
2720
2730
  };
2721
2731
 
2722
2732
  export type HelixHeadlessDescriptionListItemVueProps = {
2723
- /** What the value is, for the common case of plain text.
2733
+ /** What the value is called, for the common case of plain text.
2724
2734
 
2725
2735
  The fallback of the `label` slot, so slotted content replaces it rather than
2726
- appearing beside it. */
2736
+ appearing beside it. The value itself is the default slot: it is the half
2737
+ that varies and is often more than text. */
2727
2738
  label?: (HelixHeadlessDescriptionListItem["label"]) | undefined;
2728
2739
  };
2729
2740
 
@@ -3554,9 +3565,15 @@ export type HelixHeadlessHeatmapHelixResizeElementEvent =
3554
3565
  HelixHeadlessHeatmapElementEvent<HelixResizeEvent>;
3555
3566
 
3556
3567
  export type HelixHeadlessHeatmapVueProps = {
3557
- /** Shown when the table has no readings in it. */
3568
+ /** Shown when the table has no readings in it.
3569
+
3570
+ Never shown while the table cannot be read at all, which is a server render
3571
+ and the hydrating one after it: see `sourceKnown`. */
3558
3572
  "empty-text"?: (HelixHeadlessHeatmap["emptyText"]) | undefined;
3559
- /** Shown when the table has no readings in it. */
3573
+ /** Shown when the table has no readings in it.
3574
+
3575
+ Never shown while the table cannot be read at all, which is a server render
3576
+ and the hydrating one after it: see `sourceKnown`. */
3560
3577
  emptyText?: (HelixHeadlessHeatmap["emptyText"]) | undefined;
3561
3578
  /** Space between cells, in CSS pixels, for the same reason `min-cell` is a
3562
3579
  number. */
@@ -4445,8 +4462,16 @@ fits.
4445
4462
  a band is not a question of paint: a band is not placed against the trigger,
4446
4463
  so the controller has to be told not to measure, and that decision is here
4447
4464
  whatever the stylesheet says. Writing the width in both places would be one
4448
- number in two languages, drifting the first time either moved. This sets
4449
- `data-narrow` on the host and the stylesheet arranges itself off that. */
4465
+ number in two languages, drifting the first time either moved. This records
4466
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
4467
+
4468
+ **A custom state and never `data-narrow`, which is what it was.** The width
4469
+ is read in `connectedCallback`, so on a phone this is true on the very first
4470
+ update: an attribute written there is markup a consumer's server never sent,
4471
+ which React reports as a mismatch and answers by rebuilding the subtree. The
4472
+ narrow exception the server specs describe covers a mirror that can only
4473
+ become true long after hydration, and a viewport measured before the first
4474
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
4450
4475
  "full-below"?: (HelixHeadlessMegamenu["fullBelow"] | `${number}`) | undefined;
4451
4476
  /** The width, in pixels, under which a card becomes a band. Zero never does.
4452
4477
 
@@ -4461,8 +4486,16 @@ fits.
4461
4486
  a band is not a question of paint: a band is not placed against the trigger,
4462
4487
  so the controller has to be told not to measure, and that decision is here
4463
4488
  whatever the stylesheet says. Writing the width in both places would be one
4464
- number in two languages, drifting the first time either moved. This sets
4465
- `data-narrow` on the host and the stylesheet arranges itself off that. */
4489
+ number in two languages, drifting the first time either moved. This records
4490
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
4491
+
4492
+ **A custom state and never `data-narrow`, which is what it was.** The width
4493
+ is read in `connectedCallback`, so on a phone this is true on the very first
4494
+ update: an attribute written there is markup a consumer's server never sent,
4495
+ which React reports as a mismatch and answers by rebuilding the subtree. The
4496
+ narrow exception the server specs describe covers a mirror that can only
4497
+ become true long after hydration, and a viewport measured before the first
4498
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
4466
4499
  fullBelow?: (HelixHeadlessMegamenu["fullBelow"]) | undefined;
4467
4500
  /** The section's name, which names the default trigger and the panel. */
4468
4501
  label?: (HelixHeadlessMegamenu["label"]) | undefined;
@@ -5105,12 +5138,26 @@ page's markup should not take the page down over a comma. */
5105
5138
  /** Whether to leave the copy button off.
5106
5139
 
5107
5140
  Negative for the reason Code Block's is: a boolean attribute defaulting to
5108
- true could never be turned off from markup. */
5141
+ true could never be turned off from markup.
5142
+
5143
+ **It does not reflect, where Code Block's does**, and the difference is what
5144
+ the two sheets need. Code Block reserves the button's width with
5145
+ `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
5146
+ who set the property. This button is positioned out of the flow and takes no
5147
+ room, so nothing selects on it, and reflection exists so that a selector can
5148
+ reach a value. */
5109
5149
  "no-copy"?: (HelixHeadlessObjectInspector["noCopy"]) | undefined;
5110
5150
  /** Whether to leave the copy button off.
5111
5151
 
5112
5152
  Negative for the reason Code Block's is: a boolean attribute defaulting to
5113
- true could never be turned off from markup. */
5153
+ true could never be turned off from markup.
5154
+
5155
+ **It does not reflect, where Code Block's does**, and the difference is what
5156
+ the two sheets need. Code Block reserves the button's width with
5157
+ `:host(:not([no-copy]))`, so the attribute has to be there for a consumer
5158
+ who set the property. This button is positioned out of the flow and takes no
5159
+ room, so nothing selects on it, and reflection exists so that a selector can
5160
+ reach a value. */
5114
5161
  noCopy?: (HelixHeadlessObjectInspector["noCopy"]) | undefined;
5115
5162
  /** Whether to draw only the rows in view.
5116
5163
 
@@ -5247,9 +5294,9 @@ export type HelixHeadlessOutlineElementEvent<E = Event> = TypedEvent<
5247
5294
  HelixHeadlessOutline,
5248
5295
  E
5249
5296
  >;
5250
- /** `helix-before-activate` event type */
5251
- export type HelixHeadlessOutlineHelixBeforeActivateElementEvent =
5252
- HelixHeadlessOutlineElementEvent<HelixBeforeActivateEvent>;
5297
+ /** `helix-activate` event type */
5298
+ export type HelixHeadlessOutlineHelixActivateElementEvent =
5299
+ HelixHeadlessOutlineElementEvent<HelixActivateEvent>;
5253
5300
 
5254
5301
  export type HelixHeadlessOutlineVueProps = {
5255
5302
  /** How a click on one of these links travels to its section.
@@ -5284,8 +5331,8 @@ under the chrome rather than as it reaches the top of what can be seen. */
5284
5331
  };
5285
5332
 
5286
5333
  export type HelixHeadlessOutlineVueEvents = {
5287
- /** The section being read has changed, carrying its id as the value. Cancelable: refusing it takes the decision and nothing moves. */
5288
- "helix-before-activate": HelixHeadlessOutlineHelixBeforeActivateElementEvent;
5334
+ /** 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. */
5335
+ "helix-activate": HelixHeadlessOutlineHelixActivateElementEvent;
5289
5336
  };
5290
5337
 
5291
5338
  /** `HelixHeadlessPagination` component event */
@@ -8755,6 +8802,8 @@ export type CustomCssProperties = {
8755
8802
  "--color-picker-saturation"?: (string) | undefined;
8756
8803
  /** A color to paint: the current one on the sample, a preset's on each preset. */
8757
8804
  "--color-picker-swatch"?: (string) | undefined;
8805
+ /** 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. */
8806
+ "--data-table-cell-align"?: (string) | undefined;
8758
8807
  /** 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. */
8759
8808
  "--data-table-template"?: (string) | undefined;
8760
8809
  /** How many month columns are drawn, capped at two. `--date-picker-columns` overrides it. */