@fusion.dev/helix 0.51.0 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +12 -12
- package/dist/carousel/root/carousel-root.css.js +2 -0
- package/dist/carousel/root/carousel-root.d.ts +1 -1
- package/dist/sandbox/preview/sandbox-preview.d.ts +1 -1
- package/dist/sandbox/root/sandbox-root.d.ts +1 -1
- package/dist/sandbox/source/sandbox-source.d.ts +1 -1
- package/dist/sandbox/status-bar/sandbox-status-bar.d.ts +1 -1
- package/dist/sandbox/terminal/sandbox-terminal.d.ts +1 -1
- package/dist/sandbox/toolbar/sandbox-toolbar.d.ts +1 -1
- package/dist/splitter/root/splitter-root.d.ts +1 -1
- package/package.json +6 -6
package/custom-elements.json
CHANGED
|
@@ -13769,7 +13769,7 @@
|
|
|
13769
13769
|
}
|
|
13770
13770
|
}
|
|
13771
13771
|
],
|
|
13772
|
-
"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
|
|
13772
|
+
"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.",
|
|
13773
13773
|
"inheritedFrom": {
|
|
13774
13774
|
"name": "HelixHeadlessCarousel",
|
|
13775
13775
|
"module": "src/carousel/root/carousel-root.ts"
|
|
@@ -14505,7 +14505,7 @@
|
|
|
14505
14505
|
"helix": {
|
|
14506
14506
|
"category": "layout",
|
|
14507
14507
|
"since": "0.1.0",
|
|
14508
|
-
"status": "
|
|
14508
|
+
"status": "stable",
|
|
14509
14509
|
"documentation": "https://fusion.dev/helix/components/carousel",
|
|
14510
14510
|
"aliases": [
|
|
14511
14511
|
"Slider",
|
|
@@ -93425,7 +93425,7 @@
|
|
|
93425
93425
|
"summary": "Renders sandbox source in a frame of its own.",
|
|
93426
93426
|
"helix": {
|
|
93427
93427
|
"since": "0.1.0",
|
|
93428
|
-
"status": "
|
|
93428
|
+
"status": "stable",
|
|
93429
93429
|
"documentation": "https://fusion.dev/helix/components/sandbox",
|
|
93430
93430
|
"aliases": [
|
|
93431
93431
|
"Result",
|
|
@@ -94396,7 +94396,7 @@
|
|
|
94396
94396
|
"helix": {
|
|
94397
94397
|
"category": "tooling",
|
|
94398
94398
|
"since": "0.1.0",
|
|
94399
|
-
"status": "
|
|
94399
|
+
"status": "stable",
|
|
94400
94400
|
"documentation": "https://fusion.dev/helix/components/sandbox",
|
|
94401
94401
|
"aliases": [
|
|
94402
94402
|
"Playground",
|
|
@@ -94429,7 +94429,7 @@
|
|
|
94429
94429
|
"slug": "sized-panes"
|
|
94430
94430
|
},
|
|
94431
94431
|
{
|
|
94432
|
-
"description": "A third pane
|
|
94432
|
+
"description": "A third pane under both, sized and collapsible, with every separator named.",
|
|
94433
94433
|
"slug": "with-a-panel"
|
|
94434
94434
|
}
|
|
94435
94435
|
],
|
|
@@ -94998,7 +94998,7 @@
|
|
|
94998
94998
|
"summary": "Editable source for a sandbox preview.",
|
|
94999
94999
|
"helix": {
|
|
95000
95000
|
"since": "0.1.0",
|
|
95001
|
-
"status": "
|
|
95001
|
+
"status": "stable",
|
|
95002
95002
|
"documentation": "https://fusion.dev/helix/components/sandbox",
|
|
95003
95003
|
"aliases": [
|
|
95004
95004
|
"Editor",
|
|
@@ -95493,7 +95493,7 @@
|
|
|
95493
95493
|
"summary": "Reports where the cursor is and what is being edited.",
|
|
95494
95494
|
"helix": {
|
|
95495
95495
|
"since": "0.1.0",
|
|
95496
|
-
"status": "
|
|
95496
|
+
"status": "stable",
|
|
95497
95497
|
"documentation": "https://fusion.dev/helix/components/sandbox",
|
|
95498
95498
|
"aliases": [
|
|
95499
95499
|
"Status line"
|
|
@@ -96032,7 +96032,7 @@
|
|
|
96032
96032
|
"summary": "Shows what the previewed example wrote to the console.",
|
|
96033
96033
|
"helix": {
|
|
96034
96034
|
"since": "0.1.0",
|
|
96035
|
-
"status": "
|
|
96035
|
+
"status": "stable",
|
|
96036
96036
|
"documentation": "https://fusion.dev/helix/components/sandbox",
|
|
96037
96037
|
"aliases": [
|
|
96038
96038
|
"Console",
|
|
@@ -96458,7 +96458,7 @@
|
|
|
96458
96458
|
"summary": "The bar across the top of a sandbox.",
|
|
96459
96459
|
"helix": {
|
|
96460
96460
|
"since": "0.1.0",
|
|
96461
|
-
"status": "
|
|
96461
|
+
"status": "stable",
|
|
96462
96462
|
"documentation": "https://fusion.dev/helix/components/sandbox",
|
|
96463
96463
|
"aliases": [
|
|
96464
96464
|
"Action bar"
|
|
@@ -105898,7 +105898,7 @@
|
|
|
105898
105898
|
},
|
|
105899
105899
|
"privacy": "private",
|
|
105900
105900
|
"default": "undefined",
|
|
105901
|
-
"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.",
|
|
105901
|
+
"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.",
|
|
105902
105902
|
"inheritedFrom": {
|
|
105903
105903
|
"name": "HelixHeadlessSplitter",
|
|
105904
105904
|
"module": "src/splitter/root/splitter-root.ts"
|
|
@@ -106228,7 +106228,7 @@
|
|
|
106228
106228
|
}
|
|
106229
106229
|
}
|
|
106230
106230
|
],
|
|
106231
|
-
"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
|
|
106231
|
+
"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.",
|
|
106232
106232
|
"inheritedFrom": {
|
|
106233
106233
|
"name": "HelixHeadlessSplitter",
|
|
106234
106234
|
"module": "src/splitter/root/splitter-root.ts"
|
|
@@ -106952,7 +106952,7 @@
|
|
|
106952
106952
|
"helix": {
|
|
106953
106953
|
"category": "layout",
|
|
106954
106954
|
"since": "0.1.0",
|
|
106955
|
-
"status": "
|
|
106955
|
+
"status": "stable",
|
|
106956
106956
|
"documentation": "https://fusion.dev/helix/components/splitter",
|
|
106957
106957
|
"aliases": [
|
|
106958
106958
|
"SplitPane",
|
|
@@ -214,6 +214,8 @@ block-size: var(--carousel-block-size, 20rem);
|
|
|
214
214
|
flex-direction: column;
|
|
215
215
|
overflow-x: hidden;
|
|
216
216
|
overflow-y: auto;
|
|
217
|
+
padding-block: var(--_carousel-bleed);
|
|
218
|
+
scroll-padding-block: var(--_carousel-bleed);
|
|
217
219
|
scroll-snap-type: y mandatory;
|
|
218
220
|
}
|
|
219
221
|
|
|
@@ -16,7 +16,7 @@ import type { CSSResultGroup } from 'lit';
|
|
|
16
16
|
* draws one across.
|
|
17
17
|
*
|
|
18
18
|
* @since 0.1.0
|
|
19
|
-
* @status
|
|
19
|
+
* @status stable
|
|
20
20
|
* @category layout
|
|
21
21
|
* @aliases Slider, Gallery, Slideshow
|
|
22
22
|
* @documentation https://fusion.dev/helix/components/carousel
|
|
@@ -59,7 +59,7 @@ export type PreviewMessage = PreviewConsole | PreviewPress | PreviewReady | Prev
|
|
|
59
59
|
* reach up and remove the attribute.
|
|
60
60
|
*
|
|
61
61
|
* @since 0.1.0
|
|
62
|
-
* @status
|
|
62
|
+
* @status stable
|
|
63
63
|
* @aliases Result, Output
|
|
64
64
|
* @documentation https://fusion.dev/helix/components/sandbox
|
|
65
65
|
*
|
|
@@ -21,7 +21,7 @@ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
|
|
|
21
21
|
* outer one, which is the order that makes the panel span the full width.
|
|
22
22
|
*
|
|
23
23
|
* @since 0.1.0
|
|
24
|
-
* @status
|
|
24
|
+
* @status stable
|
|
25
25
|
* @category tooling
|
|
26
26
|
* @aliases Playground, REPL, Editor
|
|
27
27
|
* @documentation https://fusion.dev/helix/components/sandbox
|
|
@@ -14,7 +14,7 @@ import type { CSSResultGroup, TemplateResult } from 'lit';
|
|
|
14
14
|
* is the documented escape hatch for exactly this trade.
|
|
15
15
|
*
|
|
16
16
|
* @since 0.1.0
|
|
17
|
-
* @status
|
|
17
|
+
* @status stable
|
|
18
18
|
* @aliases Editor, Code pane
|
|
19
19
|
* @documentation https://fusion.dev/helix/components/sandbox
|
|
20
20
|
*
|
|
@@ -18,7 +18,7 @@ import type { CSSResultGroup, TemplateResult } from 'lit';
|
|
|
18
18
|
* empty, or the bar keeps a gap where a value is not.
|
|
19
19
|
*
|
|
20
20
|
* @since 0.1.0
|
|
21
|
-
* @status
|
|
21
|
+
* @status stable
|
|
22
22
|
* @aliases Status line
|
|
23
23
|
* @documentation https://fusion.dev/helix/components/sandbox
|
|
24
24
|
*
|
|
@@ -18,7 +18,7 @@ import type { CSSResultGroup, TemplateResult } from 'lit';
|
|
|
18
18
|
* the whole panel being re-announced each time.
|
|
19
19
|
*
|
|
20
20
|
* @since 0.1.0
|
|
21
|
-
* @status
|
|
21
|
+
* @status stable
|
|
22
22
|
* @aliases Console, Output
|
|
23
23
|
* @documentation https://fusion.dev/helix/components/sandbox
|
|
24
24
|
*
|
|
@@ -16,7 +16,7 @@ import type { CSSResultGroup, TemplateResult } from 'lit';
|
|
|
16
16
|
* Both slots are bare, so an unfilled one generates no box and costs no gap.
|
|
17
17
|
*
|
|
18
18
|
* @since 0.1.0
|
|
19
|
-
* @status
|
|
19
|
+
* @status stable
|
|
20
20
|
* @aliases Action bar
|
|
21
21
|
* @documentation https://fusion.dev/helix/components/sandbox
|
|
22
22
|
*
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix",
|
|
3
3
|
"description": "Styled component tier. Extends the headless tier with token-driven presentation.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.52.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
},
|
|
48
48
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@fusion.dev/helix-core": "0.
|
|
51
|
-
"@fusion.dev/helix-headless": "0.
|
|
52
|
-
"@fusion.dev/helix-styles": "0.
|
|
50
|
+
"@fusion.dev/helix-core": "0.52.0",
|
|
51
|
+
"@fusion.dev/helix-headless": "0.52.0",
|
|
52
|
+
"@fusion.dev/helix-styles": "0.52.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@custom-elements-manifest/analyzer": "^0.11.0",
|
|
56
|
-
"@fusion.dev/helix-cem": "0.
|
|
57
|
-
"@fusion.dev/helix-testing": "0.
|
|
56
|
+
"@fusion.dev/helix-cem": "0.52.0",
|
|
57
|
+
"@fusion.dev/helix-testing": "0.52.0",
|
|
58
58
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
59
59
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
60
60
|
"@lit-labs/ssr": "^4.1.0",
|