@fusion.dev/helix-core 0.146.0 → 0.147.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.
Files changed (84) hide show
  1. package/custom-elements.json +1299 -60
  2. package/dist/controllers/aria-forward-controller/aria-forward-controller.js +5 -3
  3. package/dist/controllers/chart-pointer-controller/chart-pointer-controller.d.ts +6 -0
  4. package/dist/controllers/chart-pointer-controller/chart-pointer-controller.js +13 -0
  5. package/dist/controllers/copy-controller/copy-controller.d.ts +4 -1
  6. package/dist/controllers/copy-controller/copy-controller.js +2 -1
  7. package/dist/controllers/countdown-controller/countdown-controller.d.ts +4 -1
  8. package/dist/controllers/countdown-controller/countdown-controller.js +3 -1
  9. package/dist/controllers/keyboard-navigation-controller/keyboard-navigation-controller.d.ts +5 -0
  10. package/dist/controllers/source-controller/source-controller.js +2 -0
  11. package/dist/controllers/swipe-controller/swipe-controller.d.ts +10 -1
  12. package/dist/controllers/swipe-controller/swipe-controller.js +1 -1
  13. package/dist/controllers/virtualize-controller/virtualize-controller.js +8 -6
  14. package/dist/events/band.d.ts +13 -0
  15. package/dist/events/band.js +11 -0
  16. package/dist/events/details.d.ts +5 -0
  17. package/dist/events/events.d.ts +4 -2
  18. package/dist/events/events.js +3 -1
  19. package/dist/events/names.d.ts +3 -0
  20. package/dist/events/names.js +13 -88
  21. package/dist/helix-element/helix-element.js +9 -43
  22. package/dist/helix-element/react-bridge.d.ts +13 -0
  23. package/dist/helix-element/react-bridge.js +1 -1
  24. package/dist/index.d.ts +18 -9
  25. package/dist/index.js +18 -9
  26. package/dist/mixins/mixin-chart-source/mixin-chart-source.d.ts +7 -0
  27. package/dist/mixins/mixin-chart-source/mixin-chart-source.js +1 -0
  28. package/dist/mixins/mixin-dismissible/mixin-dismissible.js +25 -4
  29. package/dist/mixins/mixin-picker-feedback/mixin-picker-feedback.d.ts +42 -0
  30. package/dist/mixins/mixin-picker-feedback/mixin-picker-feedback.js +46 -0
  31. package/dist/mixins/mixin-picker-field/mixin-picker-field.d.ts +2 -11
  32. package/dist/mixins/mixin-picker-field/mixin-picker-field.js +1 -6
  33. package/dist/mixins/mixin-segmented-field/mixin-segmented-field.d.ts +1 -1
  34. package/dist/mixins/mixin-segmented-field/mixin-segmented-field.js +10 -6
  35. package/dist/utils/audit-name/audit-name.d.ts +7 -2
  36. package/dist/utils/audit-name/audit-name.js +12 -3
  37. package/dist/utils/audit-source/audit-source-off.d.ts +10 -0
  38. package/dist/utils/audit-source/audit-source-off.js +1 -0
  39. package/dist/utils/audit-source/audit-source.d.ts +19 -0
  40. package/dist/utils/audit-source/audit-source.js +27 -0
  41. package/dist/utils/call-listener/call-listener.d.ts +16 -0
  42. package/dist/utils/call-listener/call-listener.js +17 -0
  43. package/dist/utils/chord/chord.d.ts +14 -0
  44. package/dist/utils/chord/chord.js +1 -0
  45. package/dist/utils/clamp/clamp.d.ts +7 -0
  46. package/dist/utils/clamp/clamp.js +1 -0
  47. package/dist/utils/css-color/css-color.js +1 -1
  48. package/dist/utils/elapsed-time/elapsed-time.d.ts +1 -1
  49. package/dist/utils/elapsed-time/elapsed-time.js +2 -5
  50. package/dist/utils/host-words/host-words.d.ts +16 -0
  51. package/dist/utils/host-words/host-words.js +13 -0
  52. package/dist/utils/load-more/load-more.d.ts +25 -0
  53. package/dist/utils/load-more/load-more.js +1 -0
  54. package/dist/utils/locale-of/locale-of.d.ts +18 -0
  55. package/dist/utils/locale-of/locale-of.js +26 -0
  56. package/dist/utils/nearest/nearest.d.ts +9 -0
  57. package/dist/utils/nearest/nearest.js +9 -0
  58. package/dist/utils/number-format/number-format.d.ts +9 -0
  59. package/dist/utils/number-format/number-format.js +4 -0
  60. package/dist/utils/own-rule/own-rule.d.ts +16 -0
  61. package/dist/utils/own-rule/own-rule.js +7 -0
  62. package/dist/utils/platform/platform.d.ts +8 -0
  63. package/dist/utils/platform/platform.js +1 -0
  64. package/dist/utils/read-series/read-series.d.ts +14 -0
  65. package/dist/utils/read-series/read-series.js +15 -0
  66. package/dist/utils/relative-time/relative-time.d.ts +8 -0
  67. package/dist/utils/relative-time/relative-time.js +5 -2
  68. package/dist/utils/report-render/report-render.js +2 -14
  69. package/dist/utils/report-runtime/report-runtime.d.ts +5 -1
  70. package/dist/utils/report-runtime/report-runtime.js +2 -14
  71. package/dist/utils/report-usage/report-usage.js +2 -14
  72. package/dist/utils/scroll-item-into-view/scroll-item-into-view.d.ts +33 -0
  73. package/dist/utils/scroll-item-into-view/scroll-item-into-view.js +13 -3
  74. package/dist/utils/slotted-glyph/slotted-glyph.d.ts +33 -0
  75. package/dist/utils/slotted-glyph/slotted-glyph.js +27 -0
  76. package/dist/utils/typeahead/typeahead.d.ts +8 -0
  77. package/dist/utils/typeahead/typeahead.js +1 -0
  78. package/dist/utils/verdict-flags/verdict-flags.d.ts +13 -0
  79. package/dist/utils/verdict-flags/verdict-flags.js +6 -0
  80. package/dist/utils/written-list/written-list.d.ts +31 -0
  81. package/dist/utils/written-list/written-list.js +16 -0
  82. package/dist/version.d.ts +1 -1
  83. package/dist/version.js +1 -1
  84. package/package.json +15 -4
@@ -1064,7 +1064,7 @@
1064
1064
  "text": "void"
1065
1065
  }
1066
1066
  },
1067
- "description": "Stops the clock where it is, as a dismissal does."
1067
+ "description": "Stops the clock for good, as a dismissal does: nothing is left to resume\nuntil the next `start`, so a hold and a release after it run nothing."
1068
1068
  },
1069
1069
  {
1070
1070
  "kind": "method",
@@ -3910,7 +3910,7 @@
3910
3910
  "declarations": [
3911
3911
  {
3912
3912
  "kind": "class",
3913
- "description": "Follows a pointer dragged across a surface along one axis, for a surface the\nreader swipes away or along: a drawer, a toast, a lightbox's pictures.\n\nIt decides only that a swipe is happening and reports where the pointer is.\nWhat a swipe means is the host's, which is why `move` and `end` are told the\ndistance and nothing else: a drawer settles it against snap points, a toast\nagainst half its width, and a lightbox turns it into next or previous.\n\n**A press is a swipe only once it has moved `SLOP` pixels, mostly along the\naxis.** Before that it is still a press, so a tap on a button inside the\nsurface is a tap, and a drag across the axis, a reader scrolling, is left to\nthe page. Once it is a swipe, the click that ends it is swallowed, so a\nswipe that started on a button does not also press it.\n\nThe move and the release are heard on the window, so a pointer that leaves\nthe surface mid-swipe is still followed.",
3913
+ "description": "Follows a pointer dragged across a surface along one axis, for a surface the\nreader swipes away or along: a drawer, a toast, a lightbox's pictures.\n\nIt decides only that a swipe is happening and reports where the pointer is.\nWhat a swipe means is the host's, which is why `move` and `end` are told the\ndistance and nothing else: a drawer settles it against snap points, a toast\nagainst half its width, and a lightbox turns it into next or previous.\n\n**A press is a swipe only once it has moved `SLOP` pixels, mostly along the\naxis.** Before that it is still a press, so a tap on a button inside the\nsurface is a tap, and a drag across the axis, a reader scrolling, is left to\nthe page. Once it is a swipe, the click that ends it is swallowed, so a\nswipe that started on a button does not also press it. The swallow is held on\nthe window for one task after the release, so a spec that swipes and then\npresses a control in the same task sees that press swallowed: wait a task\nbetween them, as a reader's next press always does.\n\nThe move and the release are heard on the window, so a pointer that leaves\nthe surface mid-swipe is still followed.",
3914
3914
  "name": "SwipeController",
3915
3915
  "members": [
3916
3916
  {
@@ -4936,6 +4936,44 @@
4936
4936
  }
4937
4937
  ]
4938
4938
  },
4939
+ {
4940
+ "kind": "javascript-module",
4941
+ "path": "src/events/band.ts",
4942
+ "declarations": [
4943
+ {
4944
+ "kind": "class",
4945
+ "description": "A reading moved into another band: a meter whose value crossed `low`,\n`high` or `optimum` into `good`, `fair` or `poor`.\n\nSent once for each crossing, not on every value, so a listener can say the\nchange aloud or recolor something else on the page. Not cancelable, since\nthe reading has already moved. Bubbles and is composed.",
4946
+ "name": "HelixBandEvent",
4947
+ "members": [
4948
+ {
4949
+ "kind": "field",
4950
+ "name": "eventName",
4951
+ "type": {
4952
+ "text": "string"
4953
+ },
4954
+ "static": true,
4955
+ "readonly": true,
4956
+ "default": "'helix-band'"
4957
+ }
4958
+ ],
4959
+ "superclass": {
4960
+ "name": "CustomEvent",
4961
+ "module": "src/events/band.ts"
4962
+ },
4963
+ "helix": {}
4964
+ }
4965
+ ],
4966
+ "exports": [
4967
+ {
4968
+ "kind": "js",
4969
+ "name": "HelixBandEvent",
4970
+ "declaration": {
4971
+ "name": "HelixBandEvent",
4972
+ "module": "src/events/band.ts"
4973
+ }
4974
+ }
4975
+ ]
4976
+ },
4939
4977
  {
4940
4978
  "kind": "javascript-module",
4941
4979
  "path": "src/events/before-activate.ts",
@@ -6163,6 +6201,14 @@
6163
6201
  "module": "./details.js"
6164
6202
  }
6165
6203
  },
6204
+ {
6205
+ "kind": "js",
6206
+ "name": "BandDetail",
6207
+ "declaration": {
6208
+ "name": "BandDetail",
6209
+ "module": "./details.js"
6210
+ }
6211
+ },
6166
6212
  {
6167
6213
  "kind": "js",
6168
6214
  "name": "CanvasView",
@@ -6571,6 +6617,14 @@
6571
6617
  "module": "src/events/events.ts"
6572
6618
  }
6573
6619
  },
