@fusion.dev/helix 0.41.1 → 0.43.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
@@ -612,13 +612,17 @@ are interpolations, so a larger number extrapolates rather than
612
612
  exaggerating, and a streak whose length has passed through zero is drawn
613
613
  as a bar across the whole frame.
614
614
 
615
- Read by the shapes made of many similar things, whether those are counted
616
- or continuous: `streaks`, whose lanes draw a speed, a length, a width, a
617
- spacing and a weight apiece; `particles`, whose motes draw a size, a
618
- brightness and a wander; and `rays` and `aurora`, whose fan, bundles and
619
- folds widen or even out. `braid`, `waves` and `flow` have a
620
- single subject and nothing to vary, and `threads` is even on purpose, so on
621
- those four this is inert. */
615
+ Read by four of the eleven shapes, the ones made of many similar things,
616
+ whether those are counted or continuous: `streaks`, whose lanes draw a
617
+ speed, a length, a width, a spacing and a weight apiece; `particles`, whose
618
+ motes draw a size, a brightness and a wander; and `rays` and `aurora`, whose
619
+ fan, bundles and folds widen or even out.
620
+
621
+ Inert on the other seven, for three different reasons. `braid`, `waves` and
622
+ `flow` have a single subject and nothing to vary. `threads` and `lattice`
623
+ are even on purpose, a scatter of strands and a regular structure each being
624
+ what it is because its members do not differ. `caustics` and `fracture` are
625
+ populations this does not reach, which is a gap rather than a refusal. */
622
626
  variance?: (HelixAura["variance"]) | undefined;
623
627
  /** Which form the light takes. Absent is `braid`.
624
628
 
@@ -982,7 +986,15 @@ export type HelixBreadcrumbsVueProps = {};
982
986
  export type HelixBreadcrumbsVueEvents = {};
983
987
 
984
988
  export type HelixButtonGroupVueProps = {
985
- /** Whether the buttons are one bar or a spaced row. */
989
+ /** Whether the buttons are one bar or a spaced row.
990
+
991
+ Joined by default: one control made of parts, sharing borders, reading as a
992
+ segmented bar.
993
+
994
+ `spaced` is the same set with air between them, for a row of related but
995
+ separate actions. The semantics and the joining are separate questions:
996
+ `role="group"` and a shared name are what make a set of buttons a set, and
997
+ `helix-flex` gives the spacing without the group. */
986
998
  variant?: (HelixButtonGroup["variant"]) | undefined;
987
999
  /** Accessible name for the group.
988
1000
 
@@ -1546,7 +1558,7 @@ case is the absent attribute, and the styles read it that way. */
1546
1558
  };
1547
1559
 
1548
1560
  export type HelixCarouselVueEvents = {
1549
- /** Fired when the slide in view changes, with its index. Cancelable: refusing it takes the decision and nothing moves. */
1561
+ /** Fired when the slide in view changes, with its index. Cancelable where the carousel is about to move: refusing a control or an indicator takes the decision and nothing moves. A drag has already moved the track, so that one announces after the fact and refusing it does nothing. See `handleScroll`. */
1550
1562
  "helix-select": HelixCarouselHelixSelectElementEvent;
1551
1563
  };
1552
1564
 
@@ -3386,9 +3398,36 @@ export type HelixDialogHelixBeforeOpenElementEvent =
3386
3398
  HelixDialogElementEvent<HelixBeforeOpenEvent>;
3387
3399
 
