@fusion.dev/helix 0.177.1 → 0.178.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
@@ -6581,10 +6581,22 @@ Empty is the reader's own. Dates are plain `YYYY-MM-DD` and carry no zone. */
6581
6581
  /** The message shown when `disable-dates` or `disable-days` bars a date. */
6582
6582
  unavailableMessage?: (HelixDateInput["unavailableMessage"]) | undefined;
6583
6583
  /** The message for text that is no date, where `bad-input-message` is not
6584
- set. `{mode}` is `single`, `range`, or `multiple`. */
6584
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{example}` is a
6585
+ date written as the field writes one, `August 24, 2026` in `en-US` and
6586
+ `24. August 2026` in `de-DE` at the default `date-style`.
6587
+
6588
+ **The default names a date the field reads back.** It said "Enter a date
6589
+ as YYYY-MM-DD." to a reader whose field showed `August 4, 2026`, and a
6590
+ pattern token is words for a developer. Time Input says the same. */
6585
6591
  "unreadable-message"?: (HelixDateInput["unreadableMessage"]) | undefined;
6586
6592
  /** The message for text that is no date, where `bad-input-message` is not
6587
- set. `{mode}` is `single`, `range`, or `multiple`. */
6593
+ set. `{mode}` is `single`, `range`, or `multiple`, and `{example}` is a
6594
+ date written as the field writes one, `August 24, 2026` in `en-US` and
6595
+ `24. August 2026` in `de-DE` at the default `date-style`.
6596
+
6597
+ **The default names a date the field reads back.** It said "Enter a date
6598
+ as YYYY-MM-DD." to a reader whose field showed `August 4, 2026`, and a
6599
+ pattern token is words for a developer. Time Input says the same. */
6588
6600
  unreadableMessage?: (HelixDateInput["unreadableMessage"]) | undefined;
6589
6601
  /** The name of the calendar's heading where it shows a page of years, with
6590
6602
  `{heading}` filled in. */
@@ -6705,16 +6717,24 @@ a reset should return to. */
6705
6717
  **Every sentence a control raises in the browser's bubble is a property**,
6706
6718
  named for the validity flag it reports, so a form in another language
6707
6719
  speaks it. Unset is the sentence registered for the page's language, then
6708
- the English. `{mode}` is `single`, `range` or `multiple`, so each can have
6709
- its own sentence. */
6720
+ the English. `{example}` is a date written as the calendar names one,
6721
+ `August 24, 2026` in `en-US` and `24. August 2026` in `de-DE`, and `{mode}`
6722
+ is `single`, `range` or `multiple`, so each can have its own sentence.
6723
+
6724
+ **The default names a date in words.** It said "Enter a date as
6725
+ YYYY-MM-DD.", and a pattern token is words for a developer. */
6710
6726
  "bad-input-message"?: (HelixDatePicker["badInputMessage"]) | undefined;
6711
6727
  /** The validation message for a value that is not a date.
6712
6728
 
6713
6729
  **Every sentence a control raises in the browser's bubble is a property**,
6714
6730
  named for the validity flag it reports, so a form in another language
6715
6731
  speaks it. Unset is the sentence registered for the page's language, then
6716
- the English. `{mode}` is `single`, `range` or `multiple`, so each can have
6717
- its own sentence. */
6732
+ the English. `{example}` is a date written as the calendar names one,
6733
+ `August 24, 2026` in `en-US` and `24. August 2026` in `de-DE`, and `{mode}`
6734
+ is `single`, `range` or `multiple`, so each can have its own sentence.
6735
+
6736
+ **The default names a date in words.** It said "Enter a date as
6737
+ YYYY-MM-DD.", and a pattern token is words for a developer. */
6718
6738
  badInputMessage?: (HelixDatePicker["badInputMessage"]) | undefined;
6719
6739
  /** The calendar the heading, the days, and the months are written in.
6720
6740
 
@@ -8341,6 +8361,14 @@ an icon. */
8341
8361
  /** The name of the clear button, read by screen readers. The button shows only
8342
8362
  an icon. */
8343
8363
  clearLabel?: (HelixFilterInput["clearLabel"]) | undefined;
8364
+ /** How long typing rests before `source` is asked, in milliseconds. A delay
8365
+ sends one request for a word in place of one for each letter. The arrow
8366
+ keys and Enter ask at once. `0` asks on every keystroke. */
8367
+ "filter-delay"?: (HelixFilterInput["filterDelay"] | `${number}`) | undefined;
8368
+ /** How long typing rests before `source` is asked, in milliseconds. A delay
8369
+ sends one request for a word in place of one for each letter. The arrow
8370
+ keys and Enter ask at once. `0` asks on every keystroke. */
8371
+ filterDelay?: (HelixFilterInput["filterDelay"]) | undefined;
8344
8372
  /** Whether the panel narrows itself to the suggestions that hold the term
8345
8373
  being typed, as React Aria's Autocomplete filters. Off, the panel shows
8346
8374
  what you slot and you narrow it. */
@@ -8418,6 +8446,13 @@ imperatively later, and nothing is hydrating by then.
8418
8446
 
8419
8447
  Here rather than on each control. */
8420
8448
  name?: (HelixFilterInput["name"]) | undefined;
8449
+ /** Where the suggestions come from: a function given the term at the caret,
8450
+ the field it is a value of, the whole text, and an `AbortSignal`, which
8451
+ returns the suggestions or a promise of them. Each is a string, or a
8452
+ `value` with a `label` and `disabled`. The field draws them as options in
8453
+ the panel, beside any you slot. A property only, there being no way to
8454
+ write a function in markup. See the class description. */
8455
+ source?: (HelixFilterInput["source"]) | undefined;
8421
8456
  };
8422
8457
 
8423
8458
  export type HelixFilterInputVueEvents = {
@@ -8435,7 +8470,7 @@ export type HelixFilterInputVueEvents = {
8435
8470
  "helix-dismiss": HelixFilterInputHelixDismissElementEvent;
8436
8471
  /** Fired when a filter changes, whether it was typed, picked, or removed. Cancelable: call `preventDefault()` to leave the text and the chip as they were. */
8437
8472
  "helix-facet": HelixFilterInputHelixFacetElementEvent;
8438
- /** Fired by an option in `suggestions` when it is chosen, and bubbles out of the field. Cancelable: call `preventDefault()` to stop other listeners acting on it. The field takes no action on a choice; you decide what it does. */
8473
+ /** Fired by an option in `suggestions` when it is chosen, and bubbles out of the field. Cancelable: call `preventDefault()` to stop other listeners acting on it. The field takes no action on an option you slotted, and you decide what it does. A suggestion from `source` is written over the term at the caret unless you cancel it. */
8439
8474
  "helix-select": HelixFilterInputHelixSelectElementEvent;
8440
8475
  /** Fired when the text changes. */
8441
8476
  input: HelixFilterInputElementEvent;
@@ -8909,6 +8944,14 @@ or hides its notes. Drawn where the notes have two groups or more. */
8909
8944
  "legend-label"?: (HelixGraph["legendLabel"]) | undefined;
8910
8945
  /** The legend's name, read by screen readers. */
8911
8946
  legendLabel?: (HelixGraph["legendLabel"]) | undefined;
8947
+ /** What screen readers hear when a walk along the links reaches a note that
8948
+ has no link to follow, or goes back to a note: `{note}` for its name and
8949
+ `{count}` for how many notes the list holds that it links to or from. */
8950
+ "link-count-label"?: (HelixGraph["linkCountLabel"]) | undefined;
8951
+ /** What screen readers hear when a walk along the links reaches a note that
8952
+ has no link to follow, or goes back to a note: `{note}` for its name and
8953
+ `{count}` for how many notes the list holds that it links to or from. */
8954
+ linkCountLabel?: (HelixGraph["linkCountLabel"]) | undefined;
8912
8955
  /** How a note linked both to and from the selected one is described, with `{note}`. */
8913
8956
  "linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
8914
8957
  /** How a note linked both to and from the selected one is described, with `{note}`. */
@@ -8988,6 +9031,16 @@ the list then holds, written with `count-label`. */
8988
9031
  "using-label"?: (HelixGraph["usingLabel"]) | undefined;
8989
9032
  /** The line shown while the graph, with `gestures="activate"`, has the gestures. */
8990
9033
  usingLabel?: (HelixGraph["usingLabel"]) | undefined;
9034
+ /** What screen readers hear when a walk along the links moves to a note:
9035
+ `{note}` for its name, `{relation}` for how it stands to the note the
9036
+ step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
9037
+ for its place among that note's links. */
9038
+ "walk-label"?: (HelixGraph["walkLabel"]) | undefined;
9039
+ /** What screen readers hear when a walk along the links moves to a note:
9040
+ `{note}` for its name, `{relation}` for how it stands to the note the
9041
+ step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
9042
+ for its place among that note's links. */
9043
+ walkLabel?: (HelixGraph["walkLabel"]) | undefined;
8991
9044
  /** The hint shown when the wheel scrolls past the graph with
8992
9045
  `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
