@fusion.dev/helix 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 (35) hide show
  1. package/custom-elements.json +1408 -173
  2. package/dist/aura/root/aura-root.css.js +4 -0
  3. package/dist/aura/root/aura-root.d.ts +64 -1
  4. package/dist/aura/root/aura-root.js +59 -4
  5. package/dist/bar-chart/root/bar-chart-root.css.js +4 -0
  6. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +0 -4
  7. package/dist/carousel/root/carousel-root.css.js +19 -15
  8. package/dist/code-block/root/code-block-root.css.js +33 -6
  9. package/dist/code-block/root/code-block-root.d.ts +6 -3
  10. package/dist/color-picker/root/color-picker-root.css.js +13 -3
  11. package/dist/date-picker/root/date-picker-root.css.js +0 -2
  12. package/dist/donut-chart/root/donut-chart-root.css.js +8 -0
  13. package/dist/drilldown/item/drilldown-item.css.js +0 -4
  14. package/dist/drilldown/root/drilldown-root.css.js +0 -4
  15. package/dist/heatmap/root/heatmap-root.d.ts +8 -0
  16. package/dist/menu/item/menu-item.css.js +0 -4
  17. package/dist/menu/root/menu-root.css.js +0 -4
  18. package/dist/object-inspector/root/object-inspector-root.css.js +0 -4
  19. package/dist/orb/root/orb-root.css.js +4 -0
  20. package/dist/orb/root/orb-root.d.ts +23 -0
  21. package/dist/orb/root/orb-root.js +28 -1
  22. package/dist/pagination/root/pagination-root.css.js +0 -4
  23. package/dist/pin-input/root/pin-input-root.css.js +1 -0
  24. package/dist/scatter-chart/root/scatter-chart-root.css.js +7 -2
  25. package/dist/scroll-area/root/scroll-area-root.css.js +9 -2
  26. package/dist/shared/chart/terminus.css.js +8 -0
  27. package/dist/slider/root/slider-root.css.js +43 -7
  28. package/dist/table/cell/table-cell.css.js +6 -1
  29. package/dist/tooltip/root/tooltip-root.css.js +16 -32
  30. package/dist/tour/root/tour-root.css.js +3 -2
  31. package/dist/tour/stop/tour-stop.css.js +13 -17
  32. package/dist/tree/item/tree-item.css.js +4 -0
  33. package/package.json +6 -6
  34. package/types/jsx.d.ts +1542 -648
  35. package/types/vue.d.ts +53 -21
@@ -434,7 +434,7 @@
434
434
  "text": "Promise<void>"
435
435
  },
436
436
  "readonly": true,
437
- "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.",
437
+ "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.",
438
438
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
439
439
  "inheritedFrom": {
440
440
  "name": "HelixElement",
@@ -1010,7 +1010,7 @@
1010
1010
  "text": "Promise<void>"
1011
1011
  },
1012
1012
  "readonly": true,
1013
- "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.",
1013
+ "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.",
1014
1014
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
1015
1015
  "inheritedFrom": {
1016
1016
  "name": "HelixElement",
@@ -1606,7 +1606,7 @@
1606
1606
  "text": "Promise<void>"
1607
1607
  },
1608
1608
  "readonly": true,
1609
- "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.",
1609
+ "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.",
1610
1610
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
1611
1611
  "inheritedFrom": {
1612
1612
  "name": "HelixElement",
@@ -2319,7 +2319,7 @@
2319
2319
  "text": "Promise<void>"
2320
2320
  },
2321
2321
  "readonly": true,
2322
- "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.",
2322
+ "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.",
2323
2323
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
2324
2324
  "inheritedFrom": {
2325
2325
  "name": "HelixElement",
@@ -3335,7 +3335,7 @@
3335
3335
  "text": "Promise<void>"
3336
3336
  },
3337
3337
  "readonly": true,
3338
- "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.",
3338
+ "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.",
3339
3339
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
3340
3340
  "inheritedFrom": {
3341
3341
  "name": "HelixElement",
@@ -3778,6 +3778,46 @@
3778
3778
  "module": "src/area-chart/root/area-chart-root.ts"
3779
3779
  }
3780
3780
  },
3781
+ {
3782
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
3783
+ "name": "tooltip-arrow-bottom",
3784
+ "inheritedFrom": {
3785
+ "name": "HelixHeadlessAreaChart",
3786
+ "module": "src/area-chart/root/area-chart-root.ts"
3787
+ }
3788
+ },
3789
+ {
3790
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
3791
+ "name": "tooltip-arrow-left",
3792
+ "inheritedFrom": {
3793
+ "name": "HelixHeadlessAreaChart",
3794
+ "module": "src/area-chart/root/area-chart-root.ts"
3795
+ }
3796
+ },
3797
+ {
3798
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
3799
+ "name": "tooltip-arrow-right",
3800
+ "inheritedFrom": {
3801
+ "name": "HelixHeadlessAreaChart",
3802
+ "module": "src/area-chart/root/area-chart-root.ts"
3803
+ }
3804
+ },
3805
+ {
3806
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
3807
+ "name": "tooltip-arrow-top",
3808
+ "inheritedFrom": {
3809
+ "name": "HelixHeadlessAreaChart",
3810
+ "module": "src/area-chart/root/area-chart-root.ts"
3811
+ }
3812
+ },
3813
+ {
3814
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
3815
+ "name": "tooltip-bottom",
3816
+ "inheritedFrom": {
3817
+ "name": "HelixHeadlessAreaChart",
3818
+ "module": "src/area-chart/root/area-chart-root.ts"
3819
+ }
3820
+ },
3781
3821
  {
3782
3822
  "description": "One column's name and value inside the tooltip.",
3783
3823
  "name": "tooltip-cell",
@@ -3794,6 +3834,14 @@
3794
3834
  "module": "src/area-chart/root/area-chart-root.ts"
3795
3835
  }
3796
3836
  },
3837
+ {
3838
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
3839
+ "name": "tooltip-left",
3840
+ "inheritedFrom": {
3841
+ "name": "HelixHeadlessAreaChart",
3842
+ "module": "src/area-chart/root/area-chart-root.ts"
3843
+ }
3844
+ },
3797
3845
  {
3798
3846
  "description": "A column's name inside the tooltip.",
3799
3847
  "name": "tooltip-name",
@@ -3802,6 +3850,22 @@
3802
3850
  "module": "src/area-chart/root/area-chart-root.ts"
3803
3851
  }
3804
3852
  },
3853
+ {
3854
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
3855
+ "name": "tooltip-right",
3856
+ "inheritedFrom": {
3857
+ "name": "HelixHeadlessAreaChart",
3858
+ "module": "src/area-chart/root/area-chart-root.ts"
3859
+ }
3860
+ },
3861
+ {
3862
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
3863
+ "name": "tooltip-top",
3864
+ "inheritedFrom": {
3865
+ "name": "HelixHeadlessAreaChart",
3866
+ "module": "src/area-chart/root/area-chart-root.ts"
3867
+ }
3868
+ },
3805
3869
  {
3806
3870
  "description": "A column's value inside the tooltip.",
3807
3871
  "name": "tooltip-value",
@@ -3961,7 +4025,7 @@
3961
4025
  "declarations": [
3962
4026
  {
3963
4027
  "kind": "class",
3964
- "description": "One fragment shader over a full-screen triangle, with the palette read from\nthe tokens rather than given as colors. A background written with hex values\nis an asset that has to be re-cut when the brand moves; one written against\n`--helix-color-primary` is a consequence of it.\n\n**Every shape ramps through four token stops**, and the token layer inverts\neach: the page's background, `primary-subtle`, `primary`, then a peak. The\npeak is the foreground on a dark page and `primary-active` on a light one,\nbecause mixing a saturated hue toward near-black takes the chroma out of the\npixels carrying most of it. Which way the page runs is read off the ground's\nown luminance rather than asked of the mode, which is a private token.\n\n**No dependency, and no scene graph.** The geometry is three vertices derived\nfrom `gl_VertexID`, so there is no attribute, no buffer and no upload.\n\n**It stops when nobody is looking**, off screen and in a background tab, and\n`prefers-reduced-motion` gets one still frame rather than an empty box.\n\nStyled only, and with behavior, which the tier split does not otherwise\nallow: the behavior is drawing to a canvas, so there is no structure a\nconsumer could restyle and nothing for a headless twin to hold.",
4028
+ "description": "One fragment shader over a full-screen triangle, with the palette read from\nthe tokens rather than given as colors. A background written with hex values\nis an asset that has to be re-cut when the brand moves; one written against\n`--helix-color-primary` is a consequence of it.\n\n**Every shape ramps through four token stops**, and the token layer inverts\neach: the page's background, `primary-subtle`, `primary`, then a peak. The\npeak is the foreground on a dark page and `primary-active` on a light one,\nbecause mixing a saturated hue toward near-black takes the chroma out of the\npixels carrying most of it. Which way the page runs is read off the ground's\nown luminance rather than asked of the mode, which is a private token.\n\n**No dependency, and no scene graph.** The geometry is three vertices derived\nfrom `gl_VertexID`, so there is no attribute, no buffer and no upload.\n\n**It stops when nobody is looking**, off screen and in a background tab, and\n`prefers-reduced-motion` gets one still frame rather than an empty box. A\ncontext the browser takes back, on a GPU reset or past its cap of about\nsixteen, stops it too, and the gradient shows until the context returns.\n\nStyled only, and with behavior, which the tier split does not otherwise\nallow: the behavior is drawing to a canvas, so there is no structure a\nconsumer could restyle and nothing for a headless twin to hold.",
3965
4029
  "name": "HelixAura",
3966
4030
  "cssParts": [
3967
4031
  {
@@ -4281,6 +4345,16 @@
4281
4345
  },
4282
4346
  "privacy": "private"
4283
4347
  },
4348
+ {
4349
+ "kind": "field",
4350
+ "name": "onScreen",
4351
+ "type": {
4352
+ "text": "boolean"
4353
+ },
4354
+ "privacy": "private",
4355
+ "default": "false",
4356
+ "description": "What the intersection observer last said, kept because it says so only on\na change: every other path to `play` has to ask it."
4357
+ },
4284
4358
  {
4285
4359
  "kind": "field",
4286
4360
  "name": "box",
@@ -4349,7 +4423,18 @@
4349
4423
  "text": "boolean"
4350
4424
  }
4351
4425
  },
4352
- "description": "The context and the program, from whatever canvas can still give one.\n\n**A canvas whose context was force-lost never yields a working one again.**\n`getContext` hands back the very same dead object, which reports\n`isContextLost()` and answers `null` to every `getShaderParameter`, so\n`link` fails, `start` returns before installing a single observer, and the\nelement sits connected and permanently blind, holding whatever buffer it\nlast painted. Measured on the landing page, where one remove-and-reinsert\nwas enough: the frozen frame was the 2x2 the first `measure` took before\nlayout, stretched across two screens as a gray smear that reads as a broken\ngradient rather than as a dead component. The only sound in the console was\n`getShaderInfoLog` answering `null`, twice per element.\n\nA spent canvas is therefore replaced rather than re-asked. `restoreContext`\nis the other way and is not reachable from here: it needs the `webglcontextlost`\nevent default-prevented and the extension held from before the loss, and it\nrestores asynchronously, so `start` would have to become a state machine to\nuse it. A fresh canvas is synchronous and cannot half-succeed."
4426
+ "description": "The context and the program, from whatever canvas can still give one.\n\n**A canvas whose context was force-lost never yields a working one again.**\n`getContext` hands back the very same dead object, which reports\n`isContextLost()` and answers `null` to every `getShaderParameter`, so\n`link` fails, `start` returns before installing a single observer, and the\nelement sits connected and permanently blind, holding whatever buffer it\nlast painted. Measured on the landing page, where one remove-and-reinsert\nwas enough: the frozen frame was the 2x2 the first `measure` took before\nlayout, stretched across two screens as a gray smear that reads as a broken\ngradient rather than as a dead component. The only sound in the console was\n`getShaderInfoLog` answering `null`, twice per element.\n\nA spent canvas is therefore replaced rather than re-asked. `restoreContext`\nis the other way and is not reachable from here: it needs the `webglcontextlost`\nevent default-prevented and the extension held from before the loss, and it\nrestores asynchronously, so `start` would have to become a state machine to\nuse it. A fresh canvas is synchronous and cannot half-succeed.\n\nThat is a context this element released. One the browser takes is not\nspent: `handleLost` asks for it back, and `start` waits for it rather than\ncoming here."
4427
+ },
4428
+ {
4429
+ "kind": "method",
4430
+ "name": "prepare",
4431
+ "privacy": "private",
4432
+ "return": {
4433
+ "type": {
4434
+ "text": "boolean"
4435
+ }
4436
+ },
4437
+ "description": "The program and where its uniforms live, on the context already held.\n\nApart from `build` because a restored context comes here alone. It is the\nsame object the browser took, with every program and location it had made\ngone, and `build` would replace a canvas that had been lost again before\nthis ran rather than wait for it a second time."
4353
4438
  },
4354
4439
  {
4355
4440
  "kind": "field",
@@ -4358,6 +4443,20 @@
4358
4443
  "readonly": true,
4359
4444
  "description": "Gives the context back, once nothing has claimed the element again.\n\n**The context is not released by dropping the reference.** A browser caps\nlive WebGL contexts at about sixteen and drops the oldest when a\nseventeenth is asked for, so a page that mounts and unmounts auras kills\nthe ones still on screen: the symptom is an aura elsewhere going blank,\nwhich looks like a fault in that element and is this one. The context\nbelongs to the canvas, and the canvas is held by the shadow root until the\nelement is collected, which is a moment nothing here controls and which is\nfar too late for a cap of sixteen. `WEBGL_lose_context` is the only way.\n\n**It spends the canvas**, which is what `build` is written around: the\ncanvas can never serve a context again and a returning element takes a\nfresh one."
4360
4445
  },
4446
+ {
4447
+ "kind": "field",
4448
+ "name": "handleLost",
4449
+ "privacy": "private",
4450
+ "readonly": true,
4451
+ "description": "Stops for a context the browser has taken, and asks for it back.\n\n**Taken on a GPU reset, and past the cap** of about sixteen, where the\nbrowser drops the oldest context for the newest while its aura is still on\nscreen. `tick` books its own next frame, so the loop went on at 30 frames a\nsecond against a context that draws nothing, and nothing made the program\nagain once the context came back: the aura never recovered.\n\n**The canvas is hidden until then, because a lost one is not reliably\ntransparent.** Measured 15 Sep 2026: headless Chromium painted a plain\ncanvas white with a broken-image glyph in its corner, force-lost and on a\ncrashed GPU process alike, while this one came out clear there and on\nMetal, and the landing page once held a spent one's last frame (`build`\nhas it). Hidden, it shows what a machine with no WebGL is shown, the host's\ngradient, whatever the engine does with a lost canvas.\n\n`preventDefault` is the asking: a browser restores only a context whose\nloss was canceled."
4452
+ },
4453
+ {
4454
+ "kind": "field",
4455
+ "name": "handleRestored",
4456
+ "privacy": "private",
4457
+ "readonly": true,
4458
+ "description": "Draws again on the context the browser gave back.\n\nEverything made on it went with the loss, so the program is linked again\nand the buffer measured as though it were new, which is what gives the new\nprogram its resolution."
4459
+ },
4361
4460
  {
4362
4461
  "kind": "method",
4363
4462
  "name": "readPalette",
@@ -4458,7 +4557,8 @@
4458
4557
  "type": {
4459
4558
  "text": "void"
4460
4559
  }
4461
- }
4560
+ },
4561
+ "description": "Starts the loop, where it is wanted and can be ended.\n\n**Never while detached.** `tick` books its own next frame, so the only\nthing that ends the loop is `stop`, and a disconnection is the last time\n`stop` is called. Everything that plays is canceled or disconnected there,\nand this holds for whatever callback was already on its way.\n\n**Nor off screen, whoever asks.** The observer is the one caller that\nknows, and a tab coming back, a resize and a restored context all play\ntoo. An aura 2600 pixels below the fold booked no frame at rest and one on\nevery frame after its tab came back, until it had been scrolled in and out\nagain. Nor on a lost context, which draws nothing."
4462
4562
  },
