@fusion.dev/helix 0.36.0 → 0.38.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
@@ -160,7 +160,7 @@ import type {
160
160
  HelixResizeEvent,
161
161
  HelixShortcutEvent,
162
162
  HelixReadEvent,
163
- HelixBeforeActivateEvent,
163
+ HelixActivateEvent,
164
164
  HelixCompleteEvent,
165
165
  HelixConsoleEvent,
166
166
  HelixBeforeEditEvent,
@@ -169,7 +169,7 @@ import type {
169
169
  HelixCaretEvent,
170
170
  HelixBeforeCollapseEvent,
171
171
  HelixBeforeResizeEvent,
172
- HelixActivateEvent,
172
+ HelixBeforeActivateEvent,
173
173
  HelixTourAskEvent,
174
174
  HelixNextEvent,
175
175
  HelixPreviousEvent,
@@ -2326,7 +2326,16 @@ toggles rather than replaces, and the arrows move without choosing. What
2326
2326
  this adds is the tags, and keeping the panel open between picks.
2327
2327
 
2328
2328
  A comma is therefore not available inside an option's value, which is the
2329
- listbox's contract and not this element's to change. */
2329
+ listbox's contract and not this element's to change.
2330
+
2331
+ **The list is told, and the field is not.** `aria-multiselectable` belongs
2332
+ to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
2333
+ ARIA 1.2; the list sets it on itself through `ElementInternals`, where a
2334
+ reader on the field hears it through `aria-controls`. This element wrote it
2335
+ onto its own `role="combobox"` input as well, which an audit reports as a
2336
+ property the role does not support and no spec here ever asserted: the one
2337
+ that covers this says in as many words that telling the list is what this
2338
+ element is responsible for. */
2330
2339
  multiple?: (HelixCombobox["multiple"]) | undefined;
2331
2340
  /** Text shown while nothing has been chosen. */
2332
2341
  placeholder?: (HelixCombobox["placeholder"]) | undefined;
@@ -3552,12 +3561,12 @@ export type HelixDonutChartVueEvents = {};
3552
3561
 
3553
3562
  /** `HelixDrawer` component event */
3554
3563
  export type HelixDrawerElementEvent<E = Event> = TypedEvent<HelixDrawer, E>;
3555
- /** `helix-before-open` event type */
3556
- export type HelixDrawerHelixBeforeOpenElementEvent =
3557
- HelixDrawerElementEvent<HelixBeforeOpenEvent>;
3558
3564
  /** `helix-before-close` event type */
3559
3565
  export type HelixDrawerHelixBeforeCloseElementEvent =
3560
3566
  HelixDrawerElementEvent<HelixBeforeCloseEvent>;
3567
+ /** `helix-before-open` event type */
3568
+ export type HelixDrawerHelixBeforeOpenElementEvent =
3569
+ HelixDrawerElementEvent<HelixBeforeOpenEvent>;
3561
3570
 
3562
3571
  export type HelixDrawerVueProps = {
3563
3572
  /** Whether the panel is glass rather than opaque.
@@ -3653,12 +3662,12 @@ survives to it and a consumer reading one back gets what they wrote. */
3653
3662
  };
3654
3663
 
3655
3664
  export type HelixDrawerVueEvents = {
3656
- /** Fired before the drawer opens or closes. Cancelable: refusing it takes the decision and nothing moves. */
3657
- "helix-before-open": HelixDrawerHelixBeforeOpenElementEvent;
3658
3665
  /** Relayed, because the platform's own does not escape. */
3659
3666
  close: HelixDrawerElementEvent;
3660
3667
  /** Fired before the panel closes, and cancelable. */
3661
3668
  "helix-before-close": HelixDrawerHelixBeforeCloseElementEvent;
3669
+ /** Fired before the panel opens. Cancelable: refusing it takes the decision and nothing moves. */
3670
+ "helix-before-open": HelixDrawerHelixBeforeOpenElementEvent;
3662
3671
  /** Says the state moved, carrying `newState` and `oldState`. */
3663
3672
  toggle: HelixDrawerElementEvent;
3664
3673
  };
@@ -4700,12 +4709,7 @@ HTML writes as one costs what an attribute always costs here: nothing
4700
4709
  warns. `<helix-input readonly>` is what anybody who has written HTML types;
4701
4710
  against `read-only` it parses to no property at all, and the field stays
4702
4711
  editable with no error anywhere. Measured on the dash-cased form, `readOnly`
4703
- came back `false`.
4704
-
4705
- A part was renamed for
4706
- the same kind of reason: there is no `helix-v` tag, so no consumer is
4707
- holding the old spelling, and this is free today and a deprecation after
4708
- the first release. */
4712
+ came back `false`. */
4709
4713
  readonly?: (HelixInput["readOnly"]) | undefined;
4710
4714
  /** Whether the field refuses input while still submitting its value.
4711
4715
 
@@ -4715,12 +4719,7 @@ HTML writes as one costs what an attribute always costs here: nothing
4715
4719
  warns. `<helix-input readonly>` is what anybody who has written HTML types;
4716
4720
  against `read-only` it parses to no property at all, and the field stays
4717
4721
  editable with no error anywhere. Measured on the dash-cased form, `readOnly`
4718
- came back `false`.
4719
-
4720
- A part was renamed for
4721
- the same kind of reason: there is no `helix-v` tag, so no consumer is
4722
- holding the old spelling, and this is free today and a deprecation after
4723
- the first release. */
4722
+ came back `false`. */
4724
4723
  readOnly?: (HelixInput["readOnly"]) | undefined;
4725
4724
  /** Whether a password field offers a toggle that shows what was typed.
4726
4725
 
@@ -5312,8 +5311,16 @@ fits.
5312
5311
  a band is not a question of paint: a band is not placed against the trigger,
5313
5312
  so the controller has to be told not to measure, and that decision is here
5314
5313
  whatever the stylesheet says. Writing the width in both places would be one
5315
- number in two languages, drifting the first time either moved. This sets
5316
- `data-narrow` on the host and the stylesheet arranges itself off that. */
5314
+ number in two languages, drifting the first time either moved. This records
5315
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
5316
+
5317
+ **A custom state and never `data-narrow`, which is what it was.** The width
5318
+ is read in `connectedCallback`, so on a phone this is true on the very first
5319
+ update: an attribute written there is markup a consumer's server never sent,
5320
+ which React reports as a mismatch and answers by rebuilding the subtree. The
5321
+ narrow exception the server specs describe covers a mirror that can only
5322
+ become true long after hydration, and a viewport measured before the first
5323
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
5317
5324
  "full-below"?: (HelixMegamenu["fullBelow"] | `${number}`) | undefined;
5318
5325
  /** The width, in pixels, under which a card becomes a band. Zero never does.
5319
5326
 
@@ -5328,8 +5335,16 @@ fits.
5328
5335
  a band is not a question of paint: a band is not placed against the trigger,
5329
5336
  so the controller has to be told not to measure, and that decision is here
5330
5337
  whatever the stylesheet says. Writing the width in both places would be one
5331
- number in two languages, drifting the first time either moved. This sets
5332
- `data-narrow` on the host and the stylesheet arranges itself off that. */
5338
+ number in two languages, drifting the first time either moved. This records
5339
+ `:state(narrow)` on the host and the stylesheet arranges itself off that.
5340
+
5341
+ **A custom state and never `data-narrow`, which is what it was.** The width
5342
+ is read in `connectedCallback`, so on a phone this is true on the very first
5343
+ update: an attribute written there is markup a consumer's server never sent,
5344
+ which React reports as a mismatch and answers by rebuilding the subtree. The
5345
+ narrow exception the server specs describe covers a mirror that can only
5346
+ become true long after hydration, and a viewport measured before the first
5347
+ paint is the opposite case. See `MixinControllerOpen` on `open`. */
5333
5348
  fullBelow?: (HelixMegamenu["fullBelow"]) | undefined;
5334
5349
  /** The section's name, which names the default trigger and the panel. */
5335
5350
  label?: (HelixMegamenu["label"]) | undefined;
@@ -6148,9 +6163,9 @@ export type HelixOrbVueEvents = {};
6148
6163
 
6149
6164
  /** `HelixOutline` component event */
6150
6165
  export type HelixOutlineElementEvent<E = Event> = TypedEvent<HelixOutline, E>;
6151
- /** `helix-before-activate` event type */
6152
- export type HelixOutlineHelixBeforeActivateElementEvent =
6153
- HelixOutlineElementEvent<HelixBeforeActivateEvent>;
6166
+ /** `helix-activate` event type */
6167
+ export type HelixOutlineHelixActivateElementEvent =
6168
+ HelixOutlineElementEvent<HelixActivateEvent>;
6154
6169
 
6155
6170
  export type HelixOutlineVueProps = {
6156
6171
  /** How a click on one of these links travels to its section.
@@ -6185,8 +6200,8 @@ under the chrome rather than as it reaches the top of what can be seen. */
6185
6200
  };
6186
6201
 
6187
6202
  export type HelixOutlineVueEvents = {
6188
- /** The section being read has changed, carrying its id as the value. Cancelable: refusing it takes the decision and nothing moves. */
6189
- "helix-before-activate": HelixOutlineHelixBeforeActivateElementEvent;
6203
+ /** 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. */
6204
+ "helix-activate": HelixOutlineHelixActivateElementEvent;
6190
6205
  };
6191
6206
 
6192
6207
  /** `HelixPagination` component event */
@@ -6899,7 +6914,7 @@ either, and both are only a choice of drawing. A scale whose marks are
6899
6914
  `Radio.Group`, whose options already carry a value and a name each.
6900
6915
 
6901
6916
  **Undefaulted, because it reflects.** A default of `marks` writes
6902
- `appearance="marks"` onto every server-rendered rating, which React holds no
6917
+ `variant="marks"` onto every server-rendered rating, which React holds no
6903
6918
  prop for and reports as a hydration mismatch. The stylesheet names only
6904
6919
  `dots`, so an unset one draws marks anyway. */
6905
6920
  variant?: (HelixRating["variant"]) | undefined;
@@ -10397,7 +10412,7 @@ export type CustomCssProperties = {
10397
10412
  "--color-input-shadow"?: (string) | undefined;
10398
10413
  /** Corner radius of that block. */
10399
10414
  "--color-input-swatch-radius"?: (string) | undefined;
10400
- /** Edge length of the block in `appearance="swatch"`. */
10415
+ /** Edge length of the block in `variant="swatch"`. */
10401
10416
  "--color-input-swatch-size"?: (string) | undefined;
10402
10417
  /** The chosen color, to paint over the transparency check. */
10403
10418
  "--color-input-swatch"?: (string) | undefined;
@@ -10425,7 +10440,7 @@ export type CustomCssProperties = {
10425
10440
  "--combobox-border-color"?: (string) | undefined;
10426
10441
  /** 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. */
10427
10442
  "--combobox-border-width"?: (string) | undefined;
10428
- /** Smallest the text field shrinks to */
10443
+ /** Smallest the text field shrinks to once tags share its line. */
10429
10444
  "--combobox-control-size"?: (string) | undefined;
10430
10445
  /** Width of the panel. Follows the field by default. */
10431
10446
  "--combobox-panel-size"?: (string) | undefined;
@@ -10521,7 +10536,7 @@ export type CustomCssProperties = {
10521
10536
  "--donut-chart-track-color"?: (string) | undefined;
10522
10537
  /** How thick the ring is drawn, derived from `hole`. */
10523
10538
  "--donut-chart-stroke"?: (string) | undefined;
10524
- /** Filter applied behind a `material="glass"` drawer. Follows the theme's material policy; set it to override the strength on one drawer. */
10539
+ /** Filter applied behind a `frosted` or `glass` drawer. Follows the theme's material policy; set it to override the strength on one drawer. */
10525
10540
  "--drawer-backdrop"?: (string) | undefined;
10526
10541
  /** Surface behind the panel. */
10527
10542
  "--drawer-background-color"?: (string) | undefined;
@@ -10531,7 +10546,7 @@ export type CustomCssProperties = {
10531
10546
  "--drawer-border-width"?: (string) | undefined;
10532
10547
  /** Padding inside the panel. */
10533
10548
  "--drawer-padding"?: (string) | undefined;
10534
- /** Padding above the content, which clears the close control. */
10549
+ /** 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. */
10535
10550
  "--drawer-padding-block-start"?: (string) | undefined;
10536
10551
  /** Corner radius on the edges that face the page. */
10537
10552
  "--drawer-radius"?: (string) | undefined;
@@ -10689,7 +10704,7 @@ export type CustomCssProperties = {
10689
10704
  "--loader-size"?: (string) | undefined;
10690
10705
  /** Color of the circle behind it. */
10691
10706
  "--loader-track-color"?: (string) | undefined;
10692
- /** A filter behind the panel, for glass. */
10707
+ /** 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. */
10693
10708
  "--megamenu-backdrop"?: (string) | undefined;
10694
10709
  /** The panel's own fill. */
10695
10710
  "--megamenu-background-color"?: (string) | undefined;
@@ -11125,7 +11140,7 @@ export type CustomCssProperties = {
11125
11140
  "--toolbar-gap"?: (string) | undefined;
11126
11141
  /** Size of the point at the bubble's edge. */
11127
11142
  "--tooltip-arrow-size"?: (string) | undefined;
11128
- /** Blur behind a `glass` bubble. */
11143
+ /** Blur behind a `frosted` or `glass` bubble. */
11129
11144
  "--tooltip-backdrop"?: (string) | undefined;
11130
11145
  /** Fill of the bubble. */
11131
11146
  "--tooltip-background-color"?: (string) | undefined;
@@ -11537,7 +11552,7 @@ export interface WcToolkitVueGlobalComponents {
11537
11552
  HelixImageVueProps,
11538
11553
  HelixImageVueEvents
11539
11554
  >;
11540
- /** The frame is the field rather than the input, so anything slotted at either end sits inside the same box as the text and the focus ring is drawn once, around the whole control, instead of around a smaller box within it. The input itself is the native one, stripped rather than replaced, so the caret, the selection, the autofill, and the keyboard a phone chooses are all the platform's. Height comes from the region, like every other control: 'data-density' on whatever holds it, not a 'size' here. Invalid styling waits for ':user-invalid', because a field is not wrong before anyone has filled it in. */
11555
+ /** The frame is the field rather than the input, so anything slotted at either end sits inside the same box as the text and the focus ring is drawn once, around the whole control, instead of around a smaller box within it. The input itself is the native one, stripped rather than replaced, so the caret, the selection, the autofill, and the keyboard a phone chooses are all the platform's. Height comes from the region, like every other control: 'data-density' on whatever holds it, not a 'size' here. Invalid styling waits for the 'invalid' custom state, because a field is not wrong before anyone has filled it in and ':user-invalid' cannot answer that here: it tracks the control the reader is in, which is inside this shadow root, so it never reaches the host the rule selects on. */
11541
11556
  "helix-input": DefineCustomElement<
11542
11557
  HelixInput,
11543
11558
  HelixInputVueProps,
@@ -11663,7 +11678,7 @@ export interface WcToolkitVueGlobalComponents {
11663
11678
  HelixOrbVueProps,
11664
11679
  HelixOrbVueEvents
11665
11680
  >;
11666
- /** A rule down the leading edge with the current section lit along it, which is the shape a table of contents has taken since printed marginalia: the line says the list is one thing, and the lit segment says where in it you are. Nesting is the consumer's, expressed as 'data-level' on a link. An outline that read heading levels itself would have to look at the document, and the document is not always where the headings are. */
11681
+ /** A rule down the leading edge with the current section lit along it, which is the shape a table of contents has taken since printed marginalia: the line says the list is one thing, and the lit segment says where in it you are. Nesting is the consumer's, expressed as 'data-level' on a link, and the levels are the heading levels: '2' through '6' each take one more step of '--outline-indent', and a link with no 'data-level' is the top one. An outline that read heading levels itself would have to look at the document, and the document is not always where the headings are. */
11667
11682
  "helix-outline": DefineCustomElement<
11668
11683
  HelixOutline,
11669
11684
  HelixOutlineVueProps,