6620
+ {
6621
+ "kind": "js",
6622
+ "name": "HelixBandEvent",
6623
+ "declaration": {
6624
+ "name": "HelixBandEvent",
6625
+ "module": "src/events/events.ts"
6626
+ }
6627
+ },
6574
6628
  {
6575
6629
  "kind": "js",
6576
6630
  "name": "HelixBeforeActivateEvent",
@@ -8083,8 +8137,8 @@
8083
8137
  "type": {
8084
8138
  "text": "ReadonlySet<string>"
8085
8139
  },
8086
- "default": "new Set([ 'helix-action', 'helix-activate', 'helix-aura-fallback', 'helix-before-activate', 'helix-before-change', 'helix-before-close', 'helix-before-collapse', 'helix-before-edit', 'helix-before-move', 'helix-before-open', 'helix-before-panel-resize', 'helix-before-pin', 'helix-before-reconnect', 'helix-before-relabel', 'helix-before-resize', 'helix-before-split', 'helix-before-toggle', 'helix-canvas-edit', 'helix-canvas-pan', 'helix-canvas-view', 'helix-canvas-zoom', 'helix-caret', 'helix-clear', 'helix-collapse', 'helix-complete', 'helix-connect', 'helix-console', 'helix-copy', 'helix-copy-error', 'helix-create', 'helix-dismiss', 'helix-edit', 'helix-end', 'helix-expand', 'helix-facet', 'helix-filter', 'helix-filtered', 'helix-graph-filter', 'helix-graph-layout', 'helix-graph-pan', 'helix-graph-part-change', 'helix-graph-ready', 'helix-graph-signal', 'helix-graph-zoom', 'helix-history', 'helix-load', 'helix-load-more', 'helix-map-cluster', 'helix-map-pan', 'helix-map-part-change', 'helix-map-ready', 'helix-map-rotate', 'helix-map-tilt', 'helix-map-zoom', 'helix-move', 'helix-navigate', 'helix-next', 'helix-panel-resize', 'helix-pin', 'helix-press', 'helix-preview', 'helix-previous', 'helix-range-change', 'helix-read', 'helix-reconnect', 'helix-reject', 'helix-relabel', 'helix-remove', 'helix-reorder', 'helix-reordered', 'helix-resize', 'helix-resized', 'helix-sample-end', 'helix-sample-start', 'helix-scrolled', 'helix-select', 'helix-selected', 'helix-send', 'helix-shortcut', 'helix-sort', 'helix-sorted', 'helix-split', 'helix-toggle', 'helix-tour-ask', 'helix-tour-status', 'helix-typing', ])",
8087
- "description": "Every name this library dispatches.\n\nExported so a runtime check can ask whether a name is one of ours without\nkeeping a second list of them. `HelixElement` uses it to tell a consumer that\nthe handler prop they wrote is attached to nothing.\n\n**Written as strings, in a module of its own, and not read off the\nclasses in `registry`.** Every element carries this set through its React\nprop audit, and a set read off the classes kept every class alive in every\nbundle: a Badge shipped all eighty of them. As strings, a family ships the\nclasses it dispatches and no others. `events.pure.spec.ts` holds this list to\nthe classes, so a class added without its name here fails."
8140
+ "default": "new Set( ( 'action activate aura-fallback band before-activate before-change before-close ' + 'before-collapse before-edit before-move before-open before-panel-resize before-pin ' + 'before-reconnect before-relabel before-resize before-split before-toggle ' + 'canvas-edit canvas-pan canvas-view canvas-zoom caret clear collapse complete ' + 'connect console copy copy-error create dismiss edit end expand facet filter ' + 'filtered graph-filter graph-layout graph-pan graph-part-change graph-ready ' + 'graph-signal graph-zoom history load load-more map-cluster map-pan map-part-change ' + 'map-ready map-rotate map-tilt map-zoom move navigate next panel-resize pin press ' + 'preview previous range-change read reconnect reject relabel remove reorder ' + 'reordered resize resized sample-end sample-start scrolled select selected send ' + 'shortcut sort sorted split toggle tour-ask tour-status typing' ) .split(' ') .map((name) => `helix-${name}`), )",
8141
+ "description": "Every name this library dispatches.\n\nExported so a runtime check can ask whether a name is one of ours without\nkeeping a second list of them. `HelixElement` uses it to tell a consumer that\nthe handler prop they wrote is attached to nothing.\n\n**Written as strings, in a module of its own, and not read off the\nclasses in `registry`.** Every element carries this set through its React\nprop audit, and a set read off the classes kept every class alive in every\nbundle: a Badge shipped all eighty of them. As strings, a family ships the\nclasses it dispatches and no others. `events.pure.spec.ts` holds this list to\nthe classes, so a class added without its name here fails.\n\n**Without the shared `helix-`, and separated by spaces.** Every element carries this\nlist, and as quoted strings each paid its quotes, its comma and the prefix."
8088
8142
  }
8089
8143
  ],
8090
8144
  "exports": [
@@ -9677,6 +9731,15 @@
9677
9731
  ],
9678
9732
  "description": "The prop React would be holding for this event, if it is holding one.\n\n**A relayed native event needs a different answer from one of ours, and\ngetting it wrong doubles every call.** Measured against React 19.2.8:\n\n```\nonhelix-before-change <- helix-before-change REACHED (React binds it with addEventListener)\nonChange <- change REACHED (React's delegated root listener)\nonLoad <- load not reached\nonError <- error not reached\nonEnded <- ended not reached\n```\n\nReact binds a hyphenated prop directly on the element, so our own events are\nreached by name and are safe to bind again: same type, same callback, same\ncapture flag is a no-op by specification. A native name is different. React\nrecognizes `onChange` and `onLoad` as its own registration names and attaches\nnothing to the element for either; it relies on a delegated listener at the\nroot, which sees an event only if it **bubbles**, and on a non-delegated list\nit sets up for `<video>`, `<audio>` and `<img>` and never for a custom\nelement.\n\nSo a bubbling relay already arrives and must not be bound again: React's\nlistener is at the root rather than on the element, so nothing deduplicates\nit and the consumer's handler runs twice. A non-bubbling relay arrives\nnowhere, and is the bug this exists to close: `<helix-avatar>` relays `load`\nand `error`, `<helix-video>` relays `ended`, `play` and `pause`, all of them\ndeclared public API and all of them otherwise silent in React.\n\nThe name is React's own casing, `onError` rather than `onerror`, because that\nis what a consumer writes and therefore what is in the props bag. See\n`reactNativeProp`."
9679
9733
  },
9734
+ {
9735
+ "kind": "variable",
9736
+ "name": "REACT_CASING",
9737
+ "type": {
9738
+ "text": "Readonly<Record<string, string>>"
9739
+ },
9740
+ "default": "{ canplay: 'onCanPlay', canplaythrough: 'onCanPlayThrough', durationchange: 'onDurationChange', loadeddata: 'onLoadedData', loadedmetadata: 'onLoadedMetadata', loadstart: 'onLoadStart', ratechange: 'onRateChange', scrollend: 'onScrollEnd', timeupdate: 'onTimeUpdate', volumechange: 'onVolumeChange', }",
9741
+ "description": "React's casing for the native events whose names are two words run together.\n\nReact spells these as two words, `onTimeUpdate` for `timeupdate`, and that\nis the prop its own `<video>` typings teach a consumer to write. The media\nnames are the ones `Video` relays from its inner `<video>`; `scrollend` is\n`Scroll Area`'s. A single word needs no entry: its first letter is the whole\nof the rule.\n\n`@fusion.dev/helix-cem` keeps the same table for the typings it writes, and\nits spec holds that copy to this one."
9742
+ },
9680
9743
  {
9681
9744
  "kind": "function",
9682
9745
  "name": "reactNativeProp",
@@ -9763,6 +9826,14 @@
9763
9826
  "module": "src/helix-element/react-bridge.ts"
9764
9827
  }
9765
9828
  },
9829
+ {
9830
+ "kind": "js",
9831
+ "name": "REACT_CASING",
9832
+ "declaration": {
9833
+ "name": "REACT_CASING",
9834
+ "module": "src/helix-element/react-bridge.ts"
9835
+ }
9836
+ },
9766
9837
  {
9767
9838
  "kind": "js",
9768
9839
  "name": "reactNativeProp",
@@ -11172,6 +11243,14 @@
11172
11243
  "module": "./events/events.js"
11173
11244
  }
11174
11245
  },
11246
+ {
11247
+ "kind": "js",
11248
+ "name": "BandDetail",
11249
+ "declaration": {
11250
+ "name": "BandDetail",
11251
+ "module": "./events/events.js"
11252
+ }
11253
+ },
11175
11254
  {
11176
11255
  "kind": "js",
11177
11256
  "name": "CanvasView",
@@ -11316,6 +11395,14 @@
11316
11395
  "module": "./events/events.js"
11317
11396
  }
11318
11397
  },
11398
+ {
11399
+ "kind": "js",
11400
+ "name": "HelixBandEvent",
11401
+ "declaration": {
11402
+ "name": "HelixBandEvent",
11403
+ "module": "./events/events.js"
11404
+ }
11405
+ },
11319
11406
  {
11320
11407
  "kind": "js",
11321
11408
  "name": "HelixBeforeActivateEvent",
@@ -12292,6 +12379,14 @@
12292
12379
  "module": "./mixins/mixin-chart-source/mixin-chart-source.js"
12293
12380
  }
12294
12381
  },
12382
+ {
12383
+ "kind": "js",
12384
+ "name": "POSITION_LABEL",
12385
+ "declaration": {
12386
+ "name": "POSITION_LABEL",
12387
+ "module": "./mixins/mixin-chart-source/mixin-chart-source.js"
12388
+ }
12389
+ },
12295
12390
  {
12296
12391
  "kind": "js",
12297
12392
  "name": "seriesIndex",
@@ -12436,6 +12531,22 @@
12436
12531
  "module": "./mixins/mixin-picker-editing/mixin-picker-editing.js"
12437
12532
  }
12438
12533
  },
12534
+ {
12535
+ "kind": "js",
12536
+ "name": "MixinPickerFeedback",
12537
+ "declaration": {
12538
+ "name": "MixinPickerFeedback",
12539
+ "module": "./mixins/mixin-picker-feedback/mixin-picker-feedback.js"
12540
+ }
12541
+ },
12542
+ {
12543
+ "kind": "js",
12544
+ "name": "MixinPickerFeedbackInterface",
12545
+ "declaration": {
12546
+ "name": "MixinPickerFeedbackInterface",
12547
+ "module": "./mixins/mixin-picker-feedback/mixin-picker-feedback.js"
12548
+ }
12549
+ },
12439
12550
  {
12440
12551
  "kind": "js",
12441
12552
  "name": "MixinPickerField",
@@ -12772,6 +12883,22 @@
12772
12883
  "module": "./utils/chord/chord.js"
12773
12884
  }
12774
12885
  },
12886
+ {
12887
+ "kind": "js",
12888
+ "name": "selectsAll",
12889
+ "declaration": {
12890
+ "name": "selectsAll",
12891
+ "module": "./utils/chord/chord.js"
12892
+ }
12893
+ },
12894
+ {
12895
+ "kind": "js",
12896
+ "name": "clamp",
12897
+ "declaration": {
12898
+ "name": "clamp",
12899
+ "module": "./utils/clamp/clamp.js"
12900
+ }
12901
+ },
12775
12902
  {
12776
12903
  "kind": "js",
12777
12904
  "name": "clockLocale",
@@ -13204,6 +13331,14 @@
13204
13331
  "module": "./utils/host-aria/host-aria.js"
13205
13332
  }