4463
4563
  {
4464
4564
  "kind": "method",
@@ -4674,7 +4774,7 @@
4674
4774
  "text": "Promise<void>"
4675
4775
  },
4676
4776
  "readonly": true,
4677
- "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.",
4777
+ "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.",
4678
4778
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
4679
4779
  "inheritedFrom": {
4680
4780
  "name": "HelixElement",
@@ -5401,7 +5501,7 @@
5401
5501
  "text": "Promise<void>"
5402
5502
  },
5403
5503
  "readonly": true,
5404
- "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.",
5504
+ "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.",
5405
5505
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
5406
5506
  "inheritedFrom": {
5407
5507
  "name": "HelixElement",
@@ -6025,7 +6125,7 @@
6025
6125
  "text": "Promise<void>"
6026
6126
  },
6027
6127
  "readonly": true,
6028
- "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.",
6128
+ "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.",
6029
6129
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
6030
6130
  "inheritedFrom": {
6031
6131
  "name": "HelixElement",
@@ -6655,7 +6755,7 @@
6655
6755
  "text": "Promise<void>"
6656
6756
  },
6657
6757
  "readonly": true,
6658
- "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.",
6758
+ "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.",
6659
6759
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
6660
6760
  "inheritedFrom": {
6661
6761
  "name": "HelixElement",
@@ -7760,7 +7860,7 @@
7760
7860
  "text": "Promise<void>"
7761
7861
  },
7762
7862
  "readonly": true,
7763
- "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.",
7863
+ "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.",
7764
7864
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
7765
7865
  "inheritedFrom": {
7766
7866
  "name": "HelixElement",
@@ -8318,6 +8418,46 @@
8318
8418
  "module": "src/bar-chart/root/bar-chart-root.ts"
8319
8419
  }
8320
8420
  },
8421
+ {
8422
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
8423
+ "name": "tooltip-arrow-bottom",
8424
+ "inheritedFrom": {
8425
+ "name": "HelixHeadlessBarChart",
8426
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8427
+ }
8428
+ },
8429
+ {
8430
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
8431
+ "name": "tooltip-arrow-left",
8432
+ "inheritedFrom": {
8433
+ "name": "HelixHeadlessBarChart",
8434
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8435
+ }
8436
+ },
8437
+ {
8438
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
8439
+ "name": "tooltip-arrow-right",
8440
+ "inheritedFrom": {
8441
+ "name": "HelixHeadlessBarChart",
8442
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8443
+ }
8444
+ },
8445
+ {
8446
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
8447
+ "name": "tooltip-arrow-top",
8448
+ "inheritedFrom": {
8449
+ "name": "HelixHeadlessBarChart",
8450
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8451
+ }
8452
+ },
8453
+ {
8454
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
8455
+ "name": "tooltip-bottom",
8456
+ "inheritedFrom": {
8457
+ "name": "HelixHeadlessBarChart",
8458
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8459
+ }
8460
+ },
8321
8461
  {
8322
8462
  "description": "One column's name and value inside the tooltip.",
8323
8463
  "name": "tooltip-cell",
@@ -8334,6 +8474,14 @@
8334
8474
  "module": "src/bar-chart/root/bar-chart-root.ts"
8335
8475
  }
8336
8476
  },
8477
+ {
8478
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
8479
+ "name": "tooltip-left",
8480
+ "inheritedFrom": {
8481
+ "name": "HelixHeadlessBarChart",
8482
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8483
+ }
8484
+ },
8337
8485
  {
8338
8486
  "description": "A column's name inside the tooltip.",
8339
8487
  "name": "tooltip-name",
@@ -8342,6 +8490,22 @@
8342
8490
  "module": "src/bar-chart/root/bar-chart-root.ts"
8343
8491
  }
8344
8492
  },
8493
+ {
8494
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
8495
+ "name": "tooltip-right",
8496
+ "inheritedFrom": {
8497
+ "name": "HelixHeadlessBarChart",
8498
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8499
+ }
8500
+ },
8501
+ {
8502
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
8503
+ "name": "tooltip-top",
8504
+ "inheritedFrom": {
8505
+ "name": "HelixHeadlessBarChart",
8506
+ "module": "src/bar-chart/root/bar-chart-root.ts"
8507
+ }
8508
+ },
8345
8509
  {
8346
8510
  "description": "A column's value inside the tooltip.",
8347
8511
  "name": "tooltip-value",
@@ -8573,7 +8737,7 @@
8573
8737
  "text": "Promise<void>"
8574
8738
  },
8575
8739
  "readonly": true,
8576
- "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.",
8740
+ "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.",
8577
8741
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
8578
8742
  "inheritedFrom": {
8579
8743
  "name": "HelixElement",
@@ -9189,7 +9353,7 @@
9189
9353
  "text": "Promise<void>"
9190
9354
  },
9191
9355
  "readonly": true,
9192
- "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.",
9356
+ "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.",
9193
9357
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
9194
9358
  "inheritedFrom": {
9195
9359
  "name": "HelixElement",
@@ -9696,7 +9860,7 @@
9696
9860
  "text": "Promise<void>"
9697
9861
  },
9698
9862
  "readonly": true,
9699
- "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.",
9863
+ "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.",
9700
9864
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
9701
9865
  "inheritedFrom": {
9702
9866
  "name": "HelixElement",
@@ -10192,7 +10356,7 @@
10192
10356
  "text": "Promise<void>"
10193
10357
  },
10194
10358
  "readonly": true,
10195
- "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.",
10359
+ "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.",
10196
10360
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
10197
10361
  "inheritedFrom": {
10198
10362
  "name": "HelixElement",
@@ -11252,7 +11416,7 @@
11252
11416
  "text": "Promise<void>"
11253
11417
  },
11254
11418
  "readonly": true,
11255
- "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.",
11419
+ "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.",
11256
11420
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
11257
11421
  "inheritedFrom": {
11258
11422
  "name": "HelixElement",
@@ -12010,7 +12174,7 @@
12010
12174
  "text": "Promise<void>"
12011
12175
  },
12012
12176
  "readonly": true,
12013
- "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.",
12177
+ "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.",
12014
12178
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
12015
12179
  "inheritedFrom": {
12016
12180
  "name": "HelixElement",
@@ -12579,7 +12743,7 @@
12579
12743
  "text": "Promise<void>"
12580
12744
  },
12581
12745
  "readonly": true,
12582
- "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.",
12746
+ "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.",
12583
12747
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
12584
12748
  "inheritedFrom": {
12585
12749
  "name": "HelixElement",
@@ -13261,7 +13425,7 @@
13261
13425
  "name": "handleIndicatorKeydown",
13262
13426
  "privacy": "private",
13263
13427
  "readonly": true,
13264
- "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.",
13428
+ "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.",
13265
13429
  "inheritedFrom": {
13266
13430
  "name": "HelixHeadlessCarousel",
13267
13431
  "module": "src/carousel/root/carousel-root.ts"
@@ -13344,7 +13508,7 @@
13344
13508
  }
13345
13509
  }
13346
13510
  ],
13347
- "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.",
13511
+ "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.",
13348
13512
  "inheritedFrom": {
13349
13513
  "name": "HelixHeadlessCarousel",
13350
13514
  "module": "src/carousel/root/carousel-root.ts"
@@ -13660,7 +13824,7 @@
13660
13824
  "text": "Promise<void>"
13661
13825
  },
13662
13826
  "readonly": true,
13663
- "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.",
13827
+ "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.",
13664
13828
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
13665
13829
  "inheritedFrom": {
13666
13830
  "name": "HelixElement",
@@ -14537,7 +14701,7 @@
14537
14701
  "text": "TemplateResult"
14538
14702
  }
14539
14703
  },
14540
- "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.",
14704
+ "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.",
14541
14705
  "inheritedFrom": {
14542
14706
  "name": "HelixHeadlessChatComposer",
14543
14707
  "module": "src/chat/composer/chat-composer.ts"
@@ -14671,7 +14835,7 @@
14671
14835
  "text": "Promise<void>"
14672
14836
  },
14673
14837
  "readonly": true,
14674
- "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.",
14838
+ "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.",
14675
14839
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
14676
14840
  "inheritedFrom": {
14677
14841
  "name": "HelixElement",
@@ -15605,7 +15769,7 @@
15605
15769
  "text": "Promise<void>"
15606
15770
  },
15607
15771
  "readonly": true,
15608
- "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.",
15772
+ "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.",
15609
15773
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
15610
15774
  "inheritedFrom": {
15611
15775
  "name": "HelixElement",
@@ -16142,6 +16306,14 @@
16142
16306
  "module": "src/chat/root/chat-root.ts"
16143
16307
  }
16144
16308
  },
16309
+ {
16310
+ "description": "The leading slot's box on a fed turn by `me`.",
16311
+ "name": "message-avatar-mine",
16312
+ "inheritedFrom": {
16313
+ "name": "HelixHeadlessChat",
16314
+ "module": "src/chat/root/chat-root.ts"
16315
+ }
16316
+ },
16145
16317
  {
16146
16318
  "description": "What a fed turn said, and the line under it.",
16147
16319
  "name": "message-body",
@@ -16150,6 +16322,14 @@
16150
16322
  "module": "src/chat/root/chat-root.ts"
16151
16323
  }
16152
16324
  },
16325
+ {
16326
+ "description": "What a fed turn by `me` said, and the line under it.",
16327
+ "name": "message-body-mine",
16328
+ "inheritedFrom": {
16329
+ "name": "HelixHeadlessChat",
16330
+ "module": "src/chat/root/chat-root.ts"
16331
+ }
16332
+ },
16153
16333
  {
16154
16334
  "description": "A fed turn's text.",
16155
16335
  "name": "message-content",
@@ -16158,6 +16338,30 @@
16158
16338
  "module": "src/chat/root/chat-root.ts"
16159
16339
  }
16160
16340
  },
16341
+ {
16342
+ "description": "The text of a fed turn by `me`.",
16343
+ "name": "message-content-mine",
16344
+ "inheritedFrom": {
16345
+ "name": "HelixHeadlessChat",
16346
+ "module": "src/chat/root/chat-root.ts"
16347
+ }
16348
+ },
16349
+ {
16350
+ "description": "A fed turn's text while it is `sending`.",
16351
+ "name": "message-content-sending",
16352
+ "inheritedFrom": {
16353
+ "name": "HelixHeadlessChat",
16354
+ "module": "src/chat/root/chat-root.ts"
16355
+ }
16356
+ },
16357
+ {
16358
+ "description": "A fed turn's text while it is `streaming`.",
16359
+ "name": "message-content-streaming",
16360
+ "inheritedFrom": {
16361
+ "name": "HelixHeadlessChat",
16362
+ "module": "src/chat/root/chat-root.ts"
16363
+ }
16364
+ },
16161
16365
  {
16162
16366
  "description": "A fed turn's default wait.",
16163
16367
  "name": "message-indicator",
@@ -16182,6 +16386,30 @@
16182
16386
  "module": "src/chat/root/chat-root.ts"
16183
16387
  }
16184
16388
  },
16389
+ {
16390
+ "description": "The line under a fed turn that `failed`, which says so.",
16391
+ "name": "message-meta-failed",
16392
+ "inheritedFrom": {
16393
+ "name": "HelixHeadlessChat",
16394
+ "module": "src/chat/root/chat-root.ts"
16395
+ }
16396
+ },
16397
+ {
16398
+ "description": "The line under a fed turn by `me`.",
16399
+ "name": "message-meta-mine",
16400
+ "inheritedFrom": {
16401
+ "name": "HelixHeadlessChat",
16402
+ "module": "src/chat/root/chat-root.ts"
16403
+ }
16404
+ },
16405
+ {
16406
+ "description": "A fed turn by `me`: the message drawn for it.",
16407
+ "name": "message-mine",
16408
+ "inheritedFrom": {
16409
+ "name": "HelixHeadlessChat",
16410
+ "module": "src/chat/root/chat-root.ts"
16411
+ }
16412
+ },
16185
16413
  {
16186
16414
  "description": "The control offered on a fed turn that failed.",
16187
16415
  "name": "message-retry",
@@ -17334,7 +17562,7 @@
17334
17562
  "text": "Promise<void>"
17335
17563
  },
17336
17564
  "readonly": true,
17337
- "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.",
17565
+ "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.",
17338
17566
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
17339
17567
  "inheritedFrom": {
17340
17568
  "name": "HelixElement",
@@ -18498,7 +18726,7 @@
18498
18726
  "text": "Promise<void>"
18499
18727
  },
18500
18728
  "readonly": true,
18501
- "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.",
18729
+ "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.",
18502
18730
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
18503
18731
  "inheritedFrom": {
18504
18732
  "name": "HelixElement",
@@ -19828,7 +20056,7 @@
19828
20056
  "text": "Promise<void>"
19829
20057
  },
19830
20058
  "readonly": true,
