@fusion.dev/helix 0.172.0 → 0.174.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 +2140 -93
- package/dist/copy-button/root/copy-button-root.css.js +1 -1
- package/dist/element-events.generated.js +8 -1
- package/dist/graph/root/graph-root.css.js +2 -1
- package/dist/orb/root/orb-root.css.js +1 -1
- package/dist/orb/root/orb-root.d.ts +24 -5
- package/dist/orb/root/orb-root.js +24 -6
- package/dist/sandbox/index.d.ts +1 -0
- package/dist/sandbox/index.js +1 -0
- package/dist/sandbox/preview/sandbox-preview.d.ts +39 -2
- package/dist/sandbox/preview/sandbox-preview.js +37 -5
- package/dist/sandbox/root/sandbox-root.css.js +1 -1
- package/dist/sandbox/root/sandbox-root.d.ts +44 -4
- package/dist/sandbox/root/sandbox-root.js +92 -17
- package/dist/sandbox/source/editing.d.ts +111 -0
- package/dist/sandbox/source/editing.js +185 -0
- package/dist/sandbox/source/sandbox-source.css.js +2 -1
- package/dist/sandbox/source/sandbox-source.d.ts +131 -6
- package/dist/sandbox/source/sandbox-source.js +301 -17
- package/dist/strands/palette.d.ts +1 -1
- package/dist/strands/path.d.ts +17 -6
- package/dist/strands/path.js +149 -43
- package/dist/strands/renderer.d.ts +14 -0
- package/dist/strands/renderer.js +14 -4
- package/dist/strands/root/strands-root.css.js +1 -1
- package/dist/strands/root/strands-root.d.ts +41 -10
- package/dist/strands/root/strands-root.js +32 -5
- package/dist/strands/shader.d.ts +3 -3
- package/dist/strands/shader.js +35 -12
- package/dist/strands/stop/strands-stop.d.ts +5 -5
- package/dist/timeline/root/timeline-root.css.js +1 -1
- package/dist/virtual-list/reorder/index.d.ts +1 -0
- package/dist/virtual-list/reorder/index.js +5 -0
- package/dist/virtual-list/reorder/virtual-list-reorder.css.d.ts +1 -0
- package/dist/virtual-list/reorder/virtual-list-reorder.css.js +12 -0
- package/dist/virtual-list/root/virtual-list-root.d.ts +9 -0
- package/lint.json +1 -1
- package/package.json +6 -6
- package/types/jsx.d.ts +919 -79
- package/types/vue.d.ts +214 -15
- package/types/words.d.ts +27 -0
package/types/vue.d.ts
CHANGED
|
@@ -1693,6 +1693,9 @@ separate actions. The semantics and the joining are separate questions:
|
|
|
1693
1693
|
`role="group"` and a shared name are what make a set of buttons a set, and
|
|
1694
1694
|
`helix-flex` gives the spacing without the group. */
|
|
1695
1695
|
variant?: (HelixButtonGroup["variant"]) | undefined;
|
|
1696
|
+
/** Disables every button in the group, and says so on the group with
|
|
1697
|
+
`aria-disabled`. Reflected, so a stylesheet can select on it. */
|
|
1698
|
+
disabled?: (HelixButtonGroup["disabled"]) | undefined;
|
|
1696
1699
|
/** Keeps at least one button pressed once one is, as React Aria's
|
|
1697
1700
|
`disallowEmptySelection`: a press that would leave none pressed is
|
|
1698
1701
|
refused. */
|
|
@@ -1742,6 +1745,9 @@ A button's own `value` names it, so a value holds no comma.
|
|
|
1742
1745
|
The attribute is the seed, and a press changes the property, which does
|
|
1743
1746
|
not reflect, as a native control's `value` does not. */
|
|
1744
1747
|
value?: (HelixButtonGroup["value"]) | undefined;
|
|
1748
|
+
/** The pressed values as a list, in a selection mode, and an empty list
|
|
1749
|
+
otherwise. Written, it presses exactly those buttons. */
|
|
1750
|
+
values?: (HelixButtonGroup["values"]) | undefined;
|
|
1745
1751
|
};
|
|
1746
1752
|
|
|
1747
1753
|
export type HelixButtonGroupVueEvents = {
|
|
@@ -2513,6 +2519,9 @@ Third", rather than with a comma this component chose. */
|
|
|
2513
2519
|
/** The text read with a card that has connections both ways. `{leadsTo}` is
|
|
2514
2520
|
`leads-to-label` and `{comesFrom}` is `comes-from-label`, each filled in. */
|
|
2515
2521
|
linkedLabel?: (HelixCanvas["linkedLabel"]) | undefined;
|
|
2522
|
+
/** Marks the board as busy while its document arrives: the board is
|
|
2523
|
+
`aria-busy`, and the `loading` slot is shown. */
|
|
2524
|
+
loading?: (HelixCanvas["loading"]) | undefined;
|
|
2516
2525
|
/** What screen readers hear after a key moves a card, with `{name}` for the
|
|
2517
2526
|
card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
2518
2527
|
|
|
@@ -5545,6 +5554,24 @@ Defaulted rather than left empty. An icon-only control must be named, and
|
|
|
5545
5554
|
the name of this one is not a judgment call: every copy button in the
|
|
5546
5555
|
world is called Copy. A consumer with a better word still sets it. */
|
|
5547
5556
|
label?: (HelixCopyButton["label"]) | undefined;
|
|
5557
|
+
/** Draws the name as words beside the icon, and the result in their place
|
|
5558
|
+
after a press. The button stays as wide as the longest of them. */
|
|
5559
|
+
"show-label"?: (HelixCopyButton["showLabel"]) | undefined;
|
|
5560
|
+
/** Draws the name as words beside the icon, and the result in their place
|
|
5561
|
+
after a press. The button stays as wide as the longest of them. */
|
|
5562
|
+
showLabel?: (HelixCopyButton["showLabel"]) | undefined;
|
|
5563
|
+
/** When the tooltip shows: `full` on hover and focus and after a press,
|
|
5564
|
+
`copy` only after a press, to show the result, and `none` never, for a
|
|
5565
|
+
button whose result shows another way, such as under `show-label`.
|
|
5566
|
+
|
|
5567
|
+
Unset is `full`, and the attribute stays absent until you write it. */
|
|
5568
|
+
tooltip?: (HelixCopyButton["tooltip"]) | undefined;
|
|
5569
|
+
/** The side the tooltip prefers. It moves to another side where this one
|
|
5570
|
+
does not fit. */
|
|
5571
|
+
"tooltip-placement"?: (HelixCopyButton["tooltipPlacement"]) | undefined;
|
|
5572
|
+
/** The side the tooltip prefers. It moves to another side where this one
|
|
5573
|
+
does not fit. */
|
|
5574
|
+
tooltipPlacement?: (HelixCopyButton["tooltipPlacement"]) | undefined;
|
|
5548
5575
|
/** The text copied to the clipboard.
|
|
5549
5576
|
|
|
5550
5577
|
It replaces `Button.value`, the submit value: a copy button never submits,
|
|
@@ -8851,6 +8878,13 @@ or hides its notes. Drawn where the notes have two groups or more. */
|
|
|
8851
8878
|
"links-to-label"?: (HelixGraph["linksToLabel"]) | undefined;
|
|
8852
8879
|
/** How a note that links to the selected one is described, with `{note}`. */
|
|
8853
8880
|
linksToLabel?: (HelixGraph["linksToLabel"]) | undefined;
|
|
8881
|
+
/** Marks the graph as busy while its notes arrive: the list is `aria-busy`,
|
|
8882
|
+
and the panel says so where it holds no notes yet. */
|
|
8883
|
+
loading?: (HelixGraph["loading"]) | undefined;
|
|
8884
|
+
/** What the panel says while `loading` is set and the list holds no notes. */
|
|
8885
|
+
"loading-label"?: (HelixGraph["loadingLabel"]) | undefined;
|
|
8886
|
+
/** What the panel says while `loading` is set and the list holds no notes. */
|
|
8887
|
+
loadingLabel?: (HelixGraph["loadingLabel"]) | undefined;
|
|
8854
8888
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
8855
8889
|
"moved-down-label"?: (HelixGraph["movedDownLabel"]) | undefined;
|
|
8856
8890
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
@@ -8923,6 +8957,16 @@ own, since the fallback name is the same word. Empty leaves the role. */
|
|
|
8923
8957
|
links?: (HelixGraph["links"]) | undefined;
|
|
8924
8958
|
/** The notes. A property, never an attribute. */
|
|
8925
8959
|
nodes?: (HelixGraph["nodes"]) | undefined;
|
|
8960
|
+
/** What each note's row in the list shows in place of its name: a function
|
|
8961
|
+
given the note that returns text, an element or a Lit template.
|
|
8962
|
+
|
|
8963
|
+
For an icon by its kind, or a date under its name, as React Aria's
|
|
8964
|
+
`ListBoxItem` takes children. The row is still named by the note's name,
|
|
8965
|
+
which typeahead and the search find it by, and described by how it stands
|
|
8966
|
+
to the selected note. Return the name with your content where it should
|
|
8967
|
+
still show. A property only, there being no way to write a function in
|
|
8968
|
+
markup. */
|
|
8969
|
+
noteContent?: (HelixGraph["noteContent"]) | undefined;
|
|
8926
8970
|
};
|
|
8927
8971
|
|
|
8928
8972
|
export type HelixGraphVueEvents = {
|
|
@@ -10820,7 +10864,8 @@ itself. */
|
|
|
10820
10864
|
type?: (HelixList["type"]) | undefined;
|
|
10821
10865
|
/** The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.
|
|
10822
10866
|
|
|
10823
|
-
|
|
10867
|
+
A press or a key writes it in row order, as Data Table does, whatever
|
|
10868
|
+
order the rows were chosen in. Set it to start with rows selected. A row's value is its `value`, or its
|
|
10824
10869
|
words where it has none. */
|
|
10825
10870
|
value?: (HelixList["value"]) | undefined;
|
|
10826
10871
|
};
|
|
@@ -13672,6 +13717,10 @@ box the sections scroll in. */
|
|
|
13672
13717
|
/** The navigation's name, read by screen readers. A heading in the `heading`
|
|
13673
13718
|
slot names it in place of this. */
|
|
13674
13719
|
label?: (HelixOutline["label"]) | undefined;
|
|
13720
|
+
/** Which links are marked. `reading` marks the one section being read, the
|
|
13721
|
+
last whose heading has passed the reading line. `visible` marks every
|
|
13722
|
+
section with part of it on screen, and the mark runs across their links. */
|
|
13723
|
+
marks?: (HelixOutline["marks"]) | undefined;
|
|
13675
13724
|
/** How far below the top of the scroll container a heading counts as reached,
|
|
13676
13725
|
in pixels. The scroll container is the window or the panel the sections
|
|
13677
13726
|
scroll in.
|
|
@@ -15057,6 +15106,9 @@ export type HelixSandboxPreviewHelixResizeElementEvent =
|
|
|
15057
15106
|
HelixSandboxPreviewElementEvent<HelixResizeEvent>;
|
|
15058
15107
|
|
|
15059
15108
|
export type HelixSandboxPreviewVueProps = {
|
|
15109
|
+
/** The address the packages in `dependencies` load from, which the name, an
|
|
15110
|
+
`@` and the version follow. */
|
|
15111
|
+
cdn?: (HelixSandboxPreview["cdn"]) | undefined;
|
|
15060
15112
|
/** The color mode the frame renders in.
|
|
15061
15113
|
|
|
15062
15114
|
**The frame is a document and a document has its own color mode.** Setting
|
|
@@ -15088,6 +15140,11 @@ including every one of the 24 series colors a chart reads. */
|
|
|
15088
15140
|
/** Whether the preview draws a reload button and a button that opens the
|
|
15089
15141
|
example in a new tab, in its corner. */
|
|
15090
15142
|
controls?: (HelixSandboxPreview["controls"]) | undefined;
|
|
15143
|
+
/** The npm packages an example can import by name in the built-in document,
|
|
15144
|
+
each name to a version or a range, as a `package.json` lists them. Each
|
|
15145
|
+
loads from `cdn`. Set it as JSON in the attribute or as an object. Not
|
|
15146
|
+
read where `src` is set. */
|
|
15147
|
+
dependencies?: (HelixSandboxPreview["dependencies"]) | undefined;
|
|
15091
15148
|
/** Writing direction inside the frame.
|
|
15092
15149
|
|
|
15093
15150
|
Not reflected. It is payload for the render message and nothing selects on
|
|
@@ -15114,6 +15171,10 @@ Not reflected, for `direction`'s reason: the placement is applied by the
|
|
|
15114
15171
|
document inside the frame, against its own root, so no rule on this side
|
|
15115
15172
|
could read it. */
|
|
15116
15173
|
layout?: (HelixSandboxPreview["layout"]) | undefined;
|
|
15174
|
+
/** Module files an example imports by a relative path in the built-in
|
|
15175
|
+
document, each path, such as `utils.js`, to its source. Not read where
|
|
15176
|
+
`src` is set. */
|
|
15177
|
+
modules?: (HelixSandboxPreview["modules"]) | undefined;
|
|
15117
15178
|
/** The name of the button that opens the example in a new tab, under
|
|
15118
15179
|
`controls`. */
|
|
15119
15180
|
"open-label"?: (HelixSandboxPreview["openLabel"]) | undefined;
|
|
@@ -15241,6 +15302,12 @@ names below keeps that true whichever way round they sit.
|
|
|
15241
15302
|
`split` follows the lead pane rather than the source, so `split="30"` means
|
|
15242
15303
|
the same thing in both directions: thirty percent to whatever comes first. */
|
|
15243
15304
|
lead?: (HelixSandbox["lead"]) | undefined;
|
|
15305
|
+
/** The description of a file tab whose pane holds an edit, read by screen
|
|
15306
|
+
readers after the file's name. */
|
|
15307
|
+
"modified-label"?: (HelixSandbox["modifiedLabel"]) | undefined;
|
|
15308
|
+
/** The description of a file tab whose pane holds an edit, read by screen
|
|
15309
|
+
readers after the file's name. */
|
|
15310
|
+
modifiedLabel?: (HelixSandbox["modifiedLabel"]) | undefined;
|
|
15244
15311
|
/** Whether the panes sit side by side or stacked.
|
|
15245
15312
|
|
|
15246
15313
|
Not reflected, for `lead`'s reason above: no rule selects on it. The axis
|
|
@@ -15348,6 +15415,23 @@ export type HelixSandboxSourceHelixEditElementEvent =
|
|
|
15348
15415
|
HelixSandboxSourceElementEvent<HelixEditEvent>;
|
|
15349
15416
|
|
|
15350
15417
|
export type HelixSandboxSourceVueProps = {
|
|
15418
|
+
/** Whether typing an opening bracket or quote types its closing one too, and
|
|
15419
|
+
a bracket typed with text selected goes around it. */
|
|
15420
|
+
"close-brackets"?: (HelixSandboxSource["closeBrackets"]) | undefined;
|
|
15421
|
+
/** Whether typing an opening bracket or quote types its closing one too, and
|
|
15422
|
+
a bracket typed with text selected goes around it. */
|
|
15423
|
+
closeBrackets?: (HelixSandboxSource["closeBrackets"]) | undefined;
|
|
15424
|
+
/** Whether the pane offers completions for the word before the caret, from
|
|
15425
|
+
the words of the source and of `completions`. */
|
|
15426
|
+
complete?: (HelixSandboxSource["complete"]) | undefined;
|
|
15427
|
+
/** Words the pane offers under `complete` beside the words of the source,
|
|
15428
|
+
such as tag and attribute names. `manifestWords` reads them from a custom
|
|
15429
|
+
elements manifest. Set it as JSON in the attribute or as an array. */
|
|
15430
|
+
completions?: (HelixSandboxSource["completions"]) | undefined;
|
|
15431
|
+
/** The name of the list of completions, read by screen readers. */
|
|
15432
|
+
"completions-label"?: (HelixSandboxSource["completionsLabel"]) | undefined;
|
|
15433
|
+
/** The name of the list of completions, read by screen readers. */
|
|
15434
|
+
completionsLabel?: (HelixSandboxSource["completionsLabel"]) | undefined;
|
|
15351
15435
|
/** The editable region's name, read by screen readers. */
|
|
15352
15436
|
"field-label"?: (HelixSandboxSource["fieldLabel"]) | undefined;
|
|
15353
15437
|
/** The editable region's name, read by screen readers. */
|
|
@@ -15371,6 +15455,12 @@ holds several panes. Empty puts the pane's `name` on the tab. */
|
|
|
15371
15455
|
"line-numbers"?: (HelixSandboxSource["lineNumbers"]) | undefined;
|
|
15372
15456
|
/** Whether each line of the source is numbered, in a gutter beside it. */
|
|
15373
15457
|
lineNumbers?: (HelixSandboxSource["lineNumbers"]) | undefined;
|
|
15458
|
+
/** Whether the bracket beside the caret and its pair are marked while the
|
|
15459
|
+
field has focus. */
|
|
15460
|
+
"match-brackets"?: (HelixSandboxSource["matchBrackets"]) | undefined;
|
|
15461
|
+
/** Whether the bracket beside the caret and its pair are marked while the
|
|
15462
|
+
field has focus. */
|
|
15463
|
+
matchBrackets?: (HelixSandboxSource["matchBrackets"]) | undefined;
|
|
15374
15464
|
/** Which source this pane holds. Every `helix-before-edit` event includes it.
|
|
15375
15465
|
|
|
15376
15466
|
`html` and `css` are what the sandbox root routes on; any other name is
|
|
@@ -15378,6 +15468,14 @@ passed through untouched for a consumer wiring their own panes.
|
|
|
15378
15468
|
|
|
15379
15469
|
Not reflected: nothing selects on it, so it keeps a real default instead. */
|
|
15380
15470
|
name?: (HelixSandboxSource["name"]) | undefined;
|
|
15471
|
+
/** Whether the source is read only: it can be selected and copied, and not
|
|
15472
|
+
edited, as Sandpack's `readOnly` file is. Tab moves focus out of a field
|
|
15473
|
+
that is read only. */
|
|
15474
|
+
readonly?: (HelixSandboxSource["readOnly"]) | undefined;
|
|
15475
|
+
/** Whether the source is read only: it can be selected and copied, and not
|
|
15476
|
+
edited, as Sandpack's `readOnly` file is. Tab moves focus out of a field
|
|
15477
|
+
that is read only. */
|
|
15478
|
+
readOnly?: (HelixSandboxSource["readOnly"]) | undefined;
|
|
15381
15479
|
/** Whether Tab indents the source. When it is off, Tab moves focus. */
|
|
15382
15480
|
"tab-indents"?: (HelixSandboxSource["tabIndents"]) | undefined;
|
|
15383
15481
|
/** Whether Tab indents the source. When it is off, Tab moves focus. */
|
|
@@ -16700,6 +16798,13 @@ that should survive its own collapse says how much of itself to keep, and
|
|
|
16700
16798
|
only whoever put it there knows that, which is the same reason `min` is a
|
|
16701
16799
|
consumer's to set. */
|
|
16702
16800
|
collapsedSize?: (HelixSplitter["collapsedSize"]) | undefined;
|
|
16801
|
+
/** Which panes can be collapsed, as Zag's panels each take `collapsible`:
|
|
16802
|
+
`start`, `end`, `both`, or `none`. A pane that cannot be collapsed stops
|
|
16803
|
+
at the edge without shutting. `Enter` collapses the end pane where only
|
|
16804
|
+
the end pane can be collapsed, and the start pane otherwise.
|
|
16805
|
+
|
|
16806
|
+
Unset is `both`, and the attribute stays absent until you write it. */
|
|
16807
|
+
collapsible?: (HelixSplitter["collapsible"]) | undefined;
|
|
16703
16808
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
16704
16809
|
"corner-label"?: (HelixSplitter["cornerLabel"]) | undefined;
|
|
16705
16810
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
@@ -16728,6 +16833,18 @@ these words are the whole of where it is. */
|
|
|
16728
16833
|
"default-position"?: (HelixSplitter["defaultPosition"] | `${number}`) | undefined;
|
|
16729
16834
|
/** Where the divider starts, when `position` is not set. */
|
|
16730
16835
|
defaultPosition?: (HelixSplitter["defaultPosition"]) | undefined;
|
|
16836
|
+
/** The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
16837
|
+
a CSS length such as `16rem` resolved against the splitter's box. The
|
|
16838
|
+
divider stops that far from the end, whatever `max` allows, so `min` and
|
|
16839
|
+
`end-min` hold a minimum for each pane, as Zag's panels each take
|
|
16840
|
+
`minSize`. */
|
|
16841
|
+
"end-min"?: (HelixSplitter["endMin"]) | undefined;
|
|
16842
|
+
/** The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
16843
|
+
a CSS length such as `16rem` resolved against the splitter's box. The
|
|
16844
|
+
divider stops that far from the end, whatever `max` allows, so `min` and
|
|
16845
|
+
`end-min` hold a minimum for each pane, as Zag's panels each take
|
|
16846
|
+
`minSize`. */
|
|
16847
|
+
endMin?: (HelixSplitter["endMin"]) | undefined;
|
|
16731
16848
|
/** The divider's name, read by screen readers.
|
|
16732
16849
|
|
|
16733
16850
|
An `aria-label` or `aria-labelledby` on the host names the divider too,
|
|
@@ -17033,23 +17150,43 @@ export type HelixStrandsHelixStrandsFallbackElementEvent =
|
|
|
17033
17150
|
HelixStrandsElementEvent<HelixStrandsFallbackEvent>;
|
|
17034
17151
|
|
|
17035
17152
|
export type HelixStrandsVueProps = {
|
|
17036
|
-
/** Where the form sits across the box, as a share of the width: the
|
|
17037
|
-
|
|
17038
|
-
crosses the whole width and does not read it. Unset, a
|
|
17153
|
+
/** Where the form sits across the box, as a share of the width: the bend's
|
|
17154
|
+
apex or the ribbon's axis. `0` is the left edge and `1` the right. A wave
|
|
17155
|
+
crosses the whole width and does not read it. Unset, a bend's apex sits at `0.5`
|
|
17039
17156
|
and a ribbon runs down the middle.
|
|
17040
17157
|
|
|
17041
17158
|
**A share rather than a length**, so the ribbon keeps its place when the
|
|
17042
17159
|
box changes shape. Read inside a box only; in `travel` each stop has its
|
|
17043
17160
|
own. */
|
|
17044
17161
|
at?: (HelixStrands["at"]) | undefined;
|
|
17162
|
+
/** How much the glow around the strands adds, as a multiplier. `0` draws the
|
|
17163
|
+
strands alone, crisp and dimmer, and `1` is the default glow. */
|
|
17164
|
+
bloom?: (HelixStrands["bloom"]) | undefined;
|
|
17165
|
+
/** How far apart the brightest and dimmest strands are, from `0`, most of
|
|
17166
|
+
them alike, to `1`, a few burning bright over many faint ones. Clamped to
|
|
17167
|
+
that range. The ribbon as a whole keeps its strength. */
|
|
17168
|
+
contrast?: (HelixStrands["contrast"]) | undefined;
|
|
17045
17169
|
/** How many strands the ribbon has, from `0`, sixty, to `1`, three hundred and
|
|
17046
17170
|
forty. Clamped to that range. */
|
|
17047
17171
|
density?: (HelixStrands["density"]) | undefined;
|
|
17172
|
+
/** How much the ribbon's depth shows, from `0`, flat, to `1`. Clamped to that
|
|
17173
|
+
range. The strands at the front of the ribbon's roll are drawn thicker,
|
|
17174
|
+
brighter, and further from its axis, and those at the back thinner, dimmer,
|
|
17175
|
+
and out of focus. */
|
|
17176
|
+
depth?: (HelixStrands["depth"]) | undefined;
|
|
17177
|
+
/** How differently each strand moves, from `0`, the whole ribbon rolling and
|
|
17178
|
+
waving as one, to `1`, each strand at its own pace and angle, crossing
|
|
17179
|
+
over the others. Clamped to that range. */
|
|
17180
|
+
drift?: (HelixStrands["drift"]) | undefined;
|
|
17181
|
+
/** How many specks of dust drift around the strands, as a multiplier: `0`
|
|
17182
|
+
draws none, `1` six hundred, and `4`, the most, two thousand four
|
|
17183
|
+
hundred. They gather where the ribbon is brightest. */
|
|
17184
|
+
dust?: (HelixStrands["dust"]) | undefined;
|
|
17048
17185
|
/** Overall brightness, as a multiplier on the light. */
|
|
17049
17186
|
gain?: (HelixStrands["gain"]) | undefined;
|
|
17050
17187
|
/** The share of strands drawn out of focus where the ribbon is wide, from `0`,
|
|
17051
17188
|
every strand sharp, to `1`, every one soft. Clamped to that range. A tight
|
|
17052
|
-
form, such as a
|
|
17189
|
+
form, such as a bend's apex or a wave, stays sharp whatever this says. */
|
|
17053
17190
|
softness?: (HelixStrands["softness"]) | undefined;
|
|
17054
17191
|
/** How fast the ribbon moves, as a multiplier on time. `0` holds it still. */
|
|
17055
17192
|
speed?: (HelixStrands["speed"]) | undefined;
|
|
@@ -17072,9 +17209,9 @@ export type HelixStrandsVueEvents = {
|
|
|
17072
17209
|
};
|
|
17073
17210
|
|
|
17074
17211
|
export type HelixStrandsStopVueProps = {
|
|
17075
|
-
/** Where the form sits across the page, as a share of the width: the
|
|
17076
|
-
|
|
17077
|
-
read it. Unset, a
|
|
17212
|
+
/** Where the form sits across the page, as a share of the width: the bend's
|
|
17213
|
+
apex or the ribbon's axis. A wave crosses the whole width and does not
|
|
17214
|
+
read it. Unset, a bend's apex sits at `0.5` and a ribbon runs down the middle. */
|
|
17078
17215
|
at?: (HelixStrandsStop["at"]) | undefined;
|
|
17079
17216
|
/** The id of the element the form is pinned to, in the same tree as the stop. */
|
|
17080
17217
|
for?: (HelixStrandsStop["for"]) | undefined;
|
|
@@ -19146,6 +19283,18 @@ imperatively later, and nothing is hydrating by then.
|
|
|
19146
19283
|
|
|
19147
19284
|
Here rather than on each control. */
|
|
19148
19285
|
name?: (HelixTimePicker["name"]) | undefined;
|
|
19286
|
+
/** What each time in the list shows: a function given the time as `HH:mm`,
|
|
19287
|
+
or `HH:mm:ss` with `seconds`, and the time as the row writes it, that
|
|
19288
|
+
returns text, an element or a Lit template.
|
|
19289
|
+
|
|
19290
|
+
For the seats left at a time, or a caption under it, as React Aria's
|
|
19291
|
+
`ListBoxItem` takes children. Content with `slot="start"`, `slot="end"`
|
|
19292
|
+
or `slot="description"` goes to that slot of the row, and a description
|
|
19293
|
+
is read after the time. The row is still named by the written time, and
|
|
19294
|
+
typeahead still finds it by that. Return the written time with your
|
|
19295
|
+
content where it should still show. A property only, there being no way
|
|
19296
|
+
to write a function in markup. The wheels draw their own figures. */
|
|
19297
|
+
timeContent?: (HelixTimePicker["timeContent"]) | undefined;
|
|
19149
19298
|
/** The value as a `Date` on 1 January 1970 UTC, or `null` while there is no time.
|
|
19150
19299
|
|
|
19151
19300
|
The platform's own pair on `<input type="time">`, epoch day included: a time
|
|
@@ -19233,6 +19382,13 @@ they run down it. */
|
|
|
19233
19382
|
orientation?: (HelixTimeline["orientation"]) | undefined;
|
|
19234
19383
|
/** Accessible name for the timeline, for people who reach it out of context. */
|
|
19235
19384
|
label?: (HelixTimeline["label"]) | undefined;
|
|
19385
|
+
/** Marks the timeline as busy fetching more entries, and draws an entry
|
|
19386
|
+
after the last that says so. */
|
|
19387
|
+
loading?: (HelixTimeline["loading"]) | undefined;
|
|
19388
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
19389
|
+
"loading-label"?: (HelixTimeline["loadingLabel"]) | undefined;
|
|
19390
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
19391
|
+
loadingLabel?: (HelixTimeline["loadingLabel"]) | undefined;
|
|
19236
19392
|
};
|
|
19237
19393
|
|
|
19238
19394
|
export type HelixTimelineVueEvents = {};
|
|
@@ -21149,12 +21305,18 @@ export type HelixVirtualListElementEvent<E = Event> = TypedEvent<
|
|
|
21149
21305
|
/** `helix-before-change` event type */
|
|
21150
21306
|
export type HelixVirtualListHelixBeforeChangeElementEvent =
|
|
21151
21307
|
HelixVirtualListElementEvent<HelixBeforeChangeEvent>;
|
|
21308
|
+
/** `helix-before-reorder` event type */
|
|
21309
|
+
export type HelixVirtualListHelixBeforeReorderElementEvent =
|
|
21310
|
+
HelixVirtualListElementEvent<HelixBeforeReorderEvent>;
|
|
21152
21311
|
/** `helix-load-more` event type */
|
|
21153
21312
|
export type HelixVirtualListHelixLoadMoreElementEvent =
|
|
21154
21313
|
HelixVirtualListElementEvent<HelixLoadMoreEvent>;
|
|
21155
21314
|
/** `helix-range-change` event type */
|
|
21156
21315
|
export type HelixVirtualListHelixRangeChangeElementEvent =
|
|
21157
21316
|
HelixVirtualListElementEvent<HelixRangeChangeEvent>;
|
|
21317
|
+
/** `helix-reorder` event type */
|
|
21318
|
+
export type HelixVirtualListHelixReorderElementEvent =
|
|
21319
|
+
HelixVirtualListElementEvent<HelixReorderEvent>;
|
|
21158
21320
|
|
|
21159
21321
|
export type HelixVirtualListVueProps = {
|
|
21160
21322
|
/** How many items a line holds. One, the default, is a list; more lays the
|
|
@@ -21234,6 +21396,13 @@ and scrolls it sideways: Left and Right move between items, the other
|
|
|
21234
21396
|
way round on a right-to-left page, and `estimate` is an item's width. A
|
|
21235
21397
|
grid always runs down. */
|
|
21236
21398
|
orientation?: (HelixVirtualList["orientation"]) | undefined;
|
|
21399
|
+
/** Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`
|
|
21400
|
+
(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt
|
|
21401
|
+
with an arrow moves the row the keys are on, and a pointer drags a row.
|
|
21402
|
+
The list moves no item itself: you move your `items` on `helix-reorder`.
|
|
21403
|
+
Without that import it does nothing, so a list that never moves items
|
|
21404
|
+
carries none of the code. A list of one column, without sections. */
|
|
21405
|
+
reorderable?: (HelixVirtualList["reorderable"]) | undefined;
|
|
21237
21406
|
/** The field of each item that names its section, as a key or a path of
|
|
21238
21407
|
keys. Set, the items are drawn in sections: a header, then the items, in
|
|
21239
21408
|
an element with the `group` role that the header names. A section starts
|
|
@@ -21299,10 +21468,14 @@ export type HelixVirtualListVueEvents = {
|
|
|
21299
21468
|
change: HelixVirtualListElementEvent;
|
|
21300
21469
|
/** Fired before a press or a key changes which items are selected, with the `value` it would leave. Cancelable. */
|
|
21301
21470
|
"helix-before-change": HelixVirtualListHelixBeforeChangeElementEvent;
|
|
21471
|
+
/** Fired when an item is dropped at a new place, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported, with every key in the new order. Cancelable: cancel it to keep the item where it is. */
|
|
21472
|
+
"helix-before-reorder": HelixVirtualListHelixBeforeReorderElementEvent;
|
|
21302
21473
|
/** Fired when a reader comes within one screen of the last item, once for each length of the set. */
|
|
21303
21474
|
"helix-load-more": HelixVirtualListHelixLoadMoreElementEvent;
|
|
21304
21475
|
/** Fired when the items on screen change, with the new `first` and `last`, which `range` also holds. */
|
|
21305
21476
|
"helix-range-change": HelixVirtualListHelixRangeChangeElementEvent;
|
|
21477
|
+
/** Fired after `helix-before-reorder` when nobody canceled it. Set `items` to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
|
|
21478
|
+
"helix-reorder": HelixVirtualListHelixReorderElementEvent;
|
|
21306
21479
|
};
|
|
21307
21480
|
|
|
21308
21481
|
export type CustomCssProperties = {
|
|
@@ -22812,6 +22985,8 @@ export type CustomCssProperties = {
|
|
|
22812
22985
|
"--orb-ground"?: (string) | undefined;
|
|
22813
22986
|
/** The diameter. Overrides `size`. */
|
|
22814
22987
|
"--orb-size"?: (string) | undefined;
|
|
22988
|
+
/** How fast the dots move, as a multiple of each state's own tempo. Defaults to `1`. */
|
|
22989
|
+
"--orb-speed"?: (string) | undefined;
|
|
22815
22990
|
/** The color of the heading in the `heading` slot. */
|
|
22816
22991
|
"--outline-heading-color"?: (string) | undefined;
|
|
22817
22992
|
/** How far each level is inset from the one above. */
|
|
@@ -23022,10 +23197,16 @@ export type CustomCssProperties = {
|
|
|
23022
23197
|
"--sandbox-separator-color"?: (string) | undefined;
|
|
23023
23198
|
/** Fill behind the source. */
|
|
23024
23199
|
"--sandbox-source-background-color"?: (string) | undefined;
|
|
23200
|
+
/** Fill behind a matched bracket, under `match-brackets`. Defaults to `--helix-color-accent-subtle`. */
|
|
23201
|
+
"--sandbox-source-bracket-color"?: (string) | undefined;
|
|
23025
23202
|
/** Color of a `callable` run, under `tokenize`. Defaults to `--helix-color-syntax-callable`. */
|
|
23026
23203
|
"--sandbox-source-callable-color"?: (string) | undefined;
|
|
23027
23204
|
/** Color of a `comment` run, under `tokenize`. Defaults to `--helix-color-syntax-comment`. */
|
|
23028
23205
|
"--sandbox-source-comment-color"?: (string) | undefined;
|
|
23206
|
+
/** Width of the edge of the list of completions, under `complete`. Defaults to `--helix-border-floating`. */
|
|
23207
|
+
"--sandbox-source-completions-border-width"?: (string) | undefined;
|
|
23208
|
+
/** Shadow under the list of completions, under `complete`. Defaults to `--helix-shadow-floating`. */
|
|
23209
|
+
"--sandbox-source-completions-shadow"?: (string) | undefined;
|
|
23029
23210
|
/** Color of a `constant` run, under `tokenize`. Defaults to `--helix-color-syntax-constant`. */
|
|
23030
23211
|
"--sandbox-source-constant-color"?: (string) | undefined;
|
|
23031
23212
|
/** Color of an `invalid` run, under `tokenize`. Defaults to `--helix-color-syntax-invalid`. */
|
|
@@ -23322,7 +23503,7 @@ export type CustomCssProperties = {
|
|
|
23322
23503
|
"--strands-ground"?: (string) | undefined;
|
|
23323
23504
|
/** The hottest strands, and on a light page the ink the light darkens toward. Defaults to `--helix-color-primary-hover` on a dark page and `--helix-color-primary-active` on a light one. */
|
|
23324
23505
|
"--strands-peak"?: (string) | undefined;
|
|
23325
|
-
/** The color of a few strands, for depth. Defaults to `--helix-color-
|
|
23506
|
+
/** The color of a few strands, for depth. Defaults to `--helix-color-accent`, which is the primary itself unless the theme relates an accent to the brand, as `accent: { from: 'brand', rotate: 40 }` does. */
|
|
23326
23507
|
"--strands-tint"?: (string) | undefined;
|
|
23327
23508
|
/** Height of the track. The width follows it. */
|
|
23328
23509
|
"--switch-block-size"?: (string) | undefined;
|
|
@@ -23780,6 +23961,24 @@ export type CustomCssProperties = {
|
|
|
23780
23961
|
"--virtual-list-block-size"?: (string) | undefined;
|
|
23781
23962
|
/** How faint a row `disabled-keys` names is drawn. */
|
|
23782
23963
|
"--virtual-list-disabled-opacity"?: (string) | undefined;
|
|
23964
|
+
/** The fill behind the copy of a row a pointer drags, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported. */
|
|
23965
|
+
"--virtual-list-drag-preview-background-color"?: (string) | undefined;
|
|
23966
|
+
/** The color of the edge around the copy of a row a pointer drags. */
|
|
23967
|
+
"--virtual-list-drag-preview-border-color"?: (string) | undefined;
|
|
23968
|
+
/** The width of the edge around the copy of a row a pointer drags. None by default, where the shadow lifts it. */
|
|
23969
|
+
"--virtual-list-drag-preview-border-width"?: (string) | undefined;
|
|
23970
|
+
/** The opacity of the copy of a row a pointer drags. */
|
|
23971
|
+
"--virtual-list-drag-preview-opacity"?: (string) | undefined;
|
|
23972
|
+
/** The corner radius of the copy of a row a pointer drags. */
|
|
23973
|
+
"--virtual-list-drag-preview-radius"?: (string) | undefined;
|
|
23974
|
+
/** The shadow that raises the copy of a row a pointer drags over the page. */
|
|
23975
|
+
"--virtual-list-drag-preview-shadow"?: (string) | undefined;
|
|
23976
|
+
/** The opacity of a row being dragged, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported. */
|
|
23977
|
+
"--virtual-list-dragging-opacity"?: (string) | undefined;
|
|
23978
|
+
/** The color of the line where a dragged row would land. */
|
|
23979
|
+
"--virtual-list-drop-indicator-color"?: (string) | undefined;
|
|
23980
|
+
/** The thickness of the line where a dragged row would land. */
|
|
23981
|
+
"--virtual-list-drop-indicator-size"?: (string) | undefined;
|
|
23783
23982
|
/** The color of the text in the row shown when there are no items. */
|
|
23784
23983
|
"--virtual-list-empty-color"?: (string) | undefined;
|
|
23785
23984
|
/** The space around the text in the row shown when there are no items. */
|
|
@@ -24368,7 +24567,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
24368
24567
|
HelixOptionSeparatorVueProps,
|
|
24369
24568
|
HelixOptionSeparatorVueEvents
|
|
24370
24569
|
>;
|
|
24371
|
-
/** A cloud of dots drawn to a canvas, with one shape per state: - 'connecting' and 'thinking': the same leaning sash, differing in how agitated it is. - 'waiting' and 'done': the same settled ball at different tempos. - 'fetching': a globe with a light moving around it. - 'listening': a closed sphere with a ripple crossing it. - 'working': a ring. Every state is the same banded grid with different parameters. Changing state interpolates the parameters, so every frame in between is a complete shape. A small change gets less time than a large one, such as a sash becoming a ring. The outline changes first, so the light starts orbiting only after the shape is round. The cloud does not rotate, and all movement happens inside it. The exception is the light, which travels because a ring of evenly spaced dots looks the same when rotated, so a turning state needs something fixed passing over it. Colors come from '--orb-color' and '--orb-ground'. Each dot's color is mixed toward the ground color by its depth, so depth holds when the theme changes. The animation stops when the orb is off screen or in a background tab. With 'prefers-reduced-motion', it draws one still frame. The orb is styled only and has behavior, which the tier split does not otherwise allow. Its role, name and busy state follow 'state', unless 'announce' makes it a status region, and the rest is drawing dots to a canvas
|
|
24570
|
+
/** A cloud of dots drawn to a canvas, with one shape per state: - 'connecting' and 'thinking': the same leaning sash, differing in how agitated it is. - 'waiting' and 'done': the same settled ball at different tempos. - 'fetching': a globe with a light moving around it. - 'listening': a closed sphere with a ripple crossing it. - 'working': a ring. Every state is the same banded grid with different parameters. Changing state interpolates the parameters, so every frame in between is a complete shape. A small change gets less time than a large one, such as a sash becoming a ring. The outline changes first, so the light starts orbiting only after the shape is round. The cloud does not rotate, and all movement happens inside it. The exception is the light, which travels because a ring of evenly spaced dots looks the same when rotated, so a turning state needs something fixed passing over it. Colors come from '--orb-color' and '--orb-ground'. Each dot's color is mixed toward the ground color by its depth, so depth holds when the theme changes. The animation stops when the orb is off screen or in a background tab. With 'prefers-reduced-motion', it draws one still frame. The orb is styled only and has behavior, which the tier split does not otherwise allow. Its role, name and busy state follow 'state', unless 'announce' makes it a status region, and the rest is drawing dots to a canvas. **A shape of your own goes in the default slot**, such as an SVG, an image, or an animation. The orb draws it over its box in place of the dots and stops drawing them, and keeps its role, name, busy state and custom states, so your stylesheet can change what you slotted by state, such as 'helix-orb:state(working) svg { animation-duration: 1s }'. What you slot is for the eye: a screen reader hears the orb's name. '--orb-speed' scales how fast the dots move, so '0.5' is a calmer orb at half the tempo. Each state is also a custom state, such as ':state(thinking)' or ':state(done)', so a page can style what sits around an orb by what it shows, whether the state was written as an attribute or set from script. */
|
|
24372
24571
|
"helix-orb": DefineCustomElement<
|
|
24373
24572
|
HelixOrb,
|
|
24374
24573
|
HelixOrbVueProps,
|
|
@@ -24446,19 +24645,19 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
24446
24645
|
HelixRatingVueProps,
|
|
24447
24646
|
HelixRatingVueEvents
|
|
24448
24647
|
>;
|
|
24449
|
-
/** A sandboxed '<iframe>' that loads 'src', a document you provide. That document imports what the examples need, listens for a render message, and writes the markup into itself. **Without 'src', the frame loads a built-in document**, so a sandbox renders with nothing to host. It runs HTML, CSS, and scripts, and reports the console, uncaught errors, its height, and presses as a frame on 'servePreview' does. It defines no element, so an example that uses Helix components needs a 'src' that imports them. **'imports' lets an example import packages by name** in the built-in document, as an import map: each name maps to the address of an ES module, such as '{"canvas-confetti": "https://esm.sh/canvas-confetti@1.9.3"}', and 'import confetti from 'canvas-confetti'' in the 'js' pane then loads it. A CDN that serves npm packages as modules, such as esm.sh or jsDelivr's '+esm', gives every package an address. A new map loads the document again, since a browser reads one only as a document starts. A 'src' document declares its own. **Examples render in a frame**, so an example's styles and scripts do not affect the page around the sandbox, and 'position: fixed' stays inside the pane. The frame starts empty, with its own stylesheets and its own custom element registry, so 'src' must load the styles and components the examples use. **The source is untrusted, and the frame keeps it isolated.** The frame uses 'sandbox="allow-scripts"' and never 'allow-same-origin'. Together, the two let a document on the same origin remove its own sandbox, which is the same as having none. **A preview says where it is.** It is ':state(loading)' from the moment it has a 'src' until that document can take the example, and again through 'reload()'. It is ':state(failed)' once the example throws an error it does not catch, until the next source is sent, which a frame on 'servePreview' reports. A page draws its own spinner or message from either, such as a sibling shown by 'helix-sandbox-preview:state(failed) + .message'. **A failed preview shows the error over the example**, in the 'error' part, until the next source is sent. The terminal says it too, so the part is not announced. Hide it with '::part(error) { display: none }' where the page draws its own. **'controls' draws two buttons in the preview's corner**: one reloads the frame's document, as 'reload()' does, and one opens the example in a new tab, as 'open()' does. The tab runs it in a frame sandboxed as this one is. */
|
|
24648
|
+
/** A sandboxed '<iframe>' that loads 'src', a document you provide. That document imports what the examples need, listens for a render message, and writes the markup into itself. **Without 'src', the frame loads a built-in document**, so a sandbox renders with nothing to host. It runs HTML, CSS, and scripts, and reports the console, uncaught errors, its height, and presses as a frame on 'servePreview' does. It defines no element, so an example that uses Helix components needs a 'src' that imports them. **'imports' lets an example import packages by name** in the built-in document, as an import map: each name maps to the address of an ES module, such as '{"canvas-confetti": "https://esm.sh/canvas-confetti@1.9.3"}', and 'import confetti from 'canvas-confetti'' in the 'js' pane then loads it. A CDN that serves npm packages as modules, such as esm.sh or jsDelivr's '+esm', gives every package an address. A new map loads the document again, since a browser reads one only as a document starts. A 'src' document declares its own. **'dependencies' names packages by version instead**, as a 'package.json' does: '{"canvas-confetti": "^1.9"}' loads 'canvas-confetti' and the paths under it from 'cdn', 'https://esm.sh/' by default, at the version or range given. An address in 'imports' wins over a package of the same name. **'modules' holds files the example imports by a relative path**: each path, such as 'utils.js', to its source, and 'import { add } from './utils.js'' in the 'js' pane or in another module loads it. A sandbox writes each pane named for a module file here. **Examples render in a frame**, so an example's styles and scripts do not affect the page around the sandbox, and 'position: fixed' stays inside the pane. The frame starts empty, with its own stylesheets and its own custom element registry, so 'src' must load the styles and components the examples use. **The source is untrusted, and the frame keeps it isolated.** The frame uses 'sandbox="allow-scripts"' and never 'allow-same-origin'. Together, the two let a document on the same origin remove its own sandbox, which is the same as having none. **A preview says where it is.** It is ':state(loading)' from the moment it has a 'src' until that document can take the example, and again through 'reload()'. It is ':state(failed)' once the example throws an error it does not catch, until the next source is sent, which a frame on 'servePreview' reports. A page draws its own spinner or message from either, such as a sibling shown by 'helix-sandbox-preview:state(failed) + .message'. **A failed preview shows the error over the example**, in the 'error' part, until the next source is sent. The terminal says it too, so the part is not announced, and it is the frame's description while it shows, so a screen reader reads it with the frame. Hide it with '::part(error) { display: none }' where the page draws its own. **'controls' draws two buttons in the preview's corner**: one reloads the frame's document, as 'reload()' does, and one opens the example in a new tab, as 'open()' does. The tab runs it in a frame sandboxed as this one is. */
|
|
24450
24649
|
"helix-sandbox-preview": DefineCustomElement<
|
|
24451
24650
|
HelixSandboxPreview,
|
|
24452
24651
|
HelixSandboxPreviewVueProps,
|
|
24453
24652
|
HelixSandboxPreviewVueEvents
|
|
24454
24653
|
>;
|
|
24455
|
-
/** A source pane dispatches 'helix-before-edit', which bubbles, and the sandbox passes the value to the preview slotted into it. The source pane and the preview do not reference each other, so you can replace either one or use it alone. The preview runs an edit once typing has rested for 'preview-delay', 300 milliseconds by default, so a word typed reloads it once. A pane's text when the sandbox starts reaches it at once. The event carries the pane's 'name', so one sandbox can hold several panes. 'html' sets the preview's markup
|
|
24654
|
+
/** A source pane dispatches 'helix-before-edit', which bubbles, and the sandbox passes the value to the preview slotted into it. The source pane and the preview do not reference each other, so you can replace either one or use it alone. The preview runs an edit once typing has rested for 'preview-delay', 300 milliseconds by default, so a word typed reloads it once. A pane's text when the sandbox starts reaches it at once. The event carries the pane's 'name', so one sandbox can hold several panes. The names the sandbox writes into its previews: - 'html' sets the preview's markup. - 'css' sets its stylesheet. - 'js' sets a script that runs as a module after the markup. - A module file name ending in '.js' or '.mjs', such as 'utils.js', is a module the other scripts import by its path, './utils.js'. - 'package.json' sets the npm packages the scripts import by name, from its 'dependencies', which load from the preview's 'cdn'. The sandbox ignores a pane with any other name, so that pane can show content without changing the preview. **The sandbox is ':state(modified)' while a source pane holds an edit**, and that pane's file tab is also 'file-modified' and described as modified to a screen reader. 'reset()' puts every pane back to the source it was given. **The dividers are two nested 'helix-splitter' elements**, which handle the pointer, the keyboard, and the corner. The inner splitter holds the panes and the outer one holds the panel, so the panel spans the full width. **Several source panes are files**, one shown at a time under a row of tabs, each named by the pane's 'label' or, without one, its 'name'. 'file' holds the 'name' of the pane shown. The tabs are a tab list: the arrow keys move between them and show each pane, and 'Home' and 'End' go to the first and the last. Choosing one sends 'helix-before-change' with the pane's 'name', which you can cancel, and 'change' once 'file' holds it. The panes not shown carry 'hidden'. One pane draws no tabs. **Any editor can be the source pane**: an element in the 'source' slot with a 'name' that dispatches 'helix-before-edit' with its text, which bubbles. A wrapper around CodeMirror or Monaco sends one on each change and is a pane like 'helix-sandbox-source', and the sandbox reads its 'value' to seed the preview. Dispatch 'helix-caret' from it too for the status bar's position. Sandbox is styled only and has behavior, as 'Aura' is. Its behavior is the hand-off from a source pane to a preview frame, which works with any pane that sends 'helix-before-edit', and what it draws is the layout around them: dividers, file tabs, and a panel. A page that wants another look slots its own panes and keeps the hand-off, so there is nothing for a headless version to hold. A development build warns about a source pane with no 'label' and no 'name', whose file tab would have no words. On a focused divider, the arrow keys move it, and 'Home' and 'End' move it to its ends. 'Enter' on the panes divider shuts the lead pane, and pressed again it opens the pane where it was. 'Enter' on the panel divider shuts the panel to 'panel-collapsed-size', and pressed again it opens the panel to its last height. */
|
|
24456
24655
|
"helix-sandbox": DefineCustomElement<
|
|
24457
24656
|
HelixSandbox,
|
|
24458
24657
|
HelixSandboxVueProps,
|
|
24459
24658
|
HelixSandboxVueEvents
|
|
24460
24659
|
>;
|
|
24461
|
-
/** A real '<textarea>', so undo, selection, spellcheck suppression, mobile keyboards, and screen reader support come from the platform. Tab inserts two spaces, so you can indent code. To move focus out of the field, press Escape and then Tab. Shift+Tab moves focus back as it does anywhere else. The field's description says so to a screen reader. **'tokenize' colors the source** with a highlighter you bring, such as one built on Lezer, Prism or Shiki. It is a function from the source to runs of text, each with an optional kind, and the pane draws the runs under a transparent field, so typing, selection and undo stay the textarea's. The kinds are 'callable', 'comment', 'constant', 'invalid', 'keyword', 'name', 'string' and 'tag', each colored by the '--helix-color-syntax-*' token of its name and a hook of its own, such as '--sandbox-source-keyword-color'. A run of any other kind is drawn in the field's own color. Every run with a kind is a 'token' part, and carries its kind as 'data-kind'. A 'tokenize' that throws leaves the source drawn plain and the field editable, and the error is reported to the page as an uncaught one. **'line-numbers' numbers each line** in a gutter beside the source. A line that wraps keeps one number. The numbers are drawn, and hidden from screen readers, which read the field. Enter keeps the indentation of the line it breaks, and the new line is undone with the next undo as typing is. **The source can be written inside the pane** where 'value' is not set: its text, or the markup of a '<template>' it holds, without the indentation the page gave it. Markup goes in a template so the page does not render it or run its scripts. Text inside the pane is read once, when it connects. */
|
|
24660
|
+
/** A real '<textarea>', so undo, selection, spellcheck suppression, mobile keyboards, and screen reader support come from the platform. Tab inserts two spaces, so you can indent code. To move focus out of the field, press Escape and then Tab. Shift+Tab moves focus back as it does anywhere else. The field's description says so to a screen reader. **'tokenize' colors the source** with a highlighter you bring, such as one built on Lezer, Prism or Shiki. It is a function from the source to runs of text, each with an optional kind, and the pane draws the runs under a transparent field, so typing, selection and undo stay the textarea's. The kinds are 'callable', 'comment', 'constant', 'invalid', 'keyword', 'name', 'string' and 'tag', each colored by the '--helix-color-syntax-*' token of its name and a hook of its own, such as '--sandbox-source-keyword-color'. A run of any other kind is drawn in the field's own color. Every run with a kind is a 'token' part, and carries its kind as 'data-kind'. A 'tokenize' that throws leaves the source drawn plain and the field editable, and the error is reported to the page as an uncaught one. **'line-numbers' numbers each line** in a gutter beside the source. A line that wraps keeps one number. The numbers are drawn, and hidden from screen readers, which read the field. Enter keeps the indentation of the line it breaks, one level deeper after an opening bracket, and puts the closing bracket of an empty pair on a line of its own. The new line is undone with the next undo as typing is. **The editing keys are CodeMirror's.** Tab with text selected indents every line the selection touches. 'Mod+]' indents the lines and 'Mod+[' outdents them, and 'Mod+/' comments them out or back in: '//' in a 'js' pane, and one block comment in an 'html' or 'css' pane. 'Mod' is Command on a Mac and Control elsewhere. Each is one step of undo. **'close-brackets' closes brackets and quotes** as you type them: '(', '[', '{' and the three quotes. A closing character typed before the same one steps over it, Backspace between an empty pair deletes both, and a bracket typed with text selected goes around the text. **'match-brackets' marks the bracket beside the caret and its pair** while the field has focus, each a 'bracket' part, and a bracket with no pair is also 'bracket-unmatched'. A bracket in a string or a comment is not matched, where 'tokenize' says which runs those are. **'complete' offers completions as you type**: the words of the source and of 'completions' that start with the word before the caret. They open in a list under the word. The arrow keys move through it, Enter or Tab takes the word, and Escape closes it. 'Ctrl+Space' opens it where it is closed. The field is 'aria-autocomplete="list"' and points at the word chosen with 'aria-activedescendant', so a screen reader reads each one. Give 'completions' the names a page uses, such as the tag and attribute names of a custom elements manifest through 'manifestWords'. **The pane is ':state(modified)' while its source differs from the source it was given**, the first 'value' or the last one set from outside. 'reset()' puts that source back, as an edit the sandbox passes on to its preview. **The source can be written inside the pane** where 'value' is not set: its text, or the markup of a '<template>' it holds, without the indentation the page gave it. Markup goes in a template so the page does not render it or run its scripts. Text inside the pane is read once, when it connects. */
|
|
24462
24661
|
"helix-sandbox-source": DefineCustomElement<
|
|
24463
24662
|
HelixSandboxSource,
|
|
24464
24663
|
HelixSandboxSourceVueProps,
|
|
@@ -24572,13 +24771,13 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
24572
24771
|
HelixStepVueProps,
|
|
24573
24772
|
HelixStepVueEvents
|
|
24574
24773
|
>;
|
|
24575
|
-
/** Hundreds of thin strands are drawn as one ribbon, and the light they add together is bloomed, so where they converge the ribbon burns hot. The ribbon moves on its own all the time: it sways and breathes, its strands wave and roll over one another, and light runs along them. Its palette comes from the tokens. The strands are '--helix-color-primary', a few are '--helix-color-
|
|
24774
|
+
/** Hundreds of thin strands are drawn as one ribbon, and the light they add together is bloomed, so where they converge the ribbon burns hot. The ribbon moves on its own all the time: it sways and breathes, its strands wave and roll over one another, and light runs along them. Its palette comes from the tokens. The strands are '--helix-color-primary', a few are '--helix-color-accent' for depth, and the page they light is '--helix-color-background'. On a light page the light becomes ink, because light added to near-white cannot be seen. **Three forms, set with 'variant'.** 'bend' turns bright strands through one tight point, with its arms opening to the right. 'ribbon', the default, is a broad, soft ribbon in long curves. 'waves' is sharp strands crossing the full width. **In its own box, by default.** The element fills the box it is given, the way an image does, and 'at' places the bend's apex or the ribbon's axis across it. Content placed inside sits over the ribbon, in the 'content' part. **Down the whole page, with 'travel'.** The element fixes itself behind the page, on '--helix-layer-beneath', and lays one ribbon from the top of the page to the bottom, so scrolling travels along it. Put 'helix-strands-stop' elements inside to pin a form to a section: each names an element with 'for' and says which form the ribbon takes there. Between stops the ribbon fills the gap in its own 'variant', and between two waves less than a screen and a half apart it turns off screen so each wave reads alone. Set 'z-index' on the element to move it. The ribbon stops moving in these cases: - 'prefers-reduced-motion' is set. The element shows one still frame, and in 'travel' still follows the scroll, without easing. - The element is off screen or in a background tab. It shows a gradient from the same tokens in these cases, and matches ':state(fallback)' and sends 'helix-strands-fallback' with the reason: - The renderer draws on the CPU, such as a headless browser or a machine with no usable GPU. - There is no WebGL, or the browser took the drawing context back. Strands is styled only and has behavior, as 'Aura' does: its behavior is drawing to a canvas, so there is no structure for a headless version to hold. */
|
|
24576
24775
|
"helix-strands": DefineCustomElement<
|
|
24577
24776
|
HelixStrands,
|
|
24578
24777
|
HelixStrandsVueProps,
|
|
24579
24778
|
HelixStrandsVueEvents
|
|
24580
24779
|
>;
|
|
24581
|
-
/** Placed inside a 'helix-strands' with 'travel', a stop names an element with 'for' and says which form the ribbon takes when the page reaches it: a '
|
|
24780
|
+
/** Placed inside a 'helix-strands' with 'travel', a stop names an element with 'for' and says which form the ribbon takes when the page reaches it: a 'bend' turning through it, a 'ribbon' passing through 'at', or 'waves' crossing at its top edge. The stops are read in page order, whatever order they are written in, and a stop naming no element is skipped. A stop draws nothing itself and is never shown. **Every property is reflected**, because the parent watches its stops' attributes to lay the ribbon out again: a change made from script reaches the page as a change made in markup does. None has a default, so a stop writes nothing it was not given. */
|
|
24582
24781
|
"helix-strands-stop": DefineCustomElement<
|
|
24583
24782
|
HelixStrandsStop,
|
|
24584
24783
|
HelixStrandsStopVueProps,
|
package/types/words.d.ts
CHANGED
|
@@ -351,6 +351,12 @@ declare module '@fusion.dev/helix-core' {
|
|
|
351
351
|
* English: `Options`
|
|
352
352
|
*/
|
|
353
353
|
listLabel: Message
|
|
354
|
+
/**
|
|
355
|
+
* What the panel says while `loading` is set and the list holds no notes.
|
|
356
|
+
*
|
|
357
|
+
* English: `Loading notes`
|
|
358
|
+
*/
|
|
359
|
+
loadingLabel: Message
|
|
354
360
|
/**
|
|
355
361
|
* The words shown in place of the drawing while `loading` is set and
|
|
356
362
|
* there are no readings yet, and the fallback of the `loading` slot.
|
|
@@ -2178,6 +2184,13 @@ declare module '@fusion.dev/helix-core' {
|
|
|
2178
2184
|
* English: `Files`
|
|
2179
2185
|
*/
|
|
2180
2186
|
filesLabel: Message
|
|
2187
|
+
/**
|
|
2188
|
+
* The description of a file tab whose pane holds an edit, read by screen
|
|
2189
|
+
* readers after the file's name.
|
|
2190
|
+
*
|
|
2191
|
+
* English: `Modified`
|
|
2192
|
+
*/
|
|
2193
|
+
modifiedLabel: Message
|
|
2181
2194
|
/**
|
|
2182
2195
|
* The name of the panel's divider, read by screen readers.
|
|
2183
2196
|
*
|
|
@@ -2217,6 +2230,12 @@ declare module '@fusion.dev/helix-core' {
|
|
|
2217
2230
|
reloadLabel: Message
|
|
2218
2231
|
}
|
|
2219
2232
|
'helix-sandbox-source': {
|
|
2233
|
+
/**
|
|
2234
|
+
* The name of the list of completions, read by screen readers.
|
|
2235
|
+
*
|
|
2236
|
+
* English: `Completions`
|
|
2237
|
+
*/
|
|
2238
|
+
completionsLabel: Message
|
|
2220
2239
|
/**
|
|
2221
2240
|
* The editable region's name, read by screen readers.
|
|
2222
2241
|
*
|
|
@@ -2573,6 +2592,14 @@ declare module '@fusion.dev/helix-core' {
|
|
|
2573
2592
|
*/
|
|
2574
2593
|
valueMissingMessage: Message
|
|
2575
2594
|
}
|
|
2595
|
+
'helix-timeline': {
|
|
2596
|
+
/**
|
|
2597
|
+
* The text of the entry drawn while `loading` is set, where the `loading` slot is empty.
|
|
2598
|
+
*
|
|
2599
|
+
* English: `Loading more`
|
|
2600
|
+
*/
|
|
2601
|
+
loadingLabel: Message
|
|
2602
|
+
}
|
|
2576
2603
|
'helix-timeline-item': {
|
|
2577
2604
|
/**
|
|
2578
2605
|
* What a screen reader hears for an entry that is `pending`.
|