@fusion.dev/helix-headless 0.32.0 → 0.33.1

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 (61) hide show
  1. package/custom-elements.json +876 -164
  2. package/dist/area-chart/root/area-chart-root.d.ts +8 -0
  3. package/dist/area-chart/root/area-chart-root.js +1 -0
  4. package/dist/bar-chart/root/bar-chart-root.d.ts +8 -0
  5. package/dist/bar-chart/root/bar-chart-root.js +2 -1
  6. package/dist/breadcrumbs/breadcrumb/breadcrumb.js +1 -1
  7. package/dist/carousel/root/carousel-root.d.ts +12 -0
  8. package/dist/carousel/root/carousel-root.js +11 -7
  9. package/dist/chat/composer/chat-composer.d.ts +4 -0
  10. package/dist/chat/root/chat-root.d.ts +17 -0
  11. package/dist/chat/root/chat-root.js +12 -1
  12. package/dist/code-block/root/code-block-root.d.ts +25 -3
  13. package/dist/code-block/root/code-block-root.js +16 -5
  14. package/dist/color-picker/root/color-picker-root.js +2 -1
  15. package/dist/copy-button/root/copy-button-root.d.ts +8 -0
  16. package/dist/copy-button/root/copy-button-root.js +4 -1
  17. package/dist/data-table/root/data-table-root.d.ts +22 -3
  18. package/dist/data-table/root/data-table-root.js +25 -16
  19. package/dist/date-input/root/date-input-root.d.ts +34 -1
  20. package/dist/date-input/root/date-input-root.js +27 -1
  21. package/dist/date-picker/root/date-picker-root.js +6 -8
  22. package/dist/donut-chart/root/donut-chart-root.d.ts +21 -5
  23. package/dist/donut-chart/root/donut-chart-root.js +18 -6
  24. package/dist/drilldown/item/drilldown-item.js +1 -1
  25. package/dist/drilldown/root/drilldown-root.js +5 -4
  26. package/dist/heatmap/root/heatmap-root.d.ts +11 -2
  27. package/dist/icon/root/icon-root.d.ts +8 -0
  28. package/dist/icon/root/icon-root.js +5 -0
  29. package/dist/line-chart/root/line-chart-root.d.ts +9 -1
  30. package/dist/line-chart/root/line-chart-root.js +1 -0
  31. package/dist/menu/item/menu-item.js +1 -1
  32. package/dist/menu/root/menu-root.js +5 -4
  33. package/dist/object-inspector/root/object-inspector-root.d.ts +8 -0
  34. package/dist/object-inspector/root/object-inspector-root.js +20 -15
  35. package/dist/pagination/root/pagination-root.js +1 -1
  36. package/dist/pin-input/root/pin-input-root.d.ts +7 -1
  37. package/dist/pin-input/root/pin-input-root.js +5 -7
  38. package/dist/scatter-chart/root/scatter-chart-root.d.ts +20 -0
  39. package/dist/scatter-chart/root/scatter-chart-root.js +15 -9
  40. package/dist/scroll-area/root/scroll-area-root.js +3 -2
  41. package/dist/sparkline/root/sparkline-root.js +1 -0
  42. package/dist/splitter/root/splitter-root.d.ts +11 -0
  43. package/dist/splitter/root/splitter-root.js +16 -16
  44. package/dist/table/cell/table-cell.d.ts +2 -0
  45. package/dist/table/column/table-column.d.ts +40 -6
  46. package/dist/table/column/table-column.js +23 -3
  47. package/dist/table/root/table-root.d.ts +76 -11
  48. package/dist/table/root/table-root.js +90 -3
  49. package/dist/table/row/table-row.d.ts +14 -0
  50. package/dist/table/row/table-row.js +16 -0
  51. package/dist/toolbar/root/toolbar-root.js +6 -5
  52. package/dist/tooltip/root/tooltip-root.d.ts +20 -0
  53. package/dist/tooltip/root/tooltip-root.js +21 -3
  54. package/dist/tour/root/tour-root.js +1 -1
  55. package/dist/tour/stop/tour-stop.d.ts +10 -0
  56. package/dist/tour/stop/tour-stop.js +9 -2
  57. package/dist/tree/root/tree-root.js +4 -3
  58. package/dist/video/root/video-root.js +7 -0
  59. package/package.json +5 -5
  60. package/types/jsx.d.ts +1506 -596
  61. package/types/vue.d.ts +55 -23
@@ -352,7 +352,7 @@
352
352
  "text": "Promise<void>"
353
353
  },
354
354
  "readonly": true,
355
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
355
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
356
356
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
357
357
  "inheritedFrom": {
358
358
  "name": "HelixElement",
@@ -850,7 +850,7 @@
850
850
  "text": "Promise<void>"
851
851
  },
852
852
  "readonly": true,
853
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
853
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
854
854
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
855
855
  "inheritedFrom": {
856
856
  "name": "HelixElement",
@@ -1394,7 +1394,7 @@
1394
1394
  "text": "Promise<void>"
1395
1395
  },
1396
1396
  "readonly": true,
1397
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
1397
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
1398
1398
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
1399
1399
  "inheritedFrom": {
1400
1400
  "name": "HelixElement",
@@ -1914,7 +1914,7 @@
1914
1914
  "text": "Promise<void>"
1915
1915
  },
1916
1916
  "readonly": true,
1917
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
1917
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
1918
1918
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
1919
1919
  "inheritedFrom": {
1920
1920
  "name": "HelixElement",
@@ -2294,6 +2294,26 @@
2294
2294
  "description": "The bubble's point, forwarded from `Tooltip`.",
2295
2295
  "name": "tooltip-arrow"
2296
2296
  },
2297
+ {
2298
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
2299
+ "name": "tooltip-arrow-bottom"
2300
+ },
2301
+ {
2302
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
2303
+ "name": "tooltip-arrow-left"
2304
+ },
2305
+ {
2306
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
2307
+ "name": "tooltip-arrow-right"
2308
+ },
2309
+ {
2310
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
2311
+ "name": "tooltip-arrow-top"
2312
+ },
2313
+ {
2314
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
2315
+ "name": "tooltip-bottom"
2316
+ },
2297
2317
  {
2298
2318
  "description": "One column's name and value inside the tooltip.",
2299
2319
  "name": "tooltip-cell"
@@ -2302,10 +2322,22 @@
2302
2322
  "description": "The reading's own name inside the tooltip.",
2303
2323
  "name": "tooltip-label"
2304
2324
  },
2325
+ {
2326
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
2327
+ "name": "tooltip-left"
2328
+ },
2305
2329
  {
2306
2330
  "description": "A column's name inside the tooltip.",
2307
2331
  "name": "tooltip-name"
2308
2332
  },
2333
+ {
2334
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
2335
+ "name": "tooltip-right"
2336
+ },
2337
+ {
2338
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
2339
+ "name": "tooltip-top"
2340
+ },
2309
2341
  {
2310
2342
  "description": "A column's value inside the tooltip.",
2311
2343
  "name": "tooltip-value"
@@ -2845,7 +2877,7 @@
2845
2877
  "text": "Promise<void>"
2846
2878
  },
2847
2879
  "readonly": true,
2848
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
2880
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
2849
2881
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
2850
2882
  "inheritedFrom": {
2851
2883
  "name": "HelixElement",
@@ -3378,7 +3410,7 @@
3378
3410
  "text": "Promise<void>"
3379
3411
  },
3380
3412
  "readonly": true,
3381
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
3413
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
3382
3414
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
3383
3415
  "inheritedFrom": {
3384
3416
  "name": "HelixElement",
@@ -3910,7 +3942,7 @@
3910
3942
  "text": "Promise<void>"
3911
3943
  },
3912
3944
  "readonly": true,
3913
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
3945
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
3914
3946
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
3915
3947
  "inheritedFrom": {
3916
3948
  "name": "HelixElement",
@@ -4436,7 +4468,7 @@
4436
4468
  "text": "Promise<void>"
4437
4469
  },
4438
4470
  "readonly": true,
4439
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
4471
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
4440
4472
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
4441
4473
  "inheritedFrom": {
4442
4474
  "name": "HelixElement",
@@ -4854,6 +4886,26 @@
4854
4886
  "description": "The bubble's point, forwarded from `Tooltip`.",
4855
4887
  "name": "tooltip-arrow"
4856
4888
  },
4889
+ {
4890
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
4891
+ "name": "tooltip-arrow-bottom"
4892
+ },
4893
+ {
4894
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
4895
+ "name": "tooltip-arrow-left"
4896
+ },
4897
+ {
4898
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
4899
+ "name": "tooltip-arrow-right"
4900
+ },
4901
+ {
4902
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
4903
+ "name": "tooltip-arrow-top"
4904
+ },
4905
+ {
4906
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
4907
+ "name": "tooltip-bottom"
4908
+ },
4857
4909
  {
4858
4910
  "description": "One column's name and value inside the tooltip.",
4859
4911
  "name": "tooltip-cell"
@@ -4862,10 +4914,22 @@
4862
4914
  "description": "The reading's own name inside the tooltip.",
4863
4915
  "name": "tooltip-label"
4864
4916
  },
4917
+ {
4918
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
4919
+ "name": "tooltip-left"
4920
+ },
4865
4921
  {
4866
4922
  "description": "A column's name inside the tooltip.",
4867
4923
  "name": "tooltip-name"
4868
4924
  },
4925
+ {
4926
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
4927
+ "name": "tooltip-right"
4928
+ },
4929
+ {
4930
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
4931
+ "name": "tooltip-top"
4932
+ },
4869
4933
  {
4870
4934
  "description": "A column's value inside the tooltip.",
4871
4935
  "name": "tooltip-value"
@@ -5397,7 +5461,7 @@
5397
5461
  "text": "Promise<void>"
5398
5462
  },
5399
5463
  "readonly": true,
5400
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
5464
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
5401
5465
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
5402
5466
  "inheritedFrom": {
5403
5467
  "name": "HelixElement",
@@ -5913,7 +5977,7 @@
5913
5977
  "text": "Promise<void>"
5914
5978
  },
5915
5979
  "readonly": true,
5916
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
5980
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
5917
5981
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
5918
5982
  "inheritedFrom": {
5919
5983
  "name": "HelixElement",
@@ -6403,7 +6467,7 @@
6403
6467
  "text": "Promise<void>"
6404
6468
  },
6405
6469
  "readonly": true,
6406
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
6470
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
6407
6471
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
6408
6472
  "inheritedFrom": {
6409
6473
  "name": "HelixElement",
@@ -6860,7 +6924,7 @@
6860
6924
  "text": "Promise<void>"
6861
6925
  },
6862
6926
  "readonly": true,
6863
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
6927
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
6864
6928
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
6865
6929
  "inheritedFrom": {
6866
6930
  "name": "HelixElement",
@@ -7295,7 +7359,7 @@
7295
7359
  "text": "Promise<void>"
7296
7360
  },
7297
7361
  "readonly": true,
7298
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
7362
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
7299
7363
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
7300
7364
  "inheritedFrom": {
7301
7365
  "name": "HelixElement",
@@ -8119,7 +8183,7 @@
8119
8183
  "text": "Promise<void>"
8120
8184
  },
8121
8185
  "readonly": true,
8122
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
8186
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
8123
8187
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
8124
8188
  "inheritedFrom": {
8125
8189
  "name": "HelixElement",
@@ -8705,7 +8769,7 @@
8705
8769
  "text": "Promise<void>"
8706
8770
  },
8707
8771
  "readonly": true,
8708
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
8772
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
8709
8773
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
8710
8774
  "inheritedFrom": {
8711
8775
  "name": "HelixElement",
@@ -9154,7 +9218,7 @@
9154
9218
  "text": "Promise<void>"
9155
9219
  },
9156
9220
  "readonly": true,
9157
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
9221
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
9158
9222
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
9159
9223
  "inheritedFrom": {
9160
9224
  "name": "HelixElement",
@@ -9689,7 +9753,7 @@
9689
9753
  "name": "handleIndicatorKeydown",
9690
9754
  "privacy": "private",
9691
9755
  "readonly": true,
9692
- "description": "The arrows move between indicators, which is the tablist pattern.\n\nOne tab stop for the set and the arrows within it, so a reader does not\nhave to press Tab once per slide to get past a carousel of twelve. Moving\nchanges the slide, because an indicator that could be focused without\nselecting would leave the highlight and the slide disagreeing with nothing\non screen saying which is which."
9756
+ "description": "The arrows move between indicators, which is the tablist pattern.\n\nOne tab stop for the set and the arrows within it, so a reader does not\nhave to press Tab once per slide to get past a carousel of twelve. Moving\nchanges the slide, because an indicator that could be focused without\nselecting would leave the highlight and the slide disagreeing with nothing\non screen saying which is which.\n\nAlong the line, so on a right-to-left page, where the first indicator is on\nthe right, the left arrow is the one that moves on."
9693
9757
  },
9694
9758
  {
9695
9759
  "kind": "method",
@@ -9760,7 +9824,7 @@
9760
9824
  }
9761
9825
  }
9762
9826
  ],
9763
- "description": "Where a slide's leading edge sits, in the scroller's own coordinates.\n\n**Both directions go through here, because they have to agree.** The\noffsets are measured to the track's *border* box and `scrollTop` and\n`scrollLeft` are measured from its content box, so the two differ by the\nbleed: sending the carousel to a slide and reading back which slide it is\non used the same expression, and correcting one of them alone put a drag\none position off what the arrows did.\n\nUnsubtracted, the leading slide's own offset *is* the bleed, so scrolling\nto index 0 put its edge back on the clip edge. Measured on the insights\ncarousel: `scrollLeft` resting at 4 against a 4px bleed, the first card\nshaved, and no scrolling done to cause it."
9827
+ "description": "Where a slide's leading edge sits, in the scroller's own coordinates.\n\n**Both directions go through here, because they have to agree.** The\noffsets are measured to the track's *border* box and `scrollTop` and\n`scrollLeft` are measured from its content box, so the two differ by the\nbleed: sending the carousel to a slide and reading back which slide it is\non used the same expression, and correcting one of them alone put a drag\none position off what the arrows did.\n\nUnsubtracted, the leading slide's own offset *is* the bleed, so scrolling\nto index 0 put its edge back on the clip edge. Measured on the insights\ncarousel: `scrollLeft` resting at 4 against a 4px bleed, the first card\nshaved, and no scrolling done to cause it.\n\n**On a right-to-left track the leading edge is the right one**, and\n`scrollLeft` counts down from zero as the track moves on. Measured from the\nleft, a carousel showing one slide at a time happened to come out right,\neach slide a whole track to the left of the one before it; one showing\nthree put every one of the first few slides at a positive offset the\nscroller cannot reach, so it clamped to zero and the next arrow moved the\ndots and not the slides. Measured in Chromium on the several-across\nexample: three presses of next, `index` at 2 and `scrollLeft` still at 0."
9764
9828
  },
9765
9829
  {
9766
9830
  "kind": "method",
@@ -10012,7 +10076,7 @@
10012
10076
  "text": "Promise<void>"
10013
10077
  },
10014
10078
  "readonly": true,
10015
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
10079
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
10016
10080
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
10017
10081
  "inheritedFrom": {
10018
10082
  "name": "HelixElement",
@@ -10549,7 +10613,7 @@
10549
10613
  "text": "TemplateResult"
10550
10614
  }
10551
10615
  },
10552
- "description": "The control that offers the turn, behind a seam so a tier can draw its own.\n\n**A glyph with the label as its accessible name, rather than the label as\ntext.** The word \"Send\" beside a field is the widest thing in the row and\nsays nothing a return key does not. The return glyph is the mark because\nEnter is what actually sends, which `submit-on` says out loud: the control\nand the key are one affordance and should look like it. `send-label` is the\naccessible name rather than a visible one, so a screen reader still hears\nthe word."
10616
+ "description": "The control that offers the turn, behind a seam so a tier can draw its own.\n\n**A glyph with the label as its accessible name, rather than the label as\ntext.** The word \"Send\" beside a field is the widest thing in the row and\nsays nothing a return key does not. The return glyph is the mark because\nEnter is what actually sends, which `submit-on` says out loud: the control\nand the key are one affordance and should look like it. `send-label` is the\naccessible name rather than a visible one, so a screen reader still hears\nthe word.\n\n**Not mirrored on a right-to-left page**, where every caret meaning next\nis. It pictures a key rather than a way to go, like the arrows `Kbd`\ndraws, and a picture of a key is not turned round with the text."
10553
10617
  },
10554
10618
  {
10555
10619
  "kind": "field",
@@ -10681,7 +10745,7 @@
10681
10745
  "text": "Promise<void>"
10682
10746
  },
10683
10747
  "readonly": true,
10684
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
10748
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
10685
10749
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
10686
10750
  "inheritedFrom": {
10687
10751
  "name": "HelixElement",
@@ -11420,7 +11484,7 @@
11420
11484
  "text": "Promise<void>"
11421
11485
  },
11422
11486
  "readonly": true,