19831
- "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.",
20059
+ "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.",
19832
20060
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
19833
20061
  "inheritedFrom": {
19834
20062
  "name": "HelixElement",
@@ -20457,7 +20685,7 @@
20457
20685
  "declarations": [
20458
20686
  {
20459
20687
  "kind": "class",
20460
- "description": "The header sits above the code rather than floating on it. Overlaid, which is\nthe usual build, the copy button covers the first line, which is the one line\nof a snippet a reader is most likely to be reading.\n\nA diff is drawn a block per file in the same frame, each changed line washed\nin its tone at Tag's resting strength with its `+` or `-` in the tone's ink,\nso the change does not rest on telling two pale grounds apart. A split diff\nstacks its two versions below about 40rem of the file's own width.",
20688
+ "description": "The header sits above the code rather than floating on it, and the copy\nbutton stands at its end. Overlaid, which is the usual build, the button\ncovers the first line, which is the one line of a snippet a reader is most\nlikely to be reading. A block with no name has no header, and the button\nstands beside the code in room the block keeps clear: an end gutter for code,\na band above the first hunk for a diff.\n\nA diff is drawn a block per file in the same frame, each changed line washed\nin its tone at Tag's resting strength with its `+` or `-` in the tone's ink,\nso the change does not rest on telling two pale grounds apart. A split diff\nstacks its two versions below about 40rem of the file's own width.",
20461
20689
  "name": "HelixCodeBlock",
20462
20690
  "cssProperties": [
20463
20691
  {
@@ -20596,6 +20824,59 @@
20596
20824
  "module": "src/code-block/root/code-block-root.ts"
20597
20825
  }
20598
20826
  },
20827
+ {
20828
+ "kind": "method",
20829
+ "name": "renderHeader",
20830
+ "privacy": "private",
20831
+ "return": {
20832
+ "type": {
20833
+ "text": "TemplateResult | typeof nothing"
20834
+ }
20835
+ },
20836
+ "parameters": [
20837
+ {
20838
+ "name": "name",
20839
+ "type": {
20840
+ "text": "string"
20841
+ }
20842
+ },
20843
+ {
20844
+ "name": "value",
20845
+ "optional": true,
20846
+ "type": {
20847
+ "text": "string"
20848
+ }
20849
+ }
20850
+ ],
20851
+ "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.",
20852
+ "inheritedFrom": {
20853
+ "name": "HelixHeadlessCodeBlock",
20854
+ "module": "src/code-block/root/code-block-root.ts"
20855
+ }
20856
+ },
20857
+ {
20858
+ "kind": "method",
20859
+ "name": "renderCopy",
20860
+ "privacy": "private",
20861
+ "return": {
20862
+ "type": {
20863
+ "text": "TemplateResult | typeof nothing"
20864
+ }
20865
+ },
20866
+ "parameters": [
20867
+ {
20868
+ "name": "value",
20869
+ "optional": true,
20870
+ "type": {
20871
+ "text": "string"
20872
+ }
20873
+ }
20874
+ ],
20875
+ "inheritedFrom": {
20876
+ "name": "HelixHeadlessCodeBlock",
20877
+ "module": "src/code-block/root/code-block-root.ts"
20878
+ }
20879
+ },
20599
20880
  {
20600
20881
  "kind": "method",
20601
20882
  "name": "renderCopyButton",
@@ -20858,7 +21139,7 @@
20858
21139
  "text": "Promise<void>"
20859
21140
  },
20860
21141
  "readonly": true,
20861
- "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.",
21142
+ "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.",
20862
21143
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
20863
21144
  "inheritedFrom": {
20864
21145
  "name": "HelixElement",
@@ -21152,7 +21433,7 @@
21152
21433
  }
21153
21434
  },
21154
21435
  {
21155
- "description": "The copy button.",
21436
+ "description": "The copy button: in the header where there is one, and otherwise beside the code.",
21156
21437
  "name": "copy",
21157
21438
  "inheritedFrom": {
21158
21439
  "name": "HelixHeadlessCodeBlock",
@@ -21191,6 +21472,70 @@
21191
21472
  "module": "src/code-block/root/code-block-root.ts"
21192
21473
  }
21193
21474
  },
21475
+ {
21476
+ "description": "The point while the bubble is below the copy button, so on its top edge, beside `copy-tooltip-arrow`.",
21477
+ "name": "copy-tooltip-arrow-bottom",
21478
+ "inheritedFrom": {
21479
+ "name": "HelixHeadlessCodeBlock",
21480
+ "module": "src/code-block/root/code-block-root.ts"
21481
+ }
21482
+ },
21483
+ {
21484
+ "description": "The point while the bubble is left of the copy button, so on its right edge, beside `copy-tooltip-arrow`.",
21485
+ "name": "copy-tooltip-arrow-left",
21486
+ "inheritedFrom": {
21487
+ "name": "HelixHeadlessCodeBlock",
21488
+ "module": "src/code-block/root/code-block-root.ts"
21489
+ }
21490
+ },
21491
+ {
21492
+ "description": "The point while the bubble is right of the copy button, so on its left edge, beside `copy-tooltip-arrow`.",
21493
+ "name": "copy-tooltip-arrow-right",
21494
+ "inheritedFrom": {
21495
+ "name": "HelixHeadlessCodeBlock",
21496
+ "module": "src/code-block/root/code-block-root.ts"
21497
+ }
21498
+ },
21499
+ {
21500
+ "description": "The point while the bubble is above the copy button, so on its bottom edge, beside `copy-tooltip-arrow`.",
21501
+ "name": "copy-tooltip-arrow-top",
21502
+ "inheritedFrom": {
21503
+ "name": "HelixHeadlessCodeBlock",
21504
+ "module": "src/code-block/root/code-block-root.ts"
21505
+ }
21506
+ },
21507
+ {
21508
+ "description": "The bubble while it is below the copy button, beside `copy-tooltip`.",
21509
+ "name": "copy-tooltip-bottom",
21510
+ "inheritedFrom": {
21511
+ "name": "HelixHeadlessCodeBlock",
21512
+ "module": "src/code-block/root/code-block-root.ts"
21513
+ }
21514
+ },
21515
+ {
21516
+ "description": "The bubble while it is left of the copy button, beside `copy-tooltip`.",
21517
+ "name": "copy-tooltip-left",
21518
+ "inheritedFrom": {
21519
+ "name": "HelixHeadlessCodeBlock",
21520
+ "module": "src/code-block/root/code-block-root.ts"
21521
+ }
21522
+ },
21523
+ {
21524
+ "description": "The bubble while it is right of the copy button, beside `copy-tooltip`.",
21525
+ "name": "copy-tooltip-right",
21526
+ "inheritedFrom": {
21527
+ "name": "HelixHeadlessCodeBlock",
21528
+ "module": "src/code-block/root/code-block-root.ts"
21529
+ }
21530
+ },
21531
+ {
21532
+ "description": "The bubble while it is above the copy button, beside `copy-tooltip`.",
21533
+ "name": "copy-tooltip-top",
21534
+ "inheritedFrom": {
21535
+ "name": "HelixHeadlessCodeBlock",
21536
+ "module": "src/code-block/root/code-block-root.ts"
21537
+ }
21538
+ },
21194
21539
  {
21195
21540
  "description": "In a diff, one file's header and block.",
21196
21541
  "name": "file",
@@ -21208,7 +21553,7 @@
21208
21553
  }
21209
21554
  },
21210
21555
  {
21211
- "description": "The code and the copy button beside it.",
21556
+ "description": "The code, and the copy button beside it where there is no header.",
21212
21557
  "name": "frame",
21213
21558
  "inheritedFrom": {
21214
21559
  "name": "HelixHeadlessCodeBlock",
@@ -21216,7 +21561,7 @@
21216
21561
  }
21217
21562
  },
21218
21563
  {
21219
- "description": "The bar carrying the name, where there is one.",
21564
+ "description": "The bar carrying the name and the copy button, where there is a name.",
21220
21565
  "name": "header",
21221
21566
  "inheritedFrom": {
21222
21567
  "name": "HelixHeadlessCodeBlock",
@@ -21554,7 +21899,7 @@
21554
21899
  "text": "Promise<void>"
21555
21900
  },
21556
21901
  "readonly": true,
21557
- "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.",
21902
+ "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.",
21558
21903
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
21559
21904
  "inheritedFrom": {
21560
21905
  "name": "HelixElement",
@@ -21946,13 +22291,36 @@
21946
22291
  "name": "panel",
21947
22292
  "privacy": "protected",
21948
22293
  "readonly": true,
21949
- "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'), })",
22294
+ "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'), })",
21950
22295
  "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.",
21951
22296
  "inheritedFrom": {
21952
22297
  "name": "MixinPickerField",
21953
22298
  "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
21954
22299
  }
21955
22300
  },
22301
+ {
22302
+ "kind": "method",
22303
+ "name": "placed",
22304
+ "privacy": "protected",
22305
+ "return": {
22306
+ "type": {
22307
+ "text": "void"
22308
+ }
22309
+ },
22310
+ "parameters": [
22311
+ {
22312
+ "name": "_room",
22313
+ "type": {
22314
+ "text": "number | undefined"
22315
+ }
22316
+ }
22317
+ ],
22318
+ "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.",
22319
+ "inheritedFrom": {
22320
+ "name": "MixinPickerField",
22321
+ "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
22322
+ }
22323
+ },
21956
22324
  {
21957
22325
  "kind": "field",
21958
22326
  "name": "anchor",
@@ -23049,7 +23417,7 @@
23049
23417
  "text": "Promise<void>"
23050
23418
  },
23051
23419
  "readonly": true,
23052
- "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.",
23420
+ "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.",
23053
23421
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
23054
23422
  "inheritedFrom": {
23055
23423
  "name": "HelixElement",
@@ -24937,7 +25305,7 @@
24937
25305
  "text": "Promise<void>"
24938
25306
  },
24939
25307
  "readonly": true,
24940
- "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.",
25308
+ "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.",
24941
25309
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
24942
25310
  "inheritedFrom": {
24943
25311
  "name": "HelixElement",
@@ -27245,7 +27613,7 @@
27245
27613
  "text": "Promise<void>"
27246
27614
  },
27247
27615
  "readonly": true,
27248
- "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.",
27616
+ "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.",
27249
27617
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
27250
27618
  "inheritedFrom": {
27251
27619
  "name": "HelixElement",
@@ -28661,7 +29029,7 @@
28661
29029
  "text": "Promise<void>"
28662
29030
  },
28663
29031
  "readonly": true,
28664
- "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.",
29032
+ "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.",
28665
29033
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
28666
29034
  "inheritedFrom": {
28667
29035
  "name": "HelixElement",
@@ -29985,7 +30353,7 @@
29985
30353
  "text": "Promise<void>"
29986
30354
  },
29987
30355
  "readonly": true,
29988
- "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.",
30356
+ "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.",
29989
30357
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
29990
30358
  "inheritedFrom": {
29991
30359
  "name": "HelixElement",
@@ -30494,6 +30862,70 @@
30494
30862
  "name": "HelixHeadlessCopyButton",
30495
30863
  "module": "src/copy-button/root/copy-button-root.ts"
30496
30864
  }
30865
+ },
30866
+ {
30867
+ "description": "The point while the bubble is below the button, so on its top edge, beside `tooltip-arrow`.",
30868
+ "name": "tooltip-arrow-bottom",
30869
+ "inheritedFrom": {
30870
+ "name": "HelixHeadlessCopyButton",
30871
+ "module": "src/copy-button/root/copy-button-root.ts"
30872
+ }
30873
+ },
30874
+ {
30875
+ "description": "The point while the bubble is left of the button, so on its right edge, beside `tooltip-arrow`.",
30876
+ "name": "tooltip-arrow-left",
30877
+ "inheritedFrom": {
30878
+ "name": "HelixHeadlessCopyButton",
30879
+ "module": "src/copy-button/root/copy-button-root.ts"
30880
+ }
30881
+ },
30882
+ {
30883
+ "description": "The point while the bubble is right of the button, so on its left edge, beside `tooltip-arrow`.",
30884
+ "name": "tooltip-arrow-right",
30885
+ "inheritedFrom": {
30886
+ "name": "HelixHeadlessCopyButton",
30887
+ "module": "src/copy-button/root/copy-button-root.ts"
30888
+ }
30889
+ },
30890
+ {
30891
+ "description": "The point while the bubble is above the button, so on its bottom edge, beside `tooltip-arrow`.",
30892
+ "name": "tooltip-arrow-top",
30893
+ "inheritedFrom": {
30894
+ "name": "HelixHeadlessCopyButton",
30895
+ "module": "src/copy-button/root/copy-button-root.ts"
30896
+ }
30897
+ },
30898
+ {
30899
+ "description": "The bubble while it is below the button, beside `tooltip`.",
30900
+ "name": "tooltip-bottom",
30901
+ "inheritedFrom": {
30902
+ "name": "HelixHeadlessCopyButton",
30903
+ "module": "src/copy-button/root/copy-button-root.ts"
30904
+ }
30905
+ },
30906
+ {
30907
+ "description": "The bubble while it is left of the button, beside `tooltip`.",
30908
+ "name": "tooltip-left",
30909
+ "inheritedFrom": {
30910
+ "name": "HelixHeadlessCopyButton",
30911
+ "module": "src/copy-button/root/copy-button-root.ts"
30912
+ }
30913
+ },
30914
+ {
30915
+ "description": "The bubble while it is right of the button, beside `tooltip`.",
30916
+ "name": "tooltip-right",
30917
+ "inheritedFrom": {
30918
+ "name": "HelixHeadlessCopyButton",
30919
+ "module": "src/copy-button/root/copy-button-root.ts"
30920
+ }
30921
+ },
30922
+ {
30923
+ "description": "The bubble while it is above the button, beside `tooltip`.",
30924
+ "name": "tooltip-top",
30925
+ "inheritedFrom": {
30926
+ "name": "HelixHeadlessCopyButton",
30927
+ "module": "src/copy-button/root/copy-button-root.ts"
30928
+ }
30497
30929
  }
30498
30930
  ],
30499
30931
  "events": [
@@ -31705,6 +32137,20 @@
31705
32137
  "module": "src/data-table/root/data-table-root.ts"
31706
32138
  }
31707
32139
  },
32140
+ {
32141
+ "kind": "field",
32142
+ "name": "shownColumns",
32143
+ "type": {
32144
+ "text": "HelixHeadlessTableColumn[]"
32145
+ },
32146
+ "privacy": "private",
32147
+ "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.",
32148
+ "readonly": true,
32149
+ "inheritedFrom": {
32150
+ "name": "HelixHeadlessDataTable",
32151
+ "module": "src/data-table/root/data-table-root.ts"
32152
+ }
32153
+ },
31708
32154
  {
31709
32155
  "kind": "field",
31710
32156
  "name": "fields",
@@ -32013,7 +32459,42 @@
32013
32459
  }
32014
32460
  }
32015
32461
  ],
32016
- "description": "Moves a column by some places among the ones that move.",
32462
+ "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.",
32463
+ "inheritedFrom": {
32464
+ "name": "HelixHeadlessDataTable",
32465
+ "module": "src/data-table/root/data-table-root.ts"
32466
+ }
32467
+ },
32468
+ {
32469
+ "kind": "method",
32470
+ "name": "placed",
32471
+ "privacy": "private",
32472
+ "return": {
32473
+ "type": {
32474
+ "text": "string[]"
32475
+ }
32476
+ },
32477
+ "parameters": [
32478
+ {
32479
+ "name": "field",
32480
+ "type": {
32481
+ "text": "string"
32482
+ }
32483
+ },
32484
+ {
32485
+ "name": "beside",
32486
+ "type": {
32487
+ "text": "string"
32488
+ }
32489
+ },
32490
+ {
32491
+ "name": "after",
32492
+ "type": {
32493
+ "text": "boolean"
32494
+ }
32495
+ }
32496
+ ],
32497
+ "description": "Every field in order, with one taken out and put back beside another.",
32017
32498
  "inheritedFrom": {
32018
32499
  "name": "HelixHeadlessDataTable",
32019
32500
  "module": "src/data-table/root/data-table-root.ts"
@@ -32027,7 +32508,7 @@
32027
32508
  "text": "string"
32028
32509
  }
32029
32510
  },
32030
- "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.",
32511
+ "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.",
32031
32512
  "type": {
32032
32513
  "text": "csv() => string"
32033
32514
  },
@@ -32681,7 +33162,7 @@
32681
33162
  "text": "Promise<void>"
32682
33163
  },
32683
33164
  "readonly": true,
32684
- "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.",
33165
+ "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.",
32685
33166
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
32686
33167
  "inheritedFrom": {
32687
33168
  "name": "HelixElement",
@@ -33508,13 +33989,36 @@
33508
33989
  "name": "panel",
33509
33990
  "privacy": "protected",
33510
33991
  "readonly": true,
33511
- "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'), })",
33992
+ "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'), })",
33512
33993
  "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.",
33513
33994
  "inheritedFrom": {
33514
33995
  "name": "MixinPickerField",
33515
33996
  "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
33516
33997
  }
33517
33998
  },