3388
3400
  export type HelixDialogVueProps = {
3389
- /** Whether the panel's contents run from the start or center on it. */
3401
+ /** Which way the panel's contents read.
3402
+
3403
+ One property for the whole panel rather than one per region. The regions are
3404
+ never mixed in practice: a dialog that asks a short question centers its
3405
+ mark, its title, its sentence and its buttons together, and a dialog holding
3406
+ a form runs all four from the start. Three properties would be three ways to
3407
+ write the same two arrangements, and a fourth way to get one of them wrong.
3408
+
3409
+ Unset is `start` and stays unset, so a reflected default cannot appear on a
3410
+ host whose server output never had it. */
3390
3411
  align?: (HelixDialog["align"]) | undefined;
3391
- /** How wide the panel is allowed to be. */
3412
+ /** How wide the panel is allowed to be.
3413
+
3414
+ Steps rather than a number, because a dialog's width is a fact about what is
3415
+ in it: a confirmation is narrow, a form is not, and picking pixels per
3416
+ dialog is how a product ends up with nine of them. `full` takes the viewport
3417
+ less the same inset every step already stops short by, so a takeover is one
3418
+ more rung and not a second property.
3419
+
3420
+ Unset is `md`, read as `:host(:not([size]))` beside `:host([size="md"])`
3421
+ rather than assigned here, for the reason `Drawer.placement` gives: this
3422
+ reflects, and a default would put `size="md"` into markup no consumer wrote.
3423
+
3424
+ `size` is right despite the rule that controls have no size, because that
3425
+ rule's own test is whether two of them sitting together could legitimately
3426
+ differ, and it is answering "a ragged row is unwritable". Two dialogs never
3427
+ sit together. One is on screen at a time, in the top layer, and it is the
3428
+ region rather than a control in one, which is the same reason `Avatar` and
3429
+ `Spinner` keep theirs. Not `appearance`, which says how a thing reads
3430
+ rather than how wide it is. */
3392
3431
  size?: (HelixDialog["size"]) | undefined;
3393
3432
  /** Whether the element is open.
3394
3433
 
@@ -6194,15 +6233,27 @@ Written by the listbox. */
6194
6233
 
6195
6234
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
6196
6235
  live state that does not reflect, and those are two different facts. This
6197
- element has one `selected` doing both jobs, so what is captured here is what
6198
- the markup said at upgrade, before anything could overwrite it: read the
6199
- attribute later and the listbox's own writes answer instead.
6200
-
6201
- **The deeper half is 302 and is not this.** State reflecting under the
6202
- declaration's name is the fault `TreeItem` already avoids by mirroring to
6203
- `data-selected`, and four families here still write `selected` back into a
6204
- consumer's markup. Splitting them means moving what every stylesheet selects
6205
- on, which is a change of its own rather than a property being added. */
6236
+ element has one `selected` doing both jobs, so the declaration is the
6237
+ attribute and the state is the property.
6238
+
6239
+ **The attribute, read when it is asked for, and never a snapshot taken in
6240
+ the constructor.** A field initializer runs there, and an element the HTML
6241
+ parser created has none of its attributes yet at that moment: measured on
6242
+ this element, on `Radio` and on `Toggle`, `<helix-option value="a"
6243
+ selected>` reported `defaultSelected` as `false` both from parsed markup
6244
+ and from `createElement` followed by `setAttribute`, which is every way a
6245
+ consumer writes one. The snapshot could only ever be true for an element
6246
+ already in the document when `customElements.define` ran.
6247
+
6248
+ Nothing overwrites it either, which is what makes reading it late correct
6249
+ rather than merely later: `selected` does not reflect, for the reason
6250
+ `willUpdate` records, so the listbox's writes never reach the attribute and
6251
+ what it says is what the markup said.
6252
+
6253
+ **The deeper half is not this.** State reflecting under the declaration's
6254
+ name is the fault `TreeItem` avoids by mirroring to `data-selected`.
6255
+ Splitting them means moving what every stylesheet selects on, which is a
6256
+ change of its own rather than a property being added. */
6206
6257
  defaultSelected?: (HelixOption["defaultSelected"]) | undefined;
6207
6258
  };
6208
6259
 
@@ -6956,9 +7007,22 @@ Written by the group. */
6956
7007
 
6957
7008
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
6958
7009
  live state that does not reflect, and those are two different facts. This
6959
- element has one `selected` doing both jobs, so what is captured here is what
6960
- the markup said at upgrade, before anything could overwrite it: read the
6961
- attribute later and the listbox's own writes answer instead.
7010
+ element has one `selected` doing both jobs, so the declaration is the
7011
+ attribute and the state is the property.
7012
+
7013
+ **The attribute, read when it is asked for, and never a snapshot taken in
7014
+ the constructor.** A field initializer runs there, and an element the HTML
7015
+ parser created has none of its attributes yet at that moment: measured on
7016
+ this element, on `Option` and on `Toggle`, `<helix-radio value="a"
7017
+ selected>` reported `defaultSelected` as `false` both from parsed markup
7018
+ and from `createElement` followed by `setAttribute`, which is every way a
7019
+ consumer writes one. The snapshot could only ever be true for an element
7020
+ already in the document when `customElements.define` ran.
7021
+
7022
+ Nothing overwrites it either, which is what makes reading it late correct
7023
+ rather than merely later: `selected` does not reflect, for the reason
7024
+ `willUpdate` records, so the group's writes never reach the attribute and
7025
+ what it says is what the markup said.
6962
7026
 
6963
7027
  **The deeper half is not this.** State reflecting under the declaration's