11423
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
11487
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
11424
11488
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
11425
11489
  "inheritedFrom": {
11426
11490
  "name": "HelixElement",
@@ -11773,7 +11837,7 @@
11773
11837
  "declarations": [
11774
11838
  {
11775
11839
  "kind": "class",
11776
- "description": "**It has no opinion about where it sits.** A chat is asked for as a floating\nbutton, a page, a palette, a sidebar, a modal and an inline block, and none\nof those is a variant of a conversation: they are containers, and the\ncontainers already exist. Nothing here is positioned, nothing has a backdrop,\nand nothing owns a trigger. If a form factor needs a mode on this element,\nthe split is wrong.\n\n**Scroll ownership is the behavior everything else depends on.** A transcript\nthat grows wants to stay at the bottom, except when the reader has scrolled\nup to read, where pinning is hostile. The rule: pin while the reader is\nwithin `threshold` of the bottom, and let go the moment they leave it. A turn\ngrowing under a pinned reader is not the reader leaving, so a streamed answer\nis followed to its last line.\n\n**History loads upward, under a reader who does not move.** With `history`\nset to `more`, reaching the top fires `helix-history`; the consumer sets\n`loading` while it fetches and prepends the older turns, and the turn the\nreader was looking at stays where it was on screen while the room above it\ngrows.\n\n**A turn is announced once, when it settles**, and not by the log. A log\nthat is a live region reads what enters it, which is every token of a stream\nwhere `aria-busy` is not honored, every page of history as it loads, and\nevery window of a long transcript as the reader scrolls through it. So the\nlog is `aria-live=\"off\"`, and a status region of its own says each new turn\nwhen it has finished arriving: never the reader's own words unless they\nfailed to send, never a turn loaded above the ones already there, and never\nwhat was in the transcript when it opened.\n\n**Turns are markup children or data, not both.** Children serve whole from a\nserver and are what most conversations want. `turns` is for the transcript\ntoo long to hold as elements: it is drawn a window at a time, measured as it\ngoes, and the log needs a block size of its own for that to mean anything.",
11840
+ "description": "**It has no opinion about where it sits.** A chat is asked for as a floating\nbutton, a page, a palette, a sidebar, a modal and an inline block, and none\nof those is a variant of a conversation: they are containers, and the\ncontainers already exist. Nothing here is positioned, nothing has a backdrop,\nand nothing owns a trigger. If a form factor needs a mode on this element,\nthe split is wrong.\n\n**Scroll ownership is the behavior everything else depends on.** A transcript\nthat grows wants to stay at the bottom, except when the reader has scrolled\nup to read, where pinning is hostile. The rule: pin while the reader is\nwithin `threshold` of the bottom, and let go the moment they leave it. A turn\ngrowing under a pinned reader is not the reader leaving, so a streamed answer\nis followed to its last line.\n\n**History loads upward, under a reader who does not move.** With `history`\nset to `more`, reaching the top fires `helix-history`; the consumer sets\n`loading` while it fetches and prepends the older turns, and the turn the\nreader was looking at stays where it was on screen while the room above it\ngrows.\n\n**A turn is announced once, when it settles**, and not by the log. A log\nthat is a live region reads what enters it, which is every token of a stream\nwhere `aria-busy` is not honored, every page of history as it loads, and\nevery window of a long transcript as the reader scrolls through it. So the\nlog is `aria-live=\"off\"`, and a status region of its own says each new turn\nwhen it has finished arriving: never the reader's own words unless they\nfailed to send, never a turn loaded above the ones already there, and never\nwhat was in the transcript when it opened.\n\n**Turns are markup children or data, not both.** Children serve whole from a\nserver and are what most conversations want. `turns` is for the transcript\ntoo long to hold as elements: it is drawn a window at a time, measured as it\ngoes, and the log needs a block size of its own for that to mean anything.\n\n**A fed turn is styled through this element, not its own.** Its message is\ndrawn in this shadow root, where `[author=\"me\"]` cannot reach it, so every\nfed turn's parts are forwarded as `message-*`, and the ones that change with\nthe turn a second time while it holds: `-mine` for a turn by `me`, and\n`message-meta-failed`, `message-content-sending` and\n`message-content-streaming` for its state. Every other author has the plain\nnames only, so a conversation styling each participant apart passes its\nturns as children.",
11777
11841
  "name": "HelixHeadlessChat",
11778
11842
  "cssParts": [
11779
11843
  {
@@ -11828,14 +11892,34 @@
11828
11892
  "description": "A fed turn's leading slot's box.",
11829
11893
  "name": "message-avatar"
11830
11894
  },
11895
+ {
11896
+ "description": "The leading slot's box on a fed turn by `me`.",
11897
+ "name": "message-avatar-mine"
11898
+ },
11831
11899
  {
11832
11900
  "description": "What a fed turn said, and the line under it.",
11833
11901
  "name": "message-body"
11834
11902
  },
11903
+ {
11904
+ "description": "What a fed turn by `me` said, and the line under it.",
11905
+ "name": "message-body-mine"
11906
+ },
11835
11907
  {
11836
11908
  "description": "A fed turn's text.",
11837
11909
  "name": "message-content"
11838
11910
  },
11911
+ {
11912
+ "description": "The text of a fed turn by `me`.",
11913
+ "name": "message-content-mine"
11914
+ },
11915
+ {
11916
+ "description": "A fed turn's text while it is `sending`.",
11917
+ "name": "message-content-sending"
11918
+ },
11919
+ {
11920
+ "description": "A fed turn's text while it is `streaming`.",
11921
+ "name": "message-content-streaming"
11922
+ },
11839
11923
  {
11840
11924
  "description": "A fed turn's default wait.",
11841
11925
  "name": "message-indicator"
@@ -11848,6 +11932,18 @@
11848
11932
  "description": "The line under a fed turn: its time, its state, and its controls.",
11849
11933
  "name": "message-meta"
11850
11934
  },
11935
+ {
11936
+ "description": "The line under a fed turn that `failed`, which says so.",
11937
+ "name": "message-meta-failed"
11938
+ },
11939
+ {
11940
+ "description": "The line under a fed turn by `me`.",
11941
+ "name": "message-meta-mine"
11942
+ },
11943
+ {
11944
+ "description": "A fed turn by `me`: the message drawn for it.",
11945
+ "name": "message-mine"
11946
+ },
11851
11947
  {
11852
11948
  "description": "The control offered on a fed turn that failed.",
11853
11949
  "name": "message-retry"
@@ -12736,7 +12832,7 @@
12736
12832
  "text": "Promise<void>"
12737
12833
  },
12738
12834
  "readonly": true,
12739
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
12835
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
12740
12836
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
12741
12837
  "inheritedFrom": {
12742
12838
  "name": "HelixElement",
@@ -13101,6 +13197,11 @@
13101
13197
  "description": "A conversation with the four states a turn can be in, and a composer under it.",
13102
13198
  "layout": "padded",
13103
13199
  "slug": "preview"
13200
+ },
13201
+ {
13202
+ "description": "Two thousand turns handed over as data, and the reader's own told apart from outside.",
13203
+ "min": 420,
13204
+ "slug": "transcript"
13104
13205
  }
13105
13206
  ],
13106
13207
  "source": "helix/headless/src/chat"
@@ -13769,7 +13870,7 @@
13769
13870
  "text": "Promise<void>"
13770
13871
  },
13771
13872
  "readonly": true,
13772
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
13873
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
13773
13874
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
13774
13875
  "inheritedFrom": {
13775
13876
  "name": "HelixElement",
@@ -14940,7 +15041,7 @@
14940
15041
  "text": "Promise<void>"
14941
15042
  },
14942
15043
  "readonly": true,
14943
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
15044
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
14944
15045
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
14945
15046
  "inheritedFrom": {
14946
15047
  "name": "HelixElement",
@@ -15499,7 +15600,7 @@
15499
15600
  "name": "context"
15500
15601
  },
15501
15602
  {
15502
- "description": "The copy button.",
15603
+ "description": "The copy button: in the header where there is one, and otherwise beside the code.",
15503
15604
  "name": "copy"
15504
15605
  },
15505
15606
  {
@@ -15518,6 +15619,38 @@
15518
15619
  "description": "The point, resting against the trigger.",
15519
15620
  "name": "copy-tooltip-arrow"
15520
15621
  },
15622
+ {
15623
+ "description": "The point while the bubble is below the copy button, so on its top edge, beside `copy-tooltip-arrow`.",
15624
+ "name": "copy-tooltip-arrow-bottom"
15625
+ },
15626
+ {
15627
+ "description": "The point while the bubble is left of the copy button, so on its right edge, beside `copy-tooltip-arrow`.",
15628
+ "name": "copy-tooltip-arrow-left"
15629
+ },
15630
+ {
15631
+ "description": "The point while the bubble is right of the copy button, so on its left edge, beside `copy-tooltip-arrow`.",
15632
+ "name": "copy-tooltip-arrow-right"
15633
+ },
15634
+ {
15635
+ "description": "The point while the bubble is above the copy button, so on its bottom edge, beside `copy-tooltip-arrow`.",
15636
+ "name": "copy-tooltip-arrow-top"
15637
+ },
15638
+ {
15639
+ "description": "The bubble while it is below the copy button, beside `copy-tooltip`.",
15640
+ "name": "copy-tooltip-bottom"
15641
+ },
15642
+ {
15643
+ "description": "The bubble while it is left of the copy button, beside `copy-tooltip`.",
15644
+ "name": "copy-tooltip-left"
15645
+ },
15646
+ {
15647
+ "description": "The bubble while it is right of the copy button, beside `copy-tooltip`.",
15648
+ "name": "copy-tooltip-right"
15649
+ },
15650
+ {
15651
+ "description": "The bubble while it is above the copy button, beside `copy-tooltip`.",
15652
+ "name": "copy-tooltip-top"
15653
+ },
15521
15654
  {
15522
15655
  "description": "In a diff, one file's header and block.",
15523
15656
  "name": "file"
@@ -15527,11 +15660,11 @@
15527
15660
  "name": "filler"
15528
15661
  },
15529
15662
  {
15530
- "description": "The code and the copy button beside it.",
15663
+ "description": "The code, and the copy button beside it where there is no header.",
15531
15664
  "name": "frame"
15532
15665
  },
15533
15666
  {
15534
- "description": "The bar carrying the name, where there is one.",
15667
+ "description": "The bar carrying the name and the copy button, where there is a name.",
15535
15668
  "name": "header"
15536
15669
  },
15537
15670
  {
@@ -15650,6 +15783,51 @@
15650
15783
  "description": "The code as text, read from what the default slot is given rather than\nstored.\n\n**The host's own children rather than the slot's assigned nodes**, which\nare the same nodes: text, and every element without a `slot`. A slot exists\nonly once a render has made it, so reading through one left the first render\nwith nothing to copy.\n\nClient only, and it has to be: the server has no children to read. The\ncopy button is a client-side affordance anyway, so nothing is lost, and\ntaking the text from a property instead would be a second copy of the code\nthat goes stale the moment the slot changes. Empty while hydrating what a\nserver sent, which rendered it empty.",
15651
15784
  "readonly": true
15652
15785
  },
15786
+ {
15787
+ "kind": "method",
15788
+ "name": "renderHeader",
15789
+ "privacy": "private",
15790
+ "return": {
15791
+ "type": {
15792
+ "text": "TemplateResult | typeof nothing"
15793
+ }
15794
+ },
15795
+ "parameters": [
15796
+ {
15797
+ "name": "name",
15798
+ "type": {
15799
+ "text": "string"
15800
+ }
15801
+ },
15802
+ {
15803
+ "name": "value",
15804
+ "optional": true,
15805
+ "type": {
15806
+ "text": "string"
15807
+ }
15808
+ }
15809
+ ],
15810
+ "description": "The name with the copy button beside it, or nothing when there is no name.\n\n**The button is in the header wherever there is one**, because beside the\ncode it stands over the block and the block has to make room for it. A\ndiff cannot: its washes run to the edge, so the button stood on the hunk\nline and the line under it. In the header it is over nothing.\n\n**No name draws no header**, rather than a bar to hold one button, which\nturned a `Usage` section of one-line imports into a run of empty strips.\nThe button then stands beside the code, in room the block keeps for it."
15811
+ },
15812
+ {
15813
+ "kind": "method",
15814
+ "name": "renderCopy",
15815
+ "privacy": "private",
15816
+ "return": {
15817
+ "type": {
15818
+ "text": "TemplateResult | typeof nothing"
15819
+ }
15820
+ },
15821
+ "parameters": [
15822
+ {
15823
+ "name": "value",
15824
+ "optional": true,
15825
+ "type": {
15826
+ "text": "string"
15827
+ }
15828
+ }
15829
+ ]
15830
+ },
15653
15831
  {
15654
15832
  "kind": "method",
15655
15833
  "name": "renderCopyButton",
@@ -15902,7 +16080,7 @@
15902
16080
  "text": "Promise<void>"
15903
16081
  },
15904
16082
  "readonly": true,
15905
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
16083
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
15906
16084
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
15907
16085
  "inheritedFrom": {
15908
16086
  "name": "HelixElement",
@@ -16361,7 +16539,7 @@
16361
16539
  "text": "Promise<void>"
16362
16540
  },
16363
16541
  "readonly": true,
16364
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
16542
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
16365
16543
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
16366
16544
  "inheritedFrom": {
16367
16545
  "name": "HelixElement",
@@ -17023,13 +17201,36 @@
17023
17201
  "name": "panel",
17024
17202
  "privacy": "protected",
17025
17203
  "readonly": true,
17026
- "default": "new PopoverController(this, { anchor: () => this.partNamed('field'), /* The surface *and* the trigger. * * A control is not always one element: the button that opens this panel is * part of it, and a press on it is not a press outside. Scoped to the * surface alone, `pointerdown` on the trigger closes the panel and the * trigger's own `toggleOpen` reopens it on the `click` that follows, so the * panel can never be closed by the button that opened it. * `DismissController` documents this failure and takes a list for it. */ boundary: (): readonly (Element | null | undefined)[] => [ this.partNamed('surface'), this.partNamed('trigger'), ], /* Wider than the four every other panel here takes. Those sit against a control the same width as themselves and read as an extension of it; this one is a picker of its own size hanging off a field, so the gap is what says the two are separate things rather than one control that grew. */ offset: () => 8, onDismiss: () => this.requestOpen(false), open: () => this.open, placement: 'bottom-start', surface: () => this.partNamed('surface'), })",
17204
+ "default": "new PopoverController(this, { anchor: () => this.partNamed('field'), /* The surface *and* the trigger. * * A control is not always one element: the button that opens this panel is * part of it, and a press on it is not a press outside. Scoped to the * surface alone, `pointerdown` on the trigger closes the panel and the * trigger's own `toggleOpen` reopens it on the `click` that follows, so the * panel can never be closed by the button that opened it. * `DismissController` documents this failure and takes a list for it. */ boundary: (): readonly (Element | null | undefined)[] => [ this.partNamed('surface'), this.partNamed('trigger'), ], /* Wider than the four every other panel here takes. Those sit against a control the same width as themselves and read as an extension of it; this one is a picker of its own size hanging off a field, so the gap is what says the two are separate things rather than one control that grew. */ offset: () => 8, onDismiss: () => this.requestOpen(false), onPlace: (_placement, room) => this.placed(room), open: () => this.open, placement: 'bottom-start', surface: () => this.partNamed('surface'), })",
17027
17205
  "description": "The overlay, placed against the field rather than the trigger.\n\nAgainst the field because that is the box a reader sees as the control: a\ncalendar hung off a small button at one end of a wide field reads as\nbelonging to the button. `Select` anchors to its trigger for the opposite\nreason, its trigger being the whole control.",
17028
17206
  "inheritedFrom": {
17029
17207
  "name": "MixinPickerField",
17030
17208
  "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
17031
17209
  }
17032
17210
  },
17211
+ {
17212
+ "kind": "method",
17213
+ "name": "placed",
17214
+ "privacy": "protected",
17215
+ "return": {
17216
+ "type": {
17217
+ "text": "void"
17218
+ }
17219
+ },
17220
+ "parameters": [
17221
+ {
17222
+ "name": "_room",
17223
+ "type": {
17224
+ "text": "number | undefined"
17225
+ }
17226
+ }
17227
+ ],
17228
+ "description": "Told the panel has been placed, and how wide the window leaves it room to\nbe, in pixels.\n\nNothing, unless a family fits what its panel holds to the room it has.",
17229
+ "inheritedFrom": {
17230
+ "name": "MixinPickerField",
17231
+ "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
17232
+ }
17233
+ },
17033
17234
  {
17034
17235
  "kind": "field",
17035
17236
  "name": "control",
@@ -17888,7 +18089,7 @@
17888
18089
  "text": "Promise<void>"
17889
18090
  },
17890
18091
  "readonly": true,
17891
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
18092
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
17892
18093
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
17893
18094
  "inheritedFrom": {
17894
18095
  "name": "HelixElement",
@@ -19476,7 +19677,7 @@
19476
19677
  "text": "Promise<void>"
19477
19678
  },
19478
19679
  "readonly": true,
19479
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
19680
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
19480
19681
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
19481
19682
  "inheritedFrom": {
19482
19683
  "name": "HelixElement",
@@ -21407,7 +21608,7 @@
21407
21608
  "text": "Promise<void>"
21408
21609
  },
21409
21610
  "readonly": true,
21410
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
21611
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
21411
21612
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
21412
21613
  "inheritedFrom": {
21413
21614
  "name": "HelixElement",
@@ -22467,7 +22668,7 @@
22467
22668
  "text": "Promise<void>"
22468
22669
  },
22469
22670
  "readonly": true,
22470
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
22671
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
22471
22672
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
22472
22673
  "inheritedFrom": {
22473
22674
  "name": "HelixElement",
@@ -22894,6 +23095,38 @@
22894
23095
  {
22895
23096
  "description": "The point, resting against the trigger.",
22896
23097
  "name": "tooltip-arrow"
23098
+ },
23099
+ {
23100
+ "description": "The point while the bubble is below the button, so on its top edge, beside `tooltip-arrow`.",
23101
+ "name": "tooltip-arrow-bottom"
23102
+ },
23103
+ {
23104
+ "description": "The point while the bubble is left of the button, so on its right edge, beside `tooltip-arrow`.",
23105
+ "name": "tooltip-arrow-left"
23106
+ },
23107
+ {
23108
+ "description": "The point while the bubble is right of the button, so on its left edge, beside `tooltip-arrow`.",
23109
+ "name": "tooltip-arrow-right"
23110
+ },
23111
+ {
23112
+ "description": "The point while the bubble is above the button, so on its bottom edge, beside `tooltip-arrow`.",
23113
+ "name": "tooltip-arrow-top"
23114
+ },
23115
+ {
23116
+ "description": "The bubble while it is below the button, beside `tooltip`.",
23117
+ "name": "tooltip-bottom"
23118
+ },
23119
+ {
23120
+ "description": "The bubble while it is left of the button, beside `tooltip`.",
23121
+ "name": "tooltip-left"
23122
+ },
23123
+ {
23124
+ "description": "The bubble while it is right of the button, beside `tooltip`.",
23125
+ "name": "tooltip-right"
23126
+ },
23127
+ {
23128
+ "description": "The bubble while it is above the button, beside `tooltip`.",
23129
+ "name": "tooltip-top"
22897
23130
  }
22898
23131
  ],
22899
23132
  "slots": [
@@ -23593,7 +23826,7 @@
23593
23826
  "text": "Promise<void>"
23594
23827
  },
23595
23828
  "readonly": true,
23596
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
23829
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
23597
23830
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
23598
23831
  "inheritedFrom": {
23599
23832
  "name": "HelixElement",
@@ -24718,6 +24951,16 @@
24718
24951
  "description": "The columns in the order a reader arranged them.\n\nThe ones with a field are put in `order`'s order, those it does not name\nafter them in the order they were written, and a column with no field stays\nwhere it was written: it has nothing to be named by.",
24719
24952
  "readonly": true
24720
24953
  },
24954
+ {
24955
+ "kind": "field",
24956
+ "name": "shownColumns",
24957
+ "type": {
24958
+ "text": "HelixHeadlessTableColumn[]"
24959
+ },
24960
+ "privacy": "private",
24961
+ "description": "The columns drawn: the arranged ones less any that are hidden.\n\n**A hidden column takes no track and draws no cells.** Left in, its\nheading went and its track and its cell in every row stayed, so the header\nrow came up a heading short, the first cell filled the gap, and every row\nafter it began a column late. It keeps its place in `order` and in the\nsort, which are by field, so showing it again puts it back where it was.",
24962
+ "readonly": true
24963
+ },
24721
24964
  {
24722
24965
  "kind": "field",
24723
24966
  "name": "fields",
@@ -24972,7 +25215,38 @@
24972
25215
  }
24973
25216
  }
24974
25217
  ],