33999
+ {
34000
+ "kind": "method",
34001
+ "name": "placed",
34002
+ "privacy": "protected",
34003
+ "return": {
34004
+ "type": {
34005
+ "text": "void"
34006
+ }
34007
+ },
34008
+ "parameters": [
34009
+ {
34010
+ "name": "_room",
34011
+ "type": {
34012
+ "text": "number | undefined"
34013
+ }
34014
+ }
34015
+ ],
34016
+ "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.",
34017
+ "inheritedFrom": {
34018
+ "name": "MixinPickerField",
34019
+ "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
34020
+ }
34021
+ },
33518
34022
  {
33519
34023
  "kind": "field",
33520
34024
  "name": "anchor",
@@ -34464,13 +34968,41 @@
34464
34968
  "text": "number"
34465
34969
  },
34466
34970
  "default": "1",
34467
- "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.",
34971
+ "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.",
34468
34972
  "attribute": "months",
34469
34973
  "inheritedFrom": {
34470
34974
  "name": "HelixHeadlessDateInput",
34471
34975
  "module": "src/date-input/root/date-input-root.ts"
34472
34976
  }
34473
34977
  },
34978
+ {
34979
+ "kind": "field",
34980
+ "name": "fitted",
34981
+ "type": {
34982
+ "text": "number | undefined"
34983
+ },
34984
+ "privacy": "private",
34985
+ "default": "undefined",
34986
+ "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.",
34987
+ "inheritedFrom": {
34988
+ "name": "HelixHeadlessDateInput",
34989
+ "module": "src/date-input/root/date-input-root.ts"
34990
+ }
34991
+ },
34992
+ {
34993
+ "kind": "field",
34994
+ "name": "wide",
34995
+ "type": {
34996
+ "text": "number | undefined"
34997
+ },
34998
+ "privacy": "private",
34999
+ "default": "undefined",
35000
+ "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.",
35001
+ "inheritedFrom": {
35002
+ "name": "HelixHeadlessDateInput",
35003
+ "module": "src/date-input/root/date-input-root.ts"
35004
+ }
35005
+ },
34474
35006
  {
34475
35007
  "kind": "field",
34476
35008
  "name": "placeholder",
@@ -34964,7 +35496,7 @@
34964
35496
  "text": "Promise<void>"
34965
35497
  },
34966
35498
  "readonly": true,
34967
- "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.",
35499
+ "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.",
34968
35500
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
34969
35501
  "inheritedFrom": {
34970
35502
  "name": "HelixElement",
@@ -35533,7 +36065,7 @@
35533
36065
  "text": "number"
35534
36066
  },
35535
36067
  "default": "1",
35536
- "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.",
36068
+ "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.",
35537
36069
  "fieldName": "months",
35538
36070
  "inheritedFrom": {
35539
36071
  "name": "HelixHeadlessDateInput",
@@ -37154,7 +37686,7 @@
37154
37686
  "text": "Promise<void>"
37155
37687
  },
37156
37688
  "readonly": true,
37157
- "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.",
37689
+ "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.",
37158
37690
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
37159
37691
  "inheritedFrom": {
37160
37692
  "name": "HelixElement",
@@ -38140,7 +38672,7 @@
38140
38672
  "text": "Promise<void>"
38141
38673
  },
38142
38674
  "readonly": true,
38143
- "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.",
38675
+ "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.",
38144
38676
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
38145
38677
  "inheritedFrom": {
38146
38678
  "name": "HelixElement",
@@ -38633,7 +39165,7 @@
38633
39165
  "text": "Promise<void>"
38634
39166
  },
38635
39167
  "readonly": true,
38636
- "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.",
39168
+ "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.",
38637
39169
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
38638
39170
  "inheritedFrom": {
38639
39171
  "name": "HelixElement",
@@ -39503,7 +40035,7 @@
39503
40035
  "text": "Promise<void>"
39504
40036
  },
39505
40037
  "readonly": true,
39506
- "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.",
40038
+ "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.",
39507
40039
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
39508
40040
  "inheritedFrom": {
39509
40041
  "name": "HelixElement",
@@ -40230,7 +40762,7 @@
40230
40762
  "text": "Promise<void>"
40231
40763
  },
40232
40764
  "readonly": true,
40233
- "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.",
40765
+ "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.",
40234
40766
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
40235
40767
  "inheritedFrom": {
40236
40768
  "name": "HelixElement",
@@ -40799,6 +41331,20 @@
40799
41331
  "module": "src/donut-chart/root/donut-chart-root.ts"
40800
41332
  }
40801
41333
  },
41334
+ {
41335
+ "kind": "field",
41336
+ "name": "origin",
41337
+ "type": {
41338
+ "text": "number"
41339
+ },
41340
+ "privacy": "private",
41341
+ "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.",
41342
+ "readonly": true,
41343
+ "inheritedFrom": {
41344
+ "name": "HelixHeadlessDonutChart",
41345
+ "module": "src/donut-chart/root/donut-chart-root.ts"
41346
+ }
41347
+ },
40802
41348
  {
40803
41349
  "kind": "field",
40804
41350
  "name": "thickness",
@@ -40929,7 +41475,7 @@
40929
41475
  }
40930
41476
  }
40931
41477
  ],
40932
- "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.",
41478
+ "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.",
40933
41479
  "inheritedFrom": {
40934
41480
  "name": "HelixHeadlessDonutChart",
40935
41481
  "module": "src/donut-chart/root/donut-chart-root.ts"
@@ -41046,7 +41592,7 @@
41046
41592
  "text": "Promise<void>"
41047
41593
  },
41048
41594
  "readonly": true,
41049
- "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.",
41595
+ "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.",
41050
41596
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
41051
41597
  "inheritedFrom": {
41052
41598
  "name": "HelixElement",
@@ -41472,6 +42018,46 @@
41472
42018
  "module": "src/donut-chart/root/donut-chart-root.ts"
41473
42019
  }
41474
42020
  },
42021
+ {
42022
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
42023
+ "name": "tooltip-arrow-bottom",
42024
+ "inheritedFrom": {
42025
+ "name": "HelixHeadlessDonutChart",
42026
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42027
+ }
42028
+ },
42029
+ {
42030
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
42031
+ "name": "tooltip-arrow-left",
42032
+ "inheritedFrom": {
42033
+ "name": "HelixHeadlessDonutChart",
42034
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42035
+ }
42036
+ },
42037
+ {
42038
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
42039
+ "name": "tooltip-arrow-right",
42040
+ "inheritedFrom": {
42041
+ "name": "HelixHeadlessDonutChart",
42042
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42043
+ }
42044
+ },
42045
+ {
42046
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
42047
+ "name": "tooltip-arrow-top",
42048
+ "inheritedFrom": {
42049
+ "name": "HelixHeadlessDonutChart",
42050
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42051
+ }
42052
+ },
42053
+ {
42054
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
42055
+ "name": "tooltip-bottom",
42056
+ "inheritedFrom": {
42057
+ "name": "HelixHeadlessDonutChart",
42058
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42059
+ }
42060
+ },
41475
42061
  {
41476
42062
  "description": "One column's name and value inside the tooltip.",
41477
42063
  "name": "tooltip-cell",
@@ -41488,6 +42074,14 @@
41488
42074
  "module": "src/donut-chart/root/donut-chart-root.ts"
41489
42075
  }
41490
42076
  },
42077
+ {
42078
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
42079
+ "name": "tooltip-left",
42080
+ "inheritedFrom": {
42081
+ "name": "HelixHeadlessDonutChart",
42082
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42083
+ }
42084
+ },
41491
42085
  {
41492
42086
  "description": "A column's name inside the tooltip.",
41493
42087
  "name": "tooltip-name",
@@ -41496,6 +42090,22 @@
41496
42090
  "module": "src/donut-chart/root/donut-chart-root.ts"
41497
42091
  }
41498
42092
  },
42093
+ {
42094
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
42095
+ "name": "tooltip-right",
42096
+ "inheritedFrom": {
42097
+ "name": "HelixHeadlessDonutChart",
42098
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42099
+ }
42100
+ },
42101
+ {
42102
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
42103
+ "name": "tooltip-top",
42104
+ "inheritedFrom": {
42105
+ "name": "HelixHeadlessDonutChart",
42106
+ "module": "src/donut-chart/root/donut-chart-root.ts"
42107
+ }
42108
+ },
41499
42109
  {
41500
42110
  "description": "A column's value inside the tooltip.",
41501
42111
  "name": "tooltip-value",
@@ -42042,7 +42652,7 @@
42042
42652
  "text": "Promise<void>"
42043
42653
  },
42044
42654
  "readonly": true,
42045
- "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.",
42655
+ "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.",
42046
42656
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
42047
42657
  "inheritedFrom": {
42048
42658
  "name": "HelixElement",
@@ -42771,7 +43381,7 @@
42771
43381
  "text": "Promise<void>"
42772
43382
  },
42773
43383
  "readonly": true,
42774
- "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.",
43384
+ "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.",
42775
43385
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
42776
43386
  "inheritedFrom": {
42777
43387
  "name": "HelixElement",
@@ -43619,7 +44229,7 @@
43619
44229
  "text": "Promise<void>"
43620
44230
  },
43621
44231
  "readonly": true,
43622
- "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.",
44232
+ "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.",
43623
44233
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
43624
44234
  "inheritedFrom": {
43625
44235
  "name": "HelixElement",
@@ -44229,7 +44839,7 @@
44229
44839
  "text": "Promise<void>"
44230
44840
  },
44231
44841
  "readonly": true,
44232
- "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.",
44842
+ "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.",
44233
44843
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
44234
44844
  "inheritedFrom": {
44235
44845
  "name": "HelixElement",
@@ -45427,7 +46037,7 @@
45427
46037
  "text": "Promise<void>"
45428
46038
  },
45429
46039
  "readonly": true,
45430
- "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.",
46040
+ "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.",
45431
46041
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
45432
46042
  "inheritedFrom": {
45433
46043
  "name": "HelixElement",
@@ -46385,7 +46995,7 @@
46385
46995
  "text": "Promise<void>"
46386
46996
  },
46387
46997
  "readonly": true,
46388
- "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.",
46998
+ "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.",
46389
46999
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
46390
47000
  "inheritedFrom": {
46391
47001
  "name": "HelixElement",
@@ -47032,7 +47642,7 @@
47032
47642
  "text": "Promise<void>"
47033
47643
  },
47034
47644
  "readonly": true,
47035
- "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.",
47645
+ "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.",
47036
47646
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
47037
47647
  "inheritedFrom": {
47038
47648
  "name": "HelixElement",
@@ -47696,7 +48306,7 @@
47696
48306
  "text": "Promise<void>"
47697
48307
  },
47698
48308
  "readonly": true,
47699
- "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.",
48309
+ "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.",
47700
48310
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
47701
48311
  "inheritedFrom": {
47702
48312
  "name": "HelixElement",
@@ -48329,7 +48939,7 @@
48329
48939
  "text": "Promise<void>"
48330
48940
  },
48331
48941
  "readonly": true,
48332
- "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.",
48942
+ "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.",
48333
48943
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
48334
48944
  "inheritedFrom": {
48335
48945
  "name": "HelixElement",
@@ -50247,7 +50857,7 @@
50247
50857
  "text": "Promise<void>"
50248
50858
  },
50249
50859
  "readonly": true,
50250
- "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.",
50860
+ "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.",
50251
50861
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
50252
50862
  "inheritedFrom": {
50253
50863
  "name": "HelixElement",
@@ -51253,7 +51863,7 @@
51253
51863
  "text": "Promise<void>"
51254
51864
  },
51255
51865
  "readonly": true,
51256
- "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.",
51866
+ "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.",
51257
51867
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
51258
51868
  "inheritedFrom": {
51259
51869
  "name": "HelixElement",
@@ -52031,7 +52641,7 @@
52031
52641
  "text": "Promise<void>"
52032
52642
  },
52033
52643
  "readonly": true,
52034
- "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.",
52644
+ "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.",
52035
52645
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
52036
52646
  "inheritedFrom": {
52037
52647
  "name": "HelixElement",
@@ -52678,7 +53288,7 @@
52678
53288
  "text": "Promise<void>"
52679
53289
  },
52680
53290
  "readonly": true,
52681
- "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.",
53291
+ "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.",
52682
53292
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
52683
53293
  "inheritedFrom": {
52684
53294
  "name": "HelixElement",
@@ -53254,6 +53864,46 @@
53254
53864
  "module": "src/heatmap/root/heatmap-root.ts"
53255
53865
  }
53256
53866
  },
53867
+ {
53868
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
53869
+ "name": "tooltip-arrow-bottom",
53870
+ "inheritedFrom": {
53871
+ "name": "HelixHeadlessHeatmap",
53872
+ "module": "src/heatmap/root/heatmap-root.ts"
53873
+ }
53874
+ },
53875
+ {
53876
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
53877
+ "name": "tooltip-arrow-left",
53878
+ "inheritedFrom": {
53879
+ "name": "HelixHeadlessHeatmap",
53880
+ "module": "src/heatmap/root/heatmap-root.ts"
53881
+ }
53882
+ },
53883
+ {
53884
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
53885
+ "name": "tooltip-arrow-right",
53886
+ "inheritedFrom": {
53887
+ "name": "HelixHeadlessHeatmap",
53888
+ "module": "src/heatmap/root/heatmap-root.ts"
53889
+ }
53890
+ },
53891
+ {
53892
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
53893
+ "name": "tooltip-arrow-top",
53894
+ "inheritedFrom": {
53895
+ "name": "HelixHeadlessHeatmap",
53896
+ "module": "src/heatmap/root/heatmap-root.ts"
53897
+ }
53898
+ },
53899
+ {
53900
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
53901
+ "name": "tooltip-bottom",
53902
+ "inheritedFrom": {
53903
+ "name": "HelixHeadlessHeatmap",
53904
+ "module": "src/heatmap/root/heatmap-root.ts"
53905
+ }
53906
+ },
53257
53907
  {
53258
53908
  "description": "One column's name and value inside the tooltip.",
53259
53909
  "name": "tooltip-cell",
@@ -53270,6 +53920,14 @@
53270
53920
  "module": "src/heatmap/root/heatmap-root.ts"
53271
53921
  }
53272
53922
  },
53923
+ {
53924
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
53925
+ "name": "tooltip-left",
53926
+ "inheritedFrom": {
53927
+ "name": "HelixHeadlessHeatmap",
53928
+ "module": "src/heatmap/root/heatmap-root.ts"
53929
+ }
53930
+ },
53273
53931
  {
53274
53932
  "description": "A column's name inside the tooltip.",
53275
53933
  "name": "tooltip-name",
@@ -53278,6 +53936,22 @@
53278
53936
  "module": "src/heatmap/root/heatmap-root.ts"
53279
53937
  }
53280
53938
  },