8993
9046
  "wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
@@ -9031,7 +9084,7 @@ export type HelixGraphVueEvents = {
9031
9084
  "helix-graph-layout": HelixGraphHelixGraphLayoutElementEvent;
9032
9085
  /** A pan button or arrow key was pressed. `connectGraph` moves the drawing, then calls `moved()`. */
9033
9086
  "helix-graph-pan": HelixGraphHelixGraphPanElementEvent;
9034
- /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
9087
+ /** The notes, the links, the selection, the depth, the note the keys are on, or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
9035
9088
  "helix-graph-part-change": HelixGraphHelixGraphPartChangeElementEvent;
9036
9089
  /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
9037
9090
  "helix-graph-ready": HelixGraphHelixGraphReadyElementEvent;
@@ -19087,18 +19140,28 @@ a reset should return to. */
19087
19140
  **Every sentence a control raises in the browser's bubble is a property**,
19088
19141
  named for the validity flag it reports, so a form in another language
19089
19142
  speaks it. Unset is the sentence registered for the page's language, then
19090
- the English. `{shape}` is how a time is written, `HH:mm` or `HH:mm:ss`, and
19091
- `{mode}` is `single`, `range` or `multiple`, so each can have its own
19092
- sentence. */
19143
+ the English. `{example}` is a time written as the picker writes one,
19144
+ `2:30 PM` in `en-US` and `14:30` in `de-DE`, `{shape}` is `HH:mm` or
19145
+ `HH:mm:ss`, and `{mode}` is `single`, `range` or `multiple`, so each can
19146
+ have its own sentence.
19147
+
19148
+ **The default names a time as the picker shows one.** It said "Enter a
19149
+ time as HH:mm." to a reader whose list showed `2:30 PM`, and a pattern
19150
+ token is words for a developer. Time Input says the same. */
19093
19151
  "bad-input-message"?: (HelixTimePicker["badInputMessage"]) | undefined;
19094
19152
  /** The validation message for a value that is not a time.
19095
19153
 
19096
19154
  **Every sentence a control raises in the browser's bubble is a property**,
19097
19155
  named for the validity flag it reports, so a form in another language
19098
19156
  speaks it. Unset is the sentence registered for the page's language, then
19099
- the English. `{shape}` is how a time is written, `HH:mm` or `HH:mm:ss`, and
19100
- `{mode}` is `single`, `range` or `multiple`, so each can have its own
19101
- sentence. */
19157
+ the English. `{example}` is a time written as the picker writes one,
19158
+ `2:30 PM` in `en-US` and `14:30` in `de-DE`, `{shape}` is `HH:mm` or
19159
+ `HH:mm:ss`, and `{mode}` is `single`, `range` or `multiple`, so each can
19160
+ have its own sentence.
19161
+
19162
+ **The default names a time as the picker shows one.** It said "Enter a
19163
+ time as HH:mm." to a reader whose list showed `2:30 PM`, and a pattern
19164
+ token is words for a developer. Time Input says the same. */
19102
19165
  badInputMessage?: (HelixTimePicker["badInputMessage"]) | undefined;
19103
19166
  /** Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.
19104
19167
 
package/types/words.d.ts CHANGED
@@ -320,6 +320,14 @@ declare module '@fusion.dev/helix-core' {
320
320
  * English: `Groups`
321
321
  */
322
322
  legendLabel: Message
323
+ /**
324
+ * What screen readers hear when a walk along the links reaches a note that
325
+ * has no link to follow, or goes back to a note: `{note}` for its name and
326
+ * `{count}` for how many notes the list holds that it links to or from.
327
+ *
328
+ * English: `{note}. {count, plural, =0 {No links} one {# link} other {# links}}`
329
+ */
330
+ linkCountLabel: Message
323
331
  /**
324
332
  * How a note linked both to and from the selected one is described, with `{note}`.
325
333
  *
@@ -900,9 +908,11 @@ declare module '@fusion.dev/helix-core' {
900
908
  undoneLabel: Message
901
909
  /**
902
910
  * The message for text that is no date, where `bad-input-message` is not
903
- * set. `{mode}` is `single`, `range`, or `multiple`.
911
+ * set. `{mode}` is `single`, `range`, or `multiple`, and `{example}` is a
912
+ * date written as the field writes one, `August 24, 2026` in `en-US` and
913
+ * `24. August 2026` in `de-DE` at the default `date-style`.
904
914
  *
905
- * English: `{mode, select, single {Enter a date as YYYY-MM-DD.} other {Enter dates as YYYY-MM-DD, separated by commas.}}`
915
+ * English: `{mode, select, single {Enter a date such as {example}.} other {Enter dates such as {example}, separated by commas.}}`
906
916
  */
907
917
  unreadableMessage: Message
908
918
  /**
@@ -930,6 +940,15 @@ declare module '@fusion.dev/helix-core' {
930
940
  * English: `Choose one to continue.`
931
941
  */
932
942
  valueMissingMessage: Message
943
+ /**
944
+ * What screen readers hear when a walk along the links moves to a note:
945
+ * `{note}` for its name, `{relation}` for how it stands to the note the
946
+ * step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
947
+ * for its place among that note's links.
948
+ *
949
+ * English: `{note}. {relation}. {index} of {count}`
950
+ */
951
+ walkLabel: Message
933
952
  /**
934
953
  * The hint shown when the wheel scrolls past a surface with
935
954
  * `gestures="cooperative"`, with `{key}`. Each family declares it as a
@@ -1424,7 +1443,7 @@ declare module '@fusion.dev/helix-core' {
1424
1443
  /**
1425
1444
  * The validation message for a value that is not a date.
1426
1445
  *
1427
- * English: `{mode, select, single {Enter a date as YYYY-MM-DD.} other {Enter dates as YYYY-MM-DD, separated by commas.}}`
1446
+ * English: `{mode, select, single {Enter a date such as {example}.} other {Enter dates such as {example}, separated by commas.}}`
1428
1447
  */
1429
1448
  badInputMessage: Message
1430
1449
  /**
@@ -2537,7 +2556,7 @@ declare module '@fusion.dev/helix-core' {
2537
2556
  /**
2538
2557
  * The validation message for a value that is not a time.
2539
2558
  *
2540
- * English: `{mode, select, single {Enter a time as {shape}.} other {Enter times as {shape}, separated by commas.}}`
2559
+ * English: `{mode, select, single {Enter a time such as {example}.} other {Enter times such as {example}, separated by commas.}}`
2541
2560
  */
2542
2561
  badInputMessage: Message
2543
2562
  /**