24975
- "description": "Moves a column by some places among the ones that move."
25218
+ "description": "Moves a column by some places among the ones that move and are drawn.\n\nCounted among the drawn ones, so a key moves the heading past one a reader\ncan see: counted among all of them, a step past a hidden column changed the\norder and nothing on screen. A hidden column keeps its place among the rest."
25219
+ },
25220
+ {
25221
+ "kind": "method",
25222
+ "name": "placed",
25223
+ "privacy": "private",
25224
+ "return": {
25225
+ "type": {
25226
+ "text": "string[]"
25227
+ }
25228
+ },
25229
+ "parameters": [
25230
+ {
25231
+ "name": "field",
25232
+ "type": {
25233
+ "text": "string"
25234
+ }
25235
+ },
25236
+ {
25237
+ "name": "beside",
25238
+ "type": {
25239
+ "text": "string"
25240
+ }
25241
+ },
25242
+ {
25243
+ "name": "after",
25244
+ "type": {
25245
+ "text": "boolean"
25246
+ }
25247
+ }
25248
+ ],
25249
+ "description": "Every field in order, with one taken out and put back beside another."
24976
25250
  },
24977
25251
  {
24978
25252
  "kind": "method",
@@ -24982,7 +25256,7 @@
24982
25256
  "text": "string"
24983
25257
  }
24984
25258
  },
24985
- "description": "The result as CSV: every row the filter lets through, in the order on\nscreen, in the columns on screen, headed by their headings.\n\n**Values, not cells.** A cell may be a template, a badge or a link, so each\ncolumn gives its field's value, which is what a spreadsheet wants anyway.\nA column with no field has no value and is left out. In `server` mode this\nis the page it holds, which is all it can know.\n\n**A text value that a spreadsheet would run is quoted as text.** A cell\nopening with `=`, `+`, `-` or `@` is a formula to a spreadsheet, and a\nresult is often something a reader did not write: those values gain a\nleading apostrophe, the mark spreadsheets read as \"this is text\". Numbers are\nleft alone, so a negative one stays a number.",
25259
+ "description": "The result as CSV: every row the filter lets through, in the order on\nscreen, in the columns on screen, headed by their headings.\n\n**Values, not cells.** A cell may be a template, a badge or a link, so each\ncolumn gives its field's value, which is what a spreadsheet wants anyway.\nA column with no field has no value and is left out, and so is a hidden\none, which is not on screen. In `server` mode this is the page it holds,\nwhich is all it can know.\n\n**A text value that a spreadsheet would run is quoted as text.** A cell\nopening with `=`, `+`, `-` or `@` is a formula to a spreadsheet, and a\nresult is often something a reader did not write: those values gain a\nleading apostrophe, the mark spreadsheets read as \"this is text\". Numbers are\nleft alone, so a negative one stays a number.",
24986
25260
  "type": {
24987
25261
  "text": "csv() => string"
24988
25262
  }
@@ -25657,7 +25931,7 @@
25657
25931
  "text": "Promise<void>"
25658
25932
  },
25659
25933
  "readonly": true,
25660
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
25934
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
25661
25935
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
25662
25936
  "inheritedFrom": {
25663
25937
  "name": "HelixElement",
@@ -26771,9 +27045,52 @@
26771
27045
  "text": "number"
26772
27046
  },
26773
27047
  "default": "1",
26774
- "description": "How many months the calendar shows, side by side.\n\nWorth more than one mainly for a range, where picking a start in March and\nan end in April otherwise means paging between them and losing sight of the\nfirst. The panel is sized by its content, so this widens it.",
27048
+ "description": "How many months the calendar shows, side by side.\n\nWorth more than one mainly for a range, where picking a start in March and\nan end in April otherwise means paging between them and losing sight of the\nfirst. The panel is sized by its content, so this widens it, and where the\nwindow has no room for that width it shows one month until there is.",
26775
27049
  "attribute": "months"
26776
27050
  },
27051
+ {
27052
+ "kind": "field",
27053
+ "name": "fitted",
27054
+ "type": {
27055
+ "text": "number | undefined"
27056
+ },
27057
+ "privacy": "private",
27058
+ "default": "undefined",
27059
+ "description": "How many months the panel is showing, where that is fewer than `months`.\n\n**One month rather than a squeezed two**, and decided here rather than in a\nstylesheet because what changes is markup. Two months measure 600 pixels\nacross, measured 15 Sep 2026, and in a 390 window that ran past both\nedges. A rule could only clip them, which hides the next-month control with\nthe month it sits on, or stack them, which makes a panel taller than most\nof a phone. The count is behavior, as a carousel's per-view is."
27060
+ },
27061
+ {
27062
+ "kind": "field",
27063
+ "name": "wide",
27064
+ "type": {
27065
+ "text": "number | undefined"
27066
+ },
27067
+ "privacy": "private",
27068
+ "default": "undefined",
27069
+ "description": "How wide the panel was the last time it held every month, in pixels.\n\nMeasured rather than estimated, because a month's width is its locale's:\nthe weekday names set it. Remembered, so a panel showing one month knows\nwhat it would take to show them all, and the answer cannot flip back and\nforth between two measurements of different things."
27070
+ },
27071
+ {
27072
+ "kind": "method",
27073
+ "name": "placed",
27074
+ "privacy": "protected",
27075
+ "return": {
27076
+ "type": {
27077
+ "text": "void"
27078
+ }
27079
+ },
27080
+ "parameters": [
27081
+ {
27082
+ "name": "room",
27083
+ "type": {
27084
+ "text": "number | undefined"
27085
+ }
27086
+ }
27087
+ ],
27088
+ "description": "Shows one month where the window has no room for them all, and all of them\nagain once it does.\n\nCalled after every placement, with the room the floating pass measured,\nwhich is the window less a margin on each side. The panel hangs in the top\nlayer, so the window is its box, the argument Dialog makes for reading the\nviewport. The surface's own width is read, since it is sized by its content\nand never capped.",
27089
+ "inheritedFrom": {
27090
+ "name": "MixinPickerField",
27091
+ "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
27092
+ }
27093
+ },
26777
27094
  {
26778
27095
  "kind": "field",
26779
27096
  "name": "placeholder",
@@ -27057,7 +27374,7 @@
27057
27374
  "name": "panel",
27058
27375
  "privacy": "protected",
27059
27376
  "readonly": true,
27060
- "default": "new PopoverController(this, { anchor: () => this.partNamed('field'), /* The surface *and* the trigger. * * A control is not always one element: the button that opens this panel is * part of it, and a press on it is not a press outside. Scoped to the * surface alone, `pointerdown` on the trigger closes the panel and the * trigger's own `toggleOpen` reopens it on the `click` that follows, so the * panel can never be closed by the button that opened it. * `DismissController` documents this failure and takes a list for it. */ boundary: (): readonly (Element | null | undefined)[] => [ this.partNamed('surface'), this.partNamed('trigger'), ], /* Wider than the four every other panel here takes. Those sit against a control the same width as themselves and read as an extension of it; this one is a picker of its own size hanging off a field, so the gap is what says the two are separate things rather than one control that grew. */ offset: () => 8, onDismiss: () => this.requestOpen(false), open: () => this.open, placement: 'bottom-start', surface: () => this.partNamed('surface'), })",
27377
+ "default": "new PopoverController(this, { anchor: () => this.partNamed('field'), /* The surface *and* the trigger. * * A control is not always one element: the button that opens this panel is * part of it, and a press on it is not a press outside. Scoped to the * surface alone, `pointerdown` on the trigger closes the panel and the * trigger's own `toggleOpen` reopens it on the `click` that follows, so the * panel can never be closed by the button that opened it. * `DismissController` documents this failure and takes a list for it. */ boundary: (): readonly (Element | null | undefined)[] => [ this.partNamed('surface'), this.partNamed('trigger'), ], /* Wider than the four every other panel here takes. Those sit against a control the same width as themselves and read as an extension of it; this one is a picker of its own size hanging off a field, so the gap is what says the two are separate things rather than one control that grew. */ offset: () => 8, onDismiss: () => this.requestOpen(false), onPlace: (_placement, room) => this.placed(room), open: () => this.open, placement: 'bottom-start', surface: () => this.partNamed('surface'), })",
27061
27378
  "description": "The overlay, placed against the field rather than the trigger.\n\nAgainst the field because that is the box a reader sees as the control: a\ncalendar hung off a small button at one end of a wide field reads as\nbelonging to the button. `Select` anchors to its trigger for the opposite\nreason, its trigger being the whole control.",
27062
27379
  "inheritedFrom": {
27063
27380
  "name": "MixinPickerField",
@@ -28106,7 +28423,7 @@
28106
28423
  "text": "Promise<void>"
28107
28424
  },
28108
28425
  "readonly": true,
28109
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
28426
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
28110
28427
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
28111
28428
  "inheritedFrom": {
28112
28429
  "name": "HelixElement",
@@ -28458,7 +28775,7 @@
28458
28775
  "text": "number"
28459
28776
  },
28460
28777
  "default": "1",
28461
- "description": "How many months the calendar shows, side by side.\n\nWorth more than one mainly for a range, where picking a start in March and\nan end in April otherwise means paging between them and losing sight of the\nfirst. The panel is sized by its content, so this widens it.",
28778
+ "description": "How many months the calendar shows, side by side.\n\nWorth more than one mainly for a range, where picking a start in March and\nan end in April otherwise means paging between them and losing sight of the\nfirst. The panel is sized by its content, so this widens it, and where the\nwindow has no room for that width it shows one month until there is.",
28462
28779
  "fieldName": "months"
28463
28780
  },
28464
28781
  {
@@ -29774,7 +30091,7 @@
29774
30091
  "text": "Promise<void>"
29775
30092
  },
29776
30093
  "readonly": true,
29777
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
30094
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
29778
30095
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
29779
30096
  "inheritedFrom": {
29780
30097
  "name": "HelixElement",
@@ -30466,7 +30783,7 @@
30466
30783
  "text": "Promise<void>"
30467
30784
  },
30468
30785
  "readonly": true,
30469
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
30786
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
30470
30787
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
30471
30788
  "inheritedFrom": {
30472
30789
  "name": "HelixElement",
@@ -30881,7 +31198,7 @@
30881
31198
  "text": "Promise<void>"
30882
31199
  },
30883
31200
  "readonly": true,
30884
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
31201
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
30885
31202
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
30886
31203
  "inheritedFrom": {
30887
31204
  "name": "HelixElement",
@@ -31593,7 +31910,7 @@
31593
31910
  "text": "Promise<void>"
31594
31911
  },
31595
31912
  "readonly": true,
31596
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
31913
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
31597
31914
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
31598
31915
  "inheritedFrom": {
31599
31916
  "name": "HelixElement",
@@ -32149,7 +32466,7 @@
32149
32466
  "text": "Promise<void>"
32150
32467
  },
32151
32468
  "readonly": true,
32152
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
32469
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
32153
32470
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
32154
32471
  "inheritedFrom": {
32155
32472
  "name": "HelixElement",
@@ -32509,6 +32826,26 @@
32509
32826
  "description": "The bubble's point, forwarded from `Tooltip`.",
32510
32827
  "name": "tooltip-arrow"
32511
32828
  },
32829
+ {
32830
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
32831
+ "name": "tooltip-arrow-bottom"
32832
+ },
32833
+ {
32834
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
32835
+ "name": "tooltip-arrow-left"
32836
+ },
32837
+ {
32838
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
32839
+ "name": "tooltip-arrow-right"
32840
+ },
32841
+ {
32842
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
32843
+ "name": "tooltip-arrow-top"
32844
+ },
32845
+ {
32846
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
32847
+ "name": "tooltip-bottom"
32848
+ },
32512
32849
  {
32513
32850
  "description": "One column's name and value inside the tooltip.",
32514
32851
  "name": "tooltip-cell"
@@ -32517,10 +32854,22 @@
32517
32854
  "description": "The slice's own name inside the tooltip.",
32518
32855
  "name": "tooltip-label"
32519
32856
  },
32857
+ {
32858
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
32859
+ "name": "tooltip-left"
32860
+ },
32520
32861
  {
32521
32862
  "description": "A column's name inside the tooltip.",
32522
32863
  "name": "tooltip-name"
32523
32864
  },
32865
+ {
32866
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
32867
+ "name": "tooltip-right"
32868
+ },
32869
+ {
32870
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
32871
+ "name": "tooltip-top"
32872
+ },
32524
32873
  {
32525
32874
  "description": "A column's value inside the tooltip.",
32526
32875
  "name": "tooltip-value"
@@ -32567,6 +32916,16 @@
32567
32916
  "description": "The fraction of the circle the shares are spread over.",
32568
32917
  "readonly": true
32569
32918
  },
32919
+ {
32920
+ "kind": "field",
32921
+ "name": "origin",
32922
+ "type": {
32923
+ "text": "number"
32924
+ },
32925
+ "privacy": "private",
32926
+ "description": "Where the first slice starts, as an angle from three o'clock.\n\nTwelve for a whole ring and nine for a half, the turns the stylesheet gives\nthe circles. Anything drawn or placed by arithmetic has to start from the\nsame place, or it describes a slice the ring is not showing there.",
32927
+ "readonly": true
32928
+ },
32570
32929
  {
32571
32930
  "kind": "field",
32572
32931
  "name": "thickness",
@@ -32673,7 +33032,7 @@
32673
33032
  }
32674
33033
  }
32675
33034
  ],
32676
- "description": "The same slice again, as a shape with an inside.\n\n**A stroked arc has no boundary to draw, which is why this exists.** The\nsegment above is a dash on a circle: the mark *is* the edge, so there is\nnothing for an outline to trace and nothing within it to fade. Anything\nwanting those two separately needs the slice as a closed path, and this is\nit: the outer arc, a step inward, the inner arc back, closed.\n\n**Rendered always and painted only sometimes**, which is what keeps this on\nthis tier. Whether a boundary is drawn is a styled question and the answer\nlives in a stylesheet; whether the geometry a boundary would need exists at\nall is structural, and a component cannot conjure a shape from CSS. So the\npath is here for every donut and is `fill: none; stroke: none` until\nsomething asks for it.\n\n**Not a replacement for the dash.** The dash carries three jobs and only\none of them is the shape: a share growing is a `stroke-dasharray`\ninterpolating with no reflow, and `@starting-style` on that same property is\nthe whole reason the ring sweeps in rather than appearing. A `d` cannot do\neither. CSS interpolates one only between paths of identical command\nstructure, and the large-arc flag flips the moment a slice crosses a half\nturn, so a growing slice would pop partway through the transition it was\nmeant to smooth. Both animations stay on the dash and this path follows it.\n\nThe turn to twelve o'clock is arithmetic here rather than the rotation the\nstylesheet gives the circles. That rule uses `transform-box: fill-box`, so\nit spins each element about its own bounding box, which is the ring's center\nfor a circle and is not for a sector."
33035
+ "description": "The same slice again, as a shape with an inside.\n\n**A stroked arc has no boundary to draw, which is why this exists.** The\nsegment above is a dash on a circle: the mark *is* the edge, so there is\nnothing for an outline to trace and nothing within it to fade. Anything\nwanting those two separately needs the slice as a closed path, and this is\nit: the outer arc, a step inward, the inner arc back, closed.\n\n**Rendered always and painted only sometimes**, which is what keeps this on\nthis tier. Whether a boundary is drawn is a styled question and the answer\nlives in a stylesheet; whether the geometry a boundary would need exists at\nall is structural, and a component cannot conjure a shape from CSS. So the\npath is here for every donut and is `fill: none; stroke: none` until\nsomething asks for it.\n\n**Not a replacement for the dash.** The dash carries three jobs and only\none of them is the shape: a share growing is a `stroke-dasharray`\ninterpolating with no reflow, and `@starting-style` on that same property is\nthe whole reason the ring sweeps in rather than appearing. A `d` cannot do\neither. CSS interpolates one only between paths of identical command\nstructure, and the large-arc flag flips the moment a slice crosses a half\nturn, so a growing slice would pop partway through the transition it was\nmeant to smooth. Both animations stay on the dash and this path follows it.\n\nThe turn to twelve o'clock, or to nine for a half, is `origin` here rather\nthan the rotation the stylesheet gives the circles. That rule uses\n`transform-box: fill-box`, so it spins each element about its own bounding\nbox, which is the ring's center for a circle and is not for a sector."
32677
33036
  },
32678
33037
  {
32679
33038
  "kind": "method",
@@ -32899,7 +33258,7 @@
32899
33258
  "text": "Promise<void>"
32900
33259
  },
32901
33260
  "readonly": true,
32902
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
33261
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
32903
33262
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
32904
33263
  "inheritedFrom": {
32905
33264
  "name": "HelixElement",
@@ -33586,7 +33945,7 @@
33586
33945
  "text": "Promise<void>"
33587
33946
  },
33588
33947
  "readonly": true,
33589
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
33948
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
33590
33949
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
33591
33950
  "inheritedFrom": {
33592
33951
  "name": "HelixElement",
@@ -34234,7 +34593,7 @@
34234
34593
  "text": "Promise<void>"
34235
34594
  },
34236
34595
  "readonly": true,
34237
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
34596
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
34238
34597
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
34239
34598
  "inheritedFrom": {
34240
34599
  "name": "HelixElement",
@@ -34968,7 +35327,7 @@
34968
35327
  "text": "Promise<void>"
34969
35328
  },