13206
13333
  },
13334
+ {
13335
+ "kind": "js",
13336
+ "name": "hostWords",
13337
+ "declaration": {
13338
+ "name": "hostWords",
13339
+ "module": "./utils/host-words/host-words.js"
13340
+ }
13341
+ },
13207
13342
  {
13208
13343
  "kind": "js",
13209
13344
  "name": "defaultButton",
@@ -13308,6 +13443,30 @@
13308
13443
  "module": "./utils/line-path/line-path.js"
13309
13444
  }
13310
13445
  },
13446
+ {
13447
+ "kind": "js",
13448
+ "name": "EndInSight",
13449
+ "declaration": {
13450
+ "name": "EndInSight",
13451
+ "module": "./utils/load-more/load-more.js"
13452
+ }
13453
+ },
13454
+ {
13455
+ "kind": "js",
13456
+ "name": "endInSight",
13457
+ "declaration": {
13458
+ "name": "endInSight",
13459
+ "module": "./utils/load-more/load-more.js"
13460
+ }
13461
+ },
13462
+ {
13463
+ "kind": "js",
13464
+ "name": "localeOf",
13465
+ "declaration": {
13466
+ "name": "localeOf",
13467
+ "module": "./utils/locale-of/locale-of.js"
13468
+ }
13469
+ },
13311
13470
  {
13312
13471
  "kind": "js",
13313
13472
  "name": "markRegion",
@@ -13348,6 +13507,22 @@
13348
13507
  "module": "./utils/media-copy/media-copy.js"
13349
13508
  }
13350
13509
  },
13510
+ {
13511
+ "kind": "js",
13512
+ "name": "nameText",
13513
+ "declaration": {
13514
+ "name": "nameText",
13515
+ "module": "./utils/name-text/name-text.js"
13516
+ }
13517
+ },
13518
+ {
13519
+ "kind": "js",
13520
+ "name": "nearest",
13521
+ "declaration": {
13522
+ "name": "nearest",
13523
+ "module": "./utils/nearest/nearest.js"
13524
+ }
13525
+ },
13351
13526
  {
13352
13527
  "kind": "js",
13353
13528
  "name": "formatNumber",
@@ -13364,6 +13539,14 @@
13364
13539
  "module": "./utils/number-format/number-format.js"
13365
13540
  }
13366
13541
  },
13542
+ {
13543
+ "kind": "js",
13544
+ "name": "readingText",
13545
+ "declaration": {
13546
+ "name": "readingText",
13547
+ "module": "./utils/number-format/number-format.js"
13548
+ }
13549
+ },
13367
13550
  {
13368
13551
  "kind": "js",
13369
13552
  "name": "onUnlessFalse",
@@ -13372,6 +13555,22 @@
13372
13555
  "module": "./utils/on-unless-false/on-unless-false.js"
13373
13556
  }
13374
13557
  },
13558
+ {
13559
+ "kind": "js",
13560
+ "name": "applyOwnRule",
13561
+ "declaration": {
13562
+ "name": "applyOwnRule",
13563
+ "module": "./utils/own-rule/own-rule.js"
13564
+ }
13565
+ },
13566
+ {
13567
+ "kind": "js",
13568
+ "name": "OwnRule",
13569
+ "declaration": {
13570
+ "name": "OwnRule",
13571
+ "module": "./utils/own-rule/own-rule.js"
13572
+ }
13573
+ },
13375
13574
  {
13376
13575
  "kind": "js",
13377
13576
  "name": "plainClick",
@@ -13388,6 +13587,14 @@
13388
13587
  "module": "./utils/platform/platform.js"
13389
13588
  }
13390
13589
  },
13590
+ {
13591
+ "kind": "js",
13592
+ "name": "onAndroid",
13593
+ "declaration": {
13594
+ "name": "onAndroid",
13595
+ "module": "./utils/platform/platform.js"
13596
+ }
13597
+ },
13391
13598
  {
13392
13599
  "kind": "js",
13393
13600
  "name": "onApple",
@@ -13460,6 +13667,22 @@
13460
13667
  "module": "./utils/read-series/read-series.js"
13461
13668
  }
13462
13669
  },
13670
+ {
13671
+ "kind": "js",
13672
+ "name": "Extremes",
13673
+ "declaration": {
13674
+ "name": "Extremes",
13675
+ "module": "./utils/read-series/read-series.js"
13676
+ }
13677
+ },
13678
+ {
13679
+ "kind": "js",
13680
+ "name": "extremesOf",
13681
+ "declaration": {
13682
+ "name": "extremesOf",
13683
+ "module": "./utils/read-series/read-series.js"
13684
+ }
13685
+ },
13463
13686
  {
13464
13687
  "kind": "js",
13465
13688
  "name": "Row",
@@ -13892,6 +14115,14 @@
13892
14115
  "module": "./utils/scale/ticks.js"
13893
14116
  }
13894
14117
  },
14118
+ {
14119
+ "kind": "js",
14120
+ "name": "ScrollerOptions",
14121
+ "declaration": {
14122
+ "name": "ScrollerOptions",
14123
+ "module": "./utils/scroll-item-into-view/scroll-item-into-view.js"
14124
+ }
14125
+ },
13895
14126
  {
13896
14127
  "kind": "js",
13897
14128
  "name": "ScrollItemOptions",
@@ -13908,6 +14139,14 @@
13908
14139
  "module": "./utils/scroll-item-into-view/scroll-item-into-view.js"
13909
14140
  }
13910
14141
  },
14142
+ {
14143
+ "kind": "js",
14144
+ "name": "scrollingAncestor",
14145
+ "declaration": {
14146
+ "name": "scrollingAncestor",
14147
+ "module": "./utils/scroll-item-into-view/scroll-item-into-view.js"
14148
+ }
14149
+ },
13911
14150
  {
13912
14151
  "kind": "js",
13913
14152
  "name": "lockScroll",
@@ -13940,6 +14179,14 @@
13940
14179
  "module": "./utils/slot-filled/slot-filled.js"
13941
14180
  }
13942
14181
  },
14182
+ {
14183
+ "kind": "js",
14184
+ "name": "SlottedGlyph",
14185
+ "declaration": {
14186
+ "name": "SlottedGlyph",
14187
+ "module": "./utils/slotted-glyph/slotted-glyph.js"
14188
+ }
14189
+ },
13943
14190
  {
13944
14191
  "kind": "js",
13945
14192
  "name": "slottedWords",
@@ -14148,6 +14395,14 @@
14148
14395
  "module": "./utils/typeahead/typeahead.js"
14149
14396
  }
14150
14397
  },
14398
+ {
14399
+ "kind": "js",
14400
+ "name": "typeaheadByWords",
14401
+ "declaration": {
14402
+ "name": "typeaheadByWords",
14403
+ "module": "./utils/typeahead/typeahead.js"
14404
+ }
14405
+ },
14151
14406
  {
14152
14407
  "kind": "js",
14153
14408
  "name": "typesCharacter",
@@ -14292,6 +14547,14 @@
14292
14547
  "module": "./utils/write-time/write-time.js"
14293
14548
  }
14294
14549
  },
14550
+ {
14551
+ "kind": "js",
14552
+ "name": "anchorAt",
14553
+ "declaration": {
14554
+ "name": "anchorAt",
14555
+ "module": "./utils/written-list/written-list.js"
14556
+ }
14557
+ },
14295
14558
  {
14296
14559
  "kind": "js",
14297
14560
  "name": "commaList",
@@ -14300,6 +14563,22 @@
14300
14563
  "module": "./utils/written-list/written-list.js"
14301
14564
  }
14302
14565
  },
14566
+ {
14567
+ "kind": "js",
14568
+ "name": "everyState",
14569
+ "declaration": {
14570
+ "name": "everyState",
14571
+ "module": "./utils/written-list/written-list.js"
14572
+ }
14573
+ },
14574
+ {
14575
+ "kind": "js",
14576
+ "name": "inRowOrder",
14577
+ "declaration": {
14578
+ "name": "inRowOrder",
14579
+ "module": "./utils/written-list/written-list.js"
14580
+ }
14581
+ },
14303
14582
  {
14304
14583
  "kind": "js",
14305
14584
  "name": "pressedValue",
@@ -14682,6 +14961,15 @@
14682
14961
  ],
14683
14962
  "helix": {}
14684
14963
  },
14964
+ {
14965
+ "kind": "variable",
14966
+ "name": "POSITION_LABEL",
14967
+ "type": {
14968
+ "text": "string"
14969
+ },
14970
+ "default": "'{position} of {count}'",
14971
+ "description": "The words a chart says a reading's place in by default, such as \"2 of 12\":\nevery chart's `position-label`, and Sparkline's, which is no chart source.\nThe property keeps the words written out, which is what its reference page\nshows as the default; a spec holds the two together."
14972
+ },
14685
14973
  {
14686
14974
  "kind": "mixin",
14687
14975
  "description": "The half of a chart that is about finding its numbers rather than drawing.\n\n**A mixin rather than a controller**, by the rule the tier notes give: it\nintroduces `for` and `label`, which a consumer writes. `SourceController` is\nthe other half and stays a controller, because resolving an id and watching\nfor changes is behavior nobody calls.\n\n**`Legend` deliberately does not take this.** It reads a table and has no\ndrawing to title, so `label` would be API it never uses, and a mixin applied\nfor four fifths of a fit is how a shared thing starts drifting.",
@@ -14979,6 +15267,14 @@
14979
15267
  "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
14980
15268
  }
14981
15269
  },
15270
+ {
15271
+ "kind": "js",
15272
+ "name": "POSITION_LABEL",
15273
+ "declaration": {
15274
+ "name": "POSITION_LABEL",
15275
+ "module": "src/mixins/mixin-chart-source/mixin-chart-source.ts"
15276
+ }
15277
+ },
14982
15278
  {
14983
15279
  "kind": "js",
14984
15280
  "name": "MixinChartSource",
@@ -16405,7 +16701,27 @@
16405
16701
  }
16406
16702
  }
16407
16703
  ],
16408
- "description": "Moves focus to a neighbor's dismiss control if removing this element\ndropped it, or, with no neighbor, to the tab stop beside where it was."
16704
+ "description": "Moves focus to a neighbor's dismiss control if removing this element\ndropped it, or, with no neighbor, to the tab stop beside where it was.\n\n**The tab stop beside waits a frame.** A container that owns its\nmembers' focus settles it in a microtask after the event: a Tag Group\nwhose last tag goes focuses its `empty` part. Handed on at once, focus\nleft the group before the group could look, and its reader never heard\nthat the set was empty. A neighbor of the same kind is still taken at\nonce, because no container puts focus anywhere better."
16705
+ },
16706
+ {
16707
+ "kind": "field",
16708
+ "name": "handOff",
16709
+ "type": {
16710
+ "text": "((late: boolean) => void) | undefined"
16711
+ },
16712
+ "privacy": "private",
16713
+ "default": "undefined",
16714
+ "description": "The hand-off waiting for this element to leave, if one is."
16715
+ },
16716
+ {
16717
+ "kind": "field",
16718
+ "name": "forgetFocus",
16719
+ "type": {
16720
+ "text": "(() => void) | undefined"
16721
+ },
16722
+ "privacy": "private",
16723
+ "default": "undefined",
16724
+ "description": "Stops waiting for the hand-off, once focus has moved anywhere."
16409
16725
  }