53939
+ {
53940
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
53941
+ "name": "tooltip-right",
53942
+ "inheritedFrom": {
53943
+ "name": "HelixHeadlessHeatmap",
53944
+ "module": "src/heatmap/root/heatmap-root.ts"
53945
+ }
53946
+ },
53947
+ {
53948
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
53949
+ "name": "tooltip-top",
53950
+ "inheritedFrom": {
53951
+ "name": "HelixHeadlessHeatmap",
53952
+ "module": "src/heatmap/root/heatmap-root.ts"
53953
+ }
53954
+ },
53281
53955
  {
53282
53956
  "description": "A column's value inside the tooltip.",
53283
53957
  "name": "tooltip-value",
@@ -53516,7 +54190,7 @@
53516
54190
  "text": "number"
53517
54191
  },
53518
54192
  "default": "1",
53519
- "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.",
54193
+ "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.",
53520
54194
  "attribute": "rows",
53521
54195
  "inheritedFrom": {
53522
54196
  "name": "HelixHeadlessHeatmap",
@@ -53914,7 +54588,7 @@
53914
54588
  "text": "Promise<void>"
53915
54589
  },
53916
54590
  "readonly": true,
53917
- "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.",
54591
+ "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.",
53918
54592
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
53919
54593
  "inheritedFrom": {
53920
54594
  "name": "HelixElement",
@@ -54248,7 +54922,7 @@
54248
54922
  "text": "number"
54249
54923
  },
54250
54924
  "default": "1",
54251
- "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.",
54925
+ "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.",
54252
54926
  "fieldName": "rows",
54253
54927
  "inheritedFrom": {
54254
54928
  "name": "HelixHeadlessHeatmap",
@@ -55034,7 +55708,7 @@
55034
55708
  "text": "Promise<void>"
55035
55709
  },
55036
55710
  "readonly": true,
55037
- "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.",
55711
+ "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.",
55038
55712
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
55039
55713
  "inheritedFrom": {
55040
55714
  "name": "HelixElement",
@@ -55600,6 +56274,20 @@
55600
56274
  "module": "src/icon/root/icon-root.ts"
55601
56275
  }
55602
56276
  },
56277
+ {
56278
+ "kind": "field",
56279
+ "name": "mirror",
56280
+ "type": {
56281
+ "text": "boolean"
56282
+ },
56283
+ "default": "false",
56284
+ "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.",
56285
+ "attribute": "mirror",
56286
+ "inheritedFrom": {
56287
+ "name": "HelixHeadlessIcon",
56288
+ "module": "src/icon/root/icon-root.ts"
56289
+ }
56290
+ },
55603
56291
  {
55604
56292
  "kind": "field",
55605
56293
  "name": "name",
@@ -55724,7 +56412,7 @@
55724
56412
  "text": "Promise<void>"
55725
56413
  },
55726
56414
  "readonly": true,
55727
- "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.",
56415
+ "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.",
55728
56416
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
55729
56417
  "inheritedFrom": {
55730
56418
  "name": "HelixElement",
@@ -55984,6 +56672,19 @@
55984
56672
  "module": "src/icon/root/icon-root.ts"
55985
56673
  }
55986
56674
  },
56675
+ {
56676
+ "name": "mirror",
56677
+ "type": {
56678
+ "text": "boolean"
56679
+ },
56680
+ "default": "false",
56681
+ "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.",
56682
+ "fieldName": "mirror",
56683
+ "inheritedFrom": {
56684
+ "name": "HelixHeadlessIcon",
56685
+ "module": "src/icon/root/icon-root.ts"
56686
+ }
56687
+ },
55987
56688
  {
55988
56689
  "name": "name",
55989
56690
  "type": {
@@ -56516,7 +57217,7 @@
56516
57217
  "text": "Promise<void>"
56517
57218
  },
56518
57219
  "readonly": true,
56519
- "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.",
57220
+ "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.",
56520
57221
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
56521
57222
  "inheritedFrom": {
56522
57223
  "name": "HelixElement",
@@ -58913,7 +59614,7 @@
58913
59614
  "text": "Promise<void>"
58914
59615
  },
58915
59616
  "readonly": true,
58916
- "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.",
59617
+ "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.",
58917
59618
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
58918
59619
  "inheritedFrom": {
58919
59620
  "name": "HelixElement",
@@ -59891,7 +60592,7 @@
59891
60592
  "text": "Promise<void>"
59892
60593
  },
59893
60594
  "readonly": true,
59894
- "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.",
60595
+ "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.",
59895
60596
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
59896
60597
  "inheritedFrom": {
59897
60598
  "name": "HelixElement",
@@ -60519,7 +61220,7 @@
60519
61220
  "text": "Promise<void>"
60520
61221
  },
60521
61222
  "readonly": true,
60522
- "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.",
61223
+ "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.",
60523
61224
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
60524
61225
  "inheritedFrom": {
60525
61226
  "name": "HelixElement",
@@ -61206,7 +61907,7 @@
61206
61907
  "type": {
61207
61908
  "text": "'none' | 'ring' | 'square' | 'triangle' | undefined"
61208
61909
  },
61209
- "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.",
61910
+ "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.",
61210
61911
  "attribute": "terminus",
61211
61912
  "reflects": true,
61212
61913
  "inheritedFrom": {
@@ -61613,7 +62314,7 @@
61613
62314
  "text": "Promise<void>"
61614
62315
  },
61615
62316
  "readonly": true,
61616
- "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.",
62317
+ "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.",
61617
62318
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
61618
62319
  "inheritedFrom": {
61619
62320
  "name": "HelixElement",
@@ -61913,7 +62614,7 @@
61913
62614
  "type": {
61914
62615
  "text": "'none' | 'ring' | 'square' | 'triangle' | undefined"
61915
62616
  },
61916
- "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.",
62617
+ "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.",
61917
62618
  "fieldName": "terminus",
61918
62619
  "inheritedFrom": {
61919
62620
  "name": "HelixHeadlessLineChart",
@@ -62132,6 +62833,46 @@
62132
62833
  "module": "src/line-chart/root/line-chart-root.ts"
62133
62834
  }
62134
62835
  },
62836
+ {
62837
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
62838
+ "name": "tooltip-arrow-bottom",
62839
+ "inheritedFrom": {
62840
+ "name": "HelixHeadlessLineChart",
62841
+ "module": "src/line-chart/root/line-chart-root.ts"
62842
+ }
62843
+ },
62844
+ {
62845
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
62846
+ "name": "tooltip-arrow-left",
62847
+ "inheritedFrom": {
62848
+ "name": "HelixHeadlessLineChart",
62849
+ "module": "src/line-chart/root/line-chart-root.ts"
62850
+ }
62851
+ },
62852
+ {
62853
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
62854
+ "name": "tooltip-arrow-right",
62855
+ "inheritedFrom": {
62856
+ "name": "HelixHeadlessLineChart",
62857
+ "module": "src/line-chart/root/line-chart-root.ts"
62858
+ }
62859
+ },
62860
+ {
62861
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
62862
+ "name": "tooltip-arrow-top",
62863
+ "inheritedFrom": {
62864
+ "name": "HelixHeadlessLineChart",
62865
+ "module": "src/line-chart/root/line-chart-root.ts"
62866
+ }
62867
+ },
62868
+ {
62869
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
62870
+ "name": "tooltip-bottom",
62871
+ "inheritedFrom": {
62872
+ "name": "HelixHeadlessLineChart",
62873
+ "module": "src/line-chart/root/line-chart-root.ts"
62874
+ }
62875
+ },
62135
62876
  {
62136
62877
  "description": "One column's name and value inside the tooltip.",
62137
62878
  "name": "tooltip-cell",
@@ -62148,6 +62889,14 @@
62148
62889
  "module": "src/line-chart/root/line-chart-root.ts"
62149
62890
  }
62150
62891
  },
62892
+ {
62893
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
62894
+ "name": "tooltip-left",
62895
+ "inheritedFrom": {
62896
+ "name": "HelixHeadlessLineChart",
62897
+ "module": "src/line-chart/root/line-chart-root.ts"
62898
+ }
62899
+ },
62151
62900
  {
62152
62901
  "description": "A column's name inside the tooltip.",
62153
62902
  "name": "tooltip-name",
@@ -62156,6 +62905,22 @@
62156
62905
  "module": "src/line-chart/root/line-chart-root.ts"
62157
62906
  }
62158
62907
  },
62908
+ {
62909
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
62910
+ "name": "tooltip-right",
62911
+ "inheritedFrom": {
62912
+ "name": "HelixHeadlessLineChart",
62913
+ "module": "src/line-chart/root/line-chart-root.ts"
62914
+ }
62915
+ },
62916
+ {
62917
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
62918
+ "name": "tooltip-top",
62919
+ "inheritedFrom": {
62920
+ "name": "HelixHeadlessLineChart",
62921
+ "module": "src/line-chart/root/line-chart-root.ts"
62922
+ }
62923
+ },
62159
62924
  {
62160
62925
  "description": "A column's value inside the tooltip.",
62161
62926
  "name": "tooltip-value",
@@ -62449,7 +63214,7 @@
62449
63214
  "text": "Promise<void>"
62450
63215
  },
62451
63216
  "readonly": true,
62452
- "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.",
63217
+ "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.",
62453
63218
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
62454
63219
  "inheritedFrom": {
62455
63220
  "name": "HelixElement",
@@ -63011,7 +63776,7 @@
63011
63776
  "text": "Promise<void>"
63012
63777
  },
63013
63778
  "readonly": true,
63014
- "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.",
63779
+ "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.",
63015
63780
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
63016
63781
  "inheritedFrom": {
63017
63782
  "name": "HelixElement",
@@ -64709,7 +65474,7 @@
64709
65474
  "text": "Promise<void>"
64710
65475
  },
64711
65476
  "readonly": true,
64712
- "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.",
65477
+ "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.",
64713
65478
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
64714
65479
  "inheritedFrom": {
64715
65480
  "name": "HelixElement",
@@ -65603,7 +66368,7 @@
65603
66368
  "text": "Promise<void>"
65604
66369
  },
65605
66370
  "readonly": true,
65606
- "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.",
66371
+ "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.",
65607
66372
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
65608
66373
  "inheritedFrom": {
65609
66374
  "name": "HelixElement",
@@ -66656,7 +67421,7 @@
66656
67421
  "text": "Promise<void>"
66657
67422
  },
66658
67423
  "readonly": true,
66659
- "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.",
67424
+ "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.",
66660
67425
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
66661
67426
  "inheritedFrom": {
66662
67427
  "name": "HelixElement",
@@ -67607,7 +68372,7 @@
67607
68372
  "text": "Promise<void>"
67608
68373
  },
67609
68374
  "readonly": true,
67610
- "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.",
68375
+ "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.",
67611
68376
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
67612
68377
  "inheritedFrom": {
67613
68378
  "name": "HelixElement",
@@ -68765,7 +69530,7 @@
68765
69530
  "text": "Promise<void>"
68766
69531
  },
68767
69532
  "readonly": true,
68768
- "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.",
69533
+ "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.",
68769
69534
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
68770
69535
  "inheritedFrom": {
68771
69536
  "name": "HelixElement",
@@ -69912,7 +70677,7 @@
69912
70677
  "text": "Promise<void>"
69913
70678
  },
69914
70679
  "readonly": true,
69915
- "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.",
70680
+ "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.",
69916
70681
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
69917
70682
  "inheritedFrom": {
69918
70683
  "name": "HelixElement",
@@ -70597,7 +71362,7 @@
70597
71362
  "text": "Promise<void>"
70598
71363
  },
70599
71364
  "readonly": true,
70600
- "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.",
71365
+ "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.",
70601
71366
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
70602
71367
  "inheritedFrom": {
70603
71368
  "name": "HelixElement",
@@ -71296,7 +72061,7 @@
71296
72061
  "text": "Promise<void>"
71297
72062
  },
71298
72063
  "readonly": true,
71299
- "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.",
72064
+ "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.",
71300
72065
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
71301
72066
  "inheritedFrom": {
71302
72067
  "name": "HelixElement",
@@ -72304,7 +73069,7 @@
72304
73069
  "text": "Promise<void>"
72305
73070
  },
72306
73071
  "readonly": true,
72307
- "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.",
73072
+ "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.",
72308
73073
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
72309
73074
  "inheritedFrom": {
72310
73075
  "name": "HelixElement",
@@ -73342,7 +74107,7 @@
73342
74107
  "text": "Promise<void>"
73343
74108
  },
73344
74109
  "readonly": true,
73345
- "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.",
74110
+ "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.",
73346
74111
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
73347
74112
  "inheritedFrom": {
73348
74113
  "name": "HelixElement",
@@ -75027,7 +75792,7 @@
75027
75792
  "text": "Promise<void>"
75028
75793
  },
75029
75794
  "readonly": true,
75030
- "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.",
75795
+ "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.",
75031
75796
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
75032
75797
  "inheritedFrom": {
75033
75798
  "name": "HelixElement",
@@ -76244,7 +77009,7 @@
76244
77009
  "text": "Promise<void>"
76245
77010
  },
76246
77011
  "readonly": true,
76247
- "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.",
77012
+ "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.",
76248
77013
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
76249
77014
  "inheritedFrom": {
76250
77015
  "name": "HelixElement",
@@ -76557,6 +77322,70 @@
76557
77322
  "module": "src/object-inspector/root/object-inspector-root.ts"
76558
77323
  }
76559
77324
  },
77325
+ {
77326
+ "description": "The point while the bubble is below the copy button, so on its top edge, beside `copy-tooltip-arrow`.",
77327
+ "name": "copy-tooltip-arrow-bottom",
77328
+ "inheritedFrom": {
77329
+ "name": "HelixHeadlessObjectInspector",
77330
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77331
+ }
77332
+ },
77333
+ {
77334
+ "description": "The point while the bubble is left of the copy button, so on its right edge, beside `copy-tooltip-arrow`.",
77335
+ "name": "copy-tooltip-arrow-left",
77336
+ "inheritedFrom": {
77337
+ "name": "HelixHeadlessObjectInspector",
77338
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77339
+ }
77340
+ },
77341
+ {
77342
+ "description": "The point while the bubble is right of the copy button, so on its left edge, beside `copy-tooltip-arrow`.",
77343
+ "name": "copy-tooltip-arrow-right",
77344
+ "inheritedFrom": {
77345
+ "name": "HelixHeadlessObjectInspector",
77346
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77347
+ }
77348
+ },
77349
+ {
77350
+ "description": "The point while the bubble is above the copy button, so on its bottom edge, beside `copy-tooltip-arrow`.",
77351
+ "name": "copy-tooltip-arrow-top",
77352
+ "inheritedFrom": {
77353
+ "name": "HelixHeadlessObjectInspector",
77354
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77355
+ }
77356
+ },
77357
+ {
77358
+ "description": "The bubble while it is below the copy button, beside `copy-tooltip`.",
77359
+ "name": "copy-tooltip-bottom",
77360
+ "inheritedFrom": {
77361
+ "name": "HelixHeadlessObjectInspector",
77362
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77363
+ }
77364
+ },
77365
+ {
77366
+ "description": "The bubble while it is left of the copy button, beside `copy-tooltip`.",
77367
+ "name": "copy-tooltip-left",
77368
+ "inheritedFrom": {
77369
+ "name": "HelixHeadlessObjectInspector",
77370
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77371
+ }
77372
+ },
77373
+ {
77374
+ "description": "The bubble while it is right of the copy button, beside `copy-tooltip`.",
77375
+ "name": "copy-tooltip-right",
77376
+ "inheritedFrom": {
77377
+ "name": "HelixHeadlessObjectInspector",
77378
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77379
+ }
77380
+ },
77381
+ {
77382
+ "description": "The bubble while it is above the copy button, beside `copy-tooltip`.",
77383
+ "name": "copy-tooltip-top",
77384
+ "inheritedFrom": {
77385
+ "name": "HelixHeadlessObjectInspector",
77386
+ "module": "src/object-inspector/root/object-inspector-root.ts"
77387
+ }
77388
+ },
76560
77389
  {
76561
77390
  "description": "How many entries a branch holds.",
76562
77391
  "name": "count",
@@ -76929,7 +77758,7 @@
76929
77758
  "text": "Promise<void>"
76930
77759
  },