34970
35329
  "readonly": true,
34971
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
35330
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
34972
35331
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
34973
35332
  "inheritedFrom": {
34974
35333
  "name": "HelixElement",
@@ -35488,7 +35847,7 @@
35488
35847
  "text": "Promise<void>"
35489
35848
  },
35490
35849
  "readonly": true,
35491
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
35850
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
35492
35851
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
35493
35852
  "inheritedFrom": {
35494
35853
  "name": "HelixElement",
@@ -36622,7 +36981,7 @@
36622
36981
  "text": "Promise<void>"
36623
36982
  },
36624
36983
  "readonly": true,
36625
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
36984
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
36626
36985
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
36627
36986
  "inheritedFrom": {
36628
36987
  "name": "HelixElement",
@@ -37324,7 +37683,7 @@
37324
37683
  "text": "Promise<void>"
37325
37684
  },
37326
37685
  "readonly": true,
37327
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
37686
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
37328
37687
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
37329
37688
  "inheritedFrom": {
37330
37689
  "name": "HelixElement",
@@ -37851,7 +38210,7 @@
37851
38210
  "text": "Promise<void>"
37852
38211
  },
37853
38212
  "readonly": true,
37854
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
38213
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
37855
38214
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
37856
38215
  "inheritedFrom": {
37857
38216
  "name": "HelixElement",
@@ -38578,7 +38937,7 @@
38578
38937
  "text": "Promise<void>"
38579
38938
  },
38580
38939
  "readonly": true,
38581
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
38940
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
38582
38941
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
38583
38942
  "inheritedFrom": {
38584
38943
  "name": "HelixElement",
@@ -39027,7 +39386,7 @@
39027
39386
  "text": "Promise<void>"
39028
39387
  },
39029
39388
  "readonly": true,
39030
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
39389
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
39031
39390
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
39032
39391
  "inheritedFrom": {
39033
39392
  "name": "HelixElement",
@@ -40767,7 +41126,7 @@
40767
41126
  "text": "Promise<void>"
40768
41127
  },
40769
41128
  "readonly": true,
40770
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
41129
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
40771
41130
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
40772
41131
  "inheritedFrom": {
40773
41132
  "name": "HelixElement",
@@ -41694,7 +42053,7 @@
41694
42053
  "text": "Promise<void>"
41695
42054
  },
41696
42055
  "readonly": true,
41697
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
42056
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
41698
42057
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
41699
42058
  "inheritedFrom": {
41700
42059
  "name": "HelixElement",
@@ -42403,6 +42762,26 @@
42403
42762
  "description": "The bubble's point, forwarded from `Tooltip`.",
42404
42763
  "name": "tooltip-arrow"
42405
42764
  },
42765
+ {
42766
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
42767
+ "name": "tooltip-arrow-bottom"
42768
+ },
42769
+ {
42770
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
42771
+ "name": "tooltip-arrow-left"
42772
+ },
42773
+ {
42774
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
42775
+ "name": "tooltip-arrow-right"
42776
+ },
42777
+ {
42778
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
42779
+ "name": "tooltip-arrow-top"
42780
+ },
42781
+ {
42782
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
42783
+ "name": "tooltip-bottom"
42784
+ },
42406
42785
  {
42407
42786
  "description": "One column's name and value inside the tooltip.",
42408
42787
  "name": "tooltip-cell"
@@ -42411,10 +42790,22 @@
42411
42790
  "description": "The reading's own name inside the tooltip.",
42412
42791
  "name": "tooltip-label"
42413
42792
  },
42793
+ {
42794
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
42795
+ "name": "tooltip-left"
42796
+ },
42414
42797
  {
42415
42798
  "description": "A column's name inside the tooltip.",
42416
42799
  "name": "tooltip-name"
42417
42800
  },
42801
+ {
42802
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
42803
+ "name": "tooltip-right"
42804
+ },
42805
+ {
42806
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
42807
+ "name": "tooltip-top"
42808
+ },
42418
42809
  {
42419
42810
  "description": "A column's value inside the tooltip.",
42420
42811
  "name": "tooltip-value"
@@ -42472,7 +42863,7 @@
42472
42863
  "text": "number"
42473
42864
  },
42474
42865
  "default": "1",
42475
- "description": "How many rows the strip has.\n\n`1` is a status strip and `7` is a calendar week, which are the two readings\nthis covers. Cells fill down the column and then across, which is what a\ncalendar heatmap does: a week is a column, so the strip reads left to right\nin weeks and top to bottom in days.",
42866
+ "description": "How many rows the strip has.\n\n`1` is a status strip and `7` is a calendar week, which are the two readings\nthis covers. Cells fill down the column and then across, which is what a\ncalendar heatmap does: a week is a column, so the strip reads along the\nline in weeks, from the right on a right-to-left page, and top to bottom in\ndays.",
42476
42867
  "attribute": "rows"
42477
42868
  },
42478
42869
  {
@@ -42903,7 +43294,7 @@
42903
43294
  "text": "Promise<void>"
42904
43295
  },
42905
43296
  "readonly": true,
42906
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
43297
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
42907
43298
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
42908
43299
  "inheritedFrom": {
42909
43300
  "name": "HelixElement",
@@ -43162,7 +43553,7 @@
43162
43553
  "text": "number"
43163
43554
  },
43164
43555
  "default": "1",
43165
- "description": "How many rows the strip has.\n\n`1` is a status strip and `7` is a calendar week, which are the two readings\nthis covers. Cells fill down the column and then across, which is what a\ncalendar heatmap does: a week is a column, so the strip reads left to right\nin weeks and top to bottom in days.",
43556
+ "description": "How many rows the strip has.\n\n`1` is a status strip and `7` is a calendar week, which are the two readings\nthis covers. Cells fill down the column and then across, which is what a\ncalendar heatmap does: a week is a column, so the strip reads along the\nline in weeks, from the right on a right-to-left page, and top to bottom in\ndays.",
43166
43557
  "fieldName": "rows"
43167
43558
  },
43168
43559
  {
@@ -44085,7 +44476,7 @@
44085
44476
  "text": "Promise<void>"
44086
44477
  },
44087
44478
  "readonly": true,
44088
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
44479
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
44089
44480
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
44090
44481
  "inheritedFrom": {
44091
44482
  "name": "HelixElement",
@@ -44373,6 +44764,16 @@
44373
44764
  "description": "Accessible name, for an icon that is not decorative.",
44374
44765
  "attribute": "label"
44375
44766
  },
44767
+ {
44768
+ "kind": "field",
44769
+ "name": "mirror",
44770
+ "type": {
44771
+ "text": "boolean"
44772
+ },
44773
+ "default": "false",
44774
+ "description": "Turns the glyph round on a right-to-left page, for an arrow meaning forward or back.\n\nAsked for rather than inferred from the name. The names are physical, and\n`arrow-left` drawn pointing right on an Arabic page would be the icon\ndisagreeing with its own name for every reader who meant the left.",
44775
+ "attribute": "mirror"
44776
+ },
44376
44777
  {
44377
44778
  "kind": "field",
44378
44779
  "name": "name",
@@ -44493,7 +44894,7 @@
44493
44894
  "text": "Promise<void>"
44494
44895
  },
44495
44896
  "readonly": true,
44496
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
44897
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
44497
44898
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
44498
44899
  "inheritedFrom": {
44499
44900
  "name": "HelixElement",
@@ -44718,6 +45119,15 @@
44718
45119
  "description": "Accessible name, for an icon that is not decorative.",
44719
45120
  "fieldName": "label"
44720
45121
  },
45122
+ {
45123
+ "name": "mirror",
45124
+ "type": {
45125
+ "text": "boolean"
45126
+ },
45127
+ "default": "false",
45128
+ "description": "Turns the glyph round on a right-to-left page, for an arrow meaning forward or back.\n\nAsked for rather than inferred from the name. The names are physical, and\n`arrow-left` drawn pointing right on an Arabic page would be the icon\ndisagreeing with its own name for every reader who meant the left.",
45129
+ "fieldName": "mirror"
45130
+ },
44721
45131
  {
44722
45132
  "name": "name",
44723
45133
  "type": {
@@ -45160,7 +45570,7 @@
45160
45570
  "text": "Promise<void>"
45161
45571
  },
45162
45572
  "readonly": true,
45163
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
45573
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
45164
45574
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
45165
45575
  "inheritedFrom": {
45166
45576
  "name": "HelixElement",
@@ -47298,7 +47708,7 @@
47298
47708
  "text": "Promise<void>"
47299
47709
  },
47300
47710
  "readonly": true,
47301
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
47711
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
47302
47712
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
47303
47713
  "inheritedFrom": {
47304
47714
  "name": "HelixElement",
@@ -48056,7 +48466,7 @@
48056
48466
  "text": "Promise<void>"
48057
48467
  },
48058
48468
  "readonly": true,
48059
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
48469
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
48060
48470
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
48061
48471
  "inheritedFrom": {
48062
48472
  "name": "HelixElement",
@@ -48556,7 +48966,7 @@
48556
48966
  "text": "Promise<void>"
48557
48967
  },
48558
48968
  "readonly": true,
48559
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
48969
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
48560
48970
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
48561
48971
  "inheritedFrom": {
48562
48972
  "name": "HelixElement",
@@ -48935,6 +49345,26 @@
48935
49345
  "description": "The bubble's point, forwarded from `Tooltip`.",
48936
49346
  "name": "tooltip-arrow"
48937
49347
  },
49348
+ {
49349
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
49350
+ "name": "tooltip-arrow-bottom"
49351
+ },
49352
+ {
49353
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
49354
+ "name": "tooltip-arrow-left"
49355
+ },
49356
+ {
49357
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
49358
+ "name": "tooltip-arrow-right"
49359
+ },
49360
+ {
49361
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
49362
+ "name": "tooltip-arrow-top"
49363
+ },
49364
+ {
49365
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
49366
+ "name": "tooltip-bottom"
49367
+ },
48938
49368
  {
48939
49369
  "description": "One column's name and value inside the tooltip.",
48940
49370
  "name": "tooltip-cell"
@@ -48943,10 +49373,22 @@
48943
49373
  "description": "The reading's own name inside the tooltip.",
48944
49374
  "name": "tooltip-label"
48945
49375
  },
49376
+ {
49377
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
49378
+ "name": "tooltip-left"
49379
+ },
48946
49380
  {
48947
49381
  "description": "A column's name inside the tooltip.",
48948
49382
  "name": "tooltip-name"
48949
49383
  },
49384
+ {
49385
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
49386
+ "name": "tooltip-right"
49387
+ },
49388
+ {
49389
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
49390
+ "name": "tooltip-top"
49391
+ },
48950
49392
  {
48951
49393
  "description": "A column's value inside the tooltip.",
48952
49394
  "name": "tooltip-value"
@@ -49009,7 +49451,7 @@
49009
49451
  "type": {
49010
49452
  "text": "'none' | 'ring' | 'square' | 'triangle' | undefined"
49011
49453
  },
49012
- "description": "The shape of the mark on each series' last reading.\n\nAbsent is a dot, and absent rather than defaulted because a reflecting\nproperty with a default writes its attribute onto a host the consumer\nrendered, which React reports as a hydration mismatch.\n\n**One per series, in a column at the right edge**, because every series here\nshares an x-axis and therefore ends at the same reading. That column is the\nuseful thing: it is where a reader looks for \"and what is it now\", which is\nthe question a sparkline's single mark answers too.\n\n`none` lets the lines stop on their own, which suits a chart read for its\nshape rather than for where it finished. The shapes come from\n`helix/styled/src/shared/chart/terminus.css`, the same sheet `Sparkline` takes, so\nthe set is identical wherever one appears.\n\n`ring` is the one that asks something of the drawing. It leaves a hole and a\nline ends at the reading, which is the hole's center, so the `<svg>` is\nmasked with one disc per series and every stroke stops at its own ring's\ninner edge. `mask-composite: intersect` is what makes N holes out of N\nlayers; a single `mask-image` would only ever cut the last one.",
49454
+ "description": "The shape of the mark on each series' last reading.\n\nAbsent is a dot, and absent rather than defaulted because a reflecting\nproperty with a default writes its attribute onto a host the consumer\nrendered, which React reports as a hydration mismatch.\n\n**One per series, in a column at the far edge**, because every series here\nshares an x-axis and therefore ends at the same reading. That column is the\nuseful thing: it is where a reader looks for \"and what is it now\", which is\nthe question a sparkline's single mark answers too.\n\n`none` lets the lines stop on their own, which suits a chart read for its\nshape rather than for where it finished. The shapes come from\n`helix/styled/src/shared/chart/terminus.css`, the same sheet `Sparkline` takes, so\nthe set is identical wherever one appears.\n\n`ring` is the one that asks something of the drawing. It leaves a hole and a\nline ends at the reading, which is the hole's center, so the `<svg>` is\nmasked with one disc per series and every stroke stops at its own ring's\ninner edge. `mask-composite: intersect` is what makes N holes out of N\nlayers; a single `mask-image` would only ever cut the last one.",
49013
49455
  "attribute": "terminus",
49014
49456
  "reflects": true
49015
49457
  },
@@ -49485,7 +49927,7 @@
49485
49927
  "text": "Promise<void>"
49486
49928
  },
49487
49929
  "readonly": true,
49488
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
49930
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
49489
49931
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
49490
49932
  "inheritedFrom": {
49491
49933
  "name": "HelixElement",
@@ -49731,7 +50173,7 @@
49731
50173
  "type": {
49732
50174
  "text": "'none' | 'ring' | 'square' | 'triangle' | undefined"
49733
50175
  },
49734
- "description": "The shape of the mark on each series' last reading.\n\nAbsent is a dot, and absent rather than defaulted because a reflecting\nproperty with a default writes its attribute onto a host the consumer\nrendered, which React reports as a hydration mismatch.\n\n**One per series, in a column at the right edge**, because every series here\nshares an x-axis and therefore ends at the same reading. That column is the\nuseful thing: it is where a reader looks for \"and what is it now\", which is\nthe question a sparkline's single mark answers too.\n\n`none` lets the lines stop on their own, which suits a chart read for its\nshape rather than for where it finished. The shapes come from\n`helix/styled/src/shared/chart/terminus.css`, the same sheet `Sparkline` takes, so\nthe set is identical wherever one appears.\n\n`ring` is the one that asks something of the drawing. It leaves a hole and a\nline ends at the reading, which is the hole's center, so the `<svg>` is\nmasked with one disc per series and every stroke stops at its own ring's\ninner edge. `mask-composite: intersect` is what makes N holes out of N\nlayers; a single `mask-image` would only ever cut the last one.",
50176
+ "description": "The shape of the mark on each series' last reading.\n\nAbsent is a dot, and absent rather than defaulted because a reflecting\nproperty with a default writes its attribute onto a host the consumer\nrendered, which React reports as a hydration mismatch.\n\n**One per series, in a column at the far edge**, because every series here\nshares an x-axis and therefore ends at the same reading. That column is the\nuseful thing: it is where a reader looks for \"and what is it now\", which is\nthe question a sparkline's single mark answers too.\n\n`none` lets the lines stop on their own, which suits a chart read for its\nshape rather than for where it finished. The shapes come from\n`helix/styled/src/shared/chart/terminus.css`, the same sheet `Sparkline` takes, so\nthe set is identical wherever one appears.\n\n`ring` is the one that asks something of the drawing. It leaves a hole and a\nline ends at the reading, which is the hole's center, so the `<svg>` is\nmasked with one disc per series and every stroke stops at its own ring's\ninner edge. `mask-composite: intersect` is what makes N holes out of N\nlayers; a single `mask-image` would only ever cut the last one.",
49735
50177
  "fieldName": "terminus"
49736
50178
  },
49737
50179
  {
@@ -50045,7 +50487,7 @@
50045
50487
  "text": "Promise<void>"
50046
50488
  },
50047
50489
  "readonly": true,
50048
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
50490
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
50049
50491
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
50050
50492
  "inheritedFrom": {
50051
50493
  "name": "HelixElement",
@@ -50496,7 +50938,7 @@
50496
50938
  "text": "Promise<void>"
50497
50939
  },
50498
50940
  "readonly": true,
50499
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
50941
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
50500
50942
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
50501
50943
  "inheritedFrom": {
50502
50944
  "name": "HelixElement",
@@ -52025,7 +52467,7 @@
52025
52467
  "text": "Promise<void>"
52026
52468
  },
52027
52469
  "readonly": true,
52028
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
52470
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
52029
52471
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
52030
52472
  "inheritedFrom": {
52031
52473
  "name": "HelixElement",
@@ -52718,7 +53160,7 @@
52718
53160
  "text": "Promise<void>"
52719
53161
  },
52720
53162
  "readonly": true,
52721
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
53163
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
52722
53164
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
52723
53165
  "inheritedFrom": {
52724
53166
  "name": "HelixElement",
@@ -53547,7 +53989,7 @@
53547
53989
  "text": "Promise<void>"
53548
53990
  },
53549
53991
  "readonly": true,
53550
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
53992
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
53551
53993
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
53552
53994
  "inheritedFrom": {
53553
53995
  "name": "HelixElement",
@@ -54319,7 +54761,7 @@
54319
54761
  "text": "Promise<void>"
54320
54762
  },
54321
54763
  "readonly": true,
54322
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
54764
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
54323
54765
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
54324
54766
  "inheritedFrom": {
54325
54767
  "name": "HelixElement",
@@ -55299,7 +55741,7 @@
55299
55741
  "text": "Promise<void>"
55300
55742
  },
55301
55743
  "readonly": true,
55302
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
55744
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
55303
55745
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
55304
55746
  "inheritedFrom": {
55305
55747
  "name": "HelixElement",
@@ -56129,7 +56571,7 @@
56129
56571
  "text": "Promise<void>"
56130
56572
  },
56131
56573
  "readonly": true,
56132
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
56574
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
56133
56575
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
56134
56576
  "inheritedFrom": {
56135
56577
  "name": "HelixElement",
@@ -56697,7 +57139,7 @@
56697
57139
  "text": "Promise<void>"
56698
57140
  },
56699
57141
  "readonly": true,
56700
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
57142
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
56701
57143
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
56702
57144
  "inheritedFrom": {
56703
57145
  "name": "HelixElement",
@@ -57344,7 +57786,7 @@
57344
57786
  "text": "Promise<void>"
57345
57787
  },
57346
57788
  "readonly": true,
