@fusion.dev/helix 0.157.0 → 0.159.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
@@ -244,9 +244,9 @@ import type {
244
244
  HelixBeforeResizeEvent,
245
245
  HelixCollapseEvent,
246
246
  HelixResizedEvent,
247
+ HelixLoadEvent,
247
248
  HelixTourAskEvent,
248
249
  HelixTourStatusEvent,
249
- HelixLoadEvent,
250
250
  HelixEndEvent,
251
251
  HelixNextEvent,
252
252
  HelixPreviousEvent,
@@ -565,6 +565,15 @@ export type HelixAppHeaderElementEvent<E = Event> = TypedEvent<
565
565
  HelixAppHeader,
566
566
  E
567
567
  >;
568
+ /** `toggle` event type */
569
+ export type HelixAppHeaderToggleElementEvent =
570
+ HelixAppHeaderElementEvent<ToggleEvent>;
571
+ /** `helix-before-close` event type */
572
+ export type HelixAppHeaderHelixBeforeCloseElementEvent =
573
+ HelixAppHeaderElementEvent<HelixBeforeCloseEvent>;
574
+ /** `helix-before-open` event type */
575
+ export type HelixAppHeaderHelixBeforeOpenElementEvent =
576
+ HelixAppHeaderElementEvent<HelixBeforeOpenEvent>;
568
577
  /** `helix-scrolled` event type */
569
578
  export type HelixAppHeaderHelixScrolledElementEvent =
570
579
  HelixAppHeaderElementEvent<HelixScrolledEvent>;
@@ -622,6 +631,23 @@ It pairs with `material`: a bar that does not stick is only ever over the
622
631
  top of the page, so `glass` and `transparent` have nothing to be
623
632
  translucent against and the `scrolled` state never lands. */
624
633
  sticky?: (HelixAppHeader["sticky"]) | undefined;
634
+ /** Whether the element starts open. Ignored once `open` is written. */
635
+ "default-open"?: (HelixAppHeader["defaultOpen"]) | undefined;
636
+ /** Whether the element starts open. Ignored once `open` is written. */
637
+ defaultOpen?: (HelixAppHeader["defaultOpen"]) | undefined;
638
+ /** Whether the element is open.
639
+
640
+ One property, not two, so `dialog.open` answers the question anyone
641
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
642
+ same statement in markup.
643
+
644
+ **Not reflected, and that is required rather than tidy.** Reflection
645
+ writes the resolved state back as an attribute, so an element that opened
646
+ itself would put `open` on its own host: cloned, serialized for
647
+ hydration, or diffed by a framework, it comes back holding whatever the
648
+ last reader did rather than what the author wrote. `:state(open)` carries
649
+ the resolved state for stylesheets, which is what the mirror is for. */
650
+ open?: (HelixAppHeader["open"]) | undefined;
625
651
  /** Where the middle region sits in the bar.
626
652
 
627
653
  Centered by default, which reads as the site's spine when the navigation is
@@ -669,9 +695,27 @@ page scrolls up. */
669
695
  /** The id of the element whose scrolling lifts the bar, for an app shell that
670
696
  scrolls a container instead of the window. Unset is the window. */
671
697
  scroller?: (HelixAppHeader["scroller"]) | undefined;
698
+ /** Where the toggle that opens a folded middle region sits: at the end of the
699
+ bar, after the trailing content, or with `start`, before the leading
700
+ content.
701
+
702
+ Optional, so the resting bar writes no attribute onto the host. */
703
+ "toggle-placement"?: (HelixAppHeader["togglePlacement"]) | undefined;
704
+ /** Where the toggle that opens a folded middle region sits: at the end of the
705
+ bar, after the trailing content, or with `start`, before the leading
706
+ content.
707
+
708
+ Optional, so the resting bar writes no attribute onto the host. */
709
+ togglePlacement?: (HelixAppHeader["togglePlacement"]) | undefined;
672
710
  };
673
711
 