16410
16726
  ],
16411
16727
  "attributes": [
@@ -17267,54 +17583,200 @@
17267
17583
  },
17268
17584
  {
17269
17585
  "kind": "javascript-module",
17270
- "path": "src/mixins/mixin-picker-field/mixin-picker-field.ts",
17586
+ "path": "src/mixins/mixin-picker-feedback/mixin-picker-feedback.ts",
17271
17587
  "declarations": [
17272
17588
  {
17273
17589
  "kind": "class",
17274
- "description": "The public surface `MixinPickerField` adds.\n\nDeclared separately because TypeScript cannot emit declarations for an\nanonymous class that has private members (TS4094). Casting the mixin's return\nto this interface keeps the internals private and the build working.",
17275
- "name": "MixinPickerFieldInterface",
17590
+ "description": "",
17591
+ "name": "MixinPickerFeedbackInterface",
17276
17592
  "members": [
17277
17593
  {
17278
17594
  "kind": "field",
17279
- "name": "badInputMessage",
17595
+ "name": "feedback",
17280
17596
  "type": {
17281
- "text": "string | undefined"
17597
+ "text": "string"
17282
17598
  },
17283
- "description": "The message shown when the field holds text the picker cannot read."
17599
+ "description": "A message under the picker, such as what is wrong with the answer.\n\nWhile set, the picker is invalid and does not submit, as a field's\n`feedback` is, it is marked invalid to a reader and to CSS, and the\ncontrols a reader answers with are described by it."
17284
17600
  },
17285
17601
  {
17286
17602
  "kind": "field",
17287
- "name": "anchor",
17603
+ "name": "invalid",
17288
17604
  "type": {
17289
- "text": "HTMLElement | null"
17605
+ "text": "boolean"
17290
17606
  },
17291
- "privacy": "protected",
17292
- "description": "What the label points at and focus lands on.\n\nThe text control, unless a family says otherwise: Color Input in `swatch`\nhas no text control, and its trigger is the only thing in the field a label\ncan name.",
17293
- "readonly": true
17607
+ "description": "Whether the answer fails validation, marked on the controls a reader\nanswers with and as `:state(invalid)`.\n\nA flag a field that wraps the picker sets, since that field owns the\nlabel, the hint and the message; on its own, `feedback` both marks the\npicker and says why."
17294
17608
  },
17295
17609
  {
17296
17610
  "kind": "field",
17297
- "name": "answers",
17611
+ "name": "marked",
17298
17612
  "type": {
17299
- "text": "readonly string[] | undefined"
17613
+ "text": "boolean"
17300
17614
  },
17301
17615
  "privacy": "protected",
17302
- "description": "Each answer the field holds, where it holds several, or `undefined` where\nits value is one answer. Several are sent one entry each; see\n`reportValues`.",
17616
+ "description": "Whether a reader is told the answer is wrong: `invalid`, or `feedback`.",
17303
17617
  "readonly": true
17304
17618
  },
17305
17619
  {
17306
- "kind": "field",
17307
- "name": "control",
17308
- "type": {
17309
- "text": "HTMLInputElement | null"
17310
- },
17620
+ "kind": "method",
17621
+ "name": "renderPickerFeedback",
17311
17622
  "privacy": "protected",
17312
- "description": "The text input, or `null` where there is no DOM to hold one.",
17313
- "readonly": true
17314
- },
17315
- {
17316
- "kind": "field",
17317
- "name": "display",
17623
+ "return": {
17624
+ "type": {
17625
+ "text": "TemplateResult | typeof nothing"
17626
+ }
17627
+ },
17628
+ "description": "The `feedback` line, or nothing while there is none."
17629
+ }
17630
+ ],
17631
+ "helix": {}
17632
+ },
17633
+ {
17634
+ "kind": "mixin",
17635
+ "description": "`feedback` and `invalid` for a picker that stands on its own as a form\ncontrol: Color Picker, Date Picker and Time Picker.\n\n**One mark for both.** `invalid` is the flag a wrapping field sets, and\n`feedback` is the message a picker on its own shows; either one marks the\npicker invalid on its internals (`aria-invalid` on the host) and as\n`:state(invalid)`, and each picker marks the controls it draws by `marked`.\nMeasured on Color Picker before this: `feedback` set `customError` in its\nvalidity while every control reported `invalid: false`.\n\nThe message is the validity's too, as a field's `feedback` is, through\n`HelixFormElement`'s `validityFeedback`, so a form with one does not submit.",
17636
+ "name": "MixinPickerFeedback",
17637
+ "members": [
17638
+ {
17639
+ "kind": "field",
17640
+ "name": "feedback",
17641
+ "type": {
17642
+ "text": "string"
17643
+ },
17644
+ "default": "''",
17645
+ "description": "A message under the picker, such as what is wrong with the answer.\n\nWhile set, the picker is invalid and does not submit, as a field's\n`feedback` is, it is marked invalid to a reader and to CSS, and the\ncontrols a reader answers with are described by it.",
17646
+ "attribute": "feedback"
17647
+ },
17648
+ {
17649
+ "kind": "field",
17650
+ "name": "invalid",
17651
+ "type": {
17652
+ "text": "boolean"
17653
+ },
17654
+ "default": "false",
17655
+ "description": "Whether the answer fails validation, marked on the controls a reader\nanswers with and as `:state(invalid)`.\n\nA flag a field that wraps the picker sets, since that field owns the\nlabel, the hint and the message; on its own, `feedback` both marks the\npicker and says why.",
17656
+ "attribute": "invalid",
17657
+ "reflects": true
17658
+ },
17659
+ {
17660
+ "kind": "field",
17661
+ "name": "marked",
17662
+ "type": {
17663
+ "text": "boolean"
17664
+ },
17665
+ "privacy": "protected",
17666
+ "description": "Whether a reader is told the answer is wrong: `invalid`, or `feedback`.",
17667
+ "readonly": true
17668
+ },
17669
+ {
17670
+ "kind": "method",
17671
+ "name": "renderPickerFeedback",
17672
+ "privacy": "protected",
17673
+ "return": {
17674
+ "type": {
17675
+ "text": "TemplateResult | typeof nothing"
17676
+ }
17677
+ },
17678
+ "description": "The `feedback` line, or nothing while there is none."
17679
+ }
17680
+ ],
17681
+ "attributes": [
17682
+ {
17683
+ "name": "feedback",
17684
+ "type": {
17685
+ "text": "string"
17686
+ },
17687
+ "default": "''",
17688
+ "description": "A message under the picker, such as what is wrong with the answer.\n\nWhile set, the picker is invalid and does not submit, as a field's\n`feedback` is, it is marked invalid to a reader and to CSS, and the\ncontrols a reader answers with are described by it.",
17689
+ "fieldName": "feedback"
17690
+ },
17691
+ {
17692
+ "name": "invalid",
17693
+ "type": {
17694
+ "text": "boolean"
17695
+ },
17696
+ "default": "false",
17697
+ "description": "Whether the answer fails validation, marked on the controls a reader\nanswers with and as `:state(invalid)`.\n\nA flag a field that wraps the picker sets, since that field owns the\nlabel, the hint and the message; on its own, `feedback` both marks the\npicker and says why.",
17698
+ "fieldName": "invalid"
17699
+ }
17700
+ ],
17701
+ "parameters": [
17702
+ {
17703
+ "name": "Base",
17704
+ "type": {
17705
+ "text": "T"
17706
+ }
17707
+ }
17708
+ ]
17709
+ }
17710
+ ],
17711
+ "exports": [
17712
+ {
17713
+ "kind": "js",
17714
+ "name": "MixinPickerFeedbackInterface",
17715
+ "declaration": {
17716
+ "name": "MixinPickerFeedbackInterface",
17717
+ "module": "src/mixins/mixin-picker-feedback/mixin-picker-feedback.ts"
17718
+ }
17719
+ },
17720
+ {
17721
+ "kind": "js",
17722
+ "name": "MixinPickerFeedback",
17723
+ "declaration": {
17724
+ "name": "MixinPickerFeedback",
17725
+ "module": "src/mixins/mixin-picker-feedback/mixin-picker-feedback.ts"
17726
+ }
17727
+ }
17728
+ ]
17729
+ },
17730
+ {
17731
+ "kind": "javascript-module",
17732
+ "path": "src/mixins/mixin-picker-field/mixin-picker-field.ts",
17733
+ "declarations": [
17734
+ {
17735
+ "kind": "class",
17736
+ "description": "The public surface `MixinPickerField` adds.\n\nDeclared separately because TypeScript cannot emit declarations for an\nanonymous class that has private members (TS4094). Casting the mixin's return\nto this interface keeps the internals private and the build working.",
17737
+ "name": "MixinPickerFieldInterface",
17738
+ "members": [
17739
+ {
17740
+ "kind": "field",
17741
+ "name": "badInputMessage",
17742
+ "type": {
17743
+ "text": "string | undefined"
17744
+ },
17745
+ "description": "The message shown when the field holds text the picker cannot read."
17746
+ },
17747
+ {
17748
+ "kind": "field",
17749
+ "name": "anchor",
17750
+ "type": {
17751
+ "text": "HTMLElement | null"
17752
+ },
17753
+ "privacy": "protected",
17754
+ "description": "What the label points at and focus lands on.\n\nThe text control, unless a family says otherwise: Color Input in `swatch`\nhas no text control, and its trigger is the only thing in the field a label\ncan name.",
17755
+ "readonly": true
17756
+ },
17757
+ {
17758
+ "kind": "field",
17759
+ "name": "answers",
17760
+ "type": {
17761
+ "text": "readonly string[] | undefined"
17762
+ },
17763
+ "privacy": "protected",
17764
+ "description": "Each answer the field holds, where it holds several, or `undefined` where\nits value is one answer. Several are sent one entry each; see\n`reportValues`.",
17765
+ "readonly": true
17766
+ },
17767
+ {
17768
+ "kind": "field",
17769
+ "name": "control",
17770
+ "type": {
17771
+ "text": "HTMLInputElement | null"
17772
+ },
17773
+ "privacy": "protected",
17774
+ "description": "The text input, or `null` where there is no DOM to hold one.",
17775
+ "readonly": true
17776
+ },
17777
+ {
17778
+ "kind": "field",
17779
+ "name": "display",
17318
17780
  "type": {
17319
17781
  "text": "string"
17320
17782
  },
@@ -17485,24 +17947,6 @@
17485
17947
  ],
17486
17948
  "helix": {}
17487
17949
  },
17488
- {
17489
- "kind": "function",
17490
- "name": "verdictFlags",
17491
- "return": {
17492
- "type": {
17493
- "text": "[flags: ValidityStateFlags, message: string] | null"
17494
- }
17495
- },
17496
- "parameters": [
17497
- {
17498
- "name": "verdict",
17499
- "type": {
17500
- "text": "PickerVerdict"
17501
- }
17502
- }
17503
- ],
17504
- "description": "A verdict as the flags and the message `setValidity` takes, or `null` where\nthere is nothing wrong."
17505
- },
17506
17950
  {
17507
17951
  "kind": "mixin",
17508
17952
  "description": "Grafts a floating picker onto a text field, and the protocol between them.\n\n**Three families are this shape and were three copies of it.** Date Input,\nTime Input and Color Input each render a text control, a trigger and a\n`popover=\"manual\"` surface holding a picker that already exists on its own,\nand each owed the same wiring: the panel that floats the surface against the\nfield, the Escape that shuts it and hands the caret back, the restore that\nputs the control back where a refusal left the value, and the sync that\nreports the value and a verdict the platform cannot reach. Measured on the\ndiff that made the lift, 14 Sep 2026, comments counted: 223 lines left Date\nInput and 32 came back, 185 left Time Input and 32 came back, 87 left\nColor Input and 11 came back.\n\n**What it does not own is the picker, the typing or the value's shape.**\nWhich element floats in the surface, what a keystroke means, what the field\nshows when idle and what is wrong with a value are each the family's, which\nis why `display` and `validate` are seams here and the template stays where\nit was. A family renders `field`, `control`, `trigger` and `surface`; this\nreads them.\n\n**The parts this reads are the host's, so the name is a parameter.** A\nliteral `[part=\"control\"]` here would be a lookup nothing in this file\nrenders, which is the fault `helix component`'s `selectors` exists to catch\nand would rightly report. `MixinField.reportRequired` takes its anchor the\nsame way, and for the same reason: a mixin reads a part out of whatever host\napplies it.\n\n**Opening on a press into the text, `readOnly` and the idle rendering are\nnot here.** They are `MixinPickerEditing`'s, because Color Input takes\nneither of the first and last: a hex is pasted and read at a glance, so its\nfield neither renders nor opens when pressed. Color Input declares its own\n`readOnly`.\n\n**Three things the two typed families share stay with them.** `renderTrigger`\ndiffers only by its icon and would still be the wrong thing to lift: a part a\nmixin renders belongs to every host that applies it, which is how\n`helix component`'s `parts` reads a chain, so `trigger-icon` would be\ncredited to Color Input, whose trigger is a swatch and documents no such\npart. `renderTag` names its part after the family, `date` or `time`, and\nwrites the label on the remove control differently in each. `valueAsDate`\nand `valueAsNumber` are public, convert a different way, and carry a\ndifferent note onto each family's page, which a mixin could only carry as\none.\n\n**Four more families look like this and are not.** Select has no text to\nhand the caret to: its panel hangs off the trigger and dismissal refocuses\nthat. Combobox has the text and a different agreement with it: a press\nanywhere in the field is inside, the gap is four, Escape closes without the\n`returning` flag because nothing there opens on arrival, and the control is\nreconciled against a completion rather than restored to a value. Input and\nTextarea open nothing, and their `readOnly` is the native attribute rather\nthan a gate on `requestValue`, so a programmatic change still lands. What\nthose two share with this is `focus()` and the platform's verdict copied in\n`sync`, which is not a protocol.",
@@ -17752,17 +18196,17 @@
17752
18196
  "exports": [
17753
18197
  {
17754
18198
  "kind": "js",
17755
- "name": "MixinPickerFieldInterface",
18199
+ "name": "PickerVerdict",
17756
18200
  "declaration": {
17757
- "name": "MixinPickerFieldInterface",
17758
- "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
18201
+ "name": "PickerVerdict",
18202
+ "module": "../../utils/verdict-flags/verdict-flags.js"
17759
18203
  }
17760
18204
  },
17761
18205
  {
17762
18206
  "kind": "js",
17763
- "name": "verdictFlags",
18207
+ "name": "MixinPickerFieldInterface",
17764
18208
  "declaration": {
17765
- "name": "verdictFlags",
18209
+ "name": "MixinPickerFieldInterface",
17766
18210
  "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
17767
18211
  }
17768
18212
  },
@@ -17930,6 +18374,13 @@
17930
18374
  "default": "false",
17931
18375
  "description": "Whether the value is moving because a segment moved it."
17932
18376
  },
18377
+ {
18378
+ "kind": "field",
18379
+ "name": "touchApple",
18380
+ "privacy": "private",
18381
+ "readonly": true,
18382
+ "description": "Whether this is an iPhone or an iPad, read once on the client, where a\nsegment is a `textbox` and not a `spinbutton`: VoiceOver on iOS cannot\nfocus a spin button, which React Aria's date segments and Number Input\nanswer the same way. A server has no navigator and draws spin buttons."
18383
+ },
17933
18384
  {
17934
18385
  "kind": "field",
17935
18386
  "name": "entered",
@@ -20185,7 +20636,7 @@
20185
20636
  }
20186
20637
  }
20187
20638
  ],
20188
- "description": "Whether an element has an accessible name, by the routes a page names a\ncontrol: its own `aria-label`, `aria-labelledby` or `title`, a `<label>`, a\n`placeholder`, and its content where its role is named by its content.\n\n**An estimate, cheap on purpose.** It answers whether any route holds words,\nwhich is what the warning is about, and leaves the order the routes win in\nto the browser.\n\n**What the control shows as its value is no name**, so the words in\n`shown` count for no route. A Select with no label names its trigger by the\npart that shows the choice, and while nothing is chosen that part shows the\nplaceholder, \"Choose\", which says nothing about what is being chosen."
20639
+ "description": "Whether an element has an accessible name, by the routes a page names a\ncontrol: its own `aria-label`, `aria-labelledby` or `title`, a `<label>`,\nand its content where its role is named by its content.\n\n**A `placeholder` counts for no route.** A browser names a control by it\nwhere nothing else does, and it is gone from the screen once a person\ntypes, so a field named by it alone loses its label as it is filled.\nReact Aria's fields warn on the same terms.\n\n**An estimate, cheap on purpose.** It answers whether any route holds words,\nwhich is what the warning is about, and leaves the order the routes win in\nto the browser.\n\n**What the control shows as its value is no name**, so the words in\n`shown` count for no route. A Select with no label names its trigger by the\npart that shows the choice, and while nothing is chosen that part shows the\nplaceholder, \"Choose\", which says nothing about what is being chosen."
20189
20640
  },
20190
20641
  {
20191
20642
  "kind": "function",
@@ -20251,6 +20702,70 @@
20251
20702
  }
20252
20703
  ]