57347
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
57789
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
57348
57790
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
57349
57791
  "inheritedFrom": {
57350
57792
  "name": "HelixElement",
@@ -58050,7 +58492,7 @@
58050
58492
  "text": "Promise<void>"
58051
58493
  },
58052
58494
  "readonly": true,
58053
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
58495
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
58054
58496
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
58055
58497
  "inheritedFrom": {
58056
58498
  "name": "HelixElement",
@@ -58898,7 +59340,7 @@
58898
59340
  "text": "Promise<void>"
58899
59341
  },
58900
59342
  "readonly": true,
58901
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
59343
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
58902
59344
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
58903
59345
  "inheritedFrom": {
58904
59346
  "name": "HelixElement",
@@ -60341,7 +60783,7 @@
60341
60783
  "text": "Promise<void>"
60342
60784
  },
60343
60785
  "readonly": true,
60344
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
60786
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
60345
60787
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
60346
60788
  "inheritedFrom": {
60347
60789
  "name": "HelixElement",
@@ -60911,6 +61353,38 @@
60911
61353
  "description": "The point, resting against the trigger.",
60912
61354
  "name": "copy-tooltip-arrow"
60913
61355
  },
61356
+ {
61357
+ "description": "The point while the bubble is below the copy button, so on its top edge, beside `copy-tooltip-arrow`.",
61358
+ "name": "copy-tooltip-arrow-bottom"
61359
+ },
61360
+ {
61361
+ "description": "The point while the bubble is left of the copy button, so on its right edge, beside `copy-tooltip-arrow`.",
61362
+ "name": "copy-tooltip-arrow-left"
61363
+ },
61364
+ {
61365
+ "description": "The point while the bubble is right of the copy button, so on its left edge, beside `copy-tooltip-arrow`.",
61366
+ "name": "copy-tooltip-arrow-right"
61367
+ },
61368
+ {
61369
+ "description": "The point while the bubble is above the copy button, so on its bottom edge, beside `copy-tooltip-arrow`.",
61370
+ "name": "copy-tooltip-arrow-top"
61371
+ },
61372
+ {
61373
+ "description": "The bubble while it is below the copy button, beside `copy-tooltip`.",
61374
+ "name": "copy-tooltip-bottom"
61375
+ },
61376
+ {
61377
+ "description": "The bubble while it is left of the copy button, beside `copy-tooltip`.",
61378
+ "name": "copy-tooltip-left"
61379
+ },
61380
+ {
61381
+ "description": "The bubble while it is right of the copy button, beside `copy-tooltip`.",
61382
+ "name": "copy-tooltip-right"
61383
+ },
61384
+ {
61385
+ "description": "The bubble while it is above the copy button, beside `copy-tooltip`.",
61386
+ "name": "copy-tooltip-top"
61387
+ },
60914
61388
  {
60915
61389
  "description": "How many entries a branch holds.",
60916
61390
  "name": "count"
@@ -61414,7 +61888,7 @@
61414
61888
  "text": "Promise<void>"
61415
61889
  },
61416
61890
  "readonly": true,
61417
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
61891
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
61418
61892
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
61419
61893
  "inheritedFrom": {
61420
61894
  "name": "HelixElement",
@@ -61897,7 +62371,7 @@
61897
62371
  "text": "Promise<void>"
61898
62372
  },
61899
62373
  "readonly": true,
61900
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
62374
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
61901
62375
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
61902
62376
  "inheritedFrom": {
61903
62377
  "name": "HelixElement",
@@ -62492,7 +62966,7 @@
62492
62966
  "text": "Promise<void>"
62493
62967
  },
62494
62968
  "readonly": true,
62495
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
62969
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
62496
62970
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
62497
62971
  "inheritedFrom": {
62498
62972
  "name": "HelixElement",
@@ -63227,7 +63701,7 @@
63227
63701
  "text": "Promise<void>"
63228
63702
  },
63229
63703
  "readonly": true,
63230
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
63704
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
63231
63705
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
63232
63706
  "inheritedFrom": {
63233
63707
  "name": "HelixElement",
@@ -64172,7 +64646,7 @@
64172
64646
  "text": "Promise<void>"
64173
64647
  },
64174
64648
  "readonly": true,
64175
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
64649
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
64176
64650
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
64177
64651
  "inheritedFrom": {
64178
64652
  "name": "HelixElement",
@@ -64965,7 +65439,7 @@
64965
65439
  "text": "Promise<void>"
64966
65440
  },
64967
65441
  "readonly": true,
64968
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
65442
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
64969
65443
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
64970
65444
  "inheritedFrom": {
64971
65445
  "name": "HelixElement",
@@ -65471,7 +65945,7 @@
65471
65945
  "text": "Promise<void>"
65472
65946
  },
65473
65947
  "readonly": true,