674
712
  export type HelixAppHeaderVueEvents = {
713
+ /** The folded region opened or closed. The event carries `newState` and `oldState`. */
714
+ toggle: HelixAppHeaderToggleElementEvent;
715
+ /** The folded region is about to close. Cancelable: cancel it to keep it open. */
716
+ "helix-before-close": HelixAppHeaderHelixBeforeCloseElementEvent;
717
+ /** The folded region is about to open. Cancelable: cancel it to keep it closed. */
718
+ "helix-before-open": HelixAppHeaderHelixBeforeOpenElementEvent;
675
719
  /** Fired when the page crosses the scroll threshold, with the new state. A custom state cannot be observed the way an attribute can, so listen for this event to follow it. The event uses the header's own threshold and hysteresis, so you do not need a second scroll listener. */
676
720
  "helix-scrolled": HelixAppHeaderHelixScrolledElementEvent;
677
721
  };
@@ -1642,6 +1686,14 @@ separate actions. The semantics and the joining are separate questions:
1642
1686
  `role="group"` and a shared name are what make a set of buttons a set, and
1643
1687
  `helix-flex` gives the spacing without the group. */
1644
1688
  variant?: (HelixButtonGroup["variant"]) | undefined;
1689
+ /** Keeps at least one button pressed once one is, as React Aria's
1690
+ `disallowEmptySelection`: a press that would leave none pressed is
1691
+ refused. */
1692
+ "disallow-empty-selection"?: (HelixButtonGroup["disallowEmptySelection"]) | undefined;
1693
+ /** Keeps at least one button pressed once one is, as React Aria's
1694
+ `disallowEmptySelection`: a press that would leave none pressed is
1695
+ refused. */
1696
+ disallowEmptySelection?: (HelixButtonGroup["disallowEmptySelection"]) | undefined;
1645
1697
  /** The group's name, read by screen readers.
1646
1698
 
1647
1699
  On the host through internals, so an author's `aria-label` still overrides
@@ -5211,6 +5263,13 @@ how many are left, written in the locale, and each language writes the
5211
5263
  forms it has: `{count, plural, one {# polecenie} few {# polecenia} many
5212
5264
  {# poleceń} other {# polecenia}}`. */
5213
5265
  resultsLabel?: (HelixCommand["resultsLabel"]) | undefined;
5266
+ /** Whether a command is kept by the filter: a function given the command's
5267
+ words and the filter, trimmed, that returns `true` to keep it showing, as
5268
+ React Aria's `Autocomplete` takes `filter`. See Listbox's `filterMatch`.
5269
+
5270
+ Absent, a command is kept where its words hold the filter, in any case. A
5271
+ property only, there being no way to write a function in markup. */
5272
+ filterMatch?: (HelixCommand["filterMatch"]) | undefined;
5214
5273
  /** The commands as data, for a palette too long to draw whole: each a value,
5215
5274
  which is also its words, or a record with a `value`, a `label` and
5216
5275
  `disabled`. Handed to the list, which draws only the commands in sight and
@@ -10237,7 +10296,9 @@ Not reflected, as a state never is. `row-current` is the part a
10237
10296
  stylesheet draws it from. */
10238
10297
  current?: (HelixListItem["current"]) | undefined;
10239
10298
  /** Takes the row out of reach in a list with `selection-mode`: the arrow keys
10240
- pass over it and it cannot be selected or acted on. */
10299
+ pass over it and it cannot be selected or acted on. In a list with
10300
+ `disabled-behavior="selection"`, it cannot be selected and is reached and
10301
+ acted on as any row is. */
10241
10302
  disabled?: (HelixListItem["disabled"]) | undefined;
10242
10303
  /** The URL the row links to. Leave it empty for a row that is not a link.
10243
10304
 
@@ -10273,6 +10334,10 @@ being moved, or the one the drop indicator is beside. Unset otherwise. */
10273
10334
  Written by the list from its own `value`, and unset where nothing can be
10274
10335
  selected, which keeps `aria-selected` off a list that does not select. */
10275
10336
  selected?: (HelixListItem["selected"]) | undefined;
10337
+ /** Whether `disabled` takes the row out of selection alone, written by a list
10338
+ with `disabled-behavior="selection"`. No attribute: it is coordination
10339
+ between elements, as `focusable` is. */
10340
+ selectionOnly?: (HelixListItem["selectionOnly"]) | undefined;
10276
10341
  };
10277
10342
 