20253
20704
  },
20705
+ {
20706
+ "kind": "javascript-module",
20707
+ "path": "src/utils/audit-source/audit-source-off.ts",
20708
+ "declarations": [
20709
+ {
20710
+ "kind": "function",
20711
+ "name": "auditSource",
20712
+ "description": "The missing-table warning in a production build: nothing.\n\n`#audit-source` resolves here unless the bundler or runtime asks for the\n`development` condition, so a production build carries none of the audit's\ncode. The signature is the audit's, so a call site reads the same in both\nbuilds. See `audit-source.ts`.",
20713
+ "type": {
20714
+ "text": "typeof audit"
20715
+ }
20716
+ }
20717
+ ],
20718
+ "exports": [
20719
+ {
20720
+ "kind": "js",
20721
+ "name": "auditSource",
20722
+ "declaration": {
20723
+ "name": "auditSource",
20724
+ "module": "src/utils/audit-source/audit-source-off.ts"
20725
+ }
20726
+ }
20727
+ ]
20728
+ },
20729
+ {
20730
+ "kind": "javascript-module",
20731
+ "path": "src/utils/audit-source/audit-source.ts",
20732
+ "declarations": [
20733
+ {
20734
+ "kind": "function",
20735
+ "name": "auditSource",
20736
+ "return": {
20737
+ "type": {
20738
+ "text": "void"
20739
+ }
20740
+ },
20741
+ "parameters": [
20742
+ {
20743
+ "name": "host",
20744
+ "type": {
20745
+ "text": "HTMLElement & { for: string }"
20746
+ }
20747
+ },
20748
+ {
20749
+ "name": "table",
20750
+ "type": {
20751
+ "text": "() => Element | null"
20752
+ }
20753
+ }
20754
+ ],
20755
+ "description": "Reports a chart, a legend or a sparkline whose `for` names no table once the\npage has loaded, the one mistake that leaves it drawing nothing and saying\nnothing.\n\n**Read a task after `load`**, so a table later in the markup, or one a\nscript writes as the page starts, counts. A table a framework renders later\nthan that is reported, and the chart still draws it when it arrives.\n\n**In a development build only**, as `missing-name` is: every chart would pay\nfor a sentence meant for the person writing the page. Core imports it as\n`#audit-source`, which `package.json` resolves here under the `development`\ncondition and to `audit-source-off.ts`, which does nothing, everywhere else.\n\n`table` answers what `for` resolves to now: the table, or null."
20756
+ }
20757
+ ],
20758
+ "exports": [
20759
+ {
20760
+ "kind": "js",
20761
+ "name": "auditSource",
20762
+ "declaration": {
20763
+ "name": "auditSource",
20764
+ "module": "src/utils/audit-source/audit-source.ts"
20765
+ }
20766
+ }
20767
+ ]
20768
+ },
20254
20769
  {
20255
20770
  "kind": "javascript-module",
20256
20771
  "path": "src/utils/calendar/calendar.ts",
@@ -20696,6 +21211,52 @@
20696
21211
  }
20697
21212
  ]
20698
21213
  },
21214
+ {
21215
+ "kind": "javascript-module",
21216
+ "path": "src/utils/call-listener/call-listener.ts",
21217
+ "declarations": [
21218
+ {
21219
+ "kind": "function",
21220
+ "name": "callListener",
21221
+ "return": {
21222
+ "type": {
21223
+ "text": "unknown"
21224
+ }
21225
+ },
21226
+ "parameters": [
21227
+ {
21228
+ "name": "slot",
21229
+ "type": {
21230
+ "text": "symbol"
21231
+ }
21232
+ },
21233
+ {
21234
+ "name": "kind",
21235
+ "type": {
21236
+ "text": "string"
21237
+ }
21238
+ },
21239
+ {
21240
+ "name": "after",
21241
+ "type": {
21242
+ "text": "string"
21243
+ }
21244
+ }
21245
+ ],
21246
+ "description": "Calls the function in `slot` with `args`, and answers what it returned.\n\n**A listener that throws never breaks the caller.** The error is printed\nonce per `kind`, saying what happened instead (`after`), and the answer is\n`undefined`, as it is where nothing listens."
21247
+ }
21248
+ ],
21249
+ "exports": [
21250
+ {
21251
+ "kind": "js",
21252
+ "name": "callListener",
21253
+ "declaration": {
21254
+ "name": "callListener",
21255
+ "module": "src/utils/call-listener/call-listener.ts"
21256
+ }
21257
+ }
21258
+ ]
21259
+ },
20699
21260
  {
20700
21261
  "kind": "javascript-module",
20701
21262
  "path": "src/utils/capture-pointer/capture-pointer.ts",
@@ -20829,7 +21390,25 @@
20829
21390
  }
20830
21391
  ],