76931
77760
  "readonly": true,
76932
- "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.",
77761
+ "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.",
76933
77762
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
76934
77763
  "inheritedFrom": {
76935
77764
  "name": "HelixElement",
@@ -77592,7 +78421,7 @@
77592
78421
  "text": "Promise<void>"
77593
78422
  },
77594
78423
  "readonly": true,
77595
- "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.",
78424
+ "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.",
77596
78425
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
77597
78426
  "inheritedFrom": {
77598
78427
  "name": "HelixElement",
@@ -78283,6 +79112,16 @@
78283
79112
  "privacy": "private",
78284
79113
  "default": "false"
78285
79114
  },
79115
+ {
79116
+ "kind": "field",
79117
+ "name": "lost",
79118
+ "type": {
79119
+ "text": "boolean"
79120
+ },
79121
+ "privacy": "private",
79122
+ "default": "false",
79123
+ "description": "Whether the browser has taken the canvas, as its own two events say."
79124
+ },
78286
79125
  {
78287
79126
  "kind": "field",
78288
79127
  "name": "box",
@@ -78434,6 +79273,20 @@
78434
79273
  "privacy": "private",
78435
79274
  "readonly": true
78436
79275
  },
79276
+ {
79277
+ "kind": "field",
79278
+ "name": "handleLost",
79279
+ "privacy": "private",
79280
+ "readonly": true,
79281
+ "description": "Stops for a canvas the browser has taken, on a GPU reset, until it is\ngiven back.\n\n**Not canceled, which is the aura's contract turned over.** A 2D context\ncomes back on its own unless its loss is canceled, where a WebGL one comes\nback only if it is. Hidden meanwhile, because a lost canvas is not reliably\ntransparent (the aura's `handleLost` has what was measured), and hidden it\nleaves the empty box a machine with no 2D context is shown."
79282
+ },
79283
+ {
79284
+ "kind": "field",
79285
+ "name": "handleRestored",
79286
+ "privacy": "private",
79287
+ "readonly": true,
79288
+ "description": "Draws again on the canvas the browser gave back.\n\n**Sized again, because it comes back in its default state.** Found 15 Sep\n2026 by crashing the GPU process under headless Chromium: the transform\n`measure` sets came back the identity, and `measure` sets it only when the\nbox changes. At twice the density that is an orb drawn at half its size in\nthe top left corner, for as long as the box holds still."
79289
+ },
78437
79290
  {
78438
79291
  "kind": "field",
78439
79292
  "name": "handleMotion",
@@ -78569,7 +79422,7 @@
78569
79422
  "text": "Promise<void>"
78570
79423
  },
78571
79424
  "readonly": true,
78572
- "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.",
79425
+ "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.",
78573
79426
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
78574
79427
  "inheritedFrom": {
78575
79428
  "name": "HelixElement",
@@ -79768,7 +80621,7 @@
79768
80621
  "text": "Promise<void>"
79769
80622
  },
79770
80623
  "readonly": true,
79771
- "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.",
80624
+ "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.",
79772
80625
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
79773
80626
  "inheritedFrom": {
79774
80627
  "name": "HelixElement",
@@ -80977,7 +81830,7 @@
80977
81830
  "text": "Promise<void>"
80978
81831
  },
80979
81832
  "readonly": true,
80980
- "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.",
81833
+ "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.",
80981
81834
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
80982
81835
  "inheritedFrom": {
80983
81836
  "name": "HelixElement",
@@ -82081,7 +82934,7 @@
82081
82934
  "text": "Promise<void>"
82082
82935
  },
82083
82936
  "readonly": true,
82084
- "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.",
82937
+ "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.",
82085
82938
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
82086
82939
  "inheritedFrom": {
82087
82940
  "name": "HelixElement",
@@ -82659,7 +83512,7 @@
82659
83512
  "text": "Promise<void>"
82660
83513
  },
82661
83514
  "readonly": true,
82662
- "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.",
83515
+ "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.",
82663
83516
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
82664
83517
  "inheritedFrom": {
82665
83518
  "name": "HelixElement",
@@ -84111,7 +84964,7 @@
84111
84964
  "text": "Promise<void>"
84112
84965
  },
84113
84966
  "readonly": true,
84114
- "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.",
84967
+ "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.",
84115
84968
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
84116
84969
  "inheritedFrom": {
84117
84970
  "name": "HelixElement",
@@ -85119,7 +85972,7 @@
85119
85972
  "text": "Promise<void>"
85120
85973
  },
85121
85974
  "readonly": true,
85122
- "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.",
85975
+ "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.",
85123
85976
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
85124
85977
  "inheritedFrom": {
85125
85978
  "name": "HelixElement",
@@ -85868,7 +86721,7 @@
85868
86721
  "text": "Promise<void>"
85869
86722
  },
85870
86723
  "readonly": true,
85871
- "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.",
86724
+ "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.",
85872
86725
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
85873
86726
  "inheritedFrom": {
85874
86727
  "name": "HelixElement",
@@ -86573,7 +87426,7 @@
86573
87426
  "text": "Promise<void>"
86574
87427
  },
86575
87428
  "readonly": true,
86576
- "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.",
87429
+ "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.",
86577
87430
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
86578
87431
  "inheritedFrom": {
86579
87432
  "name": "HelixElement",
@@ -87139,7 +87992,7 @@
87139
87992
  "text": "Promise<void>"
87140
87993
  },
87141
87994
  "readonly": true,
87142
- "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.",
87995
+ "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.",
87143
87996
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
87144
87997
  "inheritedFrom": {
87145
87998
  "name": "HelixElement",
@@ -88203,7 +89056,7 @@
88203
89056
  "text": "Promise<void>"
88204
89057
  },
88205
89058
  "readonly": true,
88206
- "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.",
89059
+ "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.",
88207
89060
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
88208
89061
  "inheritedFrom": {
88209
89062
  "name": "HelixElement",
@@ -89021,7 +89874,7 @@
89021
89874
  "text": "Promise<void>"
89022
89875
  },
89023
89876
  "readonly": true,
89024
- "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.",
89877
+ "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.",
89025
89878
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
89026
89879
  "inheritedFrom": {
89027
89880
  "name": "HelixElement",
@@ -90570,7 +91423,7 @@
90570
91423
  "text": "Promise<void>"
90571
91424
  },
90572
91425
  "readonly": true,
90573
- "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.",
91426
+ "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.",
90574
91427
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
90575
91428
  "inheritedFrom": {
90576
91429
  "name": "HelixElement",
@@ -91537,7 +92390,7 @@
91537
92390
  "text": "Promise<void>"
91538
92391
  },
91539
92392
  "readonly": true,
91540
- "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.",
92393
+ "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.",
91541
92394
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
91542
92395
  "inheritedFrom": {
91543
92396
  "name": "HelixElement",
@@ -92401,7 +93254,7 @@
92401
93254
  "text": "Promise<void>"
92402
93255
  },
92403
93256
  "readonly": true,
92404
- "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.",
93257
+ "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.",
92405
93258
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
92406
93259
  "inheritedFrom": {
92407
93260
  "name": "HelixElement",
@@ -93077,7 +93930,7 @@
93077
93930
  "text": "Promise<void>"
93078
93931
  },
93079
93932
  "readonly": true,
93080
- "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.",
93933
+ "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.",
93081
93934
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
93082
93935
  "inheritedFrom": {
93083
93936
  "name": "HelixElement",
@@ -93602,7 +94455,7 @@
93602
94455
  "text": "Promise<void>"
93603
94456
  },
93604
94457
  "readonly": true,
93605
- "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.",
94458
+ "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.",
93606
94459
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
93607
94460
  "inheritedFrom": {
93608
94461
  "name": "HelixElement",
@@ -94147,7 +95000,7 @@
94147
95000
  "text": "Promise<void>"
94148
95001
  },
94149
95002
  "readonly": true,
94150
- "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.",
95003
+ "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.",
94151
95004
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
94152
95005
  "inheritedFrom": {
94153
95006
  "name": "HelixElement",
@@ -94593,7 +95446,7 @@
94593
95446
  "text": "Promise<void>"
94594
95447
  },
94595
95448
  "readonly": true,
94596
- "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.",
95449
+ "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.",
94597
95450
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
94598
95451
  "inheritedFrom": {
94599
95452
  "name": "HelixElement",
@@ -95371,7 +96224,7 @@
95371
96224
  "text": "Promise<void>"
95372
96225
  },
95373
96226
  "readonly": true,
95374
- "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.",
96227
+ "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.",
95375
96228
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
95376
96229
  "inheritedFrom": {
95377
96230
  "name": "HelixElement",
@@ -95707,6 +96560,14 @@
95707
96560
  "module": "src/scatter-chart/root/scatter-chart-root.ts"
95708
96561
  }
95709
96562
  },
96563
+ {
96564
+ "description": "The plot, both axes and their names, left to right on every page. The grid they are laid out in.",
96565
+ "name": "plane",
96566
+ "inheritedFrom": {
96567
+ "name": "HelixHeadlessScatterChart",
96568
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96569
+ }
96570
+ },
95710
96571
  {
95711
96572
  "description": "The drawing.",
95712
96573
  "name": "plot",
@@ -95771,6 +96632,46 @@
95771
96632
  "module": "src/scatter-chart/root/scatter-chart-root.ts"
95772
96633
  }
95773
96634
  },
96635
+ {
96636
+ "description": "The point while the bubble is below the reading, so on its top edge, beside `tooltip-arrow`.",
96637
+ "name": "tooltip-arrow-bottom",
96638
+ "inheritedFrom": {
96639
+ "name": "HelixHeadlessScatterChart",
96640
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96641
+ }
96642
+ },
96643
+ {
96644
+ "description": "The point while the bubble is left of the reading, so on its right edge, beside `tooltip-arrow`.",
96645
+ "name": "tooltip-arrow-left",
96646
+ "inheritedFrom": {
96647
+ "name": "HelixHeadlessScatterChart",
96648
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96649
+ }
96650
+ },
96651
+ {
96652
+ "description": "The point while the bubble is right of the reading, so on its left edge, beside `tooltip-arrow`.",
96653
+ "name": "tooltip-arrow-right",
96654
+ "inheritedFrom": {
96655
+ "name": "HelixHeadlessScatterChart",
96656
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96657
+ }
96658
+ },
96659
+ {
96660
+ "description": "The point while the bubble is above the reading, so on its bottom edge, beside `tooltip-arrow`.",
96661
+ "name": "tooltip-arrow-top",
96662
+ "inheritedFrom": {
96663
+ "name": "HelixHeadlessScatterChart",
96664
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96665
+ }
96666
+ },
96667
+ {
96668
+ "description": "The bubble while it is below the reading, beside `tooltip`.",
96669
+ "name": "tooltip-bottom",
96670
+ "inheritedFrom": {
96671
+ "name": "HelixHeadlessScatterChart",
96672
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96673
+ }
96674
+ },
95774
96675
  {
95775
96676
  "description": "One column's name and value inside the tooltip.",
95776
96677
  "name": "tooltip-cell",
@@ -95787,6 +96688,14 @@
95787
96688
  "module": "src/scatter-chart/root/scatter-chart-root.ts"
95788
96689
  }
95789
96690
  },
96691
+ {
96692
+ "description": "The bubble while it is left of the reading, beside `tooltip`.",
96693
+ "name": "tooltip-left",
96694
+ "inheritedFrom": {
96695
+ "name": "HelixHeadlessScatterChart",
96696
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96697
+ }
96698
+ },
95790
96699
  {
95791
96700
  "description": "A column's name inside the tooltip.",
95792
96701
  "name": "tooltip-name",
@@ -95795,6 +96704,22 @@
95795
96704
  "module": "src/scatter-chart/root/scatter-chart-root.ts"
95796
96705
  }
95797
96706
  },
96707
+ {
96708
+ "description": "The bubble while it is right of the reading, beside `tooltip`.",
96709
+ "name": "tooltip-right",
96710
+ "inheritedFrom": {
96711
+ "name": "HelixHeadlessScatterChart",
96712
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96713
+ }
96714
+ },
96715
+ {
96716
+ "description": "The bubble while it is above the reading, beside `tooltip`.",
96717
+ "name": "tooltip-top",
96718
+ "inheritedFrom": {
96719
+ "name": "HelixHeadlessScatterChart",
96720
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
96721
+ }
96722
+ },
95798
96723
  {
95799
96724
  "description": "A column's value inside the tooltip.",
95800
96725
  "name": "tooltip-value",
@@ -96179,7 +97104,7 @@
96179
97104
  "text": "Promise<void>"
96180
97105
  },
96181
97106
  "readonly": true,
96182
- "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.",
97107
+ "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.",
96183
97108
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
96184
97109
  "inheritedFrom": {
96185
97110
  "name": "HelixElement",
@@ -97594,7 +98519,7 @@
97594
98519
  "text": "Promise<void>"
97595
98520
  },
97596
98521
  "readonly": true,
97597
- "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.",
98522
+ "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.",
97598
98523
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
97599
98524
  "inheritedFrom": {
97600
98525
  "name": "HelixElement",
@@ -98921,7 +99846,7 @@
98921
99846
  "text": "Promise<void>"
98922
99847
  },
98923
99848
  "readonly": true,
98924
- "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.",
99849
+ "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.",
98925
99850
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
98926
99851
  "inheritedFrom": {
98927
99852
  "name": "HelixElement",
@@ -99443,7 +100368,7 @@
99443
100368
  "text": "Promise<void>"
99444
100369
  },
99445
100370
  "readonly": true,
99446
- "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.",
100371
+ "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.",
99447
100372
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
99448
100373
  "inheritedFrom": {
99449
100374
  "name": "HelixElement",
@@ -100829,7 +101754,7 @@
100829
101754
  "text": "Promise<void>"
100830
101755
  },
100831
101756
  "readonly": true,
100832
- "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.",
101757
+ "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.",
100833
101758
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
100834
101759
  "inheritedFrom": {
100835
101760
  "name": "HelixElement",
@@ -101799,7 +102724,7 @@
101799
102724
  "text": "Promise<void>"
101800
102725
  },
101801
102726
  "readonly": true,
101802
- "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.",
102727
+ "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.",
101803
102728
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
101804
102729
  "inheritedFrom": {
101805
102730
  "name": "HelixElement",
@@ -102535,7 +103460,7 @@
102535
103460
  "text": "Promise<void>"
102536
103461
  },
102537
103462
  "readonly": true,
102538
- "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.",
103463
+ "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.",
102539
103464
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
102540
103465
  "inheritedFrom": {
102541
103466
  "name": "HelixElement",
@@ -103308,7 +104233,7 @@
103308
104233
  "text": "Promise<void>"
103309
104234
  },
103310
104235
  "readonly": true,
