@fusion.dev/helix 0.177.2 → 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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.177.2",
4
+ "version": "0.178.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -54,13 +54,13 @@
54
54
  },
55
55
  "bugs": "https://github.com/project-fusion/fusion/issues",
56
56
  "dependencies": {
57
- "@fusion.dev/helix-core": "0.177.2",
58
- "@fusion.dev/helix-headless": "0.177.2",
59
- "@fusion.dev/helix-styles": "0.177.2"
57
+ "@fusion.dev/helix-core": "0.178.0",
58
+ "@fusion.dev/helix-headless": "0.178.0",
59
+ "@fusion.dev/helix-styles": "0.178.0"
60
60
  },
61
61
  "devDependencies": {
62
- "@fusion.dev/helix-cem": "0.177.2",
63
- "@fusion.dev/helix-testing": "0.177.2",
62
+ "@fusion.dev/helix-cem": "0.178.0",
63
+ "@fusion.dev/helix-testing": "0.178.0",
64
64
  "@fusion.dev/scripts": "0.0.0-dev",
65
65
  "@happy-dom/global-registrator": "^20.14.5",
66
66
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -16129,6 +16129,14 @@ an icon. */
16129
16129
  /** The name of the clear button, read by screen readers. The button shows only
16130
16130
  an icon. */
16131
16131
  clearLabel?: (HelixFilterInput["clearLabel"]) | undefined;
16132
+ /** How long typing rests before `source` is asked, in milliseconds. A delay
16133
+ sends one request for a word in place of one for each letter. The arrow
16134
+ keys and Enter ask at once. `0` asks on every keystroke. */
16135
+ "filter-delay"?: (HelixFilterInput["filterDelay"] | `${number}`) | undefined;
16136
+ /** How long typing rests before `source` is asked, in milliseconds. A delay
16137
+ sends one request for a word in place of one for each letter. The arrow
16138
+ keys and Enter ask at once. `0` asks on every keystroke. */
16139
+ filterDelay?: (HelixFilterInput["filterDelay"]) | undefined;
16132
16140
  /** Whether the panel narrows itself to the suggestions that hold the term
16133
16141
  being typed, as React Aria's Autocomplete filters. Off, the panel shows
16134
16142
  what you slot and you narrow it. */
@@ -16206,6 +16214,13 @@ imperatively later, and nothing is hydrating by then.
16206
16214
 
16207
16215
  Here rather than on each control. */
16208
16216
  name?: (HelixFilterInput["name"]) | undefined;
16217
+ /** Where the suggestions come from: a function given the term at the caret,
16218
+ the field it is a value of, the whole text, and an `AbortSignal`, which
16219
+ returns the suggestions or a promise of them. Each is a string, or a
16220
+ `value` with a `label` and `disabled`. The field draws them as options in
16221
+ the panel, beside any you slot. A property only, there being no way to
16222
+ write a function in markup. See the class description. */
16223
+ source?: (HelixFilterInput["source"]) | undefined;
16209
16224
 
16210
16225
  /** Fired when the suggestions panel opens or closes, with `newState` and `oldState`. */
16211
16226
  ontoggle?: ((e: HelixFilterInputToggleElementEvent) => void) | undefined;
@@ -16227,7 +16242,7 @@ Here rather than on each control. */
16227
16242
  "onhelix-dismiss"?: ((e: HelixFilterInputHelixDismissElementEvent) => void) | undefined;
16228
16243
  /** 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. */
16229
16244
  "onhelix-facet"?: ((e: HelixFilterInputHelixFacetElementEvent) => void) | undefined;
16230
- /** 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. */
16245
+ /** 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. */
16231
16246
  "onhelix-select"?: ((e: HelixFilterInputHelixSelectElementEvent) => void) | undefined;
16232
16247
  /** Fired when the text changes. */
16233
16248
  oninput?: ((e: HelixFilterInputElementEvent) => void) | undefined;
@@ -16375,6 +16390,14 @@ an icon. */
16375
16390
  /** The name of the clear button, read by screen readers. The button shows only
16376
16391
  an icon. */
16377
16392
  "prop:clearLabel"?: (HelixFilterInput["clearLabel"]) | undefined;
16393
+ /** How long typing rests before `source` is asked, in milliseconds. A delay
16394
+ sends one request for a word in place of one for each letter. The arrow
16395
+ keys and Enter ask at once. `0` asks on every keystroke. */
16396
+ "attr:filter-delay"?: (HelixFilterInput["filterDelay"] | `${number}`) | undefined;
16397
+ /** How long typing rests before `source` is asked, in milliseconds. A delay
16398
+ sends one request for a word in place of one for each letter. The arrow
16399
+ keys and Enter ask at once. `0` asks on every keystroke. */
16400
+ "prop:filterDelay"?: (HelixFilterInput["filterDelay"]) | undefined;
16378
16401
  /** Whether the panel narrows itself to the suggestions that hold the term
16379
16402
  being typed, as React Aria's Autocomplete filters. Off, the panel shows
16380
16403
  what you slot and you narrow it. */
@@ -16452,6 +16475,13 @@ imperatively later, and nothing is hydrating by then.
16452
16475
 
16453
16476
  Here rather than on each control. */
16454
16477
  "prop:name"?: (HelixFilterInput["name"]) | undefined;
16478
+ /** Where the suggestions come from: a function given the term at the caret,
16479
+ the field it is a value of, the whole text, and an `AbortSignal`, which
16480
+ returns the suggestions or a promise of them. Each is a string, or a
16481
+ `value` with a `label` and `disabled`. The field draws them as options in
16482
+ the panel, beside any you slot. A property only, there being no way to
16483
+ write a function in markup. See the class description. */
16484
+ "prop:source"?: (HelixFilterInput["source"]) | undefined;
16455
16485
  /** Fired when the suggestions panel opens or closes, with `newState` and `oldState`. */
16456
16486
  "on:toggle"?: ((e: HelixFilterInputToggleElementEvent) => void) | undefined;
16457
16487
  /** Fired from the input when the user finishes editing the text. */
@@ -16472,7 +16502,7 @@ Here rather than on each control. */
16472
16502
  "on:helix-dismiss"?: ((e: HelixFilterInputHelixDismissElementEvent) => void) | undefined;
16473
16503
  /** 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. */
16474
16504
  "on:helix-facet"?: ((e: HelixFilterInputHelixFacetElementEvent) => void) | undefined;
16475
- /** 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. */
16505
+ /** 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. */
16476
16506
  "on:helix-select"?: ((e: HelixFilterInputHelixSelectElementEvent) => void) | undefined;
16477
16507
  /** Fired when the text changes. */
16478
16508
  "on:input"?: ((e: HelixFilterInputElementEvent) => void) | undefined;
@@ -17198,6 +17228,14 @@ or hides its notes. Drawn where the notes have two groups or more. */
17198
17228
  "legend-label"?: (HelixGraph["legendLabel"]) | undefined;
17199
17229
  /** The legend's name, read by screen readers. */
17200
17230
  legendLabel?: (HelixGraph["legendLabel"]) | undefined;
17231
+ /** What screen readers hear when a walk along the links reaches a note that
17232
+ has no link to follow, or goes back to a note: `{note}` for its name and
17233
+ `{count}` for how many notes the list holds that it links to or from. */
17234
+ "link-count-label"?: (HelixGraph["linkCountLabel"]) | undefined;
17235
+ /** What screen readers hear when a walk along the links reaches a note that
17236
+ has no link to follow, or goes back to a note: `{note}` for its name and
17237
+ `{count}` for how many notes the list holds that it links to or from. */
17238
+ linkCountLabel?: (HelixGraph["linkCountLabel"]) | undefined;
17201
17239
  /** How a note linked both to and from the selected one is described, with `{note}`. */
17202
17240
  "linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
17203
17241
  /** How a note linked both to and from the selected one is described, with `{note}`. */
@@ -17277,6 +17315,16 @@ the list then holds, written with `count-label`. */
17277
17315
  "using-label"?: (HelixGraph["usingLabel"]) | undefined;
17278
17316
  /** The line shown while the graph, with `gestures="activate"`, has the gestures. */
17279
17317
  usingLabel?: (HelixGraph["usingLabel"]) | undefined;
17318
+ /** What screen readers hear when a walk along the links moves to a note:
17319
+ `{note}` for its name, `{relation}` for how it stands to the note the
17320
+ step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
17321
+ for its place among that note's links. */
17322
+ "walk-label"?: (HelixGraph["walkLabel"]) | undefined;
17323
+ /** What screen readers hear when a walk along the links moves to a note:
17324
+ `{note}` for its name, `{relation}` for how it stands to the note the
17325
+ step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
17326
+ for its place among that note's links. */
17327
+ walkLabel?: (HelixGraph["walkLabel"]) | undefined;
17280
17328
  /** The hint shown when the wheel scrolls past the graph with
17281
17329
  `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
17282
17330
  "wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
@@ -17320,7 +17368,7 @@ markup. */
17320
17368
  "onhelix-graph-layout"?: ((e: HelixGraphHelixGraphLayoutElementEvent) => void) | undefined;
17321
17369
  /** A pan button or arrow key was pressed. `connectGraph` moves the drawing, then calls `moved()`. */
17322
17370
  "onhelix-graph-pan"?: ((e: HelixGraphHelixGraphPanElementEvent) => void) | undefined;
17323
- /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
17371
+ /** 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. */
17324
17372
  "onhelix-graph-part-change"?: ((
17325
17373
  e: HelixGraphHelixGraphPartChangeElementEvent,
17326
17374
  ) => void) | undefined;
@@ -17525,6 +17573,14 @@ or hides its notes. Drawn where the notes have two groups or more. */
17525
17573
  "attr:legend-label"?: (HelixGraph["legendLabel"]) | undefined;
17526
17574
  /** The legend's name, read by screen readers. */
17527
17575
  "prop:legendLabel"?: (HelixGraph["legendLabel"]) | undefined;
17576
+ /** What screen readers hear when a walk along the links reaches a note that
17577
+ has no link to follow, or goes back to a note: `{note}` for its name and
17578
+ `{count}` for how many notes the list holds that it links to or from. */
17579
+ "attr:link-count-label"?: (HelixGraph["linkCountLabel"]) | undefined;
17580
+ /** What screen readers hear when a walk along the links reaches a note that
17581
+ has no link to follow, or goes back to a note: `{note}` for its name and
17582
+ `{count}` for how many notes the list holds that it links to or from. */
17583
+ "prop:linkCountLabel"?: (HelixGraph["linkCountLabel"]) | undefined;
17528
17584
  /** How a note linked both to and from the selected one is described, with `{note}`. */
17529
17585
  "attr:linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
17530
17586
  /** How a note linked both to and from the selected one is described, with `{note}`. */
@@ -17604,6 +17660,16 @@ the list then holds, written with `count-label`. */
17604
17660
  "attr:using-label"?: (HelixGraph["usingLabel"]) | undefined;
17605
17661
  /** The line shown while the graph, with `gestures="activate"`, has the gestures. */
17606
17662
  "prop:usingLabel"?: (HelixGraph["usingLabel"]) | undefined;
17663
+ /** What screen readers hear when a walk along the links moves to a note:
17664
+ `{note}` for its name, `{relation}` for how it stands to the note the
17665
+ step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
17666
+ for its place among that note's links. */
17667
+ "attr:walk-label"?: (HelixGraph["walkLabel"]) | undefined;
17668
+ /** What screen readers hear when a walk along the links moves to a note:
17669
+ `{note}` for its name, `{relation}` for how it stands to the note the
17670
+ step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
17671
+ for its place among that note's links. */
17672
+ "prop:walkLabel"?: (HelixGraph["walkLabel"]) | undefined;
17607
17673
  /** The hint shown when the wheel scrolls past the graph with
17608
17674
  `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
17609
17675
  "attr:wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
@@ -17646,7 +17712,7 @@ markup. */
17646
17712
  "on:helix-graph-layout"?: ((e: HelixGraphHelixGraphLayoutElementEvent) => void) | undefined;
17647
17713
  /** A pan button or arrow key was pressed. `connectGraph` moves the drawing, then calls `moved()`. */
17648
17714
  "on:helix-graph-pan"?: ((e: HelixGraphHelixGraphPanElementEvent) => void) | undefined;
17649
- /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
17715
+ /** 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. */
17650
17716
  "on:helix-graph-part-change"?: ((
17651
17717
  e: HelixGraphHelixGraphPartChangeElementEvent,
17652
17718
  ) => void) | undefined;
@@ -52595,6 +52661,9 @@ export type CustomElements = {
52595
52661
  * them.
52596
52662
  * - `clear-label`/`clearLabel`: The name of the clear button, read by screen readers. The button shows only
52597
52663
  * an icon.
52664
+ * - `filter-delay`/`filterDelay`: How long typing rests before `source` is asked, in milliseconds. A delay
52665
+ * sends one request for a word in place of one for each letter. The arrow
52666
+ * keys and Enter ask at once. `0` asks on every keystroke.
52598
52667
  * - `filter-suggestions`/`filterSuggestions`: Whether the panel narrows itself to the suggestions that hold the term
52599
52668
  * being typed, as React Aria's Autocomplete filters. Off, the panel shows
52600
52669
  * what you slot and you narrow it.
@@ -52643,6 +52712,12 @@ export type CustomElements = {
52643
52712
  * imperatively later, and nothing is hydrating by then.
52644
52713
  *
52645
52714
  * Here rather than on each control.
52715
+ * - `source`: Where the suggestions come from: a function given the term at the caret,
52716
+ * the field it is a value of, the whole text, and an `AbortSignal`, which
52717
+ * returns the suggestions or a promise of them. Each is a string, or a
52718
+ * `value` with a `label` and `disabled`. The field draws them as options in
52719
+ * the panel, beside any you slot. A property only, there being no way to
52720
+ * write a function in markup. See the class description. (property only)
52646
52721
  * - `selectionDirection`: The direction of the selection, named as on `<input>`.
52647
52722
  *
52648
52723
  * **Published for the reason `Input` publishes them, and this element needs
@@ -52700,7 +52775,7 @@ export type CustomElements = {
52700
52775
  * - `helix-before-open`: Fired before the suggestions open. Cancelable: call `preventDefault()` to keep them closed.
52701
52776
  * - `helix-dismiss`: Fired when the user removes a token with its remove button or with Backspace in an empty field. A `FilterChip` that names a declared field sends `helix-facet` instead. Cancelable: call `preventDefault()` to keep the token.
52702
52777
  * - `helix-facet`: 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.
52703
- * - `helix-select`: 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.
52778
+ * - `helix-select`: 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.
52704
52779
  * - `input`: Fired when the text changes.
52705
52780
  *
52706
52781
  * ## Slots
@@ -52826,7 +52901,7 @@ export type CustomElements = {
52826
52901
  * - `label`: The label above the field.
52827
52902
  * - `lead`: The box before the text that holds the `start` slot.
52828
52903
  * - `live`: The live region that says how many suggestions the open panel offers. It is rendered from the first time the panel opens with suggestions.
52829
- * - `loading`: Shown in the panel while the suggestions load.
52904
+ * - `loading`: Shown in the panel while the suggestions load: while `loading` is set, or a request to `source` is out.
52830
52905
  * - `rest`: The count of tokens that did not fit. It is a `<button>` with `expandable` and a `<span>` without it.
52831
52906
  * - `surface`: The floating panel the suggestions sit in.
52832
52907
  * - `tags`: The row the tokens sit in.
@@ -52836,7 +52911,7 @@ export type CustomElements = {
52836
52911
  * These can be used to apply styling when a component is in a given state.
52837
52912
  *
52838
52913
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
52839
- * - `loading`: While `loading` is set.
52914
+ * - `loading`: While `loading` is set, or a request to `source` is out.
52840
52915
  * - `no-results`: `filter-suggestions` hid every suggestion, and `no-results-text` or the `no-results` slot says so.
52841
52916
  * - `open`: The suggestions are open.
52842
52917
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -53238,6 +53313,9 @@ export type CustomElements = {
53238
53313
  * - `legend`: Names the groups over the drawing, each a button in its color that shows
53239
53314
  * or hides its notes. Drawn where the notes have two groups or more.
53240
53315
  * - `legend-label`/`legendLabel`: The legend's name, read by screen readers.
53316
+ * - `link-count-label`/`linkCountLabel`: What screen readers hear when a walk along the links reaches a note that
53317
+ * has no link to follow, or goes back to a note: `{note}` for its name and
53318
+ * `{count}` for how many notes the list holds that it links to or from.
53241
53319
  * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
53242
53320
  * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
53243
53321
  * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
@@ -53262,6 +53340,10 @@ export type CustomElements = {
53262
53340
  * the list then holds, written with `count-label`.
53263
53341
  * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over the graph with `gestures="cooperative"`.
53264
53342
  * - `using-label`/`usingLabel`: The line shown while the graph, with `gestures="activate"`, has the gestures.
53343
+ * - `walk-label`/`walkLabel`: What screen readers hear when a walk along the links moves to a note:
53344
+ * `{note}` for its name, `{relation}` for how it stands to the note the
53345
+ * step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
53346
+ * for its place among that note's links.
53265
53347
  * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past the graph with
53266
53348
  * `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere.
53267
53349
  * - `zoomed-in-label`/`zoomedInLabel`: What screen readers hear once the drawing has zoomed in, after `moved()`.
@@ -53309,7 +53391,7 @@ export type CustomElements = {
53309
53391
  * - `helix-graph-filter`: A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself.
53310
53392
  * - `helix-graph-layout`: A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions.
53311
53393
  * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing, then calls `moved()`.
53312
- * - `helix-graph-part-change`: The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it.
53394
+ * - `helix-graph-part-change`: 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.
53313
53395
  * - `helix-graph-ready`: The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not.
53314
53396
  * - `helix-graph-signal`: Something passed between two notes, sent by `signal()`. Used by `connectGraph`; pages do not need to listen for it.
53315
53397
  * - `helix-graph-zoom`: A zoom button or key was pressed. `connectGraph` zooms the drawing, then calls `moved()`.
@@ -82325,6 +82407,9 @@ export type CustomElementsSolidJs = {
82325
82407
  * them.
82326
82408
  * - `clear-label`/`clearLabel`: The name of the clear button, read by screen readers. The button shows only
82327
82409
  * an icon.
82410
+ * - `filter-delay`/`filterDelay`: How long typing rests before `source` is asked, in milliseconds. A delay
82411
+ * sends one request for a word in place of one for each letter. The arrow
82412
+ * keys and Enter ask at once. `0` asks on every keystroke.
82328
82413
  * - `filter-suggestions`/`filterSuggestions`: Whether the panel narrows itself to the suggestions that hold the term
82329
82414
  * being typed, as React Aria's Autocomplete filters. Off, the panel shows
82330
82415
  * what you slot and you narrow it.
@@ -82373,6 +82458,12 @@ export type CustomElementsSolidJs = {
82373
82458
  * imperatively later, and nothing is hydrating by then.
82374
82459
  *
82375
82460
  * Here rather than on each control.
82461
+ * - `source`: Where the suggestions come from: a function given the term at the caret,
82462
+ * the field it is a value of, the whole text, and an `AbortSignal`, which
82463
+ * returns the suggestions or a promise of them. Each is a string, or a
82464
+ * `value` with a `label` and `disabled`. The field draws them as options in
82465
+ * the panel, beside any you slot. A property only, there being no way to
82466
+ * write a function in markup. See the class description. (property only)
82376
82467
  * - `selectionDirection`: The direction of the selection, named as on `<input>`.
82377
82468
  *
82378
82469
  * **Published for the reason `Input` publishes them, and this element needs
@@ -82430,7 +82521,7 @@ export type CustomElementsSolidJs = {
82430
82521
  * - `helix-before-open`: Fired before the suggestions open. Cancelable: call `preventDefault()` to keep them closed.
82431
82522
  * - `helix-dismiss`: Fired when the user removes a token with its remove button or with Backspace in an empty field. A `FilterChip` that names a declared field sends `helix-facet` instead. Cancelable: call `preventDefault()` to keep the token.
82432
82523
  * - `helix-facet`: 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.
82433
- * - `helix-select`: 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.
82524
+ * - `helix-select`: 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.
82434
82525
  * - `input`: Fired when the text changes.
82435
82526
  *
82436
82527
  * ## Slots
@@ -82556,7 +82647,7 @@ export type CustomElementsSolidJs = {
82556
82647
  * - `label`: The label above the field.
82557
82648
  * - `lead`: The box before the text that holds the `start` slot.
82558
82649
  * - `live`: The live region that says how many suggestions the open panel offers. It is rendered from the first time the panel opens with suggestions.
82559
- * - `loading`: Shown in the panel while the suggestions load.
82650
+ * - `loading`: Shown in the panel while the suggestions load: while `loading` is set, or a request to `source` is out.
82560
82651
  * - `rest`: The count of tokens that did not fit. It is a `<button>` with `expandable` and a `<span>` without it.
82561
82652
  * - `surface`: The floating panel the suggestions sit in.
82562
82653
  * - `tags`: The row the tokens sit in.
@@ -82566,7 +82657,7 @@ export type CustomElementsSolidJs = {
82566
82657
  * These can be used to apply styling when a component is in a given state.
82567
82658
  *
82568
82659
  * - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
82569
- * - `loading`: While `loading` is set.
82660
+ * - `loading`: While `loading` is set, or a request to `source` is out.
82570
82661
  * - `no-results`: `filter-suggestions` hid every suggestion, and `no-results-text` or the `no-results` slot says so.
82571
82662
  * - `open`: The suggestions are open.
82572
82663
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
@@ -82976,6 +83067,9 @@ export type CustomElementsSolidJs = {
82976
83067
  * - `legend`: Names the groups over the drawing, each a button in its color that shows
82977
83068
  * or hides its notes. Drawn where the notes have two groups or more.
82978
83069
  * - `legend-label`/`legendLabel`: The legend's name, read by screen readers.
83070
+ * - `link-count-label`/`linkCountLabel`: What screen readers hear when a walk along the links reaches a note that
83071
+ * has no link to follow, or goes back to a note: `{note}` for its name and
83072
+ * `{count}` for how many notes the list holds that it links to or from.
82979
83073
  * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
82980
83074
  * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
82981
83075
  * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
@@ -83000,6 +83094,10 @@ export type CustomElementsSolidJs = {
83000
83094
  * the list then holds, written with `count-label`.
83001
83095
  * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over the graph with `gestures="cooperative"`.
83002
83096
  * - `using-label`/`usingLabel`: The line shown while the graph, with `gestures="activate"`, has the gestures.
83097
+ * - `walk-label`/`walkLabel`: What screen readers hear when a walk along the links moves to a note:
83098
+ * `{note}` for its name, `{relation}` for how it stands to the note the
83099
+ * step came from, such as "Linked from Roadmap", and `{index}` and `{count}`
83100
+ * for its place among that note's links.
83003
83101
  * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past the graph with
83004
83102
  * `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere.
83005
83103
  * - `zoomed-in-label`/`zoomedInLabel`: What screen readers hear once the drawing has zoomed in, after `moved()`.
@@ -83047,7 +83145,7 @@ export type CustomElementsSolidJs = {
83047
83145
  * - `helix-graph-filter`: A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself.
83048
83146
  * - `helix-graph-layout`: A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions.
83049
83147
  * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing, then calls `moved()`.
83050
- * - `helix-graph-part-change`: The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it.
83148
+ * - `helix-graph-part-change`: 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.
83051
83149
  * - `helix-graph-ready`: The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not.
83052
83150
  * - `helix-graph-signal`: Something passed between two notes, sent by `signal()`. Used by `connectGraph`; pages do not need to listen for it.
83053
83151
  * - `helix-graph-zoom`: A zoom button or key was pressed. `connectGraph` zooms the drawing, then calls `moved()`.
package/types/vue.d.ts CHANGED
@@ -8361,6 +8361,14 @@ an icon. */
8361
8361
  /** The name of the clear button, read by screen readers. The button shows only
8362
8362
  an icon. */
8363
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;
8364
8372
  /** Whether the panel narrows itself to the suggestions that hold the term
8365
8373
  being typed, as React Aria's Autocomplete filters. Off, the panel shows
8366
8374
  what you slot and you narrow it. */
@@ -8438,6 +8446,13 @@ imperatively later, and nothing is hydrating by then.
8438
8446
 
8439
8447
  Here rather than on each control. */
8440
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;
8441
8456
  };
8442
8457
 
8443
8458
  export type HelixFilterInputVueEvents = {
@@ -8455,7 +8470,7 @@ export type HelixFilterInputVueEvents = {
8455
8470
  "helix-dismiss": HelixFilterInputHelixDismissElementEvent;
8456
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. */
8457
8472
  "helix-facet": HelixFilterInputHelixFacetElementEvent;
8458
- /** 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. */
8459
8474
  "helix-select": HelixFilterInputHelixSelectElementEvent;
8460
8475
  /** Fired when the text changes. */
8461
8476
  input: HelixFilterInputElementEvent;
@@ -8929,6 +8944,14 @@ or hides its notes. Drawn where the notes have two groups or more. */
8929
8944
  "legend-label"?: (HelixGraph["legendLabel"]) | undefined;
8930
8945
  /** The legend's name, read by screen readers. */
8931
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;
8932
8955
  /** How a note linked both to and from the selected one is described, with `{note}`. */
8933
8956
  "linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
8934
8957
  /** How a note linked both to and from the selected one is described, with `{note}`. */
@@ -9008,6 +9031,16 @@ the list then holds, written with `count-label`. */
9008
9031
  "using-label"?: (HelixGraph["usingLabel"]) | undefined;
9009
9032
  /** The line shown while the graph, with `gestures="activate"`, has the gestures. */
9010
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;
9011
9044
  /** The hint shown when the wheel scrolls past the graph with
9012
9045
  `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere. */
9013
9046
  "wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
@@ -9051,7 +9084,7 @@ export type HelixGraphVueEvents = {
9051
9084
  "helix-graph-layout": HelixGraphHelixGraphLayoutElementEvent;
9052
9085
  /** A pan button or arrow key was pressed. `connectGraph` moves the drawing, then calls `moved()`. */
9053
9086
  "helix-graph-pan": HelixGraphHelixGraphPanElementEvent;
9054
- /** 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. */
9055
9088
  "helix-graph-part-change": HelixGraphHelixGraphPartChangeElementEvent;
9056
9089
  /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
9057
9090
  "helix-graph-ready": HelixGraphHelixGraphReadyElementEvent;
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
  *
@@ -932,6 +940,15 @@ declare module '@fusion.dev/helix-core' {
932
940
  * English: `Choose one to continue.`
933
941
  */
934
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
935
952
  /**
936
953
  * The hint shown when the wheel scrolls past a surface with
937
954
  * `gestures="cooperative"`, with `{key}`. Each family declares it as a