20831
21392
  "description": "Whether a press is the chord, modifiers and all.\n\n`mod` is one key, the platform's: Command where `apple` and Control\nelsewhere. The other one is then checked like any modifier the chord does\nnot name, so Control and Command together do not answer `mod+k`. `cmd` and\n`meta` are Command, `alt` and `opt` are Option.\n\n**A symbol is typed with Shift, so Shift says nothing about it.** On a US\nlayout `?` arrives as `?` with `shiftKey` set, and a chord of `?` that\nrefused Shift could never be pressed at all. A letter has a shifted form of\nits own, so `a` still refuses Shift and `shift+a` still asks for it.\n\nEvery other modifier is checked in both directions, so `mod+k` is not\nanswered by `shift+mod+k`: a chord a reader did not press is a chord that\nshould go to whatever did want it."
20832
- }
21393
+ },
21394
+ {
21395
+ "kind": "function",
21396
+ "name": "selectsAll",
21397
+ "return": {
21398
+ "type": {
21399
+ "text": "boolean"
21400
+ }
21401
+ },
21402
+ "parameters": [
21403
+ {
21404
+ "name": "press",
21405
+ "type": {
21406
+ "text": "{\n readonly altKey: boolean\n readonly ctrlKey: boolean\n readonly key: string\n readonly metaKey: boolean\n}"
21407
+ }
21408
+ }
21409
+ ],
21410
+ "description": "Whether a key press is Control+A, or Command+A on an Apple keyboard: the\npress that selects every item of a multiple selection.\n\nList, Tree, Listbox, Data Table and Virtual List each wrote the test. Either\nmodifier counts on any platform, as they did, and Alt held is another\nshortcut."
21411
+ }
20833
21412
  ],
20834
21413
  "exports": [
20835
21414
  {
@@ -20863,6 +21442,60 @@
20863
21442
  "name": "matchesChord",
20864
21443
  "module": "src/utils/chord/chord.ts"
20865
21444
  }
21445
+ },
21446
+ {
21447
+ "kind": "js",
21448
+ "name": "selectsAll",
21449
+ "declaration": {
21450
+ "name": "selectsAll",
21451
+ "module": "src/utils/chord/chord.ts"
21452
+ }
21453
+ }
21454
+ ]
21455
+ },
21456
+ {
21457
+ "kind": "javascript-module",
21458
+ "path": "src/utils/clamp/clamp.ts",
21459
+ "declarations": [
21460
+ {
21461
+ "kind": "function",
21462
+ "name": "clamp",
21463
+ "return": {
21464
+ "type": {
21465
+ "text": "number"
21466
+ }
21467
+ },
21468
+ "parameters": [
21469
+ {
21470
+ "name": "value",
21471
+ "type": {
21472
+ "text": "number"
21473
+ }
21474
+ },
21475
+ {
21476
+ "name": "low",
21477
+ "type": {
21478
+ "text": "number"
21479
+ }
21480
+ },
21481
+ {
21482
+ "name": "high",
21483
+ "type": {
21484
+ "text": "number"
21485
+ }
21486
+ }
21487
+ ],
21488
+ "description": "`value` held between `low` and `high`.\n\nWritten four times before: Lightbox's zoom, Scroll Area's scrollbar, Color\nPicker's channels and core's color reading."
21489
+ }
21490
+ ],
21491
+ "exports": [
21492
+ {
21493
+ "kind": "js",
21494
+ "name": "clamp",
21495
+ "declaration": {
21496
+ "name": "clamp",
21497
+ "module": "src/utils/clamp/clamp.ts"
21498
+ }
20866
21499
  }
20867
21500
  ]
20868
21501
  },
@@ -22867,6 +23500,44 @@
22867
23500
  }
22868
23501
  ]
22869
23502
  },
23503
+ {
23504
+ "kind": "javascript-module",
23505
+ "path": "src/utils/host-words/host-words.ts",
23506
+ "declarations": [
23507
+ {
23508
+ "kind": "function",
23509
+ "name": "hostWords",
23510
+ "return": {
23511
+ "type": {
23512
+ "text": "string"
23513
+ }
23514
+ },
23515
+ "parameters": [
23516
+ {
23517
+ "name": "host",
23518
+ "type": {
23519
+ "text": "HTMLElement & { labels?: NodeList | null }"
23520
+ }
23521
+ },
23522
+ {
23523
+ "name": "own",
23524
+ "default": "''"
23525
+ }
23526
+ ],
23527
+ "description": "The words that name a host, for a part inside its shadow root that must\ncarry the same name: the list a Select or a Time Picker opens.\n\n**Words rather than a reference**, because the part is inside the host's\nshadow root, and neither an IDREF on the page nor the host's labels reach\nit. Read in the order a browser names the host: its `aria-labelledby`, its\n`aria-label`, then `own`, the name the component draws itself (its `label`),\nthen a `<label>` for it. Each element's words are read as a name reads\nthem, so hidden text is left out and runs of white space are one space.\n\nEmpty where nothing names the host, which leaves the fallback to the caller."
23528
+ }
23529
+ ],
23530
+ "exports": [
23531
+ {
23532
+ "kind": "js",
23533
+ "name": "hostWords",
23534
+ "declaration": {
23535
+ "name": "hostWords",
23536
+ "module": "src/utils/host-words/host-words.ts"
23537
+ }
23538
+ }
23539
+ ]
23540
+ },
22870
23541
  {
22871
23542
  "kind": "javascript-module",
22872
23543
  "path": "src/utils/implicit-submit/implicit-submit.ts",
@@ -23199,6 +23870,78 @@
23199
23870
  }
23200
23871
  ]
23201
23872
  },
23873
+ {
23874
+ "kind": "javascript-module",
23875
+ "path": "src/utils/load-more/load-more.ts",
23876
+ "declarations": [
23877
+ {
23878
+ "kind": "function",
23879
+ "name": "endInSight",
23880
+ "return": {
23881
+ "type": {
23882
+ "text": "boolean"
23883
+ }
23884
+ },
23885
+ "parameters": [
23886
+ {
23887
+ "name": "{ askedAt, count, remaining, screen }",
23888
+ "type": {
23889
+ "text": "EndInSight"
23890
+ }
23891
+ }
23892
+ ],
23893
+ "description": "Whether a reader has come within one screen of the end of a set, and the\nset has not already asked for more at this length: React Aria's\n`onLoadMore` rule.\n\n**Once for each length**, so a scroll that goes on asks again only after the\nnext page arrived and the length moved. False while the box has no height or\nthe set no items, so a list that has not been laid out asks for nothing.\nThe caller keeps `askedAt`, setting it to `count` when this answers true.\n\nListbox asks this of its own scroll, and `VirtualizeController.endInSight`\nof the rows it lays out, so the two lists ask on the same terms."
23894
+ }
23895
+ ],
23896
+ "exports": [
23897
+ {
23898
+ "kind": "js",
23899
+ "name": "endInSight",
23900
+ "declaration": {
23901
+ "name": "endInSight",
23902
+ "module": "src/utils/load-more/load-more.ts"
23903
+ }
23904
+ }
23905
+ ]
23906
+ },
23907
+ {
23908
+ "kind": "javascript-module",
23909
+ "path": "src/utils/locale-of/locale-of.ts",
23910
+ "declarations": [
23911
+ {
23912
+ "kind": "function",
23913
+ "name": "localeOf",
23914
+ "return": {
23915
+ "type": {
23916
+ "text": "string"
23917
+ }
23918
+ },
23919
+ "parameters": [
23920
+ {
23921
+ "name": "element",
23922
+ "type": {
23923
+ "text": "Element"
23924
+ }
23925
+ },
23926
+ {
23927
+ "name": "own",
23928
+ "default": "''"
23929
+ }
23930
+ ],
23931
+ "description": "The locale an element speaks: `own`, the element's own `locale` property,\nwhere one is set, and otherwise the `lang` of the nearest element with one,\nread out through any shadow root the element is drawn in.\n\n**The page's language is the default a reader expects.** A date picker on a\npage written `lang=\"de\"` that names its months in English and starts its\nweeks on Sunday is a widget that ignored the one place the page said what\nlanguage it is in; Shoelace and Web Awesome read the same attribute.\n`lang=\"\"` is the page saying it does not know, and answers empty.\n\nEmpty where nothing says, which every `Intl` call here takes as the\nruntime's own locale, and empty for a bare language the runtime already\nspeaks (see `usable`). Read when asked rather than watched, so a page that\nchanges its `lang` is answered in the new one on the element's next render.\nA server shim with no `closest` answers `own`, or empty."
23932
+ }
23933
+ ],
23934
+ "exports": [
23935
+ {
23936
+ "kind": "js",
23937
+ "name": "localeOf",
23938
+ "declaration": {
23939
+ "name": "localeOf",
23940
+ "module": "src/utils/locale-of/locale-of.ts"
23941
+ }
23942
+ }
23943
+ ]
23944
+ },
23202
23945
  {
23203
23946
  "kind": "javascript-module",
23204
23947
  "path": "src/utils/mark-region/mark-region.ts",
@@ -23359,6 +24102,46 @@
23359
24102
  }
23360
24103
  ]
23361
24104
  },
24105
+ {
24106
+ "kind": "javascript-module",
24107
+ "path": "src/utils/nearest/nearest.ts",
24108
+ "declarations": [
24109
+ {
24110
+ "kind": "function",
24111
+ "name": "nearest",
24112
+ "return": {
24113
+ "type": {
24114
+ "text": "number | undefined"
24115
+ }
24116
+ },
24117
+ "parameters": [
24118
+ {
24119
+ "name": "values",
24120
+ "type": {
24121
+ "text": "Iterable<number>"
24122
+ }
24123
+ },
24124
+ {
24125
+ "name": "target",
24126
+ "type": {
24127
+ "text": "number"
24128
+ }
24129
+ }
24130
+ ],
24131
+ "description": "The value in `values` nearest `target`, the first of two at the same\ndistance, or `undefined` for none.\n\nDrawer's `snapTo` and Rating's reading of a score between its steps each\nwrote this loop. Given in ascending order, a target halfway between two\ngoes to the lower, which is the rule both kept."
24132
+ }
24133
+ ],
24134
+ "exports": [
24135
+ {
24136
+ "kind": "js",
24137
+ "name": "nearest",
24138
+ "declaration": {
24139
+ "name": "nearest",
24140
+ "module": "src/utils/nearest/nearest.ts"
24141
+ }
24142
+ }
24143
+ ]
24144
+ },
23362
24145
  {
23363
24146
  "kind": "javascript-module",
23364
24147
  "path": "src/utils/number-format/number-format.ts",
@@ -23392,6 +24175,41 @@
23392
24175
  ],
23393
24176
  "description": "Writes a number in a locale with `Intl.NumberFormat` options."
23394
24177
  },
24178
+ {
24179
+ "kind": "function",
24180
+ "name": "readingText",
24181
+ "return": {
24182
+ "type": {
24183
+ "text": "string"
24184
+ }
24185
+ },
24186
+ "parameters": [
24187
+ {
24188
+ "name": "value",
24189
+ "type": {
24190
+ "text": "number"
24191
+ }
24192
+ },
24193
+ {
24194
+ "name": "share",
24195
+ "type": {
24196
+ "text": "number"
24197
+ }
24198
+ },
24199
+ {
24200
+ "name": "locale",
24201
+ "default": "''"
24202
+ },
24203
+ {
24204
+ "name": "options",
24205
+ "optional": true,
24206
+ "type": {
24207
+ "text": "Intl.NumberFormatOptions"
24208
+ }
24209
+ }
24210
+ ],
24211
+ "description": "A reading in words: `value` written with `options` where they say another\nstyle, and otherwise `share`, from 0 to 1, as a percentage, whole unless\n`options` say more.\n\nMeter and Progress each wrote this, with the value each holds to its range\nand the share of it that is filled."
24212
+ },
23395
24213
  {
23396
24214
  "kind": "function",
23397
24215
  "name": "parseNumber",
@@ -23431,6 +24249,14 @@
23431
24249
  "module": "src/utils/number-format/number-format.ts"
23432
24250
  }
