@fusion.dev/helix 0.171.0 → 0.173.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 +2531 -95
- package/dist/chat/composer/chat-composer.css.js +1 -1
- package/dist/copy-button/root/copy-button-root.css.js +1 -1
- package/dist/element-events.generated.js +9 -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/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 +996 -38
- package/types/vue.d.ts +236 -6
- 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
|
|
|
@@ -3318,6 +3327,10 @@ export type HelixChatComposerHelixTypingElementEvent =
|
|
|
3318
3327
|
HelixChatComposerElementEvent<HelixTypingEvent>;
|
|
3319
3328
|
|
|
3320
3329
|
export type HelixChatComposerVueProps = {
|
|
3330
|
+
/** A message about the draft, shown under the field. While set, the composer
|
|
3331
|
+
is invalid, does not send, and does not submit, as a field's `feedback`
|
|
3332
|
+
does, and the message is announced as it appears. */
|
|
3333
|
+
feedback?: (HelixChatComposer["feedback"]) | undefined;
|
|
3321
3334
|
/** The field's name, read by screen readers. */
|
|
3322
3335
|
label?: (HelixChatComposer["label"]) | undefined;
|
|
3323
3336
|
/** The most characters a draft can have. The field stops taking more. */
|
|
@@ -5541,6 +5554,24 @@ Defaulted rather than left empty. An icon-only control must be named, and
|
|
|
5541
5554
|
the name of this one is not a judgment call: every copy button in the
|
|
5542
5555
|
world is called Copy. A consumer with a better word still sets it. */
|
|
5543
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;
|
|
5544
5575
|
/** The text copied to the clipboard.
|
|
5545
5576
|
|
|
5546
5577
|
It replaces `Button.value`, the submit value: a copy button never submits,
|
|
@@ -6037,7 +6068,11 @@ thousand rows, where the page is a reasonable fetch and a poor render.
|
|
|
6037
6068
|
|
|
6038
6069
|
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
6039
6070
|
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
6040
|
-
should pay none of them.
|
|
6071
|
+
should pay none of them.
|
|
6072
|
+
|
|
6073
|
+
While windowed, the `table` part scrolls on this tier: it carries
|
|
6074
|
+
`data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
6075
|
+
every shadow root. You still need to give it a block size. */
|
|
6041
6076
|
windowed?: (HelixDataTable["windowed"]) | undefined;
|
|
6042
6077
|
/** Every row of the result, in the order it arrived.
|
|
6043
6078
|
|
|
@@ -8843,6 +8878,13 @@ or hides its notes. Drawn where the notes have two groups or more. */
|
|
|
8843
8878
|
"links-to-label"?: (HelixGraph["linksToLabel"]) | undefined;
|
|
8844
8879
|
/** How a note that links to the selected one is described, with `{note}`. */
|
|
8845
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;
|
|
8846
8888
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
8847
8889
|
"moved-down-label"?: (HelixGraph["movedDownLabel"]) | undefined;
|
|
8848
8890
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
@@ -8915,6 +8957,16 @@ own, since the fallback name is the same word. Empty leaves the role. */
|
|
|
8915
8957
|
links?: (HelixGraph["links"]) | undefined;
|
|
8916
8958
|
/** The notes. A property, never an attribute. */
|
|
8917
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;
|
|
8918
8970
|
};
|
|
8919
8971
|
|
|
8920
8972
|
export type HelixGraphVueEvents = {
|
|
@@ -10812,7 +10864,8 @@ itself. */
|
|
|
10812
10864
|
type?: (HelixList["type"]) | undefined;
|
|
10813
10865
|
/** The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.
|
|
10814
10866
|
|
|
10815
|
-
|
|
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
|
|
10816
10869
|
words where it has none. */
|
|
10817
10870
|
value?: (HelixList["value"]) | undefined;
|
|
10818
10871
|
};
|
|
@@ -12316,6 +12369,14 @@ or on Alt+Down or Alt+Up. */
|
|
|
12316
12369
|
|
|
12317
12370
|
It moves if that side does not fit. */
|
|
12318
12371
|
placement?: (HelixMenu["placement"]) | undefined;
|
|
12372
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
12373
|
+
how many rows are left, written in the locale, and each language writes
|
|
12374
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
12375
|
+
"results-label"?: (HelixMenu["resultsLabel"]) | undefined;
|
|
12376
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
12377
|
+
how many rows are left, written in the locale, and each language writes
|
|
12378
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
12379
|
+
resultsLabel?: (HelixMenu["resultsLabel"]) | undefined;
|
|
12319
12380
|
/** How a submenu opens. `drill` shows it in place of the page showing, with
|
|
12320
12381
|
a way back. `flyout` opens it in a panel of its own beside its row. */
|
|
12321
12382
|
submenus?: (HelixMenu["submenus"]) | undefined;
|
|
@@ -12326,11 +12387,21 @@ Aria's `Autocomplete` takes `filter`. See Listbox's `filterMatch`.
|
|
|
12326
12387
|
Absent, a row is kept where its words hold the filter, in any case. A
|
|
12327
12388
|
property only, there being no way to write a function in markup. */
|
|
12328
12389
|
filterMatch?: (HelixMenu["filterMatch"]) | undefined;
|
|
12390
|
+
/** The values of the choice rows that are checked, anywhere in the menu, in
|
|
12391
|
+
document order.
|
|
12392
|
+
|
|
12393
|
+
Set it to check exactly those rows and uncheck every other choice row, as
|
|
12394
|
+
React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
12395
|
+
Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
12396
|
+
is sent on the menu when a reader's choice changes it. */
|
|
12397
|
+
checkedValues?: (HelixMenu["checkedValues"]) | undefined;
|
|
12329
12398
|
};
|
|
12330
12399
|
|
|
12331
12400
|
export type HelixMenuVueEvents = {
|
|
12332
12401
|
/** The menu opened or closed. The event carries `newState` and `oldState`. */
|
|
12333
12402
|
toggle: HelixMenuToggleElementEvent;
|
|
12403
|
+
/** A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now. */
|
|
12404
|
+
change: HelixMenuElementEvent;
|
|
12334
12405
|
/** The menu is about to close. Cancelable: cancel it to keep it open. */
|
|
12335
12406
|
"helix-before-close": HelixMenuHelixBeforeCloseElementEvent;
|
|
12336
12407
|
/** The menu is about to open. Cancelable: cancel it to keep it closed. */
|
|
@@ -13646,6 +13717,10 @@ box the sections scroll in. */
|
|
|
13646
13717
|
/** The navigation's name, read by screen readers. A heading in the `heading`
|
|
13647
13718
|
slot names it in place of this. */
|
|
13648
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;
|
|
13649
13724
|
/** How far below the top of the scroll container a heading counts as reached,
|
|
13650
13725
|
in pixels. The scroll container is the window or the panel the sections
|
|
13651
13726
|
scroll in.
|
|
@@ -14156,17 +14231,42 @@ hydration, or diffed by a framework, it comes back holding whatever the
|
|
|
14156
14231
|
last reader did rather than what the author wrote. `:state(open)` carries
|
|
14157
14232
|
the resolved state for stylesheets, which is what the mirror is for. */
|
|
14158
14233
|
open?: (HelixPopover["open"]) | undefined;
|
|
14234
|
+
/** The element the panel opens against, where that is not the trigger: its
|
|
14235
|
+
`id` in the same document or shadow root, or the element itself. Left
|
|
14236
|
+
empty, the panel opens against the trigger, or against the button whose
|
|
14237
|
+
command opened it. */
|
|
14238
|
+
anchor?: (HelixPopover["anchor"]) | undefined;
|
|
14159
14239
|
/** Draws a point on the panel's edge facing the trigger.
|
|
14160
14240
|
|
|
14161
14241
|
Off by default, which is the house style: a panel that opens from its
|
|
14162
14242
|
trigger already reads as belonging to it. */
|
|
14163
14243
|
arrow?: (HelixPopover["arrow"]) | undefined;
|
|
14244
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
14245
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
14246
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
14247
|
+
once it would cross one. */
|
|
14248
|
+
"container-padding"?: (HelixPopover["containerPadding"] | `${number}`) | undefined;
|
|
14249
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
14250
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
14251
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
14252
|
+
once it would cross one. */
|
|
14253
|
+
containerPadding?: (HelixPopover["containerPadding"]) | undefined;
|
|
14254
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
14255
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
14256
|
+
"cross-offset"?: (HelixPopover["crossOffset"] | `${number}`) | undefined;
|
|
14257
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
14258
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
14259
|
+
crossOffset?: (HelixPopover["crossOffset"]) | undefined;
|
|
14164
14260
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
14165
14261
|
the panel, and no `aria-labelledby` on the host. */
|
|
14166
14262
|
"fallback-label"?: (HelixPopover["fallbackLabel"]) | undefined;
|
|
14167
14263
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
14168
14264
|
the panel, and no `aria-labelledby` on the host. */
|
|
14169
14265
|
fallbackLabel?: (HelixPopover["fallbackLabel"]) | undefined;
|
|
14266
|
+
/** Whether the panel moves to the other side of the trigger when its own
|
|
14267
|
+
side has no room. On by default. Write `flip="false"` to keep it on its
|
|
14268
|
+
side, where it shrinks to fit, as React Aria's `shouldFlip` turns off. */
|
|
14269
|
+
flip?: (HelixPopover["flip"]) | undefined;
|
|
14170
14270
|
/** The panel's name, read by screen readers. Left empty, the first heading in
|
|
14171
14271
|
the panel names it, and then `fallback-label`. */
|
|
14172
14272
|
label?: (HelixPopover["label"]) | undefined;
|
|
@@ -15006,6 +15106,9 @@ export type HelixSandboxPreviewHelixResizeElementEvent =
|
|
|
15006
15106
|
HelixSandboxPreviewElementEvent<HelixResizeEvent>;
|
|
15007
15107
|
|
|
15008
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;
|
|
15009
15112
|
/** The color mode the frame renders in.
|
|
15010
15113
|
|
|
15011
15114
|
**The frame is a document and a document has its own color mode.** Setting
|
|
@@ -15037,6 +15140,11 @@ including every one of the 24 series colors a chart reads. */
|
|
|
15037
15140
|
/** Whether the preview draws a reload button and a button that opens the
|
|
15038
15141
|
example in a new tab, in its corner. */
|
|
15039
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;
|
|
15040
15148
|
/** Writing direction inside the frame.
|
|
15041
15149
|
|
|
15042
15150
|
Not reflected. It is payload for the render message and nothing selects on
|
|
@@ -15063,6 +15171,10 @@ Not reflected, for `direction`'s reason: the placement is applied by the
|
|
|
15063
15171
|
document inside the frame, against its own root, so no rule on this side
|
|
15064
15172
|
could read it. */
|
|
15065
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;
|
|
15066
15178
|
/** The name of the button that opens the example in a new tab, under
|
|
15067
15179
|
`controls`. */
|
|
15068
15180
|
"open-label"?: (HelixSandboxPreview["openLabel"]) | undefined;
|
|
@@ -15190,6 +15302,12 @@ names below keeps that true whichever way round they sit.
|
|
|
15190
15302
|
`split` follows the lead pane rather than the source, so `split="30"` means
|
|
15191
15303
|
the same thing in both directions: thirty percent to whatever comes first. */
|
|
15192
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;
|
|
15193
15311
|
/** Whether the panes sit side by side or stacked.
|
|
15194
15312
|
|
|
15195
15313
|
Not reflected, for `lead`'s reason above: no rule selects on it. The axis
|
|
@@ -15297,6 +15415,23 @@ export type HelixSandboxSourceHelixEditElementEvent =
|
|
|
15297
15415
|
HelixSandboxSourceElementEvent<HelixEditEvent>;
|
|
15298
15416
|
|
|
15299
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;
|
|
15300
15435
|
/** The editable region's name, read by screen readers. */
|
|
15301
15436
|
"field-label"?: (HelixSandboxSource["fieldLabel"]) | undefined;
|
|
15302
15437
|
/** The editable region's name, read by screen readers. */
|
|
@@ -15320,6 +15455,12 @@ holds several panes. Empty puts the pane's `name` on the tab. */
|
|
|
15320
15455
|
"line-numbers"?: (HelixSandboxSource["lineNumbers"]) | undefined;
|
|
15321
15456
|
/** Whether each line of the source is numbered, in a gutter beside it. */
|
|
15322
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;
|
|
15323
15464
|
/** Which source this pane holds. Every `helix-before-edit` event includes it.
|
|
15324
15465
|
|
|
15325
15466
|
`html` and `css` are what the sandbox root routes on; any other name is
|
|
@@ -15327,6 +15468,14 @@ passed through untouched for a consumer wiring their own panes.
|
|
|
15327
15468
|
|
|
15328
15469
|
Not reflected: nothing selects on it, so it keeps a real default instead. */
|
|
15329
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;
|
|
15330
15479
|
/** Whether Tab indents the source. When it is off, Tab moves focus. */
|
|
15331
15480
|
"tab-indents"?: (HelixSandboxSource["tabIndents"]) | undefined;
|
|
15332
15481
|
/** Whether Tab indents the source. When it is off, Tab moves focus. */
|
|
@@ -16649,6 +16798,13 @@ that should survive its own collapse says how much of itself to keep, and
|
|
|
16649
16798
|
only whoever put it there knows that, which is the same reason `min` is a
|
|
16650
16799
|
consumer's to set. */
|
|
16651
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;
|
|
16652
16808
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
16653
16809
|
"corner-label"?: (HelixSplitter["cornerLabel"]) | undefined;
|
|
16654
16810
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
@@ -16677,6 +16833,18 @@ these words are the whole of where it is. */
|
|
|
16677
16833
|
"default-position"?: (HelixSplitter["defaultPosition"] | `${number}`) | undefined;
|
|
16678
16834
|
/** Where the divider starts, when `position` is not set. */
|
|
16679
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;
|
|
16680
16848
|
/** The divider's name, read by screen readers.
|
|
16681
16849
|
|
|
16682
16850
|
An `aria-label` or `aria-labelledby` on the host names the divider too,
|
|
@@ -19095,6 +19263,18 @@ imperatively later, and nothing is hydrating by then.
|
|
|
19095
19263
|
|
|
19096
19264
|
Here rather than on each control. */
|
|
19097
19265
|
name?: (HelixTimePicker["name"]) | undefined;
|
|
19266
|
+
/** What each time in the list shows: a function given the time as `HH:mm`,
|
|
19267
|
+
or `HH:mm:ss` with `seconds`, and the time as the row writes it, that
|
|
19268
|
+
returns text, an element or a Lit template.
|
|
19269
|
+
|
|
19270
|
+
For the seats left at a time, or a caption under it, as React Aria's
|
|
19271
|
+
`ListBoxItem` takes children. Content with `slot="start"`, `slot="end"`
|
|
19272
|
+
or `slot="description"` goes to that slot of the row, and a description
|
|
19273
|
+
is read after the time. The row is still named by the written time, and
|
|
19274
|
+
typeahead still finds it by that. Return the written time with your
|
|
19275
|
+
content where it should still show. A property only, there being no way
|
|
19276
|
+
to write a function in markup. The wheels draw their own figures. */
|
|
19277
|
+
timeContent?: (HelixTimePicker["timeContent"]) | undefined;
|
|
19098
19278
|
/** The value as a `Date` on 1 January 1970 UTC, or `null` while there is no time.
|
|
19099
19279
|
|
|
19100
19280
|
The platform's own pair on `<input type="time">`, epoch day included: a time
|
|
@@ -19182,6 +19362,13 @@ they run down it. */
|
|
|
19182
19362
|
orientation?: (HelixTimeline["orientation"]) | undefined;
|
|
19183
19363
|
/** Accessible name for the timeline, for people who reach it out of context. */
|
|
19184
19364
|
label?: (HelixTimeline["label"]) | undefined;
|
|
19365
|
+
/** Marks the timeline as busy fetching more entries, and draws an entry
|
|
19366
|
+
after the last that says so. */
|
|
19367
|
+
loading?: (HelixTimeline["loading"]) | undefined;
|
|
19368
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
19369
|
+
"loading-label"?: (HelixTimeline["loadingLabel"]) | undefined;
|
|
19370
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
19371
|
+
loadingLabel?: (HelixTimeline["loadingLabel"]) | undefined;
|
|
19185
19372
|
};
|
|
19186
19373
|
|
|
19187
19374
|
export type HelixTimelineVueEvents = {};
|
|
@@ -21098,12 +21285,18 @@ export type HelixVirtualListElementEvent<E = Event> = TypedEvent<
|
|
|
21098
21285
|
/** `helix-before-change` event type */
|
|
21099
21286
|
export type HelixVirtualListHelixBeforeChangeElementEvent =
|
|
21100
21287
|
HelixVirtualListElementEvent<HelixBeforeChangeEvent>;
|
|
21288
|
+
/** `helix-before-reorder` event type */
|
|
21289
|
+
export type HelixVirtualListHelixBeforeReorderElementEvent =
|
|
21290
|
+
HelixVirtualListElementEvent<HelixBeforeReorderEvent>;
|
|
21101
21291
|
/** `helix-load-more` event type */
|
|
21102
21292
|
export type HelixVirtualListHelixLoadMoreElementEvent =
|
|
21103
21293
|
HelixVirtualListElementEvent<HelixLoadMoreEvent>;
|
|
21104
21294
|
/** `helix-range-change` event type */
|
|
21105
21295
|
export type HelixVirtualListHelixRangeChangeElementEvent =
|
|
21106
21296
|
HelixVirtualListElementEvent<HelixRangeChangeEvent>;
|
|
21297
|
+
/** `helix-reorder` event type */
|
|
21298
|
+
export type HelixVirtualListHelixReorderElementEvent =
|
|
21299
|
+
HelixVirtualListElementEvent<HelixReorderEvent>;
|
|
21107
21300
|
|
|
21108
21301
|
export type HelixVirtualListVueProps = {
|
|
21109
21302
|
/** How many items a line holds. One, the default, is a list; more lays the
|
|
@@ -21183,6 +21376,13 @@ and scrolls it sideways: Left and Right move between items, the other
|
|
|
21183
21376
|
way round on a right-to-left page, and `estimate` is an item's width. A
|
|
21184
21377
|
grid always runs down. */
|
|
21185
21378
|
orientation?: (HelixVirtualList["orientation"]) | undefined;
|
|
21379
|
+
/** Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`
|
|
21380
|
+
(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt
|
|
21381
|
+
with an arrow moves the row the keys are on, and a pointer drags a row.
|
|
21382
|
+
The list moves no item itself: you move your `items` on `helix-reorder`.
|
|
21383
|
+
Without that import it does nothing, so a list that never moves items
|
|
21384
|
+
carries none of the code. A list of one column, without sections. */
|
|
21385
|
+
reorderable?: (HelixVirtualList["reorderable"]) | undefined;
|
|
21186
21386
|
/** The field of each item that names its section, as a key or a path of
|
|
21187
21387
|
keys. Set, the items are drawn in sections: a header, then the items, in
|
|
21188
21388
|
an element with the `group` role that the header names. A section starts
|
|
@@ -21248,10 +21448,14 @@ export type HelixVirtualListVueEvents = {
|
|
|
21248
21448
|
change: HelixVirtualListElementEvent;
|
|
21249
21449
|
/** Fired before a press or a key changes which items are selected, with the `value` it would leave. Cancelable. */
|
|
21250
21450
|
"helix-before-change": HelixVirtualListHelixBeforeChangeElementEvent;
|
|
21451
|
+
/** 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. */
|
|
21452
|
+
"helix-before-reorder": HelixVirtualListHelixBeforeReorderElementEvent;
|
|
21251
21453
|
/** Fired when a reader comes within one screen of the last item, once for each length of the set. */
|
|
21252
21454
|
"helix-load-more": HelixVirtualListHelixLoadMoreElementEvent;
|
|
21253
21455
|
/** Fired when the items on screen change, with the new `first` and `last`, which `range` also holds. */
|
|
21254
21456
|
"helix-range-change": HelixVirtualListHelixRangeChangeElementEvent;
|
|
21457
|
+
/** 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. */
|
|
21458
|
+
"helix-reorder": HelixVirtualListHelixReorderElementEvent;
|
|
21255
21459
|
};
|
|
21256
21460
|
|
|
21257
21461
|
export type CustomCssProperties = {
|
|
@@ -22761,6 +22965,8 @@ export type CustomCssProperties = {
|
|
|
22761
22965
|
"--orb-ground"?: (string) | undefined;
|
|
22762
22966
|
/** The diameter. Overrides `size`. */
|
|
22763
22967
|
"--orb-size"?: (string) | undefined;
|
|
22968
|
+
/** How fast the dots move, as a multiple of each state's own tempo. Defaults to `1`. */
|
|
22969
|
+
"--orb-speed"?: (string) | undefined;
|
|
22764
22970
|
/** The color of the heading in the `heading` slot. */
|
|
22765
22971
|
"--outline-heading-color"?: (string) | undefined;
|
|
22766
22972
|
/** How far each level is inset from the one above. */
|
|
@@ -22971,10 +23177,16 @@ export type CustomCssProperties = {
|
|
|
22971
23177
|
"--sandbox-separator-color"?: (string) | undefined;
|
|
22972
23178
|
/** Fill behind the source. */
|
|
22973
23179
|
"--sandbox-source-background-color"?: (string) | undefined;
|
|
23180
|
+
/** Fill behind a matched bracket, under `match-brackets`. Defaults to `--helix-color-accent-subtle`. */
|
|
23181
|
+
"--sandbox-source-bracket-color"?: (string) | undefined;
|
|
22974
23182
|
/** Color of a `callable` run, under `tokenize`. Defaults to `--helix-color-syntax-callable`. */
|
|
22975
23183
|
"--sandbox-source-callable-color"?: (string) | undefined;
|
|
22976
23184
|
/** Color of a `comment` run, under `tokenize`. Defaults to `--helix-color-syntax-comment`. */
|
|
22977
23185
|
"--sandbox-source-comment-color"?: (string) | undefined;
|
|
23186
|
+
/** Width of the edge of the list of completions, under `complete`. Defaults to `--helix-border-floating`. */
|
|
23187
|
+
"--sandbox-source-completions-border-width"?: (string) | undefined;
|
|
23188
|
+
/** Shadow under the list of completions, under `complete`. Defaults to `--helix-shadow-floating`. */
|
|
23189
|
+
"--sandbox-source-completions-shadow"?: (string) | undefined;
|
|
22978
23190
|
/** Color of a `constant` run, under `tokenize`. Defaults to `--helix-color-syntax-constant`. */
|
|
22979
23191
|
"--sandbox-source-constant-color"?: (string) | undefined;
|
|
22980
23192
|
/** Color of an `invalid` run, under `tokenize`. Defaults to `--helix-color-syntax-invalid`. */
|
|
@@ -23729,6 +23941,24 @@ export type CustomCssProperties = {
|
|
|
23729
23941
|
"--virtual-list-block-size"?: (string) | undefined;
|
|
23730
23942
|
/** How faint a row `disabled-keys` names is drawn. */
|
|
23731
23943
|
"--virtual-list-disabled-opacity"?: (string) | undefined;
|
|
23944
|
+
/** The fill behind the copy of a row a pointer drags, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported. */
|
|
23945
|
+
"--virtual-list-drag-preview-background-color"?: (string) | undefined;
|
|
23946
|
+
/** The color of the edge around the copy of a row a pointer drags. */
|
|
23947
|
+
"--virtual-list-drag-preview-border-color"?: (string) | undefined;
|
|
23948
|
+
/** The width of the edge around the copy of a row a pointer drags. None by default, where the shadow lifts it. */
|
|
23949
|
+
"--virtual-list-drag-preview-border-width"?: (string) | undefined;
|
|
23950
|
+
/** The opacity of the copy of a row a pointer drags. */
|
|
23951
|
+
"--virtual-list-drag-preview-opacity"?: (string) | undefined;
|
|
23952
|
+
/** The corner radius of the copy of a row a pointer drags. */
|
|
23953
|
+
"--virtual-list-drag-preview-radius"?: (string) | undefined;
|
|
23954
|
+
/** The shadow that raises the copy of a row a pointer drags over the page. */
|
|
23955
|
+
"--virtual-list-drag-preview-shadow"?: (string) | undefined;
|
|
23956
|
+
/** The opacity of a row being dragged, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported. */
|
|
23957
|
+
"--virtual-list-dragging-opacity"?: (string) | undefined;
|
|
23958
|
+
/** The color of the line where a dragged row would land. */
|
|
23959
|
+
"--virtual-list-drop-indicator-color"?: (string) | undefined;
|
|
23960
|
+
/** The thickness of the line where a dragged row would land. */
|
|
23961
|
+
"--virtual-list-drop-indicator-size"?: (string) | undefined;
|
|
23732
23962
|
/** The color of the text in the row shown when there are no items. */
|
|
23733
23963
|
"--virtual-list-empty-color"?: (string) | undefined;
|
|
23734
23964
|
/** The space around the text in the row shown when there are no items. */
|
|
@@ -24317,7 +24547,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
24317
24547
|
HelixOptionSeparatorVueProps,
|
|
24318
24548
|
HelixOptionSeparatorVueEvents
|
|
24319
24549
|
>;
|
|
24320
|
-
/** 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
|
|
24550
|
+
/** 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. */
|
|
24321
24551
|
"helix-orb": DefineCustomElement<
|
|
24322
24552
|
HelixOrb,
|
|
24323
24553
|
HelixOrbVueProps,
|
|
@@ -24395,19 +24625,19 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
24395
24625
|
HelixRatingVueProps,
|
|
24396
24626
|
HelixRatingVueEvents
|
|
24397
24627
|
>;
|
|
24398
|
-
/** 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. */
|
|
24628
|
+
/** 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. */
|
|
24399
24629
|
"helix-sandbox-preview": DefineCustomElement<
|
|
24400
24630
|
HelixSandboxPreview,
|
|
24401
24631
|
HelixSandboxPreviewVueProps,
|
|
24402
24632
|
HelixSandboxPreviewVueEvents
|
|
24403
24633
|
>;
|
|
24404
|
-
/** 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
|
|
24634
|
+
/** 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. */
|
|
24405
24635
|
"helix-sandbox": DefineCustomElement<
|
|
24406
24636
|
HelixSandbox,
|
|
24407
24637
|
HelixSandboxVueProps,
|
|
24408
24638
|
HelixSandboxVueEvents
|
|
24409
24639
|
>;
|
|
24410
|
-
/** 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. */
|
|
24640
|
+
/** 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. */
|
|
24411
24641
|
"helix-sandbox-source": DefineCustomElement<
|
|
24412
24642
|
HelixSandboxSource,
|
|
24413
24643
|
HelixSandboxSourceVueProps,
|
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`.
|