6964
7028
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -9351,9 +9415,22 @@ export type HelixToggleVueProps = {
9351
9415
 
9352
9416
  `<option selected>` reflects to `defaultSelected` and `option.selected` is
9353
9417
  live state that does not reflect, and those are two different facts. This
9354
- element has one `selected` doing both jobs, so what is captured here is what
9355
- the markup said at upgrade, before anything could overwrite it: read the
9356
- attribute later and the listbox's own writes answer instead.
9418
+ element has one `selected` doing both jobs, so the declaration is the
9419
+ attribute and the state is the property.
9420
+
9421
+ **The attribute, read when it is asked for, and never a snapshot taken in
9422
+ the constructor.** A field initializer runs there, and an element the HTML
9423
+ parser created has none of its attributes yet at that moment: measured on
9424
+ this element, on `Option` and on `Radio`, `<helix-toggle value="light"
9425
+ selected>` reported `defaultSelected` as `false` both from parsed markup
9426
+ and from `createElement` followed by `setAttribute`, which is every way a
9427
+ consumer writes one. The snapshot could only ever be true for an element
9428
+ already in the document when `customElements.define` ran.
9429
+
9430
+ Nothing overwrites it either, which is what makes reading it late correct
9431
+ rather than merely later: `selected` does not reflect, for the reason
9432
+ `willUpdate` records, so the group's writes never reach the attribute and
9433
+ what it says is what the markup said.
9357
9434
 
9358
9435
  **The deeper half is not this.** State reflecting under the declaration's
9359
9436
  name is the fault `TreeItem` avoids by mirroring to `data-selected`.
@@ -9993,7 +10070,35 @@ export type HelixVideoHelixPreviousElementEvent =
9993
10070
  HelixVideoElementEvent<HelixPreviousEvent>;
9994
10071
 
9995
10072
  export type HelixVideoVueProps = {
9996
- /** Whether the bar floats on the picture or sits on its own ground. */
10073
+ /** How the control bar sits on the picture.
10074
+
10075
+ `separation` and not `emphasis`: all three states say what the bar sits on,
10076
+ which is where it separates from the picture, rather than how loud it is.
10077
+
10078
+ Absent is the default and is what a player looks like, and what the
10079
+ platform's own controls do: they float on a gradient that fades up into the
10080
+ picture, dark enough to read them against a bright frame and gone entirely
10081
+ a little higher up. The picture runs edge to edge behind them. It has no
10082
+ name because it is the resting treatment.
10083
+
10084
+ `filled` gives the controls a bar of their own, which is what a video
10085
+ embedded in a document usually wants, where the player is a component on a
10086
+ page rather than the page itself. It stays put rather than fading, because
10087
+ a bar that is part of the frame would leave a strip of the well behind it.
10088
+
10089
+ `plain` is neither: the controls sit straight on the picture with nothing
10090
+ behind them. For a consumer who knows their footage, or who is putting
10091
+ their own ground there.
10092
+
10093
+ A presentation property, so it lives on this tier. The headless element renders
10094
+ the same bar for all three.
10095
+
10096
+ **Optional rather than defaulted, which is not a style preference.** A
10097
+ reflecting property with a default writes its attribute onto every host the
10098
+ moment the element upgrades, including the ones a consumer rendered and did
10099
+ not touch, and React reads that as a hydration mismatch. The absent
10100
+ attribute *is* the shadow, which the stylesheet reads as the base rule, so
10101
+ only the departure has to be named. */
9997
10102
  separation?: (HelixVideo["separation"]) | undefined;
9998
10103
  /** Whether it starts on its own, which a browser only allows while silent.
9999
10104
 
@@ -11090,11 +11195,11 @@ export type CustomCssProperties = {
11090
11195
  "--slider-track-size"?: (string) | undefined;
11091
11196
  /** The value as a fraction of the range, 0 to 1. */
11092
11197
  "--slider-fraction"?: (string) | undefined;
11093
- /** Where the filled span starts, as a percentage of the track. */
11198
+ /** Where a range's filled span starts, as a fraction of the track, 0 to 1. */
11094
11199
  "--slider-from"?: (string) | undefined;
11095
11200
  /** Where one marker sits, as a percentage of the track. */
11096
11201
  "--slider-marker-at"?: (string) | undefined;
11097
- /** Where the filled span ends, as a percentage of the track. */
11202
+ /** Where a range's filled span ends, as a fraction of the track, 0 to 1. */
11098
11203
  "--slider-to"?: (string) | undefined;
11099
11204
  /** How much of the line's color the wash takes where it meets the line. */
11100
11205
  "--sparkline-area-opacity"?: (string) | undefined;
@@ -11494,7 +11599,7 @@ export interface WcToolkitVueGlobalComponents {
11494
11599
  HelixDateInputVueProps,
11495
11600
  HelixDateInputVueEvents
11496
11601
  >;
11497
- /** Six week rows always, so the grid keeps one height and a month change does not move whatever sits beneath it. The column track is wider than the day, and the day is centered in it. The difference is the space between days, which belongs to the track rather than to a 'gap', so a range can paint across the whole track and stay continuous. Days from the neighboring months stay in place and stay selectable, marked quieter rather than hidden, so the first and last weeks are whole and the grid reads as a continuous run of dates. */
11602
+ /** Six week rows always, so the grid keeps one height and a month change does not move whatever sits beneath it. The column track is wider than the day, and the day is centered in it. The difference is the space between days, which belongs to the track rather than to a 'gap', so a range can paint across the whole track and stay continuous. Days from the neighboring months stay in place, marked quieter rather than hidden, so the first and last weeks are whole rows rather than ragged ones. They are filler and take no click, which the pointer says: no hover, and the cursor a box that does nothing has. At 'months="2"' the same date is a trailing cell in one grid and a real one in the next, so a filler day that could be chosen would put one answer on the page twice. */
11498
11603
  "helix-date-picker": DefineCustomElement<
11499
11604
  HelixDatePicker,
11500
11605
  HelixDatePickerVueProps,