@fusion.dev/helix-headless 0.51.0 → 0.52.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.
- package/custom-elements.json +18 -19
- package/dist/area-chart/root/area-chart-root.d.ts +7 -0
- package/dist/carousel/root/carousel-root.d.ts +11 -4
- package/dist/carousel/root/carousel-root.js +2 -3
- package/dist/line-chart/root/line-chart-root.d.ts +6 -0
- package/dist/qr-code/root/qr-code-root.d.ts +8 -6
- package/dist/qr-code/root/qr-code-root.js +2 -3
- package/dist/sparkline/root/sparkline-root.d.ts +6 -0
- package/dist/splitter/root/splitter-root.d.ts +29 -7
- package/dist/splitter/root/splitter-root.js +4 -2
- package/package.json +5 -5
- package/types/jsx.d.ts +122 -34
- package/types/vue.d.ts +30 -9
package/custom-elements.json
CHANGED
|
@@ -2350,7 +2350,7 @@
|
|
|
2350
2350
|
"type": {
|
|
2351
2351
|
"text": "Curve | undefined"
|
|
2352
2352
|
},
|
|
2353
|
-
"description": "How a band's edge gets from one reading to the next.\n\nThree values, and the class doc argues for each: `straight` is absent and\nis the default, `smooth` is for a stack read as a shape and is the one that\ncan draw a part as less than nothing, `step` is for a quantity that changes\nat a moment and is ordered the way `straight` is.\n\nAbsent rather than defaulted because a reflecting property with a default\nwrites its attribute onto every host, including the ones nobody configured.",
|
|
2353
|
+
"description": "How a band's edge gets from one reading to the next.\n\nThree values, and the class doc argues for each: `straight` is absent and\nis the default, `smooth` is for a stack read as a shape and is the one that\ncan draw a part as less than nothing, `step` is for a quantity that changes\nat a moment and is ordered the way `straight` is.\n\nAbsent rather than defaulted because a reflecting property with a default\nwrites its attribute onto every host, including the ones nobody configured.\nThe resting value therefore lives in the render, as `curve ?? 'straight'`.\n\n**`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A\nline claims a position, so the bounded invention a monotone cubic makes is\na reading aid and costs nothing. A band claims an amount, and two sums\nsmoothed independently can cross, so the same aid here draws a part as less\nthan nothing. Same axis, different mark, different resting value.",
|
|
2354
2354
|
"attribute": "curve",
|
|
2355
2355
|
"reflects": true
|
|
2356
2356
|
},
|
|
@@ -3136,7 +3136,7 @@
|
|
|
3136
3136
|
"type": {
|
|
3137
3137
|
"text": "Curve | undefined"
|
|
3138
3138
|
},
|
|
3139
|
-
"description": "How a band's edge gets from one reading to the next.\n\nThree values, and the class doc argues for each: `straight` is absent and\nis the default, `smooth` is for a stack read as a shape and is the one that\ncan draw a part as less than nothing, `step` is for a quantity that changes\nat a moment and is ordered the way `straight` is.\n\nAbsent rather than defaulted because a reflecting property with a default\nwrites its attribute onto every host, including the ones nobody configured.",
|
|
3139
|
+
"description": "How a band's edge gets from one reading to the next.\n\nThree values, and the class doc argues for each: `straight` is absent and\nis the default, `smooth` is for a stack read as a shape and is the one that\ncan draw a part as less than nothing, `step` is for a quantity that changes\nat a moment and is ordered the way `straight` is.\n\nAbsent rather than defaulted because a reflecting property with a default\nwrites its attribute onto every host, including the ones nobody configured.\nThe resting value therefore lives in the render, as `curve ?? 'straight'`.\n\n**`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A\nline claims a position, so the bounded invention a monotone cubic makes is\na reading aid and costs nothing. A band claims an amount, and two sums\nsmoothed independently can cross, so the same aid here draws a part as less\nthan nothing. Same axis, different mark, different resting value.",
|
|
3140
3140
|
"fieldName": "curve"
|
|
3141
3141
|
},
|
|
3142
3142
|
{
|
|
@@ -9988,7 +9988,7 @@
|
|
|
9988
9988
|
}
|
|
9989
9989
|
}
|
|
9990
9990
|
],
|
|
9991
|
-
"description": "The leading padding the track keeps for a slide to draw its own edge in.\n\nA styled track carries one so a slide's shadow and focus ring have\nsomewhere to go: a scroll container clips at its padding box, and a slide\nflush against that edge loses whatever it paints outside itself. The\nheadless tier has no stylesheet and so no padding, and this reads zero\nthere, which is why both tiers can share the arithmetic below.\n\nPhysical sides rather than logical, to match the physical `offsetLeft` and\n`offsetTop` it is subtracted from
|
|
9991
|
+
"description": "The leading padding the track keeps for a slide to draw its own edge in.\n\nA styled track carries one so a slide's shadow and focus ring have\nsomewhere to go: a scroll container clips at its padding box, and a slide\nflush against that edge loses whatever it paints outside itself. The\nheadless tier has no stylesheet and so no padding, and this reads zero\nthere, which is why both tiers can share the arithmetic below.\n\nPhysical sides rather than logical, to match the physical `offsetLeft` and\n`offsetTop` it is subtracted from.\n\n**The side read is the side the track scrolls on, and not one side standing\nfor four.** They are one length on a track laid out at the defaults and\nstop being one the moment a consumer raises `--carousel-bleed`, which the\nhook exists to invite: a slide on `--helix-shadow-lg` reaches 44px and is\ntold to ask for it. So a horizontal track's room is its inline padding and\na vertical one's is its block padding, and each sheet puts the bleed where\nthe scroller clips. Reading one side for both would have a vertical track\nmeasuring a length nothing on its axis was laid out with."
|
|
9992
9992
|
},
|
|
9993
9993
|
{
|
|
9994
9994
|
"kind": "method",
|
|
@@ -10594,7 +10594,7 @@
|
|
|
10594
10594
|
"helix": {
|
|
10595
10595
|
"category": "layout",
|
|
10596
10596
|
"since": "0.1.0",
|
|
10597
|
-
"status": "
|
|
10597
|
+
"status": "stable",
|
|
10598
10598
|
"documentation": "https://fusion.dev/helix/components/carousel",
|
|
10599
10599
|
"aliases": [
|
|
10600
10600
|
"Slider",
|
|
@@ -49864,7 +49864,7 @@
|
|
|
49864
49864
|
"type": {
|
|
49865
49865
|
"text": "Curve | undefined"
|
|
49866
49866
|
},
|
|
49867
|
-
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A curve invents the values between two\nreadings, which is why `straight` still exists, but the invention is\nbounded: the interpolation is monotone cubic, so it never leaves the band\nthe data sets and never introduces a peak or a trough the series does not\nhave. Within that bound the smoothed line is the easier one to follow\nacross a long series, and `straight` becomes the deliberate claim.\n\n**Absent rather than defaulted on the property**, because a reflecting\nproperty with a default writes its attribute onto every host anybody\nrenders, including the ones nobody configured.\n`line-chart-root.ssr.spec.ts` asserts the host carries only what the\nconsumer wrote. The default therefore lives where the path is built, as\n`curve ?? 'smooth'`.\n\n`step` claims the opposite of both, that a reading holds until the next.",
|
|
49867
|
+
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A curve invents the values between two\nreadings, which is why `straight` still exists, but the invention is\nbounded: the interpolation is monotone cubic, so it never leaves the band\nthe data sets and never introduces a peak or a trough the series does not\nhave. Within that bound the smoothed line is the easier one to follow\nacross a long series, and `straight` becomes the deliberate claim.\n\n**Absent rather than defaulted on the property**, because a reflecting\nproperty with a default writes its attribute onto every host anybody\nrenders, including the ones nobody configured.\n`line-chart-root.ssr.spec.ts` asserts the host carries only what the\nconsumer wrote. The default therefore lives where the path is built, as\n`curve ?? 'smooth'`.\n\n`step` claims the opposite of both, that a reading holds until the next.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
|
|
49868
49868
|
"attribute": "curve",
|
|
49869
49869
|
"reflects": true
|
|
49870
49870
|
},
|
|
@@ -50647,7 +50647,7 @@
|
|
|
50647
50647
|
"type": {
|
|
50648
50648
|
"text": "Curve | undefined"
|
|
50649
50649
|
},
|
|
50650
|
-
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A curve invents the values between two\nreadings, which is why `straight` still exists, but the invention is\nbounded: the interpolation is monotone cubic, so it never leaves the band\nthe data sets and never introduces a peak or a trough the series does not\nhave. Within that bound the smoothed line is the easier one to follow\nacross a long series, and `straight` becomes the deliberate claim.\n\n**Absent rather than defaulted on the property**, because a reflecting\nproperty with a default writes its attribute onto every host anybody\nrenders, including the ones nobody configured.\n`line-chart-root.ssr.spec.ts` asserts the host carries only what the\nconsumer wrote. The default therefore lives where the path is built, as\n`curve ?? 'smooth'`.\n\n`step` claims the opposite of both, that a reading holds until the next.",
|
|
50650
|
+
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A curve invents the values between two\nreadings, which is why `straight` still exists, but the invention is\nbounded: the interpolation is monotone cubic, so it never leaves the band\nthe data sets and never introduces a peak or a trough the series does not\nhave. Within that bound the smoothed line is the easier one to follow\nacross a long series, and `straight` becomes the deliberate claim.\n\n**Absent rather than defaulted on the property**, because a reflecting\nproperty with a default writes its attribute onto every host anybody\nrenders, including the ones nobody configured.\n`line-chart-root.ssr.spec.ts` asserts the host carries only what the\nconsumer wrote. The default therefore lives where the path is built, as\n`curve ?? 'smooth'`.\n\n`step` claims the opposite of both, that a reading holds until the next.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
|
|
50651
50651
|
"fieldName": "curve"
|
|
50652
50652
|
},
|
|
50653
50653
|
{
|
|
@@ -69615,11 +69615,11 @@
|
|
|
69615
69615
|
"kind": "field",
|
|
69616
69616
|
"name": "shape",
|
|
69617
69617
|
"type": {
|
|
69618
|
-
"text": "QrStyle"
|
|
69618
|
+
"text": "QrStyle | undefined"
|
|
69619
69619
|
},
|
|
69620
|
-
"
|
|
69621
|
-
"
|
|
69622
|
-
"
|
|
69620
|
+
"description": "How the modules are drawn.\n\n`square` is the resting state and is written by not writing it, per the\nrule that a reflected property takes no default. It is also the only one\nthat joins runs of adjacent modules into a single subpath, which is what\nkeeps a thousand modules to a handful of nodes. `rounded` and `dots` draw\neach module on its own, because the corners are the thing being drawn and a\njoined run has none in the middle. That cost is paid only by a code that\nasks for them.\n\nA scanner reads contrast between cells, not their shape, so all three\nscan. `dots` sits a little under half a module so neighbors do not touch,\nwhich is what makes it read as dots rather than as a softened square code.",
|
|
69621
|
+
"attribute": "shape",
|
|
69622
|
+
"reflects": true
|
|
69623
69623
|
},
|
|
69624
69624
|
{
|
|
69625
69625
|
"kind": "field",
|
|
@@ -70007,10 +70007,9 @@
|
|
|
70007
70007
|
{
|
|
70008
70008
|
"name": "shape",
|
|
70009
70009
|
"type": {
|
|
70010
|
-
"text": "QrStyle"
|
|
70010
|
+
"text": "QrStyle | undefined"
|
|
70011
70011
|
},
|
|
70012
|
-
"
|
|
70013
|
-
"description": "How the modules are drawn.\n\n`square` is the default and the only one that joins runs of adjacent\nmodules into a single subpath, which is what keeps a thousand modules to a\nhandful of nodes. `rounded` and `dots` draw each module on its own, because\nthe corners are the thing being drawn and a joined run has none in the\nmiddle. That cost is paid only by a code that asks for them.\n\nA scanner reads contrast between cells, not their shape, so all three\nscan. `dots` sits a little under half a module so neighbors do not touch,\nwhich is what makes it read as dots rather than as a softened square code.",
|
|
70012
|
+
"description": "How the modules are drawn.\n\n`square` is the resting state and is written by not writing it, per the\nrule that a reflected property takes no default. It is also the only one\nthat joins runs of adjacent modules into a single subpath, which is what\nkeeps a thousand modules to a handful of nodes. `rounded` and `dots` draw\neach module on its own, because the corners are the thing being drawn and a\njoined run has none in the middle. That cost is paid only by a code that\nasks for them.\n\nA scanner reads contrast between cells, not their shape, so all three\nscan. `dots` sits a little under half a module so neighbors do not touch,\nwhich is what makes it read as dots rather than as a softened square code.",
|
|
70014
70013
|
"fieldName": "shape"
|
|
70015
70014
|
},
|
|
70016
70015
|
{
|
|
@@ -79128,7 +79127,7 @@
|
|
|
79128
79127
|
"type": {
|
|
79129
79128
|
"text": "Curve | undefined"
|
|
79130
79129
|
},
|
|
79131
|
-
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A straight segment asserts nothing about\nthe values between two readings and a curve invents them, which is why\n`straight` exists. What settles the default the other way is that the\ninvention is bounded: the interpolation is monotone cubic, so it never\nleaves the band the data sets and never introduces a peak or a trough the\nseries does not have. Within that bound the smoothed line is the easier one\nto follow across a long series, which is what the drawing is for. `straight`\nbecomes the claim a consumer makes deliberately rather than the one they get\nby saying nothing.\n\n**The property stays optional and the default lives in the render.** A\nreflecting property with a default writes its attribute onto every host\nanybody renders, including the ones nobody configured, which the SSR specs\nassert against. So the resting state is still the attribute's absence, and\n`curve ?? 'smooth'` is what reads it.\n\n`step` claims the opposite of both, that a reading holds until the next.\nBars ignore it, having no between to interpolate.",
|
|
79130
|
+
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A straight segment asserts nothing about\nthe values between two readings and a curve invents them, which is why\n`straight` exists. What settles the default the other way is that the\ninvention is bounded: the interpolation is monotone cubic, so it never\nleaves the band the data sets and never introduces a peak or a trough the\nseries does not have. Within that bound the smoothed line is the easier one\nto follow across a long series, which is what the drawing is for. `straight`\nbecomes the claim a consumer makes deliberately rather than the one they get\nby saying nothing.\n\n**The property stays optional and the default lives in the render.** A\nreflecting property with a default writes its attribute onto every host\nanybody renders, including the ones nobody configured, which the SSR specs\nassert against. So the resting state is still the attribute's absence, and\n`curve ?? 'smooth'` is what reads it.\n\n`step` claims the opposite of both, that a reading holds until the next.\nBars ignore it, having no between to interpolate.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
|
|
79132
79131
|
"attribute": "curve",
|
|
79133
79132
|
"reflects": true
|
|
79134
79133
|
},
|
|
@@ -79521,7 +79520,7 @@
|
|
|
79521
79520
|
"type": {
|
|
79522
79521
|
"text": "Curve | undefined"
|
|
79523
79522
|
},
|
|
79524
|
-
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A straight segment asserts nothing about\nthe values between two readings and a curve invents them, which is why\n`straight` exists. What settles the default the other way is that the\ninvention is bounded: the interpolation is monotone cubic, so it never\nleaves the band the data sets and never introduces a peak or a trough the\nseries does not have. Within that bound the smoothed line is the easier one\nto follow across a long series, which is what the drawing is for. `straight`\nbecomes the claim a consumer makes deliberately rather than the one they get\nby saying nothing.\n\n**The property stays optional and the default lives in the render.** A\nreflecting property with a default writes its attribute onto every host\nanybody renders, including the ones nobody configured, which the SSR specs\nassert against. So the resting state is still the attribute's absence, and\n`curve ?? 'smooth'` is what reads it.\n\n`step` claims the opposite of both, that a reading holds until the next.\nBars ignore it, having no between to interpolate.",
|
|
79523
|
+
"description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A straight segment asserts nothing about\nthe values between two readings and a curve invents them, which is why\n`straight` exists. What settles the default the other way is that the\ninvention is bounded: the interpolation is monotone cubic, so it never\nleaves the band the data sets and never introduces a peak or a trough the\nseries does not have. Within that bound the smoothed line is the easier one\nto follow across a long series, which is what the drawing is for. `straight`\nbecomes the claim a consumer makes deliberately rather than the one they get\nby saying nothing.\n\n**The property stays optional and the default lives in the render.** A\nreflecting property with a default writes its attribute onto every host\nanybody renders, including the ones nobody configured, which the SSR specs\nassert against. So the resting state is still the attribute's absence, and\n`curve ?? 'smooth'` is what reads it.\n\n`step` claims the opposite of both, that a reading holds until the next.\nBars ignore it, having no between to interpolate.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
|
|
79525
79524
|
"fieldName": "curve"
|
|
79526
79525
|
},
|
|
79527
79526
|
{
|
|
@@ -80928,7 +80927,7 @@
|
|
|
80928
80927
|
"declarations": [
|
|
80929
80928
|
{
|
|
80930
80929
|
"kind": "class",
|
|
80931
|
-
"description": "**One axis, and nesting is how you get two.** A splitter inside a splitter\ngives back the cross, and gives the three-pane and four-pane arrangements a\nsingle divider never had.\n\n**Where two of them cross there is a corner, and it moves both.** A splitter\nslotted into a pane of another, at right angles to it, grows a handle at the\ncrossing: `move` under the pointer, both arrow axes on the keyboard, and a\ndrag that carries the two positions at once. It appears at `firstUpdated`\nrather than in the served markup, being an affordance rather than content,\nand a splitter with no corner yet is a splitter with two working dividers.\n\n**The divider is a real `role=\"separator\"` with `aria-valuenow`**, moved by\nthe arrow keys as well as by pointer, with `Home` and `End` taking it to its\nbounds. A drag in progress is a state rather than `:hover`, so both dividers\na corner moves are lit for as long as it moves them.\n\n**It goes where it is put, all the way to either end.** `min` and `max` are\nnothing and everything unless a consumer says otherwise, because a divider\nthat stops short of the edge gives a reader no way to put a pane away.\n\n**A pane can be shut, and that is not the same as a divider at the edge.**\nThe geometry is identical and the knowledge is not: only a shut pane knows\nwhere to open back to. So `collapsed` is a second state rather than a reading\nof the position, and the position it opens to is the
|
|
80930
|
+
"description": "**One axis, and nesting is how you get two.** A splitter inside a splitter\ngives back the cross, and gives the three-pane and four-pane arrangements a\nsingle divider never had.\n\n**Where two of them cross there is a corner, and it moves both.** A splitter\nslotted into a pane of another, at right angles to it, grows a handle at the\ncrossing: `move` under the pointer, both arrow axes on the keyboard, and a\ndrag that carries the two positions at once. It appears at `firstUpdated`\nrather than in the served markup, being an affordance rather than content,\nand a splitter with no corner yet is a splitter with two working dividers.\n\n**The divider is a real `role=\"separator\"` with `aria-valuenow`**, moved by\nthe arrow keys as well as by pointer, with `Home` and `End` taking it to its\nbounds. A drag in progress is a state rather than `:hover`, so both dividers\na corner moves are lit for as long as it moves them.\n\n**It goes where it is put, all the way to either end.** `min` and `max` are\nnothing and everything unless a consumer says otherwise, because a divider\nthat stops short of the edge gives a reader no way to put a pane away.\n\n**A pane can be shut, and that is not the same as a divider at the edge.**\nThe geometry is identical and the knowledge is not: only a shut pane knows\nwhere to open back to. So `collapsed` is a second state rather than a reading\nof the position, and the position it opens to is where the gesture that shut\nit began, whichever gesture that was: a drag takes its reading on the press,\nand every other door takes it in `settle`, nothing having been applied there\nyet. `collapsed-size` keeps a sliver showing where a pane has a tab strip\nworth leaving, and collapse overrides `min` and `max`, which is what those\nare for.",
|
|
80932
80931
|
"name": "HelixHeadlessSplitter",
|
|
80933
80932
|
"cssProperties": [
|
|
80934
80933
|
{
|
|
@@ -81149,7 +81148,7 @@
|
|
|
81149
81148
|
},
|
|
81150
81149
|
"privacy": "private",
|
|
81151
81150
|
"default": "undefined",
|
|
81152
|
-
"description": "Where the divider was before the gesture that may be about to shut it.\n\nA drag writes a position on every pointer move, so by the time it reaches\nthe edge the number it started from is gone. Taken once, on the press, and\nwritten back if the gesture ends shut, so the pane opens to where it was\nrather than to the edge it was dragged against."
|
|
81151
|
+
"description": "Where the divider was before the gesture that may be about to shut it.\n\nA drag writes a position on every pointer move, so by the time it reaches\nthe edge the number it started from is gone. Taken once, on the press, and\nwritten back if the gesture ends shut, so the pane opens to where it was\nrather than to the edge it was dragged against.\n\n**A pointer gesture only, because it is the only one that loses it**, and\n`settle` answers for the rest from `began`: a key and a double click apply\nnothing before they settle, so where the divider is at the top of that\nmethod is where it was. Read once and cleared there, exactly as `began` is,\nand for the second reason as well as the first. Left standing it measured\nthe next gesture against the last one's press, so a collapse pressed from\n20 reopened at the 60 a drag had started from an hour earlier."
|
|
81153
81152
|
},
|
|
81154
81153
|
{
|
|
81155
81154
|
"kind": "field",
|
|
@@ -81399,7 +81398,7 @@
|
|
|
81399
81398
|
}
|
|
81400
81399
|
}
|
|
81401
81400
|
],
|
|
81402
|
-
"description": "Says the arrangement has settled, so a consumer can keep it.\n\nThrough the audited path, so a consumer who owns `position` is told what was\nasked for and decides, and one who does not has already had it applied.\n\n**A refused resize ends the resize and not the gesture.** `shutAt` reads the\nposition the gesture ended on, so the collapse is computed from a number the\nconsumer may have declined, and the reading this replaces was that the two\nare therefore one decision: refuse the first and the second cannot stand.\nThat is a reasonable thing to believe about a splitter nobody else owns, and\nit takes \"no\" to mean the gesture is over. What it misses is that a consumer\nwho owns the position refuses in order to *take* the decision, not to end\nit. The sandbox two folders away refuses every `helix-before-resize` from\nthe splitter inside it, re-announces the same move in its own vocabulary and\nwrites the answer back through `position`, which is what makes it the single\ndecision point; returning on its refusal left `panel-collapsed-size` inert\nthere, the shipped `with-a-panel` example measuring a 0px panel against the\n36
|
|
81401
|
+
"description": "Says the arrangement has settled, so a consumer can keep it.\n\nThrough the audited path, so a consumer who owns `position` is told what was\nasked for and decides, and one who does not has already had it applied.\n\n**A refused resize ends the resize and not the gesture.** `shutAt` reads the\nposition the gesture ended on, so the collapse is computed from a number the\nconsumer may have declined, and the reading this replaces was that the two\nare therefore one decision: refuse the first and the second cannot stand.\nThat is a reasonable thing to believe about a splitter nobody else owns, and\nit takes \"no\" to mean the gesture is over. What it misses is that a consumer\nwho owns the position refuses in order to *take* the decision, not to end\nit. The sandbox two folders away refuses every `helix-before-resize` from\nthe splitter inside it, re-announces the same move in its own vocabulary and\nwrites the answer back through `position`, which is what makes it the single\ndecision point; returning on its refusal left `panel-collapsed-size` inert\nthere, the shipped `with-a-panel` example measuring a 0px panel against the\n36 it asks for. So the collapse is reached either way and is refused, or\nnot, on its own.\n\n**Which is honest because the collapse carries its own position.** A shut\npane sits at `collapsed-size`, which is where `position` reads it from once\n`collapsed` is set, and never at the number the resize named: refuse a drag\nto 100 on a splitter with `collapsed-size=\"10\"`, allow the collapse, and the\ndivider is at 90. Nothing writes the refused number either, `requestChange`\napplying nothing when it is refused and the collapse below writing the open\nposition back over whatever a drag had already drawn, so a consumer who says\nno to the position and yes to the collapse gets the pane shut and keeps the\nnumber they had to reopen to. The two coincide only where `collapsed-size`\nis zero, and the states differ even there: a shut pane knows where to open\nback to and a divider parked at the edge does not.\n\nRefusing the collapse alone still leaves the resize, which is the other way\nround and is coherent: the divider goes where the drag put it and the pane\nis not declared shut.\n\n**The open position is taken here for every door but the pointer's, which\nis the same split `began` makes and for the same reason.** A drag has\noverwritten the position on the way to the edge, so it reads it on the\npress; a key, a double click and `moveTo` apply nothing until the request\nbelow, so where the divider is at the top of this method is where it was.\nCaptured on the press alone, the class docstring's promise that a shut pane\nknows where to open back to held for a drag and for nothing else: measured\n17 Sep 2026, `Home` on a splitter resting at 60 shut the start pane and\nreopened it at 0, the resize above having written the edge and the collapse\nhaving nothing to put back. Stale, it was worse than absent, `opened` never\nbeing cleared: a press at 60, then a key collapse from 20, reopened at 60.\n\n**A gesture that moved nothing announces nothing, and this is the one place\nthat can say so.** A change carrying the position the divider already had\nrewrites a consumer's stored value from a gesture that moved nothing:\nharmless where the value round-trips exactly, and not where it does not,\nwhich is any consumer storing pixels and dividing by a box. The separator's\n`pointerup` held that as an early return of its own and was the only door\nwith one. There are five: the separator's pointer and arrows, the corner's\npointer and arrows, and a double click through `reset`, and `moveTo` is a\nsixth a consumer can open. Measured in Chromium 17 Sep 2026 on the built\nbundle, every door but the guarded one announced a move of zero: a corner\npress with nothing between announced on both splitters, `Home` on a divider\nalready at its minimum announced, and a double click on one already at its\ndefault announced.\n\n**Measured against where the gesture began, and not against `position`.**\n`move` applies as it goes, so by the time a drag settles the position is\nalready the number about to be announced, and comparing those two would\nsilence every drag there is. `began` is the press; a discrete path takes\nnone and compares against the position, which for it is the same thing.\n\n**Per divider rather than per gesture, which is the corner's question.** The\ncorner drives two at once, so \"moved nothing\" cannot mean \"neither moved\":\na drag along one axis moves one of them, and the other would be announcing\na number nobody asked to change. Each settles on its own and guards on its\nown, so the one that moved still announces while the one that did not stays\nquiet. That is also why the guard cannot live in `handleCornerUp`, which\nonly ever sees the pair.\n\n**The collapse counts as movement, because a refusal can leave the two\ndisagreeing.** A consumer who refuses `helix-before-collapse` has a pane at\nthe edge that is not declared shut, and a guard reading the position alone\nwould then never offer the collapse again: `Home` is already at the\nminimum, so every later press is a move of zero."
|
|
81403
81402
|
},
|
|
81404
81403
|
{
|
|
81405
81404
|
"kind": "field",
|
|
@@ -82021,7 +82020,7 @@
|
|
|
82021
82020
|
"helix": {
|
|
82022
82021
|
"category": "layout",
|
|
82023
82022
|
"since": "0.1.0",
|
|
82024
|
-
"status": "
|
|
82023
|
+
"status": "stable",
|
|
82025
82024
|
"documentation": "https://fusion.dev/helix/components/splitter",
|
|
82026
82025
|
"aliases": [
|
|
82027
82026
|
"SplitPane",
|
|
@@ -115,6 +115,13 @@ export declare class HelixHeadlessAreaChart extends HelixHeadlessAreaChart_base
|
|
|
115
115
|
*
|
|
116
116
|
* Absent rather than defaulted because a reflecting property with a default
|
|
117
117
|
* writes its attribute onto every host, including the ones nobody configured.
|
|
118
|
+
* The resting value therefore lives in the render, as `curve ?? 'straight'`.
|
|
119
|
+
*
|
|
120
|
+
* **`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A
|
|
121
|
+
* line claims a position, so the bounded invention a monotone cubic makes is
|
|
122
|
+
* a reading aid and costs nothing. A band claims an amount, and two sums
|
|
123
|
+
* smoothed independently can cross, so the same aid here draws a part as less
|
|
124
|
+
* than nothing. Same axis, different mark, different resting value.
|
|
118
125
|
*/
|
|
119
126
|
curve?: Curve;
|
|
120
127
|
/**
|
|
@@ -20,7 +20,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
20
20
|
* performs, and it is first in the tab order.
|
|
21
21
|
*
|
|
22
22
|
* @since 0.1.0
|
|
23
|
-
* @status
|
|
23
|
+
* @status stable
|
|
24
24
|
* @category layout
|
|
25
25
|
* @aliases Slider, Gallery, Slideshow
|
|
26
26
|
* @documentation https://fusion.dev/helix/components/carousel
|
|
@@ -390,9 +390,16 @@ export declare class HelixHeadlessCarousel extends HelixElement {
|
|
|
390
390
|
* there, which is why both tiers can share the arithmetic below.
|
|
391
391
|
*
|
|
392
392
|
* Physical sides rather than logical, to match the physical `offsetLeft` and
|
|
393
|
-
* `offsetTop` it is subtracted from.
|
|
394
|
-
*
|
|
395
|
-
*
|
|
393
|
+
* `offsetTop` it is subtracted from.
|
|
394
|
+
*
|
|
395
|
+
* **The side read is the side the track scrolls on, and not one side standing
|
|
396
|
+
* for four.** They are one length on a track laid out at the defaults and
|
|
397
|
+
* stop being one the moment a consumer raises `--carousel-bleed`, which the
|
|
398
|
+
* hook exists to invite: a slide on `--helix-shadow-lg` reaches 44px and is
|
|
399
|
+
* told to ask for it. So a horizontal track's room is its inline padding and
|
|
400
|
+
* a vertical one's is its block padding, and each sheet puts the bleed where
|
|
401
|
+
* the scroller clips. Reading one side for both would have a vertical track
|
|
402
|
+
* measuring a length nothing on its axis was laid out with.
|
|
396
403
|
*/
|
|
397
404
|
private bleed;
|
|
398
405
|
/**
|
|
@@ -297,15 +297,14 @@ let HelixHeadlessCarousel = class HelixHeadlessCarousel extends HelixElement {
|
|
|
297
297
|
}
|
|
298
298
|
updated(changed) {
|
|
299
299
|
super.updated(changed);
|
|
300
|
-
const count = this.slides.length;
|
|
301
300
|
const drawn = this.renderRoot.querySelectorAll('[part="slide"]').length;
|
|
302
301
|
if (changed.has('index') || (this.scrolledFor === 0 && drawn > 0)) {
|
|
303
302
|
this.scrollToIndex();
|
|
304
303
|
}
|
|
305
304
|
this.scrolledFor = drawn;
|
|
306
305
|
this.runTimer();
|
|
307
|
-
if (
|
|
308
|
-
this.goTo(
|
|
306
|
+
if (this.slides.length > 0 && this.index > this.positions - 1) {
|
|
307
|
+
this.goTo(this.positions - 1);
|
|
309
308
|
}
|
|
310
309
|
this.watchPane();
|
|
311
310
|
this.assign();
|
|
@@ -101,6 +101,12 @@ export declare class HelixHeadlessLineChart extends HelixHeadlessLineChart_base
|
|
|
101
101
|
* `curve ?? 'smooth'`.
|
|
102
102
|
*
|
|
103
103
|
* `step` claims the opposite of both, that a reading holds until the next.
|
|
104
|
+
*
|
|
105
|
+
* **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
106
|
+
* position and a stacked band claims an amount: a curve fitted through one
|
|
107
|
+
* sum can pass under the curve fitted through the sum beneath it, so a
|
|
108
|
+
* smoothed stack can draw a part as less than nothing. There is no such edge
|
|
109
|
+
* here, which is what lets a line take the reading aid.
|
|
104
110
|
*/
|
|
105
111
|
curve?: Curve;
|
|
106
112
|
/**
|
|
@@ -64,17 +64,19 @@ export declare class HelixHeadlessQrCode extends HelixElement {
|
|
|
64
64
|
/**
|
|
65
65
|
* How the modules are drawn.
|
|
66
66
|
*
|
|
67
|
-
* `square` is the
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
67
|
+
* `square` is the resting state and is written by not writing it, per the
|
|
68
|
+
* rule that a reflected property takes no default. It is also the only one
|
|
69
|
+
* that joins runs of adjacent modules into a single subpath, which is what
|
|
70
|
+
* keeps a thousand modules to a handful of nodes. `rounded` and `dots` draw
|
|
71
|
+
* each module on its own, because the corners are the thing being drawn and a
|
|
72
|
+
* joined run has none in the middle. That cost is paid only by a code that
|
|
73
|
+
* asks for them.
|
|
72
74
|
*
|
|
73
75
|
* A scanner reads contrast between cells, not their shape, so all three
|
|
74
76
|
* scan. `dots` sits a little under half a module so neighbors do not touch,
|
|
75
77
|
* which is what makes it read as dots rather than as a softened square code.
|
|
76
78
|
*/
|
|
77
|
-
shape
|
|
79
|
+
shape?: QrStyle;
|
|
78
80
|
/**
|
|
79
81
|
* What the code encodes, which is usually a URL.
|
|
80
82
|
*/
|
|
@@ -63,7 +63,6 @@ let HelixHeadlessQrCode = class HelixHeadlessQrCode extends HelixElement {
|
|
|
63
63
|
constructor() {
|
|
64
64
|
super(...arguments);
|
|
65
65
|
this.label = '';
|
|
66
|
-
this.shape = 'square';
|
|
67
66
|
this.value = '';
|
|
68
67
|
this.logo = false;
|
|
69
68
|
}
|
|
@@ -99,7 +98,7 @@ let HelixHeadlessQrCode = class HelixHeadlessQrCode extends HelixElement {
|
|
|
99
98
|
>
|
|
100
99
|
<path
|
|
101
100
|
part="modules"
|
|
102
|
-
d=${pathFor(result.data, this.shape, 'body')}
|
|
101
|
+
d=${pathFor(result.data, this.shape ?? 'square', 'body')}
|
|
103
102
|
transform="translate(${quiet} ${quiet})"
|
|
104
103
|
fill="currentColor"
|
|
105
104
|
/>
|
|
@@ -134,7 +133,7 @@ __decorate([
|
|
|
134
133
|
property()
|
|
135
134
|
], HelixHeadlessQrCode.prototype, "label", void 0);
|
|
136
135
|
__decorate([
|
|
137
|
-
property()
|
|
136
|
+
property({ reflect: true })
|
|
138
137
|
], HelixHeadlessQrCode.prototype, "shape", void 0);
|
|
139
138
|
__decorate([
|
|
140
139
|
property()
|
|
@@ -70,6 +70,12 @@ export declare class HelixHeadlessSparkline extends HelixElement {
|
|
|
70
70
|
*
|
|
71
71
|
* `step` claims the opposite of both, that a reading holds until the next.
|
|
72
72
|
* Bars ignore it, having no between to interpolate.
|
|
73
|
+
*
|
|
74
|
+
* **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
75
|
+
* position and a stacked band claims an amount: a curve fitted through one
|
|
76
|
+
* sum can pass under the curve fitted through the sum beneath it, so a
|
|
77
|
+
* smoothed stack can draw a part as less than nothing. There is no such edge
|
|
78
|
+
* here, which is what lets a line take the reading aid.
|
|
73
79
|
*/
|
|
74
80
|
curve?: Curve;
|
|
75
81
|
/**
|
|
@@ -27,13 +27,15 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
27
27
|
* **A pane can be shut, and that is not the same as a divider at the edge.**
|
|
28
28
|
* The geometry is identical and the knowledge is not: only a shut pane knows
|
|
29
29
|
* where to open back to. So `collapsed` is a second state rather than a reading
|
|
30
|
-
* of the position, and the position it opens to is the
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
30
|
+
* of the position, and the position it opens to is where the gesture that shut
|
|
31
|
+
* it began, whichever gesture that was: a drag takes its reading on the press,
|
|
32
|
+
* and every other door takes it in `settle`, nothing having been applied there
|
|
33
|
+
* yet. `collapsed-size` keeps a sliver showing where a pane has a tab strip
|
|
34
|
+
* worth leaving, and collapse overrides `min` and `max`, which is what those
|
|
35
|
+
* are for.
|
|
34
36
|
*
|
|
35
37
|
* @since 0.1.0
|
|
36
|
-
* @status
|
|
38
|
+
* @status stable
|
|
37
39
|
* @category layout
|
|
38
40
|
* @aliases SplitPane, Resizable, SplitView
|
|
39
41
|
* @documentation https://fusion.dev/helix/components/splitter
|
|
@@ -181,6 +183,14 @@ export declare class HelixHeadlessSplitter extends HelixElement {
|
|
|
181
183
|
* the edge the number it started from is gone. Taken once, on the press, and
|
|
182
184
|
* written back if the gesture ends shut, so the pane opens to where it was
|
|
183
185
|
* rather than to the edge it was dragged against.
|
|
186
|
+
*
|
|
187
|
+
* **A pointer gesture only, because it is the only one that loses it**, and
|
|
188
|
+
* `settle` answers for the rest from `began`: a key and a double click apply
|
|
189
|
+
* nothing before they settle, so where the divider is at the top of that
|
|
190
|
+
* method is where it was. Read once and cleared there, exactly as `began` is,
|
|
191
|
+
* and for the second reason as well as the first. Left standing it measured
|
|
192
|
+
* the next gesture against the last one's press, so a collapse pressed from
|
|
193
|
+
* 20 reopened at the 60 a drag had started from an hour earlier.
|
|
184
194
|
*/
|
|
185
195
|
private opened;
|
|
186
196
|
/**
|
|
@@ -343,8 +353,8 @@ export declare class HelixHeadlessSplitter extends HelixElement {
|
|
|
343
353
|
* writes the answer back through `position`, which is what makes it the single
|
|
344
354
|
* decision point; returning on its refusal left `panel-collapsed-size` inert
|
|
345
355
|
* there, the shipped `with-a-panel` example measuring a 0px panel against the
|
|
346
|
-
* 36
|
|
347
|
-
*
|
|
356
|
+
* 36 it asks for. So the collapse is reached either way and is refused, or
|
|
357
|
+
* not, on its own.
|
|
348
358
|
*
|
|
349
359
|
* **Which is honest because the collapse carries its own position.** A shut
|
|
350
360
|
* pane sits at `collapsed-size`, which is where `position` reads it from once
|
|
@@ -362,6 +372,18 @@ export declare class HelixHeadlessSplitter extends HelixElement {
|
|
|
362
372
|
* round and is coherent: the divider goes where the drag put it and the pane
|
|
363
373
|
* is not declared shut.
|
|
364
374
|
*
|
|
375
|
+
* **The open position is taken here for every door but the pointer's, which
|
|
376
|
+
* is the same split `began` makes and for the same reason.** A drag has
|
|
377
|
+
* overwritten the position on the way to the edge, so it reads it on the
|
|
378
|
+
* press; a key, a double click and `moveTo` apply nothing until the request
|
|
379
|
+
* below, so where the divider is at the top of this method is where it was.
|
|
380
|
+
* Captured on the press alone, the class docstring's promise that a shut pane
|
|
381
|
+
* knows where to open back to held for a drag and for nothing else: measured
|
|
382
|
+
* 17 Sep 2026, `Home` on a splitter resting at 60 shut the start pane and
|
|
383
|
+
* reopened it at 0, the resize above having written the edge and the collapse
|
|
384
|
+
* having nothing to put back. Stale, it was worse than absent, `opened` never
|
|
385
|
+
* being cleared: a press at 60, then a key collapse from 20, reopened at 60.
|
|
386
|
+
*
|
|
365
387
|
* **A gesture that moved nothing announces nothing, and this is the one place
|
|
366
388
|
* that can say so.** A change carrying the position the divider already had
|
|
367
389
|
* rewrites a consumer's stored value from a gesture that moved nothing:
|
|
@@ -302,6 +302,8 @@ let HelixHeadlessSplitter = HelixHeadlessSplitter_1 = class HelixHeadlessSplitte
|
|
|
302
302
|
const shut = this.shutAt(wanted);
|
|
303
303
|
const began = this.began ?? this.position;
|
|
304
304
|
this.began = undefined;
|
|
305
|
+
const opened = this.opened ?? (this.collapsed ? undefined : began);
|
|
306
|
+
this.opened = undefined;
|
|
305
307
|
if (wanted === began && shut === this.collapsed) {
|
|
306
308
|
return;
|
|
307
309
|
}
|
|
@@ -319,8 +321,8 @@ let HelixHeadlessSplitter = HelixHeadlessSplitter_1 = class HelixHeadlessSplitte
|
|
|
319
321
|
requestChange({
|
|
320
322
|
apply: (value) => {
|
|
321
323
|
const previous = this.collapsed;
|
|
322
|
-
if (value !== '' &&
|
|
323
|
-
this.positionState =
|
|
324
|
+
if (value !== '' && opened !== undefined) {
|
|
325
|
+
this.positionState = opened;
|
|
324
326
|
}
|
|
325
327
|
this.collapsedState = value === '' ? 'none' : value;
|
|
326
328
|
this.requestUpdate('collapsed', previous);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix-headless",
|
|
3
3
|
"description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.52.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
},
|
|
47
47
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@fusion.dev/helix-core": "0.
|
|
50
|
-
"@fusion.dev/helix-icons": "0.
|
|
49
|
+
"@fusion.dev/helix-core": "0.52.1",
|
|
50
|
+
"@fusion.dev/helix-icons": "0.52.1",
|
|
51
51
|
"uqr": "^0.1.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@custom-elements-manifest/analyzer": "^0.11.0",
|
|
55
|
-
"@fusion.dev/helix-cem": "0.
|
|
56
|
-
"@fusion.dev/helix-testing": "0.
|
|
55
|
+
"@fusion.dev/helix-cem": "0.52.1",
|
|
56
|
+
"@fusion.dev/helix-testing": "0.52.1",
|
|
57
57
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
58
58
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
59
59
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -756,7 +756,14 @@ can draw a part as less than nothing, `step` is for a quantity that changes
|
|
|
756
756
|
at a moment and is ordered the way `straight` is.
|
|
757
757
|
|
|
758
758
|
Absent rather than defaulted because a reflecting property with a default
|
|
759
|
-
writes its attribute onto every host, including the ones nobody configured.
|
|
759
|
+
writes its attribute onto every host, including the ones nobody configured.
|
|
760
|
+
The resting value therefore lives in the render, as `curve ?? 'straight'`.
|
|
761
|
+
|
|
762
|
+
**`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A
|
|
763
|
+
line claims a position, so the bounded invention a monotone cubic makes is
|
|
764
|
+
a reading aid and costs nothing. A band claims an amount, and two sums
|
|
765
|
+
smoothed independently can cross, so the same aid here draws a part as less
|
|
766
|
+
than nothing. Same axis, different mark, different resting value. */
|
|
760
767
|
curve?: (HelixHeadlessAreaChart["curve"]) | undefined;
|
|
761
768
|
/** Which rules are drawn across the plot, if any.
|
|
762
769
|
|
|
@@ -799,7 +806,14 @@ can draw a part as less than nothing, `step` is for a quantity that changes
|
|
|
799
806
|
at a moment and is ordered the way `straight` is.
|
|
800
807
|
|
|
801
808
|
Absent rather than defaulted because a reflecting property with a default
|
|
802
|
-
writes its attribute onto every host, including the ones nobody configured.
|
|
809
|
+
writes its attribute onto every host, including the ones nobody configured.
|
|
810
|
+
The resting value therefore lives in the render, as `curve ?? 'straight'`.
|
|
811
|
+
|
|
812
|
+
**`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A
|
|
813
|
+
line claims a position, so the bounded invention a monotone cubic makes is
|
|
814
|
+
a reading aid and costs nothing. A band claims an amount, and two sums
|
|
815
|
+
smoothed independently can cross, so the same aid here draws a part as less
|
|
816
|
+
than nothing. Same axis, different mark, different resting value. */
|
|
803
817
|
"prop:curve"?: (HelixHeadlessAreaChart["curve"]) | undefined;
|
|
804
818
|
/** Which rules are drawn across the plot, if any.
|
|
805
819
|
|
|
@@ -8494,7 +8508,13 @@ renders, including the ones nobody configured.
|
|
|
8494
8508
|
consumer wrote. The default therefore lives where the path is built, as
|
|
8495
8509
|
`curve ?? 'smooth'`.
|
|
8496
8510
|
|
|
8497
|
-
`step` claims the opposite of both, that a reading holds until the next.
|
|
8511
|
+
`step` claims the opposite of both, that a reading holds until the next.
|
|
8512
|
+
|
|
8513
|
+
**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
8514
|
+
position and a stacked band claims an amount: a curve fitted through one
|
|
8515
|
+
sum can pass under the curve fitted through the sum beneath it, so a
|
|
8516
|
+
smoothed stack can draw a part as less than nothing. There is no such edge
|
|
8517
|
+
here, which is what lets a line take the reading aid. */
|
|
8498
8518
|
curve?: (HelixHeadlessLineChart["curve"]) | undefined;
|
|
8499
8519
|
/** Which rules are drawn across the plot, if any.
|
|
8500
8520
|
|
|
@@ -8599,7 +8619,13 @@ renders, including the ones nobody configured.
|
|
|
8599
8619
|
consumer wrote. The default therefore lives where the path is built, as
|
|
8600
8620
|
`curve ?? 'smooth'`.
|
|
8601
8621
|
|
|
8602
|
-
`step` claims the opposite of both, that a reading holds until the next.
|
|
8622
|
+
`step` claims the opposite of both, that a reading holds until the next.
|
|
8623
|
+
|
|
8624
|
+
**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
8625
|
+
position and a stacked band claims an amount: a curve fitted through one
|
|
8626
|
+
sum can pass under the curve fitted through the sum beneath it, so a
|
|
8627
|
+
smoothed stack can draw a part as less than nothing. There is no such edge
|
|
8628
|
+
here, which is what lets a line take the reading aid. */
|
|
8603
8629
|
"prop:curve"?: (HelixHeadlessLineChart["curve"]) | undefined;
|
|
8604
8630
|
/** Which rules are drawn across the plot, if any.
|
|
8605
8631
|
|
|
@@ -11780,11 +11806,13 @@ and a URL is a better name than "QR code" for a reader who cannot see it. */
|
|
|
11780
11806
|
label?: (HelixHeadlessQrCode["label"]) | undefined;
|
|
11781
11807
|
/** How the modules are drawn.
|
|
11782
11808
|
|
|
11783
|
-
`square` is the
|
|
11784
|
-
|
|
11785
|
-
|
|
11786
|
-
|
|
11787
|
-
|
|
11809
|
+
`square` is the resting state and is written by not writing it, per the
|
|
11810
|
+
rule that a reflected property takes no default. It is also the only one
|
|
11811
|
+
that joins runs of adjacent modules into a single subpath, which is what
|
|
11812
|
+
keeps a thousand modules to a handful of nodes. `rounded` and `dots` draw
|
|
11813
|
+
each module on its own, because the corners are the thing being drawn and a
|
|
11814
|
+
joined run has none in the middle. That cost is paid only by a code that
|
|
11815
|
+
asks for them.
|
|
11788
11816
|
|
|
11789
11817
|
A scanner reads contrast between cells, not their shape, so all three
|
|
11790
11818
|
scan. `dots` sits a little under half a module so neighbors do not touch,
|
|
@@ -11810,11 +11838,13 @@ and a URL is a better name than "QR code" for a reader who cannot see it. */
|
|
|
11810
11838
|
"prop:label"?: (HelixHeadlessQrCode["label"]) | undefined;
|
|
11811
11839
|
/** How the modules are drawn.
|
|
11812
11840
|
|
|
11813
|
-
`square` is the
|
|
11814
|
-
|
|
11815
|
-
|
|
11816
|
-
|
|
11817
|
-
|
|
11841
|
+
`square` is the resting state and is written by not writing it, per the
|
|
11842
|
+
rule that a reflected property takes no default. It is also the only one
|
|
11843
|
+
that joins runs of adjacent modules into a single subpath, which is what
|
|
11844
|
+
keeps a thousand modules to a handful of nodes. `rounded` and `dots` draw
|
|
11845
|
+
each module on its own, because the corners are the thing being drawn and a
|
|
11846
|
+
joined run has none in the middle. That cost is paid only by a code that
|
|
11847
|
+
asks for them.
|
|
11818
11848
|
|
|
11819
11849
|
A scanner reads contrast between cells, not their shape, so all three
|
|
11820
11850
|
scan. `dots` sits a little under half a module so neighbors do not touch,
|
|
@@ -13066,7 +13096,13 @@ assert against. So the resting state is still the attribute's absence, and
|
|
|
13066
13096
|
`curve ?? 'smooth'` is what reads it.
|
|
13067
13097
|
|
|
13068
13098
|
`step` claims the opposite of both, that a reading holds until the next.
|
|
13069
|
-
Bars ignore it, having no between to interpolate.
|
|
13099
|
+
Bars ignore it, having no between to interpolate.
|
|
13100
|
+
|
|
13101
|
+
**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
13102
|
+
position and a stacked band claims an amount: a curve fitted through one
|
|
13103
|
+
sum can pass under the curve fitted through the sum beneath it, so a
|
|
13104
|
+
smoothed stack can draw a part as less than nothing. There is no such edge
|
|
13105
|
+
here, which is what lets a line take the reading aid. */
|
|
13070
13106
|
curve?: (HelixHeadlessSparkline["curve"]) | undefined;
|
|
13071
13107
|
/** The id of a table to read instead, when there is one behind the line.
|
|
13072
13108
|
|
|
@@ -13141,7 +13177,13 @@ assert against. So the resting state is still the attribute's absence, and
|
|
|
13141
13177
|
`curve ?? 'smooth'` is what reads it.
|
|
13142
13178
|
|
|
13143
13179
|
`step` claims the opposite of both, that a reading holds until the next.
|
|
13144
|
-
Bars ignore it, having no between to interpolate.
|
|
13180
|
+
Bars ignore it, having no between to interpolate.
|
|
13181
|
+
|
|
13182
|
+
**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
13183
|
+
position and a stacked band claims an amount: a curve fitted through one
|
|
13184
|
+
sum can pass under the curve fitted through the sum beneath it, so a
|
|
13185
|
+
smoothed stack can draw a part as less than nothing. There is no such edge
|
|
13186
|
+
here, which is what lets a line take the reading aid. */
|
|
13145
13187
|
"prop:curve"?: (HelixHeadlessSparkline["curve"]) | undefined;
|
|
13146
13188
|
/** The id of a table to read instead, when there is one behind the line.
|
|
13147
13189
|
|
|
@@ -18202,6 +18244,13 @@ export type CustomElements = {
|
|
|
18202
18244
|
*
|
|
18203
18245
|
* Absent rather than defaulted because a reflecting property with a default
|
|
18204
18246
|
* writes its attribute onto every host, including the ones nobody configured.
|
|
18247
|
+
* The resting value therefore lives in the render, as `curve ?? 'straight'`.
|
|
18248
|
+
*
|
|
18249
|
+
* **`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A
|
|
18250
|
+
* line claims a position, so the bounded invention a monotone cubic makes is
|
|
18251
|
+
* a reading aid and costs nothing. A band claims an amount, and two sums
|
|
18252
|
+
* smoothed independently can cross, so the same aid here draws a part as less
|
|
18253
|
+
* than nothing. Same axis, different mark, different resting value.
|
|
18205
18254
|
* - `gridlines`: Which rules are drawn across the plot, if any.
|
|
18206
18255
|
*
|
|
18207
18256
|
* The same three values `LineChart` takes, with the same fallback: a bare
|
|
@@ -25934,6 +25983,12 @@ export type CustomElements = {
|
|
|
25934
25983
|
* `curve ?? 'smooth'`.
|
|
25935
25984
|
*
|
|
25936
25985
|
* `step` claims the opposite of both, that a reading holds until the next.
|
|
25986
|
+
*
|
|
25987
|
+
* **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
25988
|
+
* position and a stacked band claims an amount: a curve fitted through one
|
|
25989
|
+
* sum can pass under the curve fitted through the sum beneath it, so a
|
|
25990
|
+
* smoothed stack can draw a part as less than nothing. There is no such edge
|
|
25991
|
+
* here, which is what lets a line take the reading aid.
|
|
25937
25992
|
* - `gridlines`: Which rules are drawn across the plot, if any.
|
|
25938
25993
|
*
|
|
25939
25994
|
* Absent draws none, which is the honest default rather than a timid one: a
|
|
@@ -29288,11 +29343,13 @@ export type CustomElements = {
|
|
|
29288
29343
|
* and a URL is a better name than "QR code" for a reader who cannot see it.
|
|
29289
29344
|
* - `shape`: How the modules are drawn.
|
|
29290
29345
|
*
|
|
29291
|
-
* `square` is the
|
|
29292
|
-
*
|
|
29293
|
-
*
|
|
29294
|
-
*
|
|
29295
|
-
*
|
|
29346
|
+
* `square` is the resting state and is written by not writing it, per the
|
|
29347
|
+
* rule that a reflected property takes no default. It is also the only one
|
|
29348
|
+
* that joins runs of adjacent modules into a single subpath, which is what
|
|
29349
|
+
* keeps a thousand modules to a handful of nodes. `rounded` and `dots` draw
|
|
29350
|
+
* each module on its own, because the corners are the thing being drawn and a
|
|
29351
|
+
* joined run has none in the middle. That cost is paid only by a code that
|
|
29352
|
+
* asks for them.
|
|
29296
29353
|
*
|
|
29297
29354
|
* A scanner reads contrast between cells, not their shape, so all three
|
|
29298
29355
|
* scan. `dots` sits a little under half a module so neighbors do not touch,
|
|
@@ -30866,6 +30923,12 @@ export type CustomElements = {
|
|
|
30866
30923
|
*
|
|
30867
30924
|
* `step` claims the opposite of both, that a reading holds until the next.
|
|
30868
30925
|
* Bars ignore it, having no between to interpolate.
|
|
30926
|
+
*
|
|
30927
|
+
* **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
30928
|
+
* position and a stacked band claims an amount: a curve fitted through one
|
|
30929
|
+
* sum can pass under the curve fitted through the sum beneath it, so a
|
|
30930
|
+
* smoothed stack can draw a part as less than nothing. There is no such edge
|
|
30931
|
+
* here, which is what lets a line take the reading aid.
|
|
30869
30932
|
* - `for`: The id of a table to read instead, when there is one behind the line.
|
|
30870
30933
|
*
|
|
30871
30934
|
* The first column of numbers is the series drawn. This wins over `values`,
|
|
@@ -31187,10 +31250,12 @@ export type CustomElements = {
|
|
|
31187
31250
|
* **A pane can be shut, and that is not the same as a divider at the edge.**
|
|
31188
31251
|
* The geometry is identical and the knowledge is not: only a shut pane knows
|
|
31189
31252
|
* where to open back to. So `collapsed` is a second state rather than a reading
|
|
31190
|
-
* of the position, and the position it opens to is the
|
|
31191
|
-
*
|
|
31192
|
-
*
|
|
31193
|
-
*
|
|
31253
|
+
* of the position, and the position it opens to is where the gesture that shut
|
|
31254
|
+
* it began, whichever gesture that was: a drag takes its reading on the press,
|
|
31255
|
+
* and every other door takes it in `settle`, nothing having been applied there
|
|
31256
|
+
* yet. `collapsed-size` keeps a sliver showing where a pane has a tab strip
|
|
31257
|
+
* worth leaving, and collapse overrides `min` and `max`, which is what those
|
|
31258
|
+
* are for.
|
|
31194
31259
|
*
|
|
31195
31260
|
* ## Attributes & Properties
|
|
31196
31261
|
*
|
|
@@ -36091,6 +36156,13 @@ export type CustomElementsSolidJs = {
|
|
|
36091
36156
|
*
|
|
36092
36157
|
* Absent rather than defaulted because a reflecting property with a default
|
|
36093
36158
|
* writes its attribute onto every host, including the ones nobody configured.
|
|
36159
|
+
* The resting value therefore lives in the render, as `curve ?? 'straight'`.
|
|
36160
|
+
*
|
|
36161
|
+
* **`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A
|
|
36162
|
+
* line claims a position, so the bounded invention a monotone cubic makes is
|
|
36163
|
+
* a reading aid and costs nothing. A band claims an amount, and two sums
|
|
36164
|
+
* smoothed independently can cross, so the same aid here draws a part as less
|
|
36165
|
+
* than nothing. Same axis, different mark, different resting value.
|
|
36094
36166
|
* - `gridlines`: Which rules are drawn across the plot, if any.
|
|
36095
36167
|
*
|
|
36096
36168
|
* The same three values `LineChart` takes, with the same fallback: a bare
|
|
@@ -43930,6 +44002,12 @@ export type CustomElementsSolidJs = {
|
|
|
43930
44002
|
* `curve ?? 'smooth'`.
|
|
43931
44003
|
*
|
|
43932
44004
|
* `step` claims the opposite of both, that a reading holds until the next.
|
|
44005
|
+
*
|
|
44006
|
+
* **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
44007
|
+
* position and a stacked band claims an amount: a curve fitted through one
|
|
44008
|
+
* sum can pass under the curve fitted through the sum beneath it, so a
|
|
44009
|
+
* smoothed stack can draw a part as less than nothing. There is no such edge
|
|
44010
|
+
* here, which is what lets a line take the reading aid.
|
|
43933
44011
|
* - `gridlines`: Which rules are drawn across the plot, if any.
|
|
43934
44012
|
*
|
|
43935
44013
|
* Absent draws none, which is the honest default rather than a timid one: a
|
|
@@ -47336,11 +47414,13 @@ export type CustomElementsSolidJs = {
|
|
|
47336
47414
|
* and a URL is a better name than "QR code" for a reader who cannot see it.
|
|
47337
47415
|
* - `shape`: How the modules are drawn.
|
|
47338
47416
|
*
|
|
47339
|
-
* `square` is the
|
|
47340
|
-
*
|
|
47341
|
-
*
|
|
47342
|
-
*
|
|
47343
|
-
*
|
|
47417
|
+
* `square` is the resting state and is written by not writing it, per the
|
|
47418
|
+
* rule that a reflected property takes no default. It is also the only one
|
|
47419
|
+
* that joins runs of adjacent modules into a single subpath, which is what
|
|
47420
|
+
* keeps a thousand modules to a handful of nodes. `rounded` and `dots` draw
|
|
47421
|
+
* each module on its own, because the corners are the thing being drawn and a
|
|
47422
|
+
* joined run has none in the middle. That cost is paid only by a code that
|
|
47423
|
+
* asks for them.
|
|
47344
47424
|
*
|
|
47345
47425
|
* A scanner reads contrast between cells, not their shape, so all three
|
|
47346
47426
|
* scan. `dots` sits a little under half a module so neighbors do not touch,
|
|
@@ -48941,6 +49021,12 @@ export type CustomElementsSolidJs = {
|
|
|
48941
49021
|
*
|
|
48942
49022
|
* `step` claims the opposite of both, that a reading holds until the next.
|
|
48943
49023
|
* Bars ignore it, having no between to interpolate.
|
|
49024
|
+
*
|
|
49025
|
+
* **`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
49026
|
+
* position and a stacked band claims an amount: a curve fitted through one
|
|
49027
|
+
* sum can pass under the curve fitted through the sum beneath it, so a
|
|
49028
|
+
* smoothed stack can draw a part as less than nothing. There is no such edge
|
|
49029
|
+
* here, which is what lets a line take the reading aid.
|
|
48944
49030
|
* - `for`: The id of a table to read instead, when there is one behind the line.
|
|
48945
49031
|
*
|
|
48946
49032
|
* The first column of numbers is the series drawn. This wins over `values`,
|
|
@@ -49269,10 +49355,12 @@ export type CustomElementsSolidJs = {
|
|
|
49269
49355
|
* **A pane can be shut, and that is not the same as a divider at the edge.**
|
|
49270
49356
|
* The geometry is identical and the knowledge is not: only a shut pane knows
|
|
49271
49357
|
* where to open back to. So `collapsed` is a second state rather than a reading
|
|
49272
|
-
* of the position, and the position it opens to is the
|
|
49273
|
-
*
|
|
49274
|
-
*
|
|
49275
|
-
*
|
|
49358
|
+
* of the position, and the position it opens to is where the gesture that shut
|
|
49359
|
+
* it began, whichever gesture that was: a drag takes its reading on the press,
|
|
49360
|
+
* and every other door takes it in `settle`, nothing having been applied there
|
|
49361
|
+
* yet. `collapsed-size` keeps a sliver showing where a pane has a tab strip
|
|
49362
|
+
* worth leaving, and collapse overrides `min` and `max`, which is what those
|
|
49363
|
+
* are for.
|
|
49276
49364
|
*
|
|
49277
49365
|
* ## Attributes & Properties
|
|
49278
49366
|
*
|
package/types/vue.d.ts
CHANGED
|
@@ -408,7 +408,14 @@ can draw a part as less than nothing, `step` is for a quantity that changes
|
|
|
408
408
|
at a moment and is ordered the way `straight` is.
|
|
409
409
|
|
|
410
410
|
Absent rather than defaulted because a reflecting property with a default
|
|
411
|
-
writes its attribute onto every host, including the ones nobody configured.
|
|
411
|
+
writes its attribute onto every host, including the ones nobody configured.
|
|
412
|
+
The resting value therefore lives in the render, as `curve ?? 'straight'`.
|
|
413
|
+
|
|
414
|
+
**`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A
|
|
415
|
+
line claims a position, so the bounded invention a monotone cubic makes is
|
|
416
|
+
a reading aid and costs nothing. A band claims an amount, and two sums
|
|
417
|
+
smoothed independently can cross, so the same aid here draws a part as less
|
|
418
|
+
than nothing. Same axis, different mark, different resting value. */
|
|
412
419
|
curve?: (HelixHeadlessAreaChart["curve"]) | undefined;
|
|
413
420
|
/** Which rules are drawn across the plot, if any.
|
|
414
421
|
|
|
@@ -4360,7 +4367,13 @@ renders, including the ones nobody configured.
|
|
|
4360
4367
|
consumer wrote. The default therefore lives where the path is built, as
|
|
4361
4368
|
`curve ?? 'smooth'`.
|
|
4362
4369
|
|
|
4363
|
-
`step` claims the opposite of both, that a reading holds until the next.
|
|
4370
|
+
`step` claims the opposite of both, that a reading holds until the next.
|
|
4371
|
+
|
|
4372
|
+
**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
4373
|
+
position and a stacked band claims an amount: a curve fitted through one
|
|
4374
|
+
sum can pass under the curve fitted through the sum beneath it, so a
|
|
4375
|
+
smoothed stack can draw a part as less than nothing. There is no such edge
|
|
4376
|
+
here, which is what lets a line take the reading aid. */
|
|
4364
4377
|
curve?: (HelixHeadlessLineChart["curve"]) | undefined;
|
|
4365
4378
|
/** Which rules are drawn across the plot, if any.
|
|
4366
4379
|
|
|
@@ -6038,11 +6051,13 @@ and a URL is a better name than "QR code" for a reader who cannot see it. */
|
|
|
6038
6051
|
label?: (HelixHeadlessQrCode["label"]) | undefined;
|
|
6039
6052
|
/** How the modules are drawn.
|
|
6040
6053
|
|
|
6041
|
-
`square` is the
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6054
|
+
`square` is the resting state and is written by not writing it, per the
|
|
6055
|
+
rule that a reflected property takes no default. It is also the only one
|
|
6056
|
+
that joins runs of adjacent modules into a single subpath, which is what
|
|
6057
|
+
keeps a thousand modules to a handful of nodes. `rounded` and `dots` draw
|
|
6058
|
+
each module on its own, because the corners are the thing being drawn and a
|
|
6059
|
+
joined run has none in the middle. That cost is paid only by a code that
|
|
6060
|
+
asks for them.
|
|
6046
6061
|
|
|
6047
6062
|
A scanner reads contrast between cells, not their shape, so all three
|
|
6048
6063
|
scan. `dots` sits a little under half a module so neighbors do not touch,
|
|
@@ -6693,7 +6708,13 @@ assert against. So the resting state is still the attribute's absence, and
|
|
|
6693
6708
|
`curve ?? 'smooth'` is what reads it.
|
|
6694
6709
|
|
|
6695
6710
|
`step` claims the opposite of both, that a reading holds until the next.
|
|
6696
|
-
Bars ignore it, having no between to interpolate.
|
|
6711
|
+
Bars ignore it, having no between to interpolate.
|
|
6712
|
+
|
|
6713
|
+
**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a
|
|
6714
|
+
position and a stacked band claims an amount: a curve fitted through one
|
|
6715
|
+
sum can pass under the curve fitted through the sum beneath it, so a
|
|
6716
|
+
smoothed stack can draw a part as less than nothing. There is no such edge
|
|
6717
|
+
here, which is what lets a line take the reading aid. */
|
|
6697
6718
|
curve?: (HelixHeadlessSparkline["curve"]) | undefined;
|
|
6698
6719
|
/** The id of a table to read instead, when there is one behind the line.
|
|
6699
6720
|
|
|
@@ -9793,7 +9814,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
9793
9814
|
HelixHeadlessSpeedDialVueProps,
|
|
9794
9815
|
HelixHeadlessSpeedDialVueEvents
|
|
9795
9816
|
>;
|
|
9796
|
-
/** **One axis, and nesting is how you get two.** A splitter inside a splitter gives back the cross, and gives the three-pane and four-pane arrangements a single divider never had. **Where two of them cross there is a corner, and it moves both.** A splitter slotted into a pane of another, at right angles to it, grows a handle at the crossing: 'move' under the pointer, both arrow axes on the keyboard, and a drag that carries the two positions at once. It appears at 'firstUpdated' rather than in the served markup, being an affordance rather than content, and a splitter with no corner yet is a splitter with two working dividers. **The divider is a real 'role="separator"' with 'aria-valuenow'**, moved by the arrow keys as well as by pointer, with 'Home' and 'End' taking it to its bounds. A drag in progress is a state rather than ':hover', so both dividers a corner moves are lit for as long as it moves them. **It goes where it is put, all the way to either end.** 'min' and 'max' are nothing and everything unless a consumer says otherwise, because a divider that stops short of the edge gives a reader no way to put a pane away. **A pane can be shut, and that is not the same as a divider at the edge.** The geometry is identical and the knowledge is not: only a shut pane knows where to open back to. So 'collapsed' is a second state rather than a reading of the position, and the position it opens to is the
|
|
9817
|
+
/** **One axis, and nesting is how you get two.** A splitter inside a splitter gives back the cross, and gives the three-pane and four-pane arrangements a single divider never had. **Where two of them cross there is a corner, and it moves both.** A splitter slotted into a pane of another, at right angles to it, grows a handle at the crossing: 'move' under the pointer, both arrow axes on the keyboard, and a drag that carries the two positions at once. It appears at 'firstUpdated' rather than in the served markup, being an affordance rather than content, and a splitter with no corner yet is a splitter with two working dividers. **The divider is a real 'role="separator"' with 'aria-valuenow'**, moved by the arrow keys as well as by pointer, with 'Home' and 'End' taking it to its bounds. A drag in progress is a state rather than ':hover', so both dividers a corner moves are lit for as long as it moves them. **It goes where it is put, all the way to either end.** 'min' and 'max' are nothing and everything unless a consumer says otherwise, because a divider that stops short of the edge gives a reader no way to put a pane away. **A pane can be shut, and that is not the same as a divider at the edge.** The geometry is identical and the knowledge is not: only a shut pane knows where to open back to. So 'collapsed' is a second state rather than a reading of the position, and the position it opens to is where the gesture that shut it began, whichever gesture that was: a drag takes its reading on the press, and every other door takes it in 'settle', nothing having been applied there yet. 'collapsed-size' keeps a sliver showing where a pane has a tab strip worth leaving, and collapse overrides 'min' and 'max', which is what those are for. */
|
|
9797
9818
|
"helix-headless-splitter": DefineCustomElement<
|
|
9798
9819
|
HelixHeadlessSplitter,
|
|
9799
9820
|
HelixHeadlessSplitterVueProps,
|