103311
- "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.",
104236
+ "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.",
103312
104237
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
103313
104238
  "inheritedFrom": {
103314
104239
  "name": "HelixElement",
@@ -104494,6 +105419,29 @@
104494
105419
  "module": "src/splitter/root/splitter-root.ts"
104495
105420
  }
104496
105421
  },
105422
+ {
105423
+ "kind": "method",
105424
+ "name": "travel",
105425
+ "privacy": "private",
105426
+ "return": {
105427
+ "type": {
105428
+ "text": "-1 | 0 | 1"
105429
+ }
105430
+ },
105431
+ "parameters": [
105432
+ {
105433
+ "name": "key",
105434
+ "type": {
105435
+ "text": "string"
105436
+ }
105437
+ }
105438
+ ],
105439
+ "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.",
105440
+ "inheritedFrom": {
105441
+ "name": "HelixHeadlessSplitter",
105442
+ "module": "src/splitter/root/splitter-root.ts"
105443
+ }
105444
+ },
104497
105445
  {
104498
105446
  "kind": "method",
104499
105447
  "name": "reset",
@@ -104776,7 +105724,7 @@
104776
105724
  "text": "Promise<void>"
104777
105725
  },
104778
105726
  "readonly": true,
104779
- "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.",
105727
+ "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.",
104780
105728
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
104781
105729
  "inheritedFrom": {
104782
105730
  "name": "HelixElement",
@@ -105451,7 +106399,7 @@
105451
106399
  "text": "Promise<void>"
105452
106400
  },
105453
106401
  "readonly": true,
105454
- "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.",
106402
+ "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.",
105455
106403
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
105456
106404
  "inheritedFrom": {
105457
106405
  "name": "HelixElement",
@@ -105935,7 +106883,7 @@
105935
106883
  "text": "Promise<void>"
105936
106884
  },
105937
106885
  "readonly": true,
105938
- "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.",
106886
+ "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.",
105939
106887
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
105940
106888
  "inheritedFrom": {
105941
106889
  "name": "HelixElement",
@@ -106647,7 +107595,7 @@
106647
107595
  "text": "Promise<void>"
106648
107596
  },
106649
107597
  "readonly": true,
106650
- "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.",
107598
+ "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.",
106651
107599
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
106652
107600
  "inheritedFrom": {
106653
107601
  "name": "HelixElement",
@@ -107304,7 +108252,7 @@
107304
108252
  "text": "Promise<void>"
107305
108253
  },
107306
108254
  "readonly": true,
107307
- "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.",
108255
+ "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.",
107308
108256
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
107309
108257
  "inheritedFrom": {
107310
108258
  "name": "HelixElement",
@@ -108505,7 +109453,7 @@
108505
109453
  "text": "Promise<void>"
108506
109454
  },
108507
109455
  "readonly": true,
108508
- "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.",
109456
+ "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.",
108509
109457
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
108510
109458
  "inheritedFrom": {
108511
109459
  "name": "HelixElement",
@@ -109200,7 +110148,7 @@
109200
110148
  "text": "Promise<void>"
109201
110149
  },
109202
110150
  "readonly": true,
109203
- "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.",
110151
+ "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.",
109204
110152
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
109205
110153
  "inheritedFrom": {
109206
110154
  "name": "HelixElement",
@@ -109430,6 +110378,16 @@
109430
110378
  },
109431
110379
  "tagName": "helix-table-cell",
109432
110380
  "customElement": true,
110381
+ "cssProperties": [
110382
+ {
110383
+ "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.",
110384
+ "name": "--table-cell-align",
110385
+ "inheritedFrom": {
110386
+ "name": "HelixHeadlessTableCell",
110387
+ "module": "src/table/cell/table-cell.ts"
110388
+ }
110389
+ }
110390
+ ],
109433
110391
  "attributes": [
109434
110392
  {
109435
110393
  "name": "header",
@@ -109513,7 +110471,7 @@
109513
110471
  "type": {
109514
110472
  "text": "'center' | 'end' | 'start' | undefined"
109515
110473
  },
109516
- "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.",
110474
+ "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.",
109517
110475
  "attribute": "align",
109518
110476
  "reflects": true,
109519
110477
  "inheritedFrom": {
@@ -109582,8 +110540,9 @@
109582
110540
  "text": "boolean"
109583
110541
  },
109584
110542
  "default": "false",
109585
- "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.",
110543
+ "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.",
109586
110544
  "attribute": "sortable",
110545
+ "reflects": true,
109587
110546
  "inheritedFrom": {
109588
110547
  "name": "HelixHeadlessTableColumn",
109589
110548
  "module": "src/table/column/table-column.ts"
@@ -109596,7 +110555,7 @@
109596
110555
  "text": "string"
109597
110556
  },
109598
110557
  "default": "''",
109599
- "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.",
110558
+ "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.",
109600
110559
  "attribute": "width",
109601
110560
  "inheritedFrom": {
109602
110561
  "name": "HelixHeadlessTableColumn",
@@ -109643,6 +110602,19 @@
109643
110602
  "module": "src/table/column/table-column.ts"
109644
110603
  }
109645
110604
  },
110605
+ {
110606
+ "kind": "field",
110607
+ "name": "hiding",
110608
+ "type": {
110609
+ "text": "MutationObserver | undefined"
110610
+ },
110611
+ "privacy": "private",
110612
+ "description": "Watches `hidden`, which is the platform's attribute and no property of this element's.",
110613
+ "inheritedFrom": {
110614
+ "name": "HelixHeadlessTableColumn",
110615
+ "module": "src/table/column/table-column.ts"
110616
+ }
110617
+ },
109646
110618
  {
109647
110619
  "kind": "field",
109648
110620
  "name": "NARROWEST",
@@ -109777,6 +110749,21 @@
109777
110749
  "module": "src/table/column/table-column.ts"
109778
110750
  }
109779
110751
  },
110752
+ {
110753
+ "kind": "method",
110754
+ "name": "tellHolder",
110755
+ "privacy": "private",
110756
+ "return": {
110757
+ "type": {
110758
+ "text": "void"
110759
+ }
110760
+ },
110761
+ "description": "Asks whatever holds this column to render, since it reads the column when it does.",
110762
+ "inheritedFrom": {
110763
+ "name": "HelixHeadlessTableColumn",
110764
+ "module": "src/table/column/table-column.ts"
110765
+ }
110766
+ },
109780
110767
  {
109781
110768
  "kind": "method",
109782
110769
  "name": "resizeTo",
@@ -109807,7 +110794,7 @@
109807
110794
  "text": "number"
109808
110795
  },
109809
110796
  "privacy": "private",
109810
- "description": "Which way a drag or an arrow key grows the column, in this writing direction.",
110797
+ "description": "Which way a drag grows the column, in this writing direction.",
109811
110798
  "readonly": true,
109812
110799
  "inheritedFrom": {
109813
110800
  "name": "HelixHeadlessTableColumn",
@@ -109965,7 +110952,7 @@
109965
110952
  "text": "Promise<void>"
109966
110953
  },
109967
110954
  "readonly": true,
109968
- "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.",
110955
+ "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.",
109969
110956
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
109970
110957
  "inheritedFrom": {
109971
110958
  "name": "HelixElement",
@@ -110257,7 +111244,7 @@
110257
111244
  "type": {
110258
111245
  "text": "'center' | 'end' | 'start' | undefined"
110259
111246
  },
110260
- "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.",
111247
+ "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.",
110261
111248
  "fieldName": "align",
110262
111249
  "inheritedFrom": {
110263
111250
  "name": "HelixHeadlessTableColumn",
@@ -110296,7 +111283,7 @@
110296
111283
  "text": "boolean"
110297
111284
  },
110298
111285
  "default": "false",
110299
- "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.",
111286
+ "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.",
110300
111287
  "fieldName": "sortable",
110301
111288
  "inheritedFrom": {
110302
111289
  "name": "HelixHeadlessTableColumn",
@@ -110309,7 +111296,7 @@
110309
111296
  "text": "string"
110310
111297
  },
110311
111298
  "default": "''",
110312
- "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.",
111299
+ "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.",
110313
111300
  "fieldName": "width",
110314
111301
  "inheritedFrom": {
110315
111302
  "name": "HelixHeadlessTableColumn",
@@ -110661,7 +111648,7 @@
110661
111648
  "text": "string"
110662
111649
  },
110663
111650
  "default": "''",
110664
- "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.",
111651
+ "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.",
110665
111652
  "attribute": "columns",
110666
111653
  "inheritedFrom": {
110667
111654
  "name": "HelixHeadlessTable",
@@ -110702,7 +111689,7 @@
110702
111689
  "text": "string"
110703
111690
  },
110704
111691
  "privacy": "private",
110705
- "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.",
111692
+ "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.",
110706
111693
  "readonly": true,
110707
111694
  "inheritedFrom": {
110708
111695
  "name": "HelixHeadlessTable",
@@ -110719,6 +111706,20 @@
110719
111706
  "module": "src/table/root/table-root.ts"
110720
111707
  }
110721
111708
  },
111709
+ {
111710
+ "kind": "field",
111711
+ "name": "watcher",
111712
+ "type": {
111713
+ "text": "MutationObserver | undefined"
111714
+ },
111715
+ "privacy": "private",
111716
+ "default": "undefined",
111717
+ "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.",
111718
+ "inheritedFrom": {
111719
+ "name": "HelixHeadlessTable",
111720
+ "module": "src/table/root/table-root.ts"
111721
+ }
111722
+ },
110722
111723
  {
110723
111724
  "kind": "field",
110724
111725
  "name": "shadowRootOptions",
@@ -110747,6 +111748,49 @@
110747
111748
  "module": "src/table/root/table-root.ts"
110748
111749
  }
110749
111750
  },
111751
+ {
111752
+ "kind": "field",
111753
+ "name": "alignment",
111754
+ "type": {
111755
+ "text": "CSSStyleSheet | undefined"
111756
+ },
111757
+ "privacy": "private",
111758
+ "default": "undefined",
111759
+ "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.",
111760
+ "inheritedFrom": {
111761
+ "name": "HelixHeadlessTable",
111762
+ "module": "src/table/root/table-root.ts"
111763
+ }
111764
+ },
111765
+ {
111766
+ "kind": "field",
111767
+ "name": "aligned",
111768
+ "type": {
111769
+ "text": "string"
111770
+ },
111771
+ "privacy": "private",
111772
+ "default": "''",
111773
+ "description": "What `alignment` was last written with, so a render that changed no edge writes nothing.",
111774
+ "inheritedFrom": {
111775
+ "name": "HelixHeadlessTable",
111776
+ "module": "src/table/root/table-root.ts"
111777
+ }
111778
+ },
111779
+ {
111780
+ "kind": "method",
111781
+ "name": "alignCells",
111782
+ "privacy": "private",
111783
+ "return": {
111784
+ "type": {
111785
+ "text": "void"
111786
+ }
111787
+ },
111788
+ "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.",
111789
+ "inheritedFrom": {
111790
+ "name": "HelixHeadlessTable",
111791
+ "module": "src/table/root/table-root.ts"
111792
+ }
111793
+ },
110750
111794
  {
110751
111795
  "kind": "field",
110752
111796
  "name": "tier",
@@ -110857,7 +111901,7 @@
110857
111901
  "text": "Promise<void>"
110858
111902
  },
110859
111903
  "readonly": true,
110860
- "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.",
111904
+ "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.",
110861
111905
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
110862
111906
  "inheritedFrom": {
110863
111907
  "name": "HelixElement",
@@ -111145,7 +112189,7 @@
111145
112189
  "text": "string"
111146
112190
  },
111147
112191
  "default": "''",
111148
- "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.",
112192
+ "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.",
111149
112193
  "fieldName": "columns",
111150
112194
  "inheritedFrom": {
111151
112195
  "name": "HelixHeadlessTable",
@@ -111238,6 +112282,20 @@
111238
112282
  }
111239
112283
  ],
111240
112284
  "members": [
112285
+ {
112286
+ "kind": "field",
112287
+ "name": "columnRules",
112288
+ "type": {
112289
+ "text": "CSSStyleSheet | undefined"
112290
+ },
112291
+ "privacy": "private",
112292
+ "default": "undefined",
112293
+ "description": "The table's rules this row holds, so the next ones replace them rather than pile up.",
112294
+ "inheritedFrom": {
112295
+ "name": "HelixHeadlessTableRow",
112296
+ "module": "src/table/row/table-row.ts"
112297
+ }
112298
+ },
111241
112299
  {
111242
112300
  "kind": "field",
111243
112301
  "name": "tier",
@@ -111348,7 +112406,7 @@
111348
112406
  "text": "Promise<void>"
111349
112407
  },
111350
112408
  "readonly": true,
111351
- "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.",
112409
+ "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.",
111352
112410
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
111353
112411
  "inheritedFrom": {
111354
112412
  "name": "HelixElement",
@@ -111842,7 +112900,7 @@
111842
112900
  "text": "Promise<void>"
111843
112901
  },
111844
112902
  "readonly": true,
111845
- "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.",
112903
+ "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.",
111846
112904
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
111847
112905
  "inheritedFrom": {
111848
112906
  "name": "HelixElement",
@@ -112563,7 +113621,7 @@
112563
113621
  "text": "Promise<void>"
112564
113622
  },
112565
113623
  "readonly": true,
112566
- "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.",
113624
+ "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.",
112567
113625
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
112568
113626
  "inheritedFrom": {
112569
113627
  "name": "HelixElement",
@@ -113193,7 +114251,7 @@
113193
114251
  "text": "Promise<void>"
113194
114252
  },
113195
114253
  "readonly": true,
113196
- "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.",
114254
+ "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.",
113197
114255
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
113198
114256
  "inheritedFrom": {
113199
114257
  "name": "HelixElement",
@@ -113816,7 +114874,7 @@
113816
114874
  "text": "Promise<void>"
113817
114875
  },
113818
114876
  "readonly": true,
113819
- "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.",
114877
+ "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.",
113820
114878
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
113821
114879
  "inheritedFrom": {
113822
114880
  "name": "HelixElement",
@@ -114372,7 +115430,7 @@
114372
115430
  "text": "Promise<void>"
114373
115431
  },
114374
115432
  "readonly": true,
114375
- "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.",
115433
+ "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.",
114376
115434
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
114377
115435
  "inheritedFrom": {
114378
115436
  "name": "HelixElement",
@@ -115782,7 +116840,7 @@
115782
116840
  "text": "Promise<void>"
115783
116841
  },
115784
116842
  "readonly": true,
115785
- "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.",
116843
+ "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.",
115786
116844
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
115787
116845
  "inheritedFrom": {
115788
116846
  "name": "HelixElement",
@@ -116562,13 +117620,36 @@
116562
117620
  "name": "panel",
116563
117621
  "privacy": "protected",
116564
117622
  "readonly": true,
116565
- "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'), })",
117623
+ "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'), })",
116566
117624
  "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.",
116567
117625
  "inheritedFrom": {
116568
117626
  "name": "MixinPickerField",
116569
117627
  "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
116570
117628
  }
116571
117629
  },
117630
+ {
117631
+ "kind": "method",
117632
+ "name": "placed",
117633
+ "privacy": "protected",
117634
+ "return": {
117635
+ "type": {
117636
+ "text": "void"
117637
+ }
117638
+ },
117639
+ "parameters": [
117640
+ {
117641
+ "name": "_room",
117642
+ "type": {
117643
+ "text": "number | undefined"
117644
+ }
117645
+ }
117646
+ ],
117647
+ "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.",
117648
+ "inheritedFrom": {
117649
+ "name": "MixinPickerField",
117650
+ "module": "src/mixins/mixin-picker-field/mixin-picker-field.ts"
117651
+ }
117652
+ },
116572
117653
  {
116573
117654
  "kind": "field",
116574
117655
  "name": "anchor",
@@ -117989,7 +119070,7 @@
117989
119070
  "text": "Promise<void>"
117990
119071
  },
117991
119072
  "readonly": true,
117992
- "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.",
119073
+ "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.",
117993
119074
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
117994
119075
  "inheritedFrom": {
117995
119076
  "name": "HelixElement",
@@ -120143,7 +121224,7 @@
120143
121224
  "text": "Promise<void>"
120144
121225
  },
120145
121226
  "readonly": true,
120146
- "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.",
121227
+ "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.",
120147
121228
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
120148
121229
  "inheritedFrom": {
120149
121230
  "name": "HelixElement",
@@ -121149,7 +122230,7 @@
121149
122230
  "text": "Promise<void>"
121150
122231
  },
121151
122232
  "readonly": true,
121152
- "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.",
122233
+ "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.",
121153
122234
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
121154
122235
  "inheritedFrom": {
121155
122236
  "name": "HelixElement",
@@ -121680,7 +122761,7 @@
121680
122761
  "text": "Promise<void>"
121681
122762
  },
121682
122763
  "readonly": true,
121683
- "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.",
122764
+ "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.",
121684
122765
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
121685
122766
  "inheritedFrom": {
121686
122767
  "name": "HelixElement",
@@ -122430,7 +123511,7 @@
122430
123511
  "text": "Promise<void>"
122431
123512
  },
122432
123513
  "readonly": true,
122433
- "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.",
123514
+ "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.",
122434
123515
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
122435
123516
  "inheritedFrom": {
122436
123517
  "name": "HelixElement",
@@ -123052,7 +124133,7 @@
123052
124133
  "text": "Promise<void>"
123053
124134
  },
123054
124135
  "readonly": true,
123055
- "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.",
124136
+ "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.",
123056
124137
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
123057
124138
  "inheritedFrom": {
123058
124139
  "name": "HelixElement",
@@ -124250,7 +125331,7 @@
124250
125331
  "text": "Promise<void>"
124251
125332
  },
124252
125333
  "readonly": true,
124253
- "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.",
125334
+ "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.",
124254
125335
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
124255
125336
  "inheritedFrom": {
124256
125337
  "name": "HelixElement",
@@ -124996,7 +126077,7 @@
124996
126077
  "text": "Promise<void>"
124997
126078
  },
124998
126079
  "readonly": true,
124999
- "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.",
126080
+ "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.",
125000
126081
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
125001
126082
  "inheritedFrom": {
125002
126083
  "name": "HelixElement",
@@ -125684,7 +126765,7 @@
125684
126765
  "text": "Promise<void>"
125685
126766
  },
125686
126767
  "readonly": true,
125687
- "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.",
126768
+ "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.",
125688
126769
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
125689
126770
  "inheritedFrom": {
125690
126771
  "name": "HelixElement",
@@ -126296,6 +127377,19 @@
126296
127377
  "module": "src/tooltip/root/tooltip-root.ts"
126297
127378
  }
126298
127379
  },