23433
24251
  },
24252
+ {
24253
+ "kind": "js",
24254
+ "name": "readingText",
24255
+ "declaration": {
24256
+ "name": "readingText",
24257
+ "module": "src/utils/number-format/number-format.ts"
24258
+ }
24259
+ },
23434
24260
  {
23435
24261
  "kind": "js",
23436
24262
  "name": "parseNumber",
@@ -23466,6 +24292,58 @@
23466
24292
  }
23467
24293
  ]
23468
24294
  },
24295
+ {
24296
+ "kind": "javascript-module",
24297
+ "path": "src/utils/own-rule/own-rule.ts",
24298
+ "declarations": [
24299
+ {
24300
+ "kind": "function",
24301
+ "name": "applyOwnRule",
24302
+ "return": {
24303
+ "type": {
24304
+ "text": "void"
24305
+ }
24306
+ },
24307
+ "parameters": [
24308
+ {
24309
+ "name": "internals",
24310
+ "type": {
24311
+ "text": "ElementInternals"
24312
+ }
24313
+ },
24314
+ {
24315
+ "name": "control",
24316
+ "type": {
24317
+ "text": "HTMLInputElement | HTMLTextAreaElement"
24318
+ }
24319
+ },
24320
+ {
24321
+ "name": "rule",
24322
+ "type": {
24323
+ "text": "OwnRule | undefined"
24324
+ }
24325
+ },
24326
+ {
24327
+ "name": "value",
24328
+ "type": {
24329
+ "text": "string"
24330
+ }
24331
+ }
24332
+ ],
24333
+ "description": "Applies a page's own rule after the native verdict was copied, as React\nAria's TextField `validate` does: only while the browser finds nothing\nwrong, so a required empty field says the browser's sentence first. A list\nof messages is joined with spaces, and the message is a `customError`\nanchored at the control, so the bubble points at the text.\n\nA function rather than a member of `MixinField`, so only the fields that\ntake `validate` carry it."
24334
+ }
24335
+ ],
24336
+ "exports": [
24337
+ {
24338
+ "kind": "js",
24339
+ "name": "applyOwnRule",
24340
+ "declaration": {
24341
+ "name": "applyOwnRule",
24342
+ "module": "src/utils/own-rule/own-rule.ts"
24343
+ }
24344
+ }
24345
+ ]
24346
+ },
23469
24347
  {
23470
24348
  "kind": "javascript-module",
23471
24349
  "path": "src/utils/plain-click/plain-click.ts",
@@ -23540,6 +24418,25 @@
23540
24418
  }
23541
24419
  ],
23542
24420
  "description": "Whether the keyboard in front of the reader is an Apple one, which labels\nits modifiers with glyphs and whose platform modifier is Command.\n\nFrom the user agent, as every application asks it; `false` on a server,\nwhich has no keyboard to ask. Kbd draws `⌘K` or `Ctrl+K` from it and reads\n`mod` as the key it names."
24421
+ },
24422
+ {
24423
+ "kind": "function",
24424
+ "name": "onAndroid",
24425
+ "return": {
24426
+ "type": {
24427
+ "text": "boolean"
24428
+ }
24429
+ },
24430
+ "parameters": [
24431
+ {
24432
+ "name": "platform",
24433
+ "default": "typeof navigator === 'undefined' ? undefined : navigator",
24434
+ "type": {
24435
+ "text": "Platform | undefined"
24436
+ }
24437
+ }
24438
+ ],
24439
+ "description": "Whether the browser runs on Android, where TalkBack reads no `aria-sort`.\n\nReact Aria's table header describes its sort order in words there for the\nsame reason, so a reader who cannot hear the state still hears which way a\ncolumn is sorted. From the user agent; `false` on a server."
23543
24440
  }
23544
24441
  ],
23545
24442
  "exports": [
@@ -23558,6 +24455,14 @@
23558
24455
  "name": "onApple",
23559
24456
  "module": "src/utils/platform/platform.ts"
23560
24457
  }
24458
+ },
24459
+ {
24460
+ "kind": "js",
24461
+ "name": "onAndroid",
24462
+ "declaration": {
24463
+ "name": "onAndroid",
24464
+ "module": "src/utils/platform/platform.ts"
24465
+ }
23561
24466
  }
23562
24467
  ]
23563
24468
  },
@@ -23815,6 +24720,24 @@
23815
24720
  }
23816
24721
  ],
23817
24722
  "description": "A series name as it is matched: trimmed and in lower case, since a column's\nheading is matched without regard to case or surrounding space everywhere a\nname is written, in `lines`, `hidden-series` and `hide()` alike."
24723
+ },
24724
+ {
24725
+ "kind": "function",
24726
+ "name": "extremesOf",
24727
+ "return": {
24728
+ "type": {
24729
+ "text": "Extremes"
24730
+ }
24731
+ },
24732
+ "parameters": [
24733
+ {
24734
+ "name": "slots",
24735
+ "type": {
24736
+ "text": "readonly (number | undefined)[]"
24737
+ }
24738
+ }
24739
+ ],
24740
+ "description": "Where the highest and the lowest readings stand. A blank slot is passed\nover, and a list with nothing in it has neither.\n\nSparkline's overview and Heatmap's busiest place each looked for these."
23818
24741
  }
23819
24742
  ],
23820
24743
  "exports": [
@@ -23846,15 +24769,23 @@
23846
24769
  "kind": "js",
23847
24770
  "name": "readRows",
23848
24771
  "declaration": {
23849
- "name": "readRows",
24772
+ "name": "readRows",
24773
+ "module": "src/utils/read-series/read-series.ts"
24774
+ }
24775
+ },
24776
+ {
24777
+ "kind": "js",
24778
+ "name": "seriesKey",
24779
+ "declaration": {
24780
+ "name": "seriesKey",
23850
24781
  "module": "src/utils/read-series/read-series.ts"
23851
24782
  }
23852
24783
  },
23853
24784
  {
23854
24785
  "kind": "js",
23855
- "name": "seriesKey",
24786
+ "name": "extremesOf",
23856
24787
  "declaration": {
23857
- "name": "seriesKey",
24788
+ "name": "extremesOf",
23858
24789
  "module": "src/utils/read-series/read-series.ts"
23859
24790
  }
23860
24791
  }
@@ -23986,6 +24917,15 @@
23986
24917
  "kind": "javascript-module",
23987
24918
  "path": "src/utils/relative-time/relative-time.ts",
23988
24919
  "declarations": [
24920
+ {
24921
+ "kind": "variable",
24922
+ "name": "UNITS",
24923
+ "type": {
24924
+ "text": "Array<{ ms: number; unit: Intl.RelativeTimeFormatUnit }>"
24925
+ },
24926
+ "default": "[ { ms: 1000, unit: 'second' }, { ms: 60_000, unit: 'minute' }, { ms: 3_600_000, unit: 'hour' }, { ms: 86_400_000, unit: 'day' }, { ms: 604_800_000, unit: 'week' }, { ms: 2_629_800_000, unit: 'month' }, { ms: 31_557_600_000, unit: 'year' }, ]",
24927
+ "description": "How long each unit lasts, in milliseconds, largest last. `elapsedTime`\nreads its minute, hour and day from here."
24928
+ },
23989
24929
  {
23990
24930
  "kind": "function",
23991
24931
  "name": "relativeTime",
@@ -24013,6 +24953,14 @@
24013
24953
  }
24014
24954
  ],