65474
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
65948
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
65475
65949
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
65476
65950
  "inheritedFrom": {
65477
65951
  "name": "HelixElement",
@@ -65806,7 +66280,7 @@
65806
66280
  "declarations": [
65807
66281
  {
65808
66282
  "kind": "class",
65809
- "description": "**One `<input>` per cell, rather than one input drawn as cells.** A single\nfield autofills perfectly and needs a drawn caret nobody can style well;\nseparate fields give every box a real focus ring, a real caret and a real tab\nstop for free. Autofill's gap is closed below rather than lived with.\n\n**Anything longer than one character is treated as a paste, wherever it\nlands.** That covers the obvious case and two that are not: a browser\nautofilling an SMS code drops the whole thing into whichever box is focused,\nand a password manager does the same. So a six-character arrival in cell three\nfills from cell three rather than being truncated to its first character,\nwhich is what a per-cell `maxlength` would have done silently.\n\n**The code is one value to a form.** The cells are inside a shadow root and\nsubmit nothing on their own; the host is form-associated and reports the\njoined string, which is also what carries validity and answers a reset.\n\n`autocomplete=\"one-time-code\"` is on the first cell only. It is a hint about\nthe field as a whole, and repeating it on six boxes offers a browser six\nplaces to put one code.",
66283
+ "description": "**One `<input>` per cell, rather than one input drawn as cells.** A single\nfield autofills perfectly and needs a drawn caret nobody can style well;\nseparate fields give every box a real focus ring, a real caret and a real tab\nstop for free. Autofill's gap is closed below rather than lived with.\n\n**Anything longer than one character is treated as a paste, wherever it\nlands.** That covers the obvious case and two that are not: a browser\nautofilling an SMS code drops the whole thing into whichever box is focused,\nand a password manager does the same. So a six-character arrival in cell three\nfills from cell three rather than being truncated to its first character,\nwhich is what a per-cell `maxlength` would have done silently.\n\n**The code is one value to a form.** The cells are inside a shadow root and\nsubmit nothing on their own; the host is form-associated and reports the\njoined string, which is also what carries validity and answers a reset.\n\n`autocomplete=\"one-time-code\"` is on the first cell only. It is a hint about\nthe field as a whole, and repeating it on six boxes offers a browser six\nplaces to put one code.\n\n**Left to right on every page.** A code is read the way a phone number is,\none character after another from the left, in Arabic and Hebrew as in\nEnglish, so the row carries `dir=\"ltr\"`: the first box is the leftmost, a\npaste fills rightward and the right arrow moves on. The label, the hint and\nthe feedback are words and keep the page's direction.",
65810
66284
  "name": "HelixHeadlessPinInput",
65811
66285
  "cssParts": [
65812
66286
  {
@@ -65818,7 +66292,7 @@
65818
66292
  "name": "feedback"
65819
66293
  },
65820
66294
  {
65821
- "description": "The row of boxes.",
66295
+ "description": "The row of boxes, left to right on every page.",
65822
66296
  "name": "field"
65823
66297
  },
65824
66298
  {
@@ -66749,7 +67223,7 @@
66749
67223
  "text": "Promise<void>"
66750
67224
  },
66751
67225
  "readonly": true,
66752
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
67226
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
66753
67227
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
66754
67228
  "inheritedFrom": {
66755
67229
  "name": "HelixElement",
@@ -67610,7 +68084,7 @@
67610
68084
  "text": "Promise<void>"
67611
68085
  },
67612
68086
  "readonly": true,
67613
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
68087
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
67614
68088
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
67615
68089
  "inheritedFrom": {
67616
68090
  "name": "HelixElement",
@@ -68216,7 +68690,7 @@
68216
68690
  "text": "Promise<void>"
68217
68691
  },
68218
68692
  "readonly": true,
68219
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
68693
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
68220
68694
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
68221
68695
  "inheritedFrom": {
68222
68696
  "name": "HelixElement",
@@ -68790,7 +69264,7 @@
68790
69264
  "text": "Promise<void>"
68791
69265
  },
68792
69266
  "readonly": true,
68793
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
69267
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
68794
69268
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
68795
69269
  "inheritedFrom": {
68796
69270
  "name": "HelixElement",
@@ -69259,7 +69733,7 @@
69259
69733
  "text": "Promise<void>"
69260
69734
  },
69261
69735
  "readonly": true,
69262
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
69736
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
69263
69737
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
69264
69738
  "inheritedFrom": {
69265
69739
  "name": "HelixElement",
@@ -70277,7 +70751,7 @@
70277
70751
  "text": "Promise<void>"
70278
70752
  },
70279
70753
  "readonly": true,
70280
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
70754
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
70281
70755
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
70282
70756
  "inheritedFrom": {
70283
70757
  "name": "HelixElement",
@@ -70946,7 +71420,7 @@
70946
71420
  "text": "Promise<void>"
70947
71421
  },
70948
71422
  "readonly": true,
70949
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
71423
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
70950
71424
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
70951
71425
  "inheritedFrom": {
70952
71426
  "name": "HelixElement",
@@ -72231,7 +72705,7 @@
72231
72705
  "text": "Promise<void>"
72232
72706
  },
72233
72707
  "readonly": true,
72234
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
72708
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
72235
72709
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
72236
72710
  "inheritedFrom": {
72237
72711
  "name": "HelixElement",
@@ -72727,7 +73201,7 @@
72727
73201
  "declarations": [
72728
73202
  {
72729
73203
  "kind": "class",
72730
- "description": "The chart for a relation rather than a series. The table's first numeric\ncolumn is measured across and every other numeric column is measured up, one\npoint per row, so a table of countries with a column of income and a column\nof life expectancy draws one dot for each country. More numeric columns are\nmore series against the same across, each in its own color.\n\n**Both axes are measured, so both are labeled.** A line chart's readings are\nnamed along the bottom and its values are read from the tooltip; here the\nhorizontal position is itself a value, and a point with no scale under it says\nnothing about how far along it is. The ticks sit at round numbers and the\nrange is widened to them, so the plot's edges are numbers a reader can name.\n\n**What a reader without the picture is told is how strongly the two relate**,\nbecause that is the question a scatter is drawn to answer and the one a table\nof the same numbers makes hardest to see. The summary gives each series'\ncorrelation coefficient and how many points it rests on; the table has every\nnumber, and the drawing is `aria-hidden`.\n\n**The points are elements, not shapes in the drawing.** The drawing stretches\nto its box, and a circle in a stretched space is an ellipse, so each point is\na `<span>` placed by percentage over it, which is how `LineChart` draws its\ntermini and for the same reason.",
73204
+ "description": "The chart for a relation rather than a series. The table's first numeric\ncolumn is measured across and every other numeric column is measured up, one\npoint per row, so a table of countries with a column of income and a column\nof life expectancy draws one dot for each country. More numeric columns are\nmore series against the same across, each in its own color.\n\n**Both axes are measured, so both are labeled.** A line chart's readings are\nnamed along the bottom and its values are read from the tooltip; here the\nhorizontal position is itself a value, and a point with no scale under it says\nnothing about how far along it is. The ticks sit at round numbers and the\nrange is widened to them, so the plot's edges are numbers a reader can name.\n\n**What a reader without the picture is told is how strongly the two relate**,\nbecause that is the question a scatter is drawn to answer and the one a table\nof the same numbers makes hardest to see. The summary gives each series'\ncorrelation coefficient and how many points it rests on; the table has every\nnumber, and the drawing is `aria-hidden`.\n\n**The points are elements, not shapes in the drawing.** The drawing stretches\nto its box, and a circle in a stretched space is an ellipse, so each point is\na `<span>` placed by percentage over it, which is how `LineChart` draws its\ntermini and for the same reason.\n\n**Left to right on every page, the one chart here that is.** A bar or a line\nchart's across is the order its readings are named in, which follows the\nline of text and turns with it. Here it is a measure, and a measure has a\ndirection of its own: more is to the right in every script, as a number line\nis. So the plot, its axes and the names at their ends sit in a `plane` part\nthat carries `dir=\"ltr\"`, which holds the y axis on the left and the points,\nrules, ticks, pointer and tooltip mark where a left-to-right page puts them,\nwith no stylesheet asked to know. The names carry `dir=\"auto\"`, so one written\nin Arabic or Hebrew still reads its own way; the summary is outside the plane\nand the bubble is told the page's direction, both being words.",
72731
73205
  "name": "HelixHeadlessScatterChart",
72732
73206
  "cssProperties": [
72733
73207
  {
@@ -72752,6 +73226,10 @@
72752
73226
  "description": "The invisible point the tooltip is anchored to.",
72753
73227
  "name": "mark"
72754
73228
  },
73229
+ {
73230
+ "description": "The plot, both axes and their names, left to right on every page. The grid they are laid out in.",
73231
+ "name": "plane"
73232
+ },
72755
73233
  {
72756
73234
  "description": "The drawing.",
72757
73235
  "name": "plot"
@@ -72784,6 +73262,26 @@
72784
73262
  "description": "The bubble's point, forwarded from `Tooltip`.",
72785
73263
  "name": "tooltip-arrow"
72786
73264
  },
73265
+ {
73266
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
73267
+ "name": "tooltip-arrow-bottom"
73268
+ },
73269
+ {
73270
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
73271
+ "name": "tooltip-arrow-left"
73272
+ },
73273
+ {
73274
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
73275
+ "name": "tooltip-arrow-right"
73276
+ },
73277
+ {
73278
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
73279
+ "name": "tooltip-arrow-top"
73280
+ },
73281
+ {
73282
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
73283
+ "name": "tooltip-bottom"
73284
+ },
72787
73285
  {
72788
73286
  "description": "One column's name and value inside the tooltip.",
72789
73287
  "name": "tooltip-cell"
@@ -72792,10 +73290,22 @@
72792
73290
  "description": "The row's own name inside the tooltip.",
72793
73291
  "name": "tooltip-label"
72794
73292
  },
73293
+ {
73294
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
73295
+ "name": "tooltip-left"
73296
+ },
72795
73297
  {
72796
73298
  "description": "A column's name inside the tooltip.",
72797
73299
  "name": "tooltip-name"
72798
73300
  },
73301
+ {
73302
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
73303
+ "name": "tooltip-right"
73304
+ },
73305
+ {
73306
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
73307
+ "name": "tooltip-top"
73308
+ },
72799
73309
  {
72800
73310
  "description": "A column's value inside the tooltip.",
72801
73311
  "name": "tooltip-value"
@@ -73192,7 +73702,7 @@
73192
73702
  "text": "Promise<void>"
73193
73703
  },
73194
73704
  "readonly": true,
73195
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
73705
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
73196
73706
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
73197
73707
  "inheritedFrom": {
73198
73708
  "name": "HelixElement",
@@ -73759,7 +74269,7 @@
73759
74269
  "text": "Promise<void>"
73760
74270
  },
73761
74271
  "readonly": true,
73762
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
74272
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
73763
74273
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
73764
74274
  "inheritedFrom": {
73765
74275
  "name": "HelixElement",
@@ -75102,7 +75612,7 @@
75102
75612
  "text": "Promise<void>"
75103
75613
  },
75104
75614
  "readonly": true,
75105
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
75615
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
75106
75616
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
75107
75617
  "inheritedFrom": {
75108
75618
  "name": "HelixElement",
@@ -75773,7 +76283,7 @@
75773
76283
  "text": "Promise<void>"
75774
76284
  },
75775
76285
  "readonly": true,
75776
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
76286
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
75777
76287
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
75778
76288
  "inheritedFrom": {
75779
76289
  "name": "HelixElement",
@@ -76243,7 +76753,7 @@
76243
76753
  "text": "Promise<void>"
76244
76754
  },
76245
76755
  "readonly": true,
76246
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
76756
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
76247
76757
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
76248
76758
  "inheritedFrom": {
76249
76759
  "name": "HelixElement",
@@ -77475,7 +77985,7 @@
77475
77985
  "text": "Promise<void>"
77476
77986
  },
77477
77987
  "readonly": true,
77478
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
77988
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
77479
77989
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
77480
77990
  "inheritedFrom": {
77481
77991
  "name": "HelixElement",
@@ -78208,7 +78718,7 @@
78208
78718
  "text": "Promise<void>"
78209
78719
  },
78210
78720
  "readonly": true,
78211
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
78721
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
78212
78722
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
78213
78723
  "inheritedFrom": {
78214
78724
  "name": "HelixElement",
@@ -78781,7 +79291,7 @@
78781
79291
  "text": "Promise<void>"
78782
79292
  },
78783
79293
  "readonly": true,
78784
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
79294
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
78785
79295
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
78786
79296
  "inheritedFrom": {
78787
79297
  "name": "HelixElement",
@@ -79440,7 +79950,7 @@
79440
79950
  "text": "Promise<void>"
79441
79951
  },
79442
79952
  "readonly": true,
79443
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
79953
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
79444
79954
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
79445
79955
  "inheritedFrom": {
79446
79956
  "name": "HelixElement",
@@ -80324,6 +80834,25 @@
80324
80834
  "readonly": true,
80325
80835
  "description": "The keys a separator answers.\n\nOne axis, the one the divider actually travels along, plus `Home` and `End`\nfor its bounds. The other two arrows are left alone and the page scrolls\nunder them as it would anywhere else.\n\n**Not all four, which is the tempting version.** Taking every arrow would\nmean `ArrowLeft` moving a horizontal divider up and down: not a reader\nbeing helped past a wrong guess, an arrow that does not go the way it\npoints. A reader who guesses wrong is answered better by the corner, where\nall four are live and each moves the divider it points along, which is the\nonly place in a splitter where a second axis means anything."
80326
80836
  },
80837
+ {
80838
+ "kind": "method",
80839
+ "name": "travel",
80840
+ "privacy": "private",
80841
+ "return": {
80842
+ "type": {
80843
+ "text": "-1 | 0 | 1"
80844
+ }
80845
+ },
80846
+ "parameters": [
80847
+ {
80848
+ "name": "key",
80849
+ "type": {
80850
+ "text": "string"
80851
+ }
80852
+ }
80853
+ ],
80854
+ "description": "Which way a key moves the divider, as a sign on `position`, or `0` for a key\nthat is not along its axis.\n\n**The arrow says where the divider goes on screen**, the way the window\nsplitter pattern words it: left moves a side-by-side divider to the left.\n`position` is the start pane's share, and the start pane is on the right of\na right-to-left page, so there the left arrow grows it. It used to shrink\nit on every page, which on a right-to-left one sent the divider right."
80855
+ },
80327
80856
  {
80328
80857
  "kind": "method",
80329
80858
  "name": "reset",
@@ -80562,7 +81091,7 @@
80562
81091
  "text": "Promise<void>"
80563
81092
  },
80564
81093
  "readonly": true,
80565
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
81094
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
80566
81095
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
80567
81096
  "inheritedFrom": {
80568
81097
  "name": "HelixElement",
@@ -81088,7 +81617,7 @@
81088
81617
  "text": "Promise<void>"
81089
81618
  },
81090
81619
  "readonly": true,
81091
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
81620
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
81092
81621
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
81093
81622
  "inheritedFrom": {
81094
81623
  "name": "HelixElement",
@@ -81533,7 +82062,7 @@
81533
82062
  "text": "Promise<void>"
81534
82063
  },
81535
82064
  "readonly": true,
81536
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
82065
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
81537
82066
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
81538
82067
  "inheritedFrom": {
81539
82068
  "name": "HelixElement",
@@ -82143,7 +82672,7 @@
82143
82672
  "text": "Promise<void>"
82144
82673
  },
82145
82674
  "readonly": true,
82146
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
82675
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
82147
82676
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
82148
82677
  "inheritedFrom": {
82149
82678
  "name": "HelixElement",
@@ -82756,7 +83285,7 @@
82756
83285
  "text": "Promise<void>"
82757
83286
  },
82758
83287
  "readonly": true,
82759
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
83288
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
82760
83289
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
82761
83290
  "inheritedFrom": {
82762
83291
  "name": "HelixElement",
@@ -83803,7 +84332,7 @@
83803
84332
  "text": "Promise<void>"
83804
84333
  },
83805
84334
  "readonly": true,
83806
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
84335
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
83807
84336
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
83808
84337
  "inheritedFrom": {
83809
84338
  "name": "HelixElement",
@@ -84248,6 +84777,12 @@
84248
84777
  "kind": "class",
84249
84778
  "description": "Carries its own role, because a grid of divs is not a table to anything\nreading it. `header` makes the cell a `columnheader`, which is what lets a\nscreen reader announce \"Attribute, appearance\" rather than just the value.\n\nThe role goes on the host rather than inside the shadow root, because the\ncell has to be a child of its row in the flat tree for the table's structure\nto hold together.",
84250
84779
  "name": "HelixHeadlessTableCell",
84780
+ "cssProperties": [
84781
+ {
84782
+ "description": "The edge the column this cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the table around it, since the cell is the consumer's markup and nothing is written onto it; read by the sheet that draws the cell, where `justify-content` and `text-align` both take it as it comes and both follow the writing direction.",
84783
+ "name": "--table-cell-align"
84784
+ }
84785
+ ],
84251
84786
  "slots": [
84252
84787
  {
84253
84788
  "description": "The cell's content.",
@@ -84376,7 +84911,7 @@
84376
84911
  "text": "Promise<void>"
84377
84912
  },
84378
84913
  "readonly": true,
84379
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
84914
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
84380
84915
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
84381
84916
  "inheritedFrom": {
84382
84917
  "name": "HelixElement",
@@ -84684,7 +85219,7 @@
84684
85219
  },
84685
85220
  {
84686
85221
  "kind": "class",
84687
- "description": "**The column is the source of both its heading and its track.** Add one and\nthe table has another track; remove one and it does not. Declaring the widths\nseparately, as a CSS track list on the table, leaves nothing tying the two\ntogether: a table with three headings and a two-track list renders without\ncomplaint, and a track list that is accidentally the headings is invalid CSS\nthe grid silently ignores, collapsing the whole table into one column.\n\n**It is also where every per-column fact goes**, which is the reason\n`helix-data-table` needs no column config object. `field` names the key the\ncell reads, `sortable` says a reader may reorder by it, `align` says which\nedge the values line up against, and `cell` takes a function for anything the\nfield alone cannot express. The schema is markup and the data is a property:\na schema is small, declarative, and something a reader should be able to see\nin the HTML, and data is large and windowed.\n\n**The same element serves both tables**, the markup one and the data one. It\nis identified by a flag rather than by `instanceof`, so a `helix-table-column`\nworks inside either without the two roots sharing anything else.\n\n**It generates no box of its own**, the same as a row: the heading is a grid\nitem of the table, so it lines up with the cells under it rather than sitting\nin a wrapper that has to be kept the same width.\n\n**A heading that does something holds a control that does it.** The host is\nthe column header, and a header is not focusable, so a sortable heading is a\n`<button>` inside it: the pattern for a sortable table, and the only way a\nreader on a keyboard reaches the sort at all. A column a reader may resize\ncarries a `separator` on its end edge, moved by dragging it or with the arrow\nkeys, and a column in a table that lets a reader reorder its columns carries\na grip the table moves.",
85222
+ "description": "**The column is the source of both its heading and its track.** Add one and\nthe table has another track; remove one and it does not. Declaring the widths\nseparately, as a CSS track list on the table, leaves nothing tying the two\ntogether: a table with three headings and a two-track list renders without\ncomplaint, and a track list that is accidentally the headings is invalid CSS\nthe grid silently ignores, collapsing the whole table into one column.\n\n**It is also where every per-column fact goes**, which is the reason\n`helix-data-table` needs no column config object. `field` names the key the\ncell reads, `sortable` says a reader may reorder by it, `align` says which\nedge the values line up against, and `cell` takes a function for anything the\nfield alone cannot express. The schema is markup and the data is a property:\na schema is small, declarative, and something a reader should be able to see\nin the HTML, and data is large and windowed.\n\n**The same element serves both tables**, the markup one and the data one. It\nis identified by a flag rather than by `instanceof`, so a `helix-table-column`\nworks inside either without the two roots sharing anything else.\n\n**It generates no box of its own**, the same as a row: the heading is a grid\nitem of the table, so it lines up with the cells under it rather than sitting\nin a wrapper that has to be kept the same width.\n\n**`hidden` takes the column out of the grid**, its heading and its track\nboth, so the columns after it keep their own widths and every row keeps its\ncells under their headings. `hidden=\"until-found\"` keeps its track, the\nheading being left drawn, as every Helix element leaves one with that value.\n`helix-data-table` draws the cells, so it leaves out the ones under a hidden\ncolumn. A `helix-table`'s cells are markup the consumer wrote, so hide them\nwith the column, as removing a column means removing its cells: a row with a\ncell more than the table has tracks wraps into the next.\n\n**A heading that does something holds a control that does it.** The host is\nthe column header, and a header is not focusable, so a sortable heading is a\n`<button>` inside it: the pattern for a sortable table, and the only way a\nreader on a keyboard reaches the sort at all. A column a reader may resize\ncarries a `separator` on its end edge, moved by dragging it or with the arrow\nkeys, and a column in a table that lets a reader reorder its columns carries\na grip the table moves.",
84688
85223
  "name": "HelixHeadlessTableColumn",
84689
85224
  "cssParts": [
84690
85225
  {
@@ -84721,7 +85256,7 @@
84721
85256
  "type": {
84722
85257
  "text": "'center' | 'end' | 'start' | undefined"
84723
85258
  },
84724
- "description": "Which edge the values line up against.\n\n`end` is what a column of numbers wants, so digits of the same magnitude sit\nabove each other. Left unset the cell inherits the table's own alignment,\nwhich is `start` for text in either writing direction. `helix-data-table`\naligns the cells it draws; a `helix-table`'s cells are markup the consumer\nwrote, and align as the consumer styles them. The heading is this element's\nown, and `@fusion.dev/helix` sets it to the same edge in either table.\n\n**Reflected, because the heading is drawn by a stylesheet and has no other\nway to learn it.** Set as a property, which is how React sets it, an\nunreflected `align` left no attribute to select on, so the heading stayed at\nthe start over a column of digits set to the end. It is the author's\ndeclaration and nothing moves it afterwards, so an attribute cannot come to\ndisagree with the element, which is the reason `open` records a custom\nstate instead. No default, so an unset column writes nothing onto its host.",
85259
+ "description": "Which edge the values line up against.\n\n`end` is what a column of numbers wants, so digits of the same magnitude sit\nabove each other. Left unset the cell inherits the table's own alignment,\nwhich is `start` for text in either writing direction. `helix-data-table`\naligns the cells it draws. A `helix-table`'s cells are markup the consumer\nwrote, so the table writes nothing onto them: it publishes the edge to each\ncell under this column as `--table-cell-align`, which `@fusion.dev/helix`\nreads. The heading is this element's own, and `@fusion.dev/helix` sets it to\nthe same edge in either table. `end` is the inline end, so in a\nright-to-left table it is the left.\n\n**Reflected, because the heading is drawn by a stylesheet and has no other\nway to learn it.** Set as a property, which is how React sets it, an\nunreflected `align` left no attribute to select on, so the heading stayed at\nthe start over a column of digits set to the end. It is the author's\ndeclaration and nothing moves it afterwards, so an attribute cannot come to\ndisagree with the element, which is the reason `open` records a custom\nstate instead. No default, so an unset column writes nothing onto its host.",
84725
85260
  "attribute": "align",
84726
85261
  "reflects": true
84727
85262
  },
@@ -84770,8 +85305,9 @@
84770
85305
  "text": "boolean"
84771
85306
  },
84772
85307
  "default": "false",
84773
- "description": "Whether a reader may reorder the set by this column.\n\nIgnored without a `field`, and silently: a column with nothing to sort by\nhas no order to offer, and refusing loudly would mean an actions column\ncarrying `sortable` breaks a table rather than doing nothing.",
84774
- "attribute": "sortable"
85308
+ "description": "Whether a reader may reorder the set by this column.\n\nIgnored without a `field`, and silently: a column with nothing to sort by\nhas no order to offer, and refusing loudly would mean an actions column\ncarrying `sortable` breaks a table rather than doing nothing.\n\n**Reflected, because a stylesheet selects on it.** `@fusion.dev/helix`\ngives a data table's sortable headings a pointer through\n`::slotted(helix-table-column[sortable])`, and set as a property, which is\nhow React sets it, an unreflected `sortable` left no attribute to match.\n`false` reflects as no attribute at all, so an unset column writes nothing\nonto its host.",
85309
+ "attribute": "sortable",
85310
+ "reflects": true
84775
85311
  },
84776
85312
  {
84777
85313
  "kind": "field",
@@ -84780,7 +85316,7 @@
84780
85316
  "text": "string"
84781
85317
  },
84782
85318
  "default": "''",
84783
- "description": "The track this column takes, as CSS.\n\nA single track value, so anything valid in `grid-template-columns` works:\n`16rem`, `auto`, `minmax(0, 2fr)`. Left unset the column shares what is\nleft over equally, as `minmax(max-content, 1fr)`.\n\n**The floor is `max-content`, never `0` and never `min-content`.** A zero\nfloor lets a track shrink under its own content: at 375 the columns squeeze\nto 75px and `eu-central-1` wraps across lines, which reads as corrupt data\nrather than as a table that ran out of room. A `min-content` floor still\nbreaks it, a hyphen being a wrap opportunity.\n\nThe overflow has somewhere to go: `@fusion.dev/helix` scrolls the table's\nown box, so a long value pushes past the container and the table scrolls\ninstead of the value being destroyed. Measured at 375: tracks of 192, 89 and\n102 against a 343 box, so the table scrolls 384 and the page does not move.\n\nThe cost is that a column of prose asks for its longest paragraph on one\nline, so a column holding sentences rather than values wants\n`width=\"minmax(0, 1fr)\"` to opt back into wrapping. A headless consumer owns\nthe overflow either way, that being paint, and gets the honest track list.",
85319
+ "description": "The track this column takes, as CSS.\n\nA single track value, so anything valid in `grid-template-columns` works:\n`16rem`, `auto`, `minmax(0, 2fr)`. Left unset the column takes the track\nin its place in a `helix-table`'s `columns`, where that table sets one, and\notherwise shares what is left over equally, as `minmax(max-content, 1fr)`.\nSet here, it wins over that list, which is what lets a reader resize a\ncolumn in a table that set one.\n\n**The floor is `max-content`, never `0` and never `min-content`.** A zero\nfloor lets a track shrink under its own content: at 375 the columns squeeze\nto 75px and `eu-central-1` wraps across lines, which reads as corrupt data\nrather than as a table that ran out of room. A `min-content` floor still\nbreaks it, a hyphen being a wrap opportunity.\n\nThe overflow has somewhere to go: `@fusion.dev/helix` scrolls the table's\nown box, so a long value pushes past the container and the table scrolls\ninstead of the value being destroyed. Measured at 375: tracks of 192, 89 and\n102 against a 343 box, so the table scrolls 384 and the page does not move.\n\nThe cost is that a column of prose asks for its longest paragraph on one\nline, so a column holding sentences rather than values wants\n`width=\"minmax(0, 1fr)\"` to opt back into wrapping. A headless consumer owns\nthe overflow either way, that being paint, and gets the honest track list.",
84784
85320
  "attribute": "width"
84785
85321
  },
84786
85322
  {
@@ -84811,6 +85347,15 @@
84811
85347
  "privacy": "private",
84812
85348
  "description": "Watches the heading's width, which changes with the table as well as with a drag."
84813
85349
  },
85350
+ {
85351
+ "kind": "field",
85352
+ "name": "hiding",
85353
+ "type": {
85354
+ "text": "MutationObserver | undefined"
85355
+ },
85356
+ "privacy": "private",
85357
+ "description": "Watches `hidden`, which is the platform's attribute and no property of this element's."
85358
+ },
84814
85359
  {
84815
85360
  "kind": "field",
84816
85361
  "name": "NARROWEST",
@@ -84913,6 +85458,17 @@
84913
85458
  }
84914
85459
  }
84915
85460
  },
85461
+ {
85462
+ "kind": "method",
85463
+ "name": "tellHolder",
85464
+ "privacy": "private",
85465
+ "return": {
85466
+ "type": {
85467
+ "text": "void"
85468
+ }
85469
+ },
85470
+ "description": "Asks whatever holds this column to render, since it reads the column when it does."
85471
+ },
84916
85472
  {
84917
85473
  "kind": "method",
84918
85474
  "name": "resizeTo",
@@ -84939,7 +85495,7 @@
84939
85495
  "text": "number"
84940
85496
  },
84941
85497
  "privacy": "private",
84942
- "description": "Which way a drag or an arrow key grows the column, in this writing direction.",
85498
+ "description": "Which way a drag grows the column, in this writing direction.",
84943
85499
  "readonly": true
84944
85500
  },
84945
85501
  {
@@ -85077,7 +85633,7 @@
85077
85633
  "text": "Promise<void>"
85078
85634
  },
85079
85635
  "readonly": true,
85080
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
85636
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
85081
85637
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
85082
85638
  "inheritedFrom": {
85083
85639
  "name": "HelixElement",
@@ -85308,7 +85864,7 @@
85308
85864
  "type": {
85309
85865
  "text": "'center' | 'end' | 'start' | undefined"
85310
85866
  },
85311
- "description": "Which edge the values line up against.\n\n`end` is what a column of numbers wants, so digits of the same magnitude sit\nabove each other. Left unset the cell inherits the table's own alignment,\nwhich is `start` for text in either writing direction. `helix-data-table`\naligns the cells it draws; a `helix-table`'s cells are markup the consumer\nwrote, and align as the consumer styles them. The heading is this element's\nown, and `@fusion.dev/helix` sets it to the same edge in either table.\n\n**Reflected, because the heading is drawn by a stylesheet and has no other\nway to learn it.** Set as a property, which is how React sets it, an\nunreflected `align` left no attribute to select on, so the heading stayed at\nthe start over a column of digits set to the end. It is the author's\ndeclaration and nothing moves it afterwards, so an attribute cannot come to\ndisagree with the element, which is the reason `open` records a custom\nstate instead. No default, so an unset column writes nothing onto its host.",
85867
+ "description": "Which edge the values line up against.\n\n`end` is what a column of numbers wants, so digits of the same magnitude sit\nabove each other. Left unset the cell inherits the table's own alignment,\nwhich is `start` for text in either writing direction. `helix-data-table`\naligns the cells it draws. A `helix-table`'s cells are markup the consumer\nwrote, so the table writes nothing onto them: it publishes the edge to each\ncell under this column as `--table-cell-align`, which `@fusion.dev/helix`\nreads. The heading is this element's own, and `@fusion.dev/helix` sets it to\nthe same edge in either table. `end` is the inline end, so in a\nright-to-left table it is the left.\n\n**Reflected, because the heading is drawn by a stylesheet and has no other\nway to learn it.** Set as a property, which is how React sets it, an\nunreflected `align` left no attribute to select on, so the heading stayed at\nthe start over a column of digits set to the end. It is the author's\ndeclaration and nothing moves it afterwards, so an attribute cannot come to\ndisagree with the element, which is the reason `open` records a custom\nstate instead. No default, so an unset column writes nothing onto its host.",
85312
85868
  "fieldName": "align"
85313
85869
  },
85314
85870
  {
@@ -85335,7 +85891,7 @@
85335
85891
  "text": "boolean"
85336
85892
  },
85337
85893
  "default": "false",
85338
- "description": "Whether a reader may reorder the set by this column.\n\nIgnored without a `field`, and silently: a column with nothing to sort by\nhas no order to offer, and refusing loudly would mean an actions column\ncarrying `sortable` breaks a table rather than doing nothing.",
85894
+ "description": "Whether a reader may reorder the set by this column.\n\nIgnored without a `field`, and silently: a column with nothing to sort by\nhas no order to offer, and refusing loudly would mean an actions column\ncarrying `sortable` breaks a table rather than doing nothing.\n\n**Reflected, because a stylesheet selects on it.** `@fusion.dev/helix`\ngives a data table's sortable headings a pointer through\n`::slotted(helix-table-column[sortable])`, and set as a property, which is\nhow React sets it, an unreflected `sortable` left no attribute to match.\n`false` reflects as no attribute at all, so an unset column writes nothing\nonto its host.",
85339
85895
  "fieldName": "sortable"
85340
85896
  },
85341
85897
  {
@@ -85344,7 +85900,7 @@
85344
85900
  "text": "string"
85345
85901
  },
85346
85902
  "default": "''",
85347
- "description": "The track this column takes, as CSS.\n\nA single track value, so anything valid in `grid-template-columns` works:\n`16rem`, `auto`, `minmax(0, 2fr)`. Left unset the column shares what is\nleft over equally, as `minmax(max-content, 1fr)`.\n\n**The floor is `max-content`, never `0` and never `min-content`.** A zero\nfloor lets a track shrink under its own content: at 375 the columns squeeze\nto 75px and `eu-central-1` wraps across lines, which reads as corrupt data\nrather than as a table that ran out of room. A `min-content` floor still\nbreaks it, a hyphen being a wrap opportunity.\n\nThe overflow has somewhere to go: `@fusion.dev/helix` scrolls the table's\nown box, so a long value pushes past the container and the table scrolls\ninstead of the value being destroyed. Measured at 375: tracks of 192, 89 and\n102 against a 343 box, so the table scrolls 384 and the page does not move.\n\nThe cost is that a column of prose asks for its longest paragraph on one\nline, so a column holding sentences rather than values wants\n`width=\"minmax(0, 1fr)\"` to opt back into wrapping. A headless consumer owns\nthe overflow either way, that being paint, and gets the honest track list.",
85903
+ "description": "The track this column takes, as CSS.\n\nA single track value, so anything valid in `grid-template-columns` works:\n`16rem`, `auto`, `minmax(0, 2fr)`. Left unset the column takes the track\nin its place in a `helix-table`'s `columns`, where that table sets one, and\notherwise shares what is left over equally, as `minmax(max-content, 1fr)`.\nSet here, it wins over that list, which is what lets a reader resize a\ncolumn in a table that set one.\n\n**The floor is `max-content`, never `0` and never `min-content`.** A zero\nfloor lets a track shrink under its own content: at 375 the columns squeeze\nto 75px and `eu-central-1` wraps across lines, which reads as corrupt data\nrather than as a table that ran out of room. A `min-content` floor still\nbreaks it, a hyphen being a wrap opportunity.\n\nThe overflow has somewhere to go: `@fusion.dev/helix` scrolls the table's\nown box, so a long value pushes past the container and the table scrolls\ninstead of the value being destroyed. Measured at 375: tracks of 192, 89 and\n102 against a 343 box, so the table scrolls 384 and the page does not move.\n\nThe cost is that a column of prose asks for its longest paragraph on one\nline, so a column holding sentences rather than values wants\n`width=\"minmax(0, 1fr)\"` to opt back into wrapping. A headless consumer owns\nthe overflow either way, that being paint, and gets the honest track list.",
85348
85904
  "fieldName": "width"
85349
85905
  }
85350
85906
  ],
@@ -85505,7 +86061,7 @@
85505
86061
  "text": "string"
85506
86062
  },
85507
86063
  "default": "''",
85508
- "description": "Column track list, as CSS. Deprecated: declare columns instead.\n\nKept for a table that has no `helix-table-column` children, and ignored the\nmoment it has one. A raw track list is the right shape for the value and\nthe wrong place for it: the headings and the widths were two halves of one\nfact held in two places, and nothing checked that they agreed. Worse, the\nvalue is CSS, so handing it headings by mistake produced an invalid track\nlist, which a grid ignores in silence: the table collapsed to one column\nand said nothing. Columns carry both halves now.",
86064
+ "description": "The column widths as one track list, written once on the table.\n\nWith `helix-table-column` children, each track sizes the column in its\nplace, a hidden column counted, so hiding one takes its track with it and\nthe rest keep theirs. The columns decide how many tracks there are and this\nlist only how wide: a track past the last column is dropped, and a column\npast the last track shares what is left. With no columns declared it is\nthe whole track list. Tracks count as the grid counts them, so\n`minmax(0, 1fr)` is one and `repeat(2, 8rem)` is two, and one the grid\nwould refuse leaves its column at the default rather than taking the table\ndown to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.",
85509
86065
  "attribute": "columns"
85510
86066
  },
85511
86067
  {
@@ -85534,7 +86090,7 @@
85534
86090
  "text": "string"
85535
86091
  },
85536
86092
  "privacy": "private",
85537
- "description": "The track list, from the columns if there are any.\n\nRead from the DOM rather than kept, so adding or removing a column needs\nnothing else to be told. Falls back to the `columns` string for a table\nwritten before columns existed, and to a single track for one that declares\nneither.",
86093
+ "description": "The track list, from the columns if there are any.\n\nRead from the DOM rather than kept, so adding or removing a column needs\nnothing else to be told. A hidden column takes no track: left in, the\nheader row had a heading fewer than the grid had tracks, the first cell\nfilled the gap, and every row after it began a column late. Falls back to\nthe `columns` string for a table that declares no columns, and to a single\ntrack for one that declares neither.",
85538
86094
  "readonly": true
85539
86095
  },