127380
+ {
127381
+ "kind": "field",
127382
+ "name": "side",
127383
+ "type": {
127384
+ "text": "Side | undefined"
127385
+ },
127386
+ "privacy": "private",
127387
+ "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.",
127388
+ "inheritedFrom": {
127389
+ "name": "HelixHeadlessTooltip",
127390
+ "module": "src/tooltip/root/tooltip-root.ts"
127391
+ }
127392
+ },
126299
127393
  {
126300
127394
  "kind": "field",
126301
127395
  "name": "timer",
@@ -126370,7 +127464,7 @@
126370
127464
  "name": "bubbleLayer",
126371
127465
  "privacy": "private",
126372
127466
  "readonly": true,
126373
- "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, })",
127467
+ "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, })",
126374
127468
  "inheritedFrom": {
126375
127469
  "name": "HelixHeadlessTooltip",
126376
127470
  "module": "src/tooltip/root/tooltip-root.ts"
@@ -126726,7 +127820,7 @@
126726
127820
  "text": "Promise<void>"
126727
127821
  },
126728
127822
  "readonly": true,
126729
- "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.",
127823
+ "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.",
126730
127824
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
126731
127825
  "inheritedFrom": {
126732
127826
  "name": "HelixElement",
@@ -127178,6 +128272,38 @@
127178
128272
  "module": "src/tooltip/root/tooltip-root.ts"
127179
128273
  }
127180
128274
  },
128275
+ {
128276
+ "description": "The point while the bubble is below its trigger, so on the bubble's top edge, beside `arrow`.",
128277
+ "name": "arrow-bottom",
128278
+ "inheritedFrom": {
128279
+ "name": "HelixHeadlessTooltip",
128280
+ "module": "src/tooltip/root/tooltip-root.ts"
128281
+ }
128282
+ },
128283
+ {
128284
+ "description": "The point while the bubble is left of its trigger, so on the bubble's right edge, beside `arrow`.",
128285
+ "name": "arrow-left",
128286
+ "inheritedFrom": {
128287
+ "name": "HelixHeadlessTooltip",
128288
+ "module": "src/tooltip/root/tooltip-root.ts"
128289
+ }
128290
+ },
128291
+ {
128292
+ "description": "The point while the bubble is right of its trigger, so on the bubble's left edge, beside `arrow`.",
128293
+ "name": "arrow-right",
128294
+ "inheritedFrom": {
128295
+ "name": "HelixHeadlessTooltip",
128296
+ "module": "src/tooltip/root/tooltip-root.ts"
128297
+ }
128298
+ },
128299
+ {
128300
+ "description": "The point while the bubble is above its trigger, so on the bubble's bottom edge, beside `arrow`.",
128301
+ "name": "arrow-top",
128302
+ "inheritedFrom": {
128303
+ "name": "HelixHeadlessTooltip",
128304
+ "module": "src/tooltip/root/tooltip-root.ts"
128305
+ }
128306
+ },
127181
128307
  {
127182
128308
  "description": "The bubble.",
127183
128309
  "name": "tooltip",
@@ -127185,6 +128311,38 @@
127185
128311
  "name": "HelixHeadlessTooltip",
127186
128312
  "module": "src/tooltip/root/tooltip-root.ts"
127187
128313
  }
128314
+ },
128315
+ {
128316
+ "description": "The bubble while it is below its trigger, beside `tooltip`.",
128317
+ "name": "tooltip-bottom",
128318
+ "inheritedFrom": {
128319
+ "name": "HelixHeadlessTooltip",
128320
+ "module": "src/tooltip/root/tooltip-root.ts"
128321
+ }
128322
+ },
128323
+ {
128324
+ "description": "The bubble while it is left of its trigger, beside `tooltip`.",
128325
+ "name": "tooltip-left",
128326
+ "inheritedFrom": {
128327
+ "name": "HelixHeadlessTooltip",
128328
+ "module": "src/tooltip/root/tooltip-root.ts"
128329
+ }
128330
+ },
128331
+ {
128332
+ "description": "The bubble while it is right of its trigger, beside `tooltip`.",
128333
+ "name": "tooltip-right",
128334
+ "inheritedFrom": {
128335
+ "name": "HelixHeadlessTooltip",
128336
+ "module": "src/tooltip/root/tooltip-root.ts"
128337
+ }
128338
+ },
128339
+ {
128340
+ "description": "The bubble while it is above its trigger, beside `tooltip`.",
128341
+ "name": "tooltip-top",
128342
+ "inheritedFrom": {
128343
+ "name": "HelixHeadlessTooltip",
128344
+ "module": "src/tooltip/root/tooltip-root.ts"
128345
+ }
127188
128346
  }
127189
128347
  ],
127190
128348
  "events": [
@@ -127234,6 +128392,38 @@
127234
128392
  "module": "src/tooltip/root/tooltip-root.ts"
127235
128393
  }
127236
128394
  },
128395
+ {
128396
+ "description": "While the bubble sits below its trigger.",
128397
+ "name": "placed-bottom",
128398
+ "inheritedFrom": {
128399
+ "name": "HelixHeadlessTooltip",
128400
+ "module": "src/tooltip/root/tooltip-root.ts"
128401
+ }
128402
+ },
128403
+ {
128404
+ "description": "While the bubble sits to the left of its trigger.",
128405
+ "name": "placed-left",
128406
+ "inheritedFrom": {
128407
+ "name": "HelixHeadlessTooltip",
128408
+ "module": "src/tooltip/root/tooltip-root.ts"
128409
+ }
128410
+ },
128411
+ {
128412
+ "description": "While the bubble sits to the right of its trigger.",
128413
+ "name": "placed-right",
128414
+ "inheritedFrom": {
128415
+ "name": "HelixHeadlessTooltip",
128416
+ "module": "src/tooltip/root/tooltip-root.ts"
128417
+ }
128418
+ },
128419
+ {
128420
+ "description": "While the bubble sits above its trigger.",
128421
+ "name": "placed-top",
128422
+ "inheritedFrom": {
128423
+ "name": "HelixHeadlessTooltip",
128424
+ "module": "src/tooltip/root/tooltip-root.ts"
128425
+ }
128426
+ },
127237
128427
  {
127238
128428
  "description": "Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.",
127239
128429
  "name": "settled",
@@ -127841,7 +129031,7 @@
127841
129031
  "text": "Promise<void>"
127842
129032
  },
127843
129033
  "readonly": true,
127844
- "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.",
129034
+ "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.",
127845
129035
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
127846
129036
  "inheritedFrom": {
127847
129037
  "name": "HelixElement",
@@ -128528,6 +129718,19 @@
128528
129718
  "module": "src/tour/stop/tour-stop.ts"
128529
129719
  }
128530
129720
  },
129721
+ {
129722
+ "kind": "field",
129723
+ "name": "side",
129724
+ "type": {
129725
+ "text": "Side | undefined"
129726
+ },
129727
+ "privacy": "private",
129728
+ "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.",
129729
+ "inheritedFrom": {
129730
+ "name": "HelixHeadlessTourStop",
129731
+ "module": "src/tour/stop/tour-stop.ts"
129732
+ }
129733
+ },
128531
129734
  {
128532
129735
  "kind": "field",
128533
129736
  "name": "target",
@@ -128546,7 +129749,7 @@
128546
129749
  "name": "floating",
128547
129750
  "privacy": "private",
128548
129751
  "readonly": true,
128549
- "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'), })",
129752
+ "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'), })",
128550
129753
  "inheritedFrom": {
128551
129754
  "name": "HelixHeadlessTourStop",
128552
129755
  "module": "src/tour/stop/tour-stop.ts"
@@ -128686,7 +129889,7 @@
128686
129889
  "text": "Promise<void>"
128687
129890
  },
128688
129891
  "readonly": true,
128689
- "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.",
129892
+ "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.",
128690
129893
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
128691
129894
  "inheritedFrom": {
128692
129895
  "name": "HelixElement",
@@ -128952,6 +130155,38 @@
128952
130155
  "module": "src/tour/stop/tour-stop.ts"
128953
130156
  }
128954
130157
  },
130158
+ {
130159
+ "description": "The point while the panel is below its target, so on the panel's top edge, beside `arrow`.",
130160
+ "name": "arrow-bottom",
130161
+ "inheritedFrom": {
130162
+ "name": "HelixHeadlessTourStop",
130163
+ "module": "src/tour/stop/tour-stop.ts"
130164
+ }
130165
+ },
130166
+ {
130167
+ "description": "The point while the panel is left of its target, so on the panel's right edge, beside `arrow`.",
130168
+ "name": "arrow-left",
130169
+ "inheritedFrom": {
130170
+ "name": "HelixHeadlessTourStop",
130171
+ "module": "src/tour/stop/tour-stop.ts"
130172
+ }
130173
+ },
130174
+ {
130175
+ "description": "The point while the panel is right of its target, so on the panel's left edge, beside `arrow`.",
130176
+ "name": "arrow-right",
130177
+ "inheritedFrom": {
130178
+ "name": "HelixHeadlessTourStop",
130179
+ "module": "src/tour/stop/tour-stop.ts"
130180
+ }
130181
+ },
130182
+ {
130183
+ "description": "The point while the panel is above its target, so on the panel's bottom edge, beside `arrow`.",
130184
+ "name": "arrow-top",
130185
+ "inheritedFrom": {
130186
+ "name": "HelixHeadlessTourStop",
130187
+ "module": "src/tour/stop/tour-stop.ts"
130188
+ }
130189
+ },
128955
130190
  {
128956
130191
  "description": "The control that goes to the previous stop.",
128957
130192
  "name": "back",
@@ -129796,7 +131031,7 @@
129796
131031
  "text": "Promise<void>"
129797
131032
  },
129798
131033
  "readonly": true,
129799
- "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.",
131034
+ "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.",
129800
131035
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
129801
131036
  "inheritedFrom": {
129802
131037
  "name": "HelixElement",
@@ -130851,7 +132086,7 @@
130851
132086
  "text": "Promise<void>"
130852
132087
  },
130853
132088
  "readonly": true,
130854
- "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.",
132089
+ "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.",
130855
132090
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
130856
132091
  "inheritedFrom": {
130857
132092
  "name": "HelixElement",
@@ -131463,7 +132698,7 @@
131463
132698
  "text": "Promise<void>"
131464
132699
  },
131465
132700
  "readonly": true,
131466
- "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.",
132701
+ "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.",
131467
132702
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
131468
132703
  "inheritedFrom": {
131469
132704
  "name": "HelixElement",
@@ -132096,7 +133331,7 @@
132096
133331
  "text": "Promise<void>"
132097
133332
  },
132098
133333
  "readonly": true,
132099
- "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.",
133334
+ "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.",
132100
133335
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
132101
133336
  "inheritedFrom": {
132102
133337
  "name": "HelixElement",
@@ -132787,7 +134022,7 @@
132787
134022
  "text": "Promise<void>"
132788
134023
  },
132789
134024
  "readonly": true,
132790
- "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.",
134025
+ "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.",
132791
134026
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
132792
134027
  "inheritedFrom": {
132793
134028
  "name": "HelixElement",
@@ -133602,7 +134837,7 @@
133602
134837
  "text": "Promise<void>"
133603
134838
  },
133604
134839
  "readonly": true,
133605
- "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.",
134840
+ "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.",
133606
134841
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
133607
134842
  "inheritedFrom": {
133608
134843
  "name": "HelixElement",
@@ -135531,7 +136766,7 @@
135531
136766
  "text": "Promise<void>"
135532
136767
  },
135533
136768
  "readonly": true,
135534
- "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.",
136769
+ "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.",
135535
136770
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
135536
136771
  "inheritedFrom": {
135537
136772
  "name": "HelixElement",
@@ -136946,7 +138181,7 @@
136946
138181
  "text": "Promise<void>"
136947
138182
  },
136948
138183
  "readonly": true,
136949
- "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.",
138184
+ "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.",
136950
138185
  "default": "new Promise<void>((resolve) => { this.resolveSettled = resolve })",
136951
138186
  "inheritedFrom": {
136952
138187
  "name": "HelixElement",