10278
10343
  export type HelixListItemVueEvents = {
@@ -10322,6 +10387,20 @@ refused, in a `reorderable` list. */
10322
10387
  /** What screen readers hear when a held row is put back, or a move is
10323
10388
  refused, in a `reorderable` list. */
10324
10389
  canceledLabel?: (HelixList["canceledLabel"]) | undefined;
10390
+ /** What `disabled` takes from a row, in a list that selects: `all`, which
10391
+ passes over the row, or `selection`, which keeps the row out of the
10392
+ selection and lets the keys reach it and Enter or a press act on it, as
10393
+ React Aria's GridList takes `disabledBehavior`.
10394
+
10395
+ Absent is `all`. */
10396
+ "disabled-behavior"?: (HelixList["disabledBehavior"]) | undefined;
10397
+ /** What `disabled` takes from a row, in a list that selects: `all`, which
10398
+ passes over the row, or `selection`, which keeps the row out of the
10399
+ selection and lets the keys reach it and Enter or a press act on it, as
10400
+ React Aria's GridList takes `disabledBehavior`.
10401
+
10402
+ Absent is `all`. */
10403
+ disabledBehavior?: (HelixList["disabledBehavior"]) | undefined;
10325
10404
  /** What screen readers hear when a row is dropped, in a `reorderable` list. */
10326
10405
  "dropped-label"?: (HelixList["droppedLabel"]) | undefined;
10327
10406
  /** What screen readers hear when a row is dropped, in a `reorderable` list. */
@@ -10706,6 +10785,14 @@ imperatively later, and nothing is hydrating by then.
10706
10785
 
10707
10786
  Here rather than on each control. */
10708
10787
  name?: (HelixListbox["name"]) | undefined;
10788
+ /** Whether an option is kept by the filter: a function given the option's
10789
+ words and the filter, trimmed, that returns `true` to keep it showing, as
10790
+ React Aria's `Autocomplete` takes `filter`. For matching that ignores
10791
+ accents, matches the start of each word, or matches out of order.
10792
+
10793
+ Absent, an option is kept where its words hold the filter, in any case. A
10794
+ property only, there being no way to write a function in markup. */
10795
+ filterMatch?: (HelixListbox["filterMatch"]) | undefined;
10709
10796
  /** The options as data, for a list too long to draw whole: each a value,
10710
10797
  which is also its words, or a record with a `value`, a `label` and
10711
10798
  `disabled`. Set, the list draws only the options in sight, and the ones
@@ -12643,8 +12730,11 @@ imperatively later, and nothing is hydrating by then.
12643
12730
 
12644
12731
  Here rather than on each control. */
12645
12732
  name?: (HelixNumberInput["name"]) | undefined;
12646
- /** The value as a number, or `NaN` while the control is empty.
12733
+ /** The value as a number, or `NaN` while the control is empty or does not
12734
+ hold a number.
12647
12735
 
12736
+ Read in the locale and the format, as the form reads it, so `1,5` typed
12737
+ in a locale with a decimal comma is 1.5 here while the form holds 1.5.
12648
12738
  `NaN` and not zero, which is the trap the platform already avoids: `Number('')`
12649
12739
  is zero, so an empty control would report a number it does not hold and a
12650
12740
  form would submit it. */
@@ -15407,7 +15497,8 @@ control height until you size it, with a height on the element or
15407
15497
  /** What is loading, read out as the placeholder's name, such as "Loading
15408
15498
  profile".
15409
15499
 
15410
- Absent hides the placeholder from screen readers. */
15500
+ Absent hides the placeholder from screen readers. Around content, the name
15501
+ is read while `loading` is set, and the loaded content is read as it is. */
15411
15502
  label?: (HelixSkeleton["label"]) | undefined;
15412
15503
  /** Whether the content inside is still loading, which keeps it inert and
15413
15504
  draws the placeholder over it.
@@ -16999,7 +17090,16 @@ known by its place among the rows as written. */
16999
17090
 
17000
17091
  export type HelixTableRowVueEvents = {};
17001
17092
 
17093
+ /** `HelixTabPanel` component event */
17094
+ export type HelixTabPanelElementEvent<E = Event> = TypedEvent<HelixTabPanel, E>;
17095
+ /** `helix-load` event type */
17096
+ export type HelixTabPanelHelixLoadElementEvent =
17097
+ HelixTabPanelElementEvent<HelixLoadEvent>;
17098
+
17002
17099
  export type HelixTabPanelVueProps = {
17100
+ /** Whether the panel's content waits in a `<template>` until the panel is
17101
+ first shown. */
17102
+ lazy?: (HelixTabPanel["lazy"]) | undefined;
17003
17103
  /** Whether this panel is the visible one. */
17004
17104
  selected?: (HelixTabPanel["selected"]) | undefined;
17005
17105
  /** Pairs the panel with the tab of the same value. */
@@ -17017,7 +17117,10 @@ the pattern names one anyway. */
17017
17117
  label?: (HelixTabPanel["label"]) | undefined;
17018
17118
  };
17019
17119
 
17020
- export type HelixTabPanelVueEvents = {};
17120
+ export type HelixTabPanelVueEvents = {
17121
+ /** Fired the first time a `lazy` panel is shown, once its template's content is in. */
17122
+ "helix-load": HelixTabPanelHelixLoadElementEvent;
17123
+ };
17021
17124
 
17022
17125
  /** `HelixTabs` component event */
17023
17126
  export type HelixTabsElementEvent<E = Event> = TypedEvent<HelixTabs, E>;
@@ -18505,6 +18608,12 @@ consumer's server markup does not have. A sheet carries the resting
18505
18608
  arrangement in its own `:host` rule and the selectors describe only the
18506
18609
  departures, which is what `orientation` does. */
18507
18610
  placement?: (HelixToast["placement"]) | undefined;
18611
+ /** The edge a touch or a pen swipes a message toward to dismiss it: `end`,
18612
+ the end of the line, or `start`, `top` or `bottom`. Unset is `end`. */
18613
+ "swipe-direction"?: (HelixToast["swipeDirection"]) | undefined;
18614
+ /** The edge a touch or a pen swipes a message toward to dismiss it: `end`,
18615
+ the end of the line, or `start`, `top` or `bottom`. Unset is `end`. */
18616
+ swipeDirection?: (HelixToast["swipeDirection"]) | undefined;
18508
18617
  };