85540
86096
  {
@@ -85543,6 +86099,16 @@
85543
86099
  "privacy": "private",
85544
86100
  "readonly": true
85545
86101
  },
86102
+ {
86103
+ "kind": "field",
86104
+ "name": "watcher",
86105
+ "type": {
86106
+ "text": "MutationObserver | undefined"
86107
+ },
86108
+ "privacy": "private",
86109
+ "default": "undefined",
86110
+ "description": "Watches the light DOM for rows and columns arriving, leaving and moving.\n\n**A manually assigned slot does not announce them**, the same gap `Chat`\nand `Carousel` watch for. Under `slotAssignment: 'manual'` only `assign`\nchanges an assignment, so a row appended after the first render reached no\nslot and drew nowhere, and a column moved to another place lost its\nassignment on the way out and never got it back: measured in Chromium, both\n`assignedSlot` null a render later. A table whose definition loaded before\nits markup was parsed drew no columns at all, having rendered before any\narrived."
86111
+ },
85546
86112
  {
85547
86113
  "kind": "field",
85548
86114
  "name": "shadowRootOptions",
@@ -85577,6 +86143,37 @@
85577
86143
  }
85578
86144
  }
85579
86145
  },
86146
+ {
86147
+ "kind": "field",
86148
+ "name": "alignment",
86149
+ "type": {
86150
+ "text": "CSSStyleSheet | undefined"
86151
+ },
86152
+ "privacy": "private",
86153
+ "default": "undefined",
86154
+ "description": "The rules handing each column's `align` to the cells under it. One sheet for\nevery row this table holds, rewritten in place, so a column changing its\nedge reaches every row in one write."
86155
+ },
86156
+ {
86157
+ "kind": "field",
86158
+ "name": "aligned",
86159
+ "type": {
86160
+ "text": "string"
86161
+ },
86162
+ "privacy": "private",
86163
+ "default": "''",
86164
+ "description": "What `alignment` was last written with, so a render that changed no edge writes nothing."
86165
+ },
86166
+ {
86167
+ "kind": "method",
86168
+ "name": "alignCells",
86169
+ "privacy": "private",
86170
+ "return": {
86171
+ "type": {
86172
+ "text": "void"
86173
+ }
86174
+ },
86175
+ "description": "Tells every row which edge each of its cells lines up against.\n\n**A rule in each row's shadow root, keyed on position and written by this\ntable.** The cells are the consumer's markup, so nothing may be written onto\nthem, and each of the other ways fails somewhere a table goes:\n\n- This element's own sheet cannot reach them. `::slotted()` matches what is\n assigned here, which is the rows, and never a row's children.\n- A property per column published here, `--table-align-2: end`, still needs\n a rule that knows which column a cell is in, and a fixed ladder of\n `:nth-child` rules in a static sheet is a ceiling on the column count.\n- A custom state set on each cell by script is right only until a cell\n moves, and a cell moving inside a row changes no child list this element\n watches.\n\n`:nth-child` is matched by the browser against wherever a cell is now, so a\ncell that moves takes its new column's edge with no script at all; a column\nthat moves rewrites the rules on the render the watcher asks for; and a\ncolumn hidden along with its cells keeps its place in both counts, since\n`:nth-child` counts a hidden sibling the way `tableColumns` counts a hidden\ncolumn. The row is where they go because only the shadow root holding a\nslot can style what is assigned to it.\n\n**A custom property and nothing else**, which is how this tier publishes a\nfact: the edge is the author's declaration, and what lining up means, a\n`justify-content` or a `text-align`, belongs to whoever draws the cell.\n`initial` on every cell first, so a table nested in an aligned cell does not\ntake the outer column's edge for columns of its own that set none."
86176
+ },
85580
86177
  {
85581
86178
  "kind": "field",
85582
86179
  "name": "emptyText",
@@ -85817,7 +86414,7 @@
85817
86414
  "text": "Promise<void>"
85818
86415
  },
85819
86416
  "readonly": true,
85820
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
86417
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
85821
86418
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
85822
86419
  "inheritedFrom": {
85823
86420
  "name": "HelixElement",
@@ -86039,7 +86636,7 @@
86039
86636
  "text": "string"
86040
86637
  },
86041
86638
  "default": "''",
86042
- "description": "Column track list, as CSS. Deprecated: declare columns instead.\n\nKept for a table that has no `helix-table-column` children, and ignored the\nmoment it has one. A raw track list is the right shape for the value and\nthe wrong place for it: the headings and the widths were two halves of one\nfact held in two places, and nothing checked that they agreed. Worse, the\nvalue is CSS, so handing it headings by mistake produced an invalid track\nlist, which a grid ignores in silence: the table collapsed to one column\nand said nothing. Columns carry both halves now.",
86639
+ "description": "The column widths as one track list, written once on the table.\n\nWith `helix-table-column` children, each track sizes the column in its\nplace, a hidden column counted, so hiding one takes its track with it and\nthe rest keep theirs. The columns decide how many tracks there are and this\nlist only how wide: a track past the last column is dropped, and a column\npast the last track shares what is left. With no columns declared it is\nthe whole track list. Tracks count as the grid counts them, so\n`minmax(0, 1fr)` is one and `repeat(2, 8rem)` is two, and one the grid\nwould refuse leaves its column at the default rather than taking the table\ndown to one column.\n\n**A column's own `width` wins over its track here.** The width is written\non the column it sizes, which is the more particular statement, and it is\nwhere a resize lands: a reader dragging a column's edge writes `width`, so\nwere this list to win, the drag would move the separator and leave the\ntrack where the list put it. This is the table's default for its columns,\nand each column may say otherwise.",
86043
86640
  "fieldName": "columns"
86044
86641
  },
86045
86642
  {
@@ -86172,6 +86769,16 @@
86172
86769
  }
86173
86770
  ],
86174
86771
  "members": [
86772
+ {
86773
+ "kind": "field",
86774
+ "name": "columnRules",
86775
+ "type": {
86776
+ "text": "CSSStyleSheet | undefined"
86777
+ },
86778
+ "privacy": "private",
86779
+ "default": "undefined",
86780
+ "description": "The table's rules this row holds, so the next ones replace them rather than pile up."
86781
+ },
86175
86782
  {
86176
86783
  "kind": "field",
86177
86784
  "name": "tier",
@@ -86282,7 +86889,7 @@
86282
86889
  "text": "Promise<void>"
86283
86890
  },
86284
86891
  "readonly": true,
86285
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
86892
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
86286
86893
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
86287
86894
  "inheritedFrom": {
86288
86895
  "name": "HelixElement",
@@ -86740,7 +87347,7 @@
86740
87347
  "text": "Promise<void>"
86741
87348
  },
86742
87349
  "readonly": true,
86743
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
87350
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
86744
87351
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
86745
87352
  "inheritedFrom": {
86746
87353
  "name": "HelixElement",
@@ -87372,7 +87979,7 @@
87372
87979
  "text": "Promise<void>"
87373
87980
  },
87374
87981
  "readonly": true,
87375
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
87982
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
87376
87983
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
87377
87984
  "inheritedFrom": {
87378
87985
  "name": "HelixElement",
@@ -87920,7 +88527,7 @@
87920
88527
  "text": "Promise<void>"
87921
88528
  },
87922
88529
  "readonly": true,
87923
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
88530
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
87924
88531
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
87925
88532
  "inheritedFrom": {
87926
88533
  "name": "HelixElement",
@@ -88448,7 +89055,7 @@
88448
89055
  "text": "Promise<void>"
88449
89056
  },
88450
89057
  "readonly": true,
88451
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
89058
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
88452
89059
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
88453
89060
  "inheritedFrom": {
88454
89061
  "name": "HelixElement",
@@ -89741,7 +90348,7 @@
89741
90348
  "text": "Promise<void>"
89742
90349
  },
89743
90350
  "readonly": true,
89744
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
90351
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
89745
90352
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
89746
90353
  "inheritedFrom": {
89747
90354
  "name": "HelixElement",
@@ -90841,13 +91448,36 @@
90841
91448
  "name": "panel",
90842
91449
  "privacy": "protected",
90843
91450
  "readonly": true,
90844
- "default": "new PopoverController(this, { anchor: () => this.partNamed('field'), /* The surface *and* the trigger. * * A control is not always one element: the button that opens this panel is * part of it, and a press on it is not a press outside. Scoped to the * surface alone, `pointerdown` on the trigger closes the panel and the * trigger's own `toggleOpen` reopens it on the `click` that follows, so the * panel can never be closed by the button that opened it. * `DismissController` documents this failure and takes a list for it. */ boundary: (): readonly (Element | null | undefined)[] => [ this.partNamed('surface'), this.partNamed('trigger'), ], /* Wider than the four every other panel here takes. Those sit against a control the same width as themselves and read as an extension of it; this one is a picker of its own size hanging off a field, so the gap is what says the two are separate things rather than one control that grew. */ offset: () => 8, onDismiss: () => this.requestOpen(false), open: () => this.open, placement: 'bottom-start', surface: () => this.partNamed('surface'), })",
91451
+ "default": "new PopoverController(this, { anchor: () => this.partNamed('field'), /* The surface *and* the trigger. * * A control is not always one element: the button that opens this panel is * part of it, and a press on it is not a press outside. Scoped to the * surface alone, `pointerdown` on the trigger closes the panel and the * trigger's own `toggleOpen` reopens it on the `click` that follows, so the * panel can never be closed by the button that opened it. * `DismissController` documents this failure and takes a list for it. */ boundary: (): readonly (Element | null | undefined)[] => [ this.partNamed('surface'), this.partNamed('trigger'), ], /* Wider than the four every other panel here takes. Those sit against a control the same width as themselves and read as an extension of it; this one is a picker of its own size hanging off a field, so the gap is what says the two are separate things rather than one control that grew. */ offset: () => 8, onDismiss: () => this.requestOpen(false), onPlace: (_placement, room) => this.placed(room), open: () => this.open, placement: 'bottom-start', surface: () => this.partNamed('surface'), })",
90845
91452
  "description": "The overlay, placed against the field rather than the trigger.\n\nAgainst the field because that is the box a reader sees as the control: a\ncalendar hung off a small button at one end of a wide field reads as\nbelonging to the button. `Select` anchors to its trigger for the opposite\nreason, its trigger being the whole control.",
90846
91453
  "inheritedFrom": {
90847
91454
  "name": "MixinPickerField",
90848
91455
  "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
90849
91456
  }
90850
91457
  },
91458
+ {
91459
+ "kind": "method",
91460
+ "name": "placed",
91461
+ "privacy": "protected",
91462
+ "return": {
91463
+ "type": {
91464
+ "text": "void"
91465
+ }
91466
+ },
91467
+ "parameters": [
91468
+ {
91469
+ "name": "_room",
91470
+ "type": {
91471
+ "text": "number | undefined"
91472
+ }
91473
+ }
91474
+ ],
91475
+ "description": "Told the panel has been placed, and how wide the window leaves it room to\nbe, in pixels.\n\nNothing, unless a family fits what its panel holds to the room it has.",
91476
+ "inheritedFrom": {
91477
+ "name": "MixinPickerField",
91478
+ "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
91479
+ }
91480
+ },
90851
91481
  {
90852
91482
  "kind": "field",
90853
91483
  "name": "anchor",
@@ -91890,7 +92520,7 @@
91890
92520
  "text": "Promise<void>"
91891
92521
  },
91892
92522
  "readonly": true,
91893
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
92523
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
91894
92524
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
91895
92525
  "inheritedFrom": {
91896
92526
  "name": "HelixElement",
@@ -93597,7 +94227,7 @@
93597
94227
  "text": "Promise<void>"
93598
94228
  },
93599
94229
  "readonly": true,
93600
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
94230
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
93601
94231
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
93602
94232
  "inheritedFrom": {
93603
94233
  "name": "HelixElement",
@@ -94300,7 +94930,7 @@
94300
94930
  "text": "Promise<void>"
94301
94931
  },
94302
94932
  "readonly": true,
94303
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
94933
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
94304
94934
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
94305
94935
  "inheritedFrom": {
94306
94936
  "name": "HelixElement",
@@ -94723,7 +95353,7 @@
94723
95353
  "text": "Promise<void>"
94724
95354
  },
94725
95355
  "readonly": true,
94726
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
95356
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
94727
95357
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
94728
95358
  "inheritedFrom": {
94729
95359
  "name": "HelixElement",
@@ -95415,7 +96045,7 @@
95415
96045
  "text": "Promise<void>"
95416
96046
  },
95417
96047
  "readonly": true,
95418
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
96048
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
95419
96049
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
95420
96050
  "inheritedFrom": {
95421
96051
  "name": "HelixElement",
@@ -95897,7 +96527,7 @@
95897
96527
  "text": "Promise<void>"
95898
96528
  },
95899
96529
  "readonly": true,
95900
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
96530
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
95901
96531
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
95902
96532
  "inheritedFrom": {
95903
96533
  "name": "HelixElement",
@@ -96943,7 +97573,7 @@
96943
97573
  "text": "Promise<void>"
96944
97574
  },
96945
97575
  "readonly": true,
96946
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
97576
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
96947
97577
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
96948
97578
  "inheritedFrom": {
96949
97579
  "name": "HelixElement",
@@ -97607,7 +98237,7 @@
97607
98237
  "text": "Promise<void>"
97608
98238
  },
97609
98239
  "readonly": true,
97610
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
98240
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
97611
98241
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
97612
98242
  "inheritedFrom": {
97613
98243
  "name": "HelixElement",
@@ -98173,7 +98803,7 @@
98173
98803
  "text": "Promise<void>"
98174
98804
  },
98175
98805
  "readonly": true,
98176
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
98806
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
98177
98807
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
98178
98808
  "inheritedFrom": {
98179
98809
  "name": "HelixElement",
@@ -98495,9 +99125,41 @@
98495
99125
  "description": "The point, resting against the trigger.",
98496
99126
  "name": "arrow"
98497
99127
  },
99128
+ {
99129
+ "description": "The point while the bubble is below its trigger, so on the bubble's top edge, beside `arrow`.",
99130
+ "name": "arrow-bottom"
99131
+ },
99132
+ {
99133
+ "description": "The point while the bubble is left of its trigger, so on the bubble's right edge, beside `arrow`.",
99134
+ "name": "arrow-left"
99135
+ },
99136
+ {
99137
+ "description": "The point while the bubble is right of its trigger, so on the bubble's left edge, beside `arrow`.",
99138
+ "name": "arrow-right"
99139
+ },
99140
+ {
99141
+ "description": "The point while the bubble is above its trigger, so on the bubble's bottom edge, beside `arrow`.",
99142
+ "name": "arrow-top"
99143
+ },
98498
99144
  {
98499
99145
  "description": "The bubble.",
98500
99146
  "name": "tooltip"
99147
+ },
99148
+ {
99149
+ "description": "The bubble while it is below its trigger, beside `tooltip`.",
99150
+ "name": "tooltip-bottom"
99151
+ },
99152
+ {
99153
+ "description": "The bubble while it is left of its trigger, beside `tooltip`.",
99154
+ "name": "tooltip-left"
99155
+ },
99156
+ {
99157
+ "description": "The bubble while it is right of its trigger, beside `tooltip`.",
99158
+ "name": "tooltip-right"
99159
+ },
99160
+ {
99161
+ "description": "The bubble while it is above its trigger, beside `tooltip`.",
99162
+ "name": "tooltip-top"
98501
99163
  }
98502
99164
  ],