24015
24955
  "exports": [
24956
+ {
24957
+ "kind": "js",
24958
+ "name": "UNITS",
24959
+ "declaration": {
24960
+ "name": "UNITS",
24961
+ "module": "src/utils/relative-time/relative-time.ts"
24962
+ }
24963
+ },
24016
24964
  {
24017
24965
  "kind": "js",
24018
24966
  "name": "relativeTime",
@@ -24899,6 +25847,31 @@
24899
25847
  "kind": "javascript-module",
24900
25848
  "path": "src/utils/scroll-item-into-view/scroll-item-into-view.ts",
24901
25849
  "declarations": [
25850
+ {
25851
+ "kind": "function",
25852
+ "name": "scrollingAncestor",
25853
+ "return": {
25854
+ "type": {
25855
+ "text": "HTMLElement | null"
25856
+ }
25857
+ },
25858
+ "parameters": [
25859
+ {
25860
+ "name": "item",
25861
+ "type": {
25862
+ "text": "HTMLElement"
25863
+ }
25864
+ },
25865
+ {
25866
+ "name": "options",
25867
+ "default": "{}",
25868
+ "type": {
25869
+ "text": "ScrollerOptions"
25870
+ }
25871
+ }
25872
+ ],
25873
+ "description": "The nearest ancestor that actually scrolls, crossing shadow boundaries.\n\n**Not `item.offsetParent`**, which is the nearest *positioned* ancestor and\nhas nothing whatever to do with overflow. The two coincide often enough to\nlook right, because a scroller frequently is positioned, and they come apart\nexactly where it matters: put anything `position: relative` between the item\nand the box that scrolls, and the util scrolls the thing in between, which\ndoes not scroll, and reports nothing.\n\nThe walk crosses shadow boundaries through the host, because the item is\nalmost always in one and `parentElement` is null at the root. Without that\nstep, a component whose scroller is its own `[part]` would find nothing.\n\nIt stops before the document. Scrolling the page is the one thing this whole\nutil exists not to do, so finding nothing inside the component and returning\nnull is the honest answer: the caller no-ops rather than taking the address\nbar with it."
25874
+ },
24902
25875
  {
24903
25876
  "kind": "function",
24904
25877
  "name": "scrollItemIntoView",
@@ -24925,6 +25898,14 @@
24925
25898
  }
24926
25899
  ],
24927
25900
  "exports": [
25901
+ {
25902
+ "kind": "js",
25903
+ "name": "scrollingAncestor",
25904
+ "declaration": {
25905
+ "name": "scrollingAncestor",
25906
+ "module": "src/utils/scroll-item-into-view/scroll-item-into-view.ts"
25907
+ }
25908
+ },
24928
25909
  {
24929
25910
  "kind": "js",
24930
25911
  "name": "scrollItemIntoView",
@@ -25047,6 +26028,110 @@
25047
26028
  }
25048
26029
  ]
25049
26030
  },
26031
+ {
26032
+ "kind": "javascript-module",
26033
+ "path": "src/utils/slotted-glyph/slotted-glyph.ts",
26034
+ "declarations": [
26035
+ {
26036
+ "kind": "class",
26037
+ "description": "A glyph a consumer slots once and a component draws in many places: the\nmarks of a rating, the remove icon on every row of a file list.\n\nA slotted element can be assigned to one slot only, so a component that\ndraws it in several places draws copies. **One copy per place, kept**, so a\nrender does not make them again: a drag renders on every pointer move, and\nhanding Lit a fresh node each time swaps every copy on every frame.",
26038
+ "name": "SlottedGlyph",
26039
+ "members": [
26040
+ {
26041
+ "kind": "field",
26042
+ "name": "copies",
26043
+ "privacy": "private",
26044
+ "readonly": true,
26045
+ "default": "new Map<string, Node>()",
26046
+ "description": "The copies made so far, by the place each is drawn in."
26047
+ },
26048
+ {
26049
+ "kind": "field",
26050
+ "name": "source",
26051
+ "type": {
26052
+ "text": "Element | undefined"
26053
+ },
26054
+ "privacy": "private",
26055
+ "description": "The element slotted last, which every copy is made from."
26056
+ },
26057
+ {
26058
+ "kind": "field",
26059
+ "name": "slotted",
26060
+ "type": {
26061
+ "text": "boolean"
26062
+ },
26063
+ "description": "Whether a glyph is slotted, so the component draws copies of it.",
26064
+ "readonly": true
26065
+ },
26066
+ {
26067
+ "kind": "method",
26068
+ "name": "read",
26069
+ "return": {
26070
+ "type": {
26071
+ "text": "void"
26072
+ }
26073
+ },
26074
+ "parameters": [
26075
+ {
26076
+ "name": "slot",
26077
+ "type": {
26078
+ "text": "HTMLSlotElement"
26079
+ }
26080
+ }
26081
+ ],
26082
+ "description": "Reads the slot after a `slotchange`: the first element assigned to it,\nthrough any slot it is forwarded by. The copies made of the last one go."
26083
+ },
26084
+ {
26085
+ "kind": "method",
26086
+ "name": "take",
26087
+ "return": {
26088
+ "type": {
26089
+ "text": "void"
26090
+ }
26091
+ },
26092
+ "parameters": [
26093
+ {
26094
+ "name": "source",
26095
+ "type": {
26096
+ "text": "Element | undefined"
26097
+ }
26098
+ }
26099
+ ],
26100
+ "description": "Takes `source` as the glyph, or none, as `read` does from a slot: the\ncopies made of the last one go. For the first render, which reads the\nhost's children before any `slotchange` answers."
26101
+ },
26102
+ {
26103
+ "kind": "method",
26104
+ "name": "copyFor",
26105
+ "return": {
26106
+ "type": {
26107
+ "text": "Node | undefined"
26108
+ }
26109
+ },
26110
+ "parameters": [
26111
+ {
26112
+ "name": "place",
26113
+ "type": {
26114
+ "text": "number | string"
26115
+ }
26116
+ }
26117
+ ],
26118
+ "description": "The copy for one place, made the first time it is asked for and the same\nnode after, or `undefined` while nothing is slotted."
26119
+ }
26120
+ ],
26121
+ "helix": {}
26122
+ }
26123
+ ],
26124
+ "exports": [
26125
+ {
26126
+ "kind": "js",
26127
+ "name": "SlottedGlyph",
26128
+ "declaration": {
26129
+ "name": "SlottedGlyph",
26130
+ "module": "src/utils/slotted-glyph/slotted-glyph.ts"
26131
+ }
26132
+ }
26133
+ ]
26134
+ },
25050
26135
  {
25051
26136
  "kind": "javascript-module",
25052
26137
  "path": "src/utils/slotted-words/slotted-words.ts",
@@ -25781,6 +26866,16 @@
25781
26866
  }
25782
26867
  ],
25783
26868
  "description": "Turns on typeahead for a set whose items have these words. See\n`TypeaheadBy`."
26869
+ },
26870
+ {
26871
+ "kind": "function",
26872
+ "name": "typeaheadByWords",
26873
+ "return": {
26874
+ "type": {
26875
+ "text": "TypeaheadBy<{ readonly words?: string }>"
26876
+ }
26877
+ },
26878
+ "description": "Turns on typeahead for a set whose items carry their own `words`, as List's\nrows, Tag Group's tags and Drilldown's items do. An item with none is\npassed over."
25784
26879
  }
25785
26880
  ],
25786
26881
  "exports": [
@@ -25807,6 +26902,14 @@
25807
26902
  "name": "typeaheadBy",
25808
26903
  "module": "src/utils/typeahead/typeahead.ts"
25809
26904
  }
26905
+ },
26906
+ {
26907
+ "kind": "js",
26908
+ "name": "typeaheadByWords",
26909
+ "declaration": {
26910
+ "name": "typeaheadByWords",
26911
+ "module": "src/utils/typeahead/typeahead.ts"
26912
+ }
25810
26913
  }
25811
26914
  ]
25812
26915
  },
@@ -26202,6 +27305,40 @@
26202
27305
  }
26203
27306
  ]
26204
27307
  },
27308
+ {
27309
+ "kind": "javascript-module",
27310
+ "path": "src/utils/verdict-flags/verdict-flags.ts",
27311
+ "declarations": [
27312
+ {
27313
+ "kind": "function",
27314
+ "name": "verdictFlags",
27315
+ "return": {
27316
+ "type": {
27317
+ "text": "[flags: ValidityStateFlags, message: string] | null"
27318
+ }
27319
+ },
27320
+ "parameters": [
27321
+ {
27322
+ "name": "verdict",
27323
+ "type": {
27324
+ "text": "PickerVerdict"
27325
+ }
27326
+ }
27327
+ ],
27328
+ "description": "A verdict as the flags and the message `setValidity` takes, or `null` where\nthere is nothing wrong.\n\nShared by `MixinPickerField` and `MixinSegmentedField`, the two shapes a\ndate, time or color field takes, which report the same verdicts."
27329
+ }
27330
+ ],
27331
+ "exports": [
27332
+ {
27333
+ "kind": "js",
27334
+ "name": "verdictFlags",
27335
+ "declaration": {
27336
+ "name": "verdictFlags",
27337
+ "module": "src/utils/verdict-flags/verdict-flags.ts"
27338
+ }
27339
+ }
27340
+ ]
27341
+ },
26205
27342
  {
26206
27343
  "kind": "javascript-module",
26207
27344
  "path": "src/utils/watch-labels/watch-labels.ts",
@@ -26504,6 +27641,84 @@
26504
27641
  ],
26505
27642
  "description": "`chosen` with every one of `values` added, or with every one taken out\nwhere each was already in it: a select-all box, or a branch of a checkbox\ntree pressed. `values` empty changes nothing.\n\nWith `order`, the result is put in that order and holds only what `order`\nholds. Without it, what was chosen keeps its place and what is added\nfollows."
26506
27643
  },
27644
+ {
27645
+ "kind": "function",
27646
+ "name": "everyState",
27647
+ "return": {
27648
+ "type": {
27649
+ "text": "{ checked: boolean; indeterminate: boolean }"
27650
+ }
27651
+ },
27652
+ "parameters": [
27653
+ {
27654
+ "name": "chosen",
27655
+ "type": {
27656
+ "text": "Iterable<string>"
27657
+ }
27658
+ },
27659
+ {
27660
+ "name": "values",
27661
+ "type": {
27662
+ "text": "readonly string[]"
27663
+ }
27664
+ }
27665
+ ],
27666
+ "description": "What a select-all box shows for `values`: checked when every one is\nchosen, mixed when some are, and neither for none or an empty set.\n\nCheckbox Group's select-all box and the header boxes of Table and Data\nTable each worked this out. A set that does not count its disabled boxes\npasses only the enabled values."
27667
+ },
27668
+ {
27669
+ "kind": "function",
27670
+ "name": "inRowOrder",
27671
+ "return": {
27672
+ "type": {
27673
+ "text": "string[]"
27674
+ }
27675
+ },
27676
+ "parameters": [
27677
+ {
27678
+ "name": "keys",
27679
+ "type": {
27680
+ "text": "Iterable<string>"
27681
+ }
27682
+ },
27683
+ {
27684
+ "name": "order",
27685
+ "type": {
27686
+ "text": "readonly string[]"
27687
+ }
27688
+ }
27689
+ ],
27690
+ "description": "`keys` in the order the rows are, which is `order`: the keys of the whole\nset. A key the set does not hold, a selected row a search has hidden say,\nkeeps its place after them in the order it was given.\n\nSo a selection reads in row order whatever order its rows were chosen in:\nData Table's, and Table's and Virtual List's, which wrote it in press order\nor wrote this again."
27691
+ },
27692
+ {
27693
+ "kind": "function",
27694
+ "name": "anchorAt",
27695
+ "return": {
27696
+ "type": {
27697
+ "text": "{ anchor: number; anchorKey: string | undefined }"
27698
+ }
27699
+ },
27700
+ "parameters": [
27701
+ {
27702
+ "name": "keys",
27703
+ "type": {
27704
+ "text": "readonly string[]"
27705
+ }
27706
+ },
27707
+ {
27708
+ "name": "anchorKey",
27709
+ "type": {
27710
+ "text": "string | undefined"
27711
+ }
27712
+ },
27713
+ {
27714
+ "name": "from",
27715
+ "type": {
27716
+ "text": "number"
27717
+ }
27718
+ }
27719
+ ],
27720
+ "description": "Where a Shift range runs from, as an index into `keys`: the row last chosen\nwhile it is among them, and otherwise the row the reader is on, `from`,\nwhich becomes the one to run from."
27721
+ },
26507
27722
  {
26508
27723
  "kind": "function",
26509
27724
  "name": "pressedValue",
@@ -26606,6 +27821,30 @@
26606
27821
  "module": "src/utils/written-list/written-list.ts"
26607
27822
  }
26608
27823
  },
27824
+ {
27825
+ "kind": "js",
27826
+ "name": "everyState",
27827
+ "declaration": {
27828
+ "name": "everyState",
27829
+ "module": "src/utils/written-list/written-list.ts"
27830
+ }
27831
+ },
27832
+ {
27833
+ "kind": "js",
27834
+ "name": "inRowOrder",
27835
+ "declaration": {
27836
+ "name": "inRowOrder",
27837
+ "module": "src/utils/written-list/written-list.ts"
27838
+ }
27839
+ },
27840
+ {
27841
+ "kind": "js",
27842
+ "name": "anchorAt",
27843
+ "declaration": {
27844
+ "name": "anchorAt",
27845
+ "module": "src/utils/written-list/written-list.ts"
27846
+ }
27847
+ },
26609
27848
  {
26610
27849
  "kind": "js",
26611
27850
  "name": "pressedValue",
@@ -26634,7 +27873,7 @@
26634
27873
  "type": {
26635
27874
  "text": "string"
26636
27875
  },
26637
- "default": "'0.146.0'",
27876
+ "default": "'0.147.0'",
26638
27877
  "description": "The version of the package this file ships in.\n\n**Written by `fusion/scripts/version.mjs`** wherever it writes the package's\n`package.json`, and stamped back into the repository beside it after a\nrelease, so the two never disagree; a spec beside this holds them to it.\nNothing else in the running code knows which release it is."
26639
27878
  }
26640
27879
  ],
@@ -26652,6 +27891,6 @@
26652
27891
  ],
26653
27892
  "helix": {
26654
27893
  "package": "@fusion.dev/helix-core",
26655
- "version": "0.146.0"
27894
+ "version": "0.147.0"
26656
27895
  }
26657
27896
  }