18509
18618
 
18510
18619
  export type HelixToastVueEvents = {
@@ -19058,6 +19167,14 @@ The shape is `Carousel`'s, which is the nearest thing in the library: a
19058
19167
  "next-label"?: (HelixTour["nextLabel"]) | undefined;
19059
19168
  /** Label for the control that goes on. */
19060
19169
  nextLabel?: (HelixTour["nextLabel"]) | undefined;
19170
+ /** What a press outside the current stop and its target does while the tour
19171
+ runs. Unset, nothing: the page stays usable. `close` ends the tour, as
19172
+ Skip does, and `block` refuses the press. */
19173
+ "outside-press"?: (HelixTour["outsidePress"]) | undefined;
19174
+ /** What a press outside the current stop and its target does while the tour
19175
+ runs. Unset, nothing: the page stays usable. `close` ends the tour, as
19176
+ Skip does, and `block` refuses the press. */
19177
+ outsidePress?: (HelixTour["outsidePress"]) | undefined;
19061
19178
  /** Draws each stop's place in the run in its panel, as well as saying it. */
19062
19179
  progress?: (HelixTour["progress"]) | undefined;
19063
19180
  /** Each stop's place in the run, with `{index}` and `{count}` filled in and
@@ -19146,6 +19263,9 @@ heading. */
19146
19263
  Reflected, because the styled tier places a dialog and a floating panel by
19147
19264
  it, and unset at rest, so no default is written onto the host. */
19148
19265
  type?: (HelixTourStop["type"]) | undefined;
19266
+ /** Run as the tour reaches the stop, before it is shown: see the description
19267
+ above. A function, so it is set from script and has no attribute. */
19268
+ effect?: (HelixTourStop["effect"]) | undefined;
19149
19269
  };
19150
19270
 
19151
19271
  export type HelixTourStopVueEvents = {
@@ -22523,6 +22643,8 @@ export type CustomCssProperties = {
22523
22643
  "--toast-duration"?: (string) | undefined;
22524
22644
  /** How far a swipe has moved the message across, in pixels, toward the right. */
22525
22645
  "--toast-swipe-x"?: (string) | undefined;
22646
+ /** How far a swipe has moved the message down, in pixels, under a `swipe-direction` of `top` or `bottom`. */
22647
+ "--toast-swipe-y"?: (string) | undefined;
22526
22648
  /** Space between one message and the next. */
22527
22649
  "--toast-gap"?: (string) | undefined;
22528
22650
  /** Width of a message. */