98503
99165
  "slots": [
@@ -98603,6 +99265,15 @@
98603
99265
  "description": "The id of a box to keep the bubble inside, instead of the viewport.\n\nResolved the way `for` is, so an id in the same tree, which is what lets a\ncomponent name a box in its own shadow root. A chart does: its bubble is\ncentered on a reading, and the first and last readings sit at the ends of\nthe plot, so half the box hangs past the drawing and, measured on a chart\nin a 320px card, three pixels past the card itself.\n\nClamping is on the cross axis only, which is what makes this safe to point\nat a box the bubble genuinely does not fit inside. See `within` on\n`FloatingController` for what happens if it is applied to the rest.",
98604
99266
  "attribute": "within"
98605
99267
  },
99268
+ {
99269
+ "kind": "field",
99270
+ "name": "side",
99271
+ "type": {
99272
+ "text": "Side | undefined"
99273
+ },
99274
+ "privacy": "private",
99275
+ "description": "The side of its trigger the bubble last landed on, which is not always\n`placement`: a bubble with no room there is moved.\n\nUndefined until the first placement, which the server never makes, so a\npart name it adds is never markup the server did not send."
99276
+ },
98606
99277
  {
98607
99278
  "kind": "field",
98608
99279
  "name": "timer",
@@ -98657,7 +99328,7 @@
98657
99328
  "name": "bubbleLayer",
98658
99329
  "privacy": "private",
98659
99330
  "readonly": true,
98660
- "default": "new PopoverController(this, { anchor: () => this.trigger, arrow: () => this.partNamed('arrow'), /* Annotated, because without it the array's element type is inferred from `this`, whose own type depends on this controller, and TypeScript stops at the cycle. */ boundary: (): readonly (Element | null)[] => [this, this.named], /* The declared gap plus the arrow's own reach, so the gap is to the point. * * A square of side `n` rotated forty-five degrees about its own center * reaches `n / sqrt(2)` from that center, and the arrow is placed with its * center on the bubble's edge, so that is exactly how far past the edge the * tip goes. Read from the element rather than assumed, because * `--tooltip-arrow-size` is a hook and a theme may have moved it. * * `offsetWidth` and not `getBoundingClientRect`, which reports the rotated * box and would count the reach twice. Zero while the bubble is closed and * unrendered, which is right: there is nothing to place then either. */ offset: () => { const point = this.partNamed('arrow') return this.offset + (point?.offsetWidth ?? 0) / Math.SQRT2 }, /* Escape closes the bubble from wherever the reader is, and this is the one listener that hears it. On the document, through the controller, not on the host: a tooltip opened by hover has focus somewhere else entirely, so a press never reaches this element and Escape would work for everything except the case the pattern is named for, a reader escaping a tooltip obscuring what is under it. The controller listens only while the bubble is up, and it is the same arbitration every overlay goes through, so a press with a deeper surface open closes that one and leaves this alone rather than taking both: a second listener of this element's own answered every press for the element's whole connected life and skipped the vote. Holds are cleared as well as hiding, for the reason `handleActivate` gives: left set, the pointer is still recorded as being over the trigger, and the bubble comes back on a `release` it should have been dropped from. */ onDismiss: () => { this.holds.clear() this.hide() }, placement: () => this.placement, surface: () => this.partNamed('tooltip'), within: () => this.enclosure, })"
99331
+ "default": "new PopoverController(this, { anchor: () => this.trigger, arrow: () => this.partNamed('arrow'), /* Annotated, because without it the array's element type is inferred from `this`, whose own type depends on this controller, and TypeScript stops at the cycle. */ boundary: (): readonly (Element | null)[] => [this, this.named], /* The declared gap plus the arrow's own reach, so the gap is to the point. * * A square of side `n` rotated forty-five degrees about its own center * reaches `n / sqrt(2)` from that center, and the arrow is placed with its * center on the bubble's edge, so that is exactly how far past the edge the * tip goes. Read from the element rather than assumed, because * `--tooltip-arrow-size` is a hook and a theme may have moved it. * * `offsetWidth` and not `getBoundingClientRect`, which reports the rotated * box and would count the reach twice. Zero while the bubble is closed and * unrendered, which is right: there is nothing to place then either. */ offset: () => { const point = this.partNamed('arrow') return this.offset + (point?.offsetWidth ?? 0) / Math.SQRT2 }, /* Escape closes the bubble from wherever the reader is, and this is the one listener that hears it. On the document, through the controller, not on the host: a tooltip opened by hover has focus somewhere else entirely, so a press never reaches this element and Escape would work for everything except the case the pattern is named for, a reader escaping a tooltip obscuring what is under it. The controller listens only while the bubble is up, and it is the same arbitration every overlay goes through, so a press with a deeper surface open closes that one and leaves this alone rather than taking both: a second listener of this element's own answered every press for the element's whole connected life and skipped the vote. Holds are cleared as well as hiding, for the reason `handleActivate` gives: left set, the pointer is still recorded as being over the trigger, and the bubble comes back on a `release` it should have been dropped from. */ onDismiss: () => { this.holds.clear() this.hide() }, /* The side it landed on, said where a sheet outside can read it. The controller writes `data-placement` on the bubble and puts the arrow on the edge facing the trigger itself, so nothing here is needed to point it; this is for a sheet that draws by side, an entrance growing out of the trigger or an edge on the arrow's two outer sides, and that sheet is outside the shadow root, where no attribute can follow `::part()`. A part name because a tooltip is usually inside another component, where a document cannot reach its host's state. */ onPlace: (placement) => { const side = placement.split('-')[0] as Side this.toggleState('placed-bottom', side === 'bottom') this.toggleState('placed-left', side === 'left') this.toggleState('placed-right', side === 'right') this.toggleState('placed-top', side === 'top') this.side = side }, placement: () => this.placement, surface: () => this.partNamed('tooltip'), within: () => this.enclosure, })"
98661
99332
  },
98662
99333
  {
98663
99334
  "kind": "field",
@@ -99043,7 +99714,7 @@
99043
99714
  "text": "Promise<void>"
99044
99715
  },
99045
99716
  "readonly": true,
99046
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
99717
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
99047
99718
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
99048
99719
  "inheritedFrom": {
99049
99720
  "name": "HelixElement",
@@ -99397,6 +100068,22 @@
99397
100068
  "description": "While the tooltip shows.",
99398
100069
  "name": "open"
99399
100070
  },
100071
+ {
100072
+ "description": "While the bubble sits below its trigger.",
100073
+ "name": "placed-bottom"
100074
+ },
100075
+ {
100076
+ "description": "While the bubble sits to the left of its trigger.",
100077
+ "name": "placed-left"
100078
+ },
100079
+ {
100080
+ "description": "While the bubble sits to the right of its trigger.",
100081
+ "name": "placed-right"
100082
+ },
100083
+ {
100084
+ "description": "While the bubble sits above its trigger.",
100085
+ "name": "placed-top"
100086
+ },
99400
100087
  {
99401
100088
  "description": "Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.",
99402
100089
  "name": "settled",
@@ -99907,7 +100594,7 @@
99907
100594
  "text": "Promise<void>"
99908
100595
  },
99909
100596
  "readonly": true,
99910
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
100597
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
99911
100598
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
99912
100599
  "inheritedFrom": {
99913
100600
  "name": "HelixElement",
@@ -100326,6 +101013,22 @@
100326
101013
  "description": "The point, which the floating pass places against the target.",
100327
101014
  "name": "arrow"
100328
101015
  },
101016
+ {
101017
+ "description": "The point while the panel is below its target, so on the panel's top edge, beside `arrow`.",
101018
+ "name": "arrow-bottom"
101019
+ },
101020
+ {
101021
+ "description": "The point while the panel is left of its target, so on the panel's right edge, beside `arrow`.",
101022
+ "name": "arrow-left"
101023
+ },
101024
+ {
101025
+ "description": "The point while the panel is right of its target, so on the panel's left edge, beside `arrow`.",
101026
+ "name": "arrow-right"
101027
+ },
101028
+ {
101029
+ "description": "The point while the panel is above its target, so on the panel's bottom edge, beside `arrow`.",
101030
+ "name": "arrow-top"
101031
+ },
100329
101032
  {
100330
101033
  "description": "The control that goes to the previous stop.",
100331
101034
  "name": "back"
@@ -100463,6 +101166,15 @@
100463
101166
  "description": "Label for the control that leaves the tour.",
100464
101167
  "attribute": "skip-label"
100465
101168
  },
101169
+ {
101170
+ "kind": "field",
101171
+ "name": "side",
101172
+ "type": {
101173
+ "text": "Side | undefined"
101174
+ },
101175
+ "privacy": "private",
101176
+ "description": "The side of its target the panel last landed on, which names the arrow's\nsecond part. Undefined until the first placement, which the server never\nmakes."
101177
+ },
100466
101178
  {
100467
101179
  "kind": "field",
100468
101180
  "name": "target",
@@ -100477,7 +101189,7 @@
100477
101189
  "name": "floating",
100478
101190
  "privacy": "private",
100479
101191
  "readonly": true,
100480
- "default": "new PopoverController(this, { anchor: () => this.target, arrow: () => this.partNamed('arrow'), /* Clear of the light, measured to the point of the arrow. The tour lights `spotlight-padding` around the target and the arrow reaches `n / sqrt(2)` past the panel's edge, and with no offset the panel sat on the target itself, over the lit margin, with its point 5.7px into what it pointed at. `offsetWidth` rather than a rect, which reports the rotated box. */ offset: () => { const tour = this.parentElement as (HTMLElement & { spotlightPadding?: number }) | null return ( (tour?.spotlightPadding ?? 0) + (this.partNamed('arrow')?.offsetWidth ?? 0) / Math.SQRT2 ) }, /* A press outside does not end a tour, and this is the decision rather than a stub. Everywhere else a surface closes on an outside press because pressing elsewhere means the reader is finished with it. Here elsewhere is the thing being pointed at: the scrim lets the pointer through on purpose, so the first press a reader makes on the button the tour is describing would be the press that ends the tour. Leaving is the skip control and `Escape`, both of which say so. */ onDismiss: () => {}, /* The side the panel landed on, which is not always `placement`: a stop with no room on the side it asked for is moved. The styled tier points its arrow from `data-placement` on the panel, inside this shadow root; a stylesheet outside cannot follow `::part(arrow)` with an attribute, and reading the stop's own `placement` instead pointed the arrow from the side that was asked for, or from below wherever React had set it as a property and there was no attribute to read. */ onPlace: (placement) => { const side = placement.split('-')[0] this.toggleState('placed-bottom', side === 'bottom') this.toggleState('placed-left', side === 'left') this.toggleState('placed-right', side === 'right') this.toggleState('placed-top', side === 'top') }, placement: () => this.placement, surface: () => this.partNamed('bubble'), })"
101192
+ "default": "new PopoverController(this, { anchor: () => this.target, arrow: () => this.partNamed('arrow'), /* Clear of the light, measured to the point of the arrow. The tour lights `spotlight-padding` around the target and the arrow reaches `n / sqrt(2)` past the panel's edge, and with no offset the panel sat on the target itself, over the lit margin, with its point 5.7px into what it pointed at. `offsetWidth` rather than a rect, which reports the rotated box. */ offset: () => { const tour = this.parentElement as (HTMLElement & { spotlightPadding?: number }) | null return ( (tour?.spotlightPadding ?? 0) + (this.partNamed('arrow')?.offsetWidth ?? 0) / Math.SQRT2 ) }, /* A press outside does not end a tour, and this is the decision rather than a stub. Everywhere else a surface closes on an outside press because pressing elsewhere means the reader is finished with it. Here elsewhere is the thing being pointed at: the scrim lets the pointer through on purpose, so the first press a reader makes on the button the tour is describing would be the press that ends the tour. Leaving is the skip control and `Escape`, both of which say so. */ onDismiss: () => {}, /* The side the panel landed on, which is not always `placement`: a stop with no room on the side it asked for is moved. The floating pass puts the arrow on the edge facing the target itself; what a sheet draws by side is the edge on the arrow's two outer sides. The styled tier reads `data-placement` on the panel, inside this shadow root; a stylesheet outside cannot follow `::part(arrow)` with an attribute, and reading the stop's own `placement` instead drew from the side that was asked for, or from below wherever React had set it as a property and there was no attribute to read. */ onPlace: (placement) => { const side = placement.split('-')[0] as Side this.toggleState('placed-bottom', side === 'bottom') this.toggleState('placed-left', side === 'left') this.toggleState('placed-right', side === 'right') this.toggleState('placed-top', side === 'top') this.side = side }, placement: () => this.placement, surface: () => this.partNamed('bubble'), })"
100481
101193
  },
100482
101194
  {
100483
101195
  "kind": "method",
@@ -100619,7 +101331,7 @@
100619
101331
  "text": "Promise<void>"
100620
101332
  },
100621
101333
  "readonly": true,
100622
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
101334
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
100623
101335
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
100624
101336
  "inheritedFrom": {
100625
101337
  "name": "HelixElement",
@@ -101437,7 +102149,7 @@
101437
102149
  "text": "Promise<void>"
101438
102150
  },
101439
102151
  "readonly": true,
101440
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
102152
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
101441
102153
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
101442
102154
  "inheritedFrom": {
101443
102155
  "name": "HelixElement",
@@ -102338,7 +103050,7 @@
102338
103050
  "text": "Promise<void>"
102339
103051
  },
102340
103052
  "readonly": true,
102341
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
103053
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
102342
103054
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
102343
103055
  "inheritedFrom": {
102344
103056
  "name": "HelixElement",
@@ -102898,7 +103610,7 @@
102898
103610
  "text": "Promise<void>"
102899
103611
  },
102900
103612
  "readonly": true,
102901
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
103613
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
102902
103614
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
102903
103615
  "inheritedFrom": {
102904
103616
  "name": "HelixElement",
@@ -103458,7 +104170,7 @@
103458
104170
  "text": "Promise<void>"
103459
104171
  },
103460
104172
  "readonly": true,
103461
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
104173
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
103462
104174
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
103463
104175
  "inheritedFrom": {
103464
104176
  "name": "HelixElement",
@@ -104043,7 +104755,7 @@
104043
104755
  "text": "Promise<void>"
104044
104756
  },
104045
104757
  "readonly": true,
104046
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
104758
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
104047
104759
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
104048
104760
  "inheritedFrom": {
104049
104761
  "name": "HelixElement",
@@ -104676,7 +105388,7 @@
104676
105388
  "text": "Promise<void>"
104677
105389
  },
104678
105390
  "readonly": true,
104679
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
105391
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
104680
105392
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
104681
105393
  "inheritedFrom": {
104682
105394
  "name": "HelixElement",
@@ -106809,7 +107521,7 @@
106809
107521
  "text": "Promise<void>"
106810
107522
  },
106811
107523
  "readonly": true,
106812
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
107524
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
106813
107525
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
106814
107526
  "inheritedFrom": {
106815
107527
  "name": "HelixElement",
@@ -107563,7 +108275,7 @@
107563
108275
  "text": "Promise<void>"
107564
108276
  },
107565
108277
  "readonly": true,
107566
- "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang race it\nagainst a timeout; `readyToMove` does exactly that.",
108278
+ "description": "Resolves a frame after the first update, when transitions are switched on.\n\n**Named `whenSettled` because `settled` is taken four times over**, by\nImage, Splitter and both color controls, none of them about transitions. A\nbase class takes the name every subclass then cannot use.\n\n**The state it reports cannot be watched, which is why this exists.** A\ncustom state is deliberately not in the DOM, so there is no\n`MutationObserver` equivalent for `ElementInternals.states`. Await this\ninstead.\n\nSeparate from `updateComplete`, which resolves in the microtask checkpoint\nthe suppression is still active in. That is the distinction `readyToMove`\nin `@fusion.dev/helix-testing` is written around.\n\nIt never resolves where `requestAnimationFrame` never fires, which is a\nserver, a hidden tab, and happy-dom. Callers that must not hang there race\nit against a timeout, as the happy-dom harness's `readyToMove` does. The\nbrowser harness's awaits it alone: a browser always runs the frame, and a\ntimer beside it was a bet on how long one takes, which a busy run lost.",
107567
108279
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
107568
108280
  "inheritedFrom": {
107569
108281
  "name": "HelixElement",