@fusion.dev/helix 0.183.0 → 0.184.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 +287 -102
- package/dist/code-block/index.d.ts +1 -0
- package/dist/code-block/index.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/menu/filter/index.d.ts +1 -0
- package/dist/menu/filter/index.js +5 -0
- package/dist/menu/filter/menu-filter.css.d.ts +1 -0
- package/dist/menu/filter/menu-filter.css.js +2 -0
- package/dist/menu/root/menu-root.css.js +1 -1
- package/dist/sandbox/compile.d.ts +63 -0
- package/dist/sandbox/compile.js +52 -0
- package/dist/sandbox/preview/sandbox-preview.d.ts +29 -1
- package/dist/sandbox/preview/sandbox-preview.js +45 -7
- package/dist/sandbox/root/sandbox-root.d.ts +4 -0
- package/dist/sandbox/root/sandbox-root.js +1 -1
- package/lint.json +1 -1
- package/package.json +6 -6
- package/types/jsx.d.ts +104 -8
- package/types/vue.d.ts +26 -4
- package/types/words.d.ts +7 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix",
|
|
3
3
|
"description": "Styled component tier. Extends the headless tier with token-driven presentation.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.184.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
},
|
|
55
55
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@fusion.dev/helix-core": "0.
|
|
58
|
-
"@fusion.dev/helix-headless": "0.
|
|
59
|
-
"@fusion.dev/helix-styles": "0.
|
|
57
|
+
"@fusion.dev/helix-core": "0.184.0",
|
|
58
|
+
"@fusion.dev/helix-headless": "0.184.0",
|
|
59
|
+
"@fusion.dev/helix-styles": "0.184.0",
|
|
60
60
|
"tslib": "^2.8.1"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@fusion.dev/helix-cem": "0.
|
|
64
|
-
"@fusion.dev/helix-testing": "0.
|
|
63
|
+
"@fusion.dev/helix-cem": "0.184.0",
|
|
64
|
+
"@fusion.dev/helix-testing": "0.184.0",
|
|
65
65
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
66
66
|
"@happy-dom/global-registrator": "^20.14.5",
|
|
67
67
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -8045,7 +8045,11 @@ whole of it, which Shiki writes, are taken off, so the lines sit level
|
|
|
8045
8045
|
with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
8046
8046
|
in the slot, so the copy button copies it as written and a reader without
|
|
8047
8047
|
the script still has it. Not called on a server, which has no code to
|
|
8048
|
-
read, nor for a diff.
|
|
8048
|
+
read, nor for a diff.
|
|
8049
|
+
|
|
8050
|
+
Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
8051
|
+
every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
8052
|
+
registered one, and plain otherwise. */
|
|
8049
8053
|
highlight?: (HelixCodeBlock["highlight"]) | undefined;
|
|
8050
8054
|
|
|
8051
8055
|
/** A file tab showed its file, whose name `file` now holds. */
|
|
@@ -8285,7 +8289,11 @@ whole of it, which Shiki writes, are taken off, so the lines sit level
|
|
|
8285
8289
|
with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
8286
8290
|
in the slot, so the copy button copies it as written and a reader without
|
|
8287
8291
|
the script still has it. Not called on a server, which has no code to
|
|
8288
|
-
read, nor for a diff.
|
|
8292
|
+
read, nor for a diff.
|
|
8293
|
+
|
|
8294
|
+
Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
8295
|
+
every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
8296
|
+
registered one, and plain otherwise. */
|
|
8289
8297
|
"prop:highlight"?: (HelixCodeBlock["highlight"]) | undefined;
|
|
8290
8298
|
/** A file tab showed its file, whose name `file` now holds. */
|
|
8291
8299
|
"on:change"?: ((e: HelixCodeBlockElementEvent) => void) | undefined;
|
|
@@ -24301,7 +24309,11 @@ Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
|
24301
24309
|
starts with every row showing. */
|
|
24302
24310
|
filter?: (HelixMenu["filter"]) | undefined;
|
|
24303
24311
|
/** Whether the menu shows a field above its rows that narrows them as the
|
|
24304
|
-
reader types, with focus staying in the field
|
|
24312
|
+
reader types, with focus staying in the field, once
|
|
24313
|
+
`@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
24314
|
+
is imported. Without that import it does nothing, so a menu that never
|
|
24315
|
+
filters carries none of the filter's code, and a development build says
|
|
24316
|
+
which import is missing. */
|
|
24305
24317
|
filterable?: (HelixMenu["filterable"]) | undefined;
|
|
24306
24318
|
/** The filter field's name and placeholder. */
|
|
24307
24319
|
"filter-label"?: (HelixMenu["filterLabel"]) | undefined;
|
|
@@ -24435,7 +24447,11 @@ Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
|
24435
24447
|
starts with every row showing. */
|
|
24436
24448
|
"prop:filter"?: (HelixMenu["filter"]) | undefined;
|
|
24437
24449
|
/** Whether the menu shows a field above its rows that narrows them as the
|
|
24438
|
-
reader types, with focus staying in the field
|
|
24450
|
+
reader types, with focus staying in the field, once
|
|
24451
|
+
`@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
24452
|
+
is imported. Without that import it does nothing, so a menu that never
|
|
24453
|
+
filters carries none of the filter's code, and a development build says
|
|
24454
|
+
which import is missing. */
|
|
24439
24455
|
"prop:filterable"?: (HelixMenu["filterable"]) | undefined;
|
|
24440
24456
|
/** The filter field's name and placeholder. */
|
|
24441
24457
|
"attr:filter-label"?: (HelixMenu["filterLabel"]) | undefined;
|
|
@@ -36806,6 +36822,12 @@ number, and both are carried as one comma-separated value, which is what a
|
|
|
36806
36822
|
form submits. `TimePicker` carries the longer note on the interaction and
|
|
36807
36823
|
on why a wheel cannot do either. */
|
|
36808
36824
|
mode?: (HelixTimeInput["mode"]) | undefined;
|
|
36825
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
36826
|
+
`show-now`. */
|
|
36827
|
+
"now-label"?: (HelixTimeInput["nowLabel"]) | undefined;
|
|
36828
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
36829
|
+
`show-now`. */
|
|
36830
|
+
nowLabel?: (HelixTimeInput["nowLabel"]) | undefined;
|
|
36809
36831
|
/** Placeholder text shown before a time is entered. */
|
|
36810
36832
|
placeholder?: (HelixTimeInput["placeholder"]) | undefined;
|
|
36811
36833
|
/** The message shown when a range holds more than two times.
|
|
@@ -36846,6 +36868,14 @@ removes rather than as "Remove" said once per time. */
|
|
|
36846
36868
|
may give them, the field writes them, and the list's `step` counts seconds.
|
|
36847
36869
|
See Time Picker's `seconds`. */
|
|
36848
36870
|
seconds?: (HelixTimeInput["seconds"]) | undefined;
|
|
36871
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
36872
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
36873
|
+
are `now-label`. */
|
|
36874
|
+
"show-now"?: (HelixTimeInput["showNow"]) | undefined;
|
|
36875
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
36876
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
36877
|
+
are `now-label`. */
|
|
36878
|
+
showNow?: (HelixTimeInput["showNow"]) | undefined;
|
|
36849
36879
|
/** How far apart the offered times are, in minutes, or in seconds with
|
|
36850
36880
|
`seconds`. */
|
|
36851
36881
|
step?: (HelixTimeInput["step"]) | undefined;
|
|
@@ -37214,6 +37244,12 @@ number, and both are carried as one comma-separated value, which is what a
|
|
|
37214
37244
|
form submits. `TimePicker` carries the longer note on the interaction and
|
|
37215
37245
|
on why a wheel cannot do either. */
|
|
37216
37246
|
"prop:mode"?: (HelixTimeInput["mode"]) | undefined;
|
|
37247
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
37248
|
+
`show-now`. */
|
|
37249
|
+
"attr:now-label"?: (HelixTimeInput["nowLabel"]) | undefined;
|
|
37250
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
37251
|
+
`show-now`. */
|
|
37252
|
+
"prop:nowLabel"?: (HelixTimeInput["nowLabel"]) | undefined;
|
|
37217
37253
|
/** Placeholder text shown before a time is entered. */
|
|
37218
37254
|
"prop:placeholder"?: (HelixTimeInput["placeholder"]) | undefined;
|
|
37219
37255
|
/** The message shown when a range holds more than two times.
|
|
@@ -37254,6 +37290,14 @@ removes rather than as "Remove" said once per time. */
|
|
|
37254
37290
|
may give them, the field writes them, and the list's `step` counts seconds.
|
|
37255
37291
|
See Time Picker's `seconds`. */
|
|
37256
37292
|
"prop:seconds"?: (HelixTimeInput["seconds"]) | undefined;
|
|
37293
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
37294
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
37295
|
+
are `now-label`. */
|
|
37296
|
+
"bool:show-now"?: (HelixTimeInput["showNow"]) | undefined;
|
|
37297
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
37298
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
37299
|
+
are `now-label`. */
|
|
37300
|
+
"prop:showNow"?: (HelixTimeInput["showNow"]) | undefined;
|
|
37257
37301
|
/** How far apart the offered times are, in minutes, or in seconds with
|
|
37258
37302
|
`seconds`. */
|
|
37259
37303
|
"prop:step"?: (HelixTimeInput["step"]) | undefined;
|
|
@@ -47510,7 +47554,11 @@ export type CustomElements = {
|
|
|
47510
47554
|
* with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
47511
47555
|
* in the slot, so the copy button copies it as written and a reader without
|
|
47512
47556
|
* the script still has it. Not called on a server, which has no code to
|
|
47513
|
-
* read, nor for a diff.
|
|
47557
|
+
* read, nor for a diff.
|
|
47558
|
+
*
|
|
47559
|
+
* Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
47560
|
+
* every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
47561
|
+
* registered one, and plain otherwise. (property only)
|
|
47514
47562
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
47515
47563
|
*
|
|
47516
47564
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -58364,7 +58412,11 @@ export type CustomElements = {
|
|
|
58364
58412
|
* Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
58365
58413
|
* starts with every row showing.
|
|
58366
58414
|
* - `filterable`: Whether the menu shows a field above its rows that narrows them as the
|
|
58367
|
-
* reader types, with focus staying in the field
|
|
58415
|
+
* reader types, with focus staying in the field, once
|
|
58416
|
+
* `@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
58417
|
+
* is imported. Without that import it does nothing, so a menu that never
|
|
58418
|
+
* filters carries none of the filter's code, and a development build says
|
|
58419
|
+
* which import is missing.
|
|
58368
58420
|
* - `filter-label`/`filterLabel`: The filter field's name and placeholder.
|
|
58369
58421
|
* - `label`: Accessible name for the surface.
|
|
58370
58422
|
*
|
|
@@ -62677,6 +62729,15 @@ export type CustomElements = {
|
|
|
62677
62729
|
* in the `js` pane or in another module loads it. A sandbox writes each pane
|
|
62678
62730
|
* named for a module file here.
|
|
62679
62731
|
*
|
|
62732
|
+
* **A module in TypeScript or JSX runs too**: a path ending in `.ts`, `.tsx`
|
|
62733
|
+
* or `.jsx` is compiled to JavaScript first, and imported by its path or by
|
|
62734
|
+
* its path without the extension. The compiler, Sucrase, loads from `cdn` the
|
|
62735
|
+
* first time a module needs it, so the package carries none and a preview
|
|
62736
|
+
* with no such module loads none. JSX compiles to the automatic runtime,
|
|
62737
|
+
* `react/jsx-runtime`, from `dependencies`, or to the one a
|
|
62738
|
+
* `@jsxImportSource` comment names. What fails to compile shows in the
|
|
62739
|
+
* `error` part as an error the example threw, when the example imports it.
|
|
62740
|
+
*
|
|
62680
62741
|
* **Examples render in a frame**, so an example's styles and scripts do not
|
|
62681
62742
|
* affect the page around the sandbox, and `position: fixed` stays inside the
|
|
62682
62743
|
* pane. The frame starts empty, with its own stylesheets and its own custom
|
|
@@ -62860,6 +62921,10 @@ export type CustomElements = {
|
|
|
62860
62921
|
* - `js` sets a script that runs as a module after the markup.
|
|
62861
62922
|
* - A module file name ending in `.js` or `.mjs`, such as `utils.js`, is a
|
|
62862
62923
|
* module the other scripts import by its path, `./utils.js`.
|
|
62924
|
+
* - A module file name ending in `.ts`, `.tsx` or `.jsx`, such as `app.tsx`,
|
|
62925
|
+
* is one too, which the preview compiles to JavaScript first. The `js` pane
|
|
62926
|
+
* runs it with `import './app.tsx'`. A file that does not compile shows
|
|
62927
|
+
* why over the preview, as an error the example threw.
|
|
62863
62928
|
* - `package.json` sets the npm packages the scripts import by name, from its
|
|
62864
62929
|
* `dependencies`, which load from the preview's `cdn`.
|
|
62865
62930
|
*
|
|
@@ -68241,6 +68306,8 @@ export type CustomElements = {
|
|
|
68241
68306
|
* number, and both are carried as one comma-separated value, which is what a
|
|
68242
68307
|
* form submits. `TimePicker` carries the longer note on the interaction and
|
|
68243
68308
|
* on why a wheel cannot do either.
|
|
68309
|
+
* - `now-label`/`nowLabel`: The words on the list's button that chooses the current time, drawn with
|
|
68310
|
+
* `show-now`.
|
|
68244
68311
|
* - `placeholder`: Placeholder text shown before a time is entered.
|
|
68245
68312
|
* - `range-length-message`/`rangeLengthMessage`: The message shown when a range holds more than two times.
|
|
68246
68313
|
*
|
|
@@ -68258,6 +68325,9 @@ export type CustomElements = {
|
|
|
68258
68325
|
* - `seconds`: Whether times carry their seconds: the value is `HH:mm:ss`, a typed time
|
|
68259
68326
|
* may give them, the field writes them, and the list's `step` counts seconds.
|
|
68260
68327
|
* See Time Picker's `seconds`.
|
|
68328
|
+
* - `show-now`/`showNow`: Draws a button under the times in the list that chooses the current time,
|
|
68329
|
+
* moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
68330
|
+
* are `now-label`.
|
|
68261
68331
|
* - `step`: How far apart the offered times are, in minutes, or in seconds with
|
|
68262
68332
|
* `seconds`.
|
|
68263
68333
|
* - `time-style`/`timeStyle`: Whether the field shows the time in the local style or as the value
|
|
@@ -77307,7 +77377,11 @@ export type CustomElementsSolidJs = {
|
|
|
77307
77377
|
* with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
77308
77378
|
* in the slot, so the copy button copies it as written and a reader without
|
|
77309
77379
|
* the script still has it. Not called on a server, which has no code to
|
|
77310
|
-
* read, nor for a diff.
|
|
77380
|
+
* read, nor for a diff.
|
|
77381
|
+
*
|
|
77382
|
+
* Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
77383
|
+
* every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
77384
|
+
* registered one, and plain otherwise. (property only)
|
|
77311
77385
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
77312
77386
|
*
|
|
77313
77387
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -88328,7 +88402,11 @@ export type CustomElementsSolidJs = {
|
|
|
88328
88402
|
* Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
88329
88403
|
* starts with every row showing.
|
|
88330
88404
|
* - `filterable`: Whether the menu shows a field above its rows that narrows them as the
|
|
88331
|
-
* reader types, with focus staying in the field
|
|
88405
|
+
* reader types, with focus staying in the field, once
|
|
88406
|
+
* `@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
88407
|
+
* is imported. Without that import it does nothing, so a menu that never
|
|
88408
|
+
* filters carries none of the filter's code, and a development build says
|
|
88409
|
+
* which import is missing.
|
|
88332
88410
|
* - `filter-label`/`filterLabel`: The filter field's name and placeholder.
|
|
88333
88411
|
* - `label`: Accessible name for the surface.
|
|
88334
88412
|
*
|
|
@@ -92720,6 +92798,15 @@ export type CustomElementsSolidJs = {
|
|
|
92720
92798
|
* in the `js` pane or in another module loads it. A sandbox writes each pane
|
|
92721
92799
|
* named for a module file here.
|
|
92722
92800
|
*
|
|
92801
|
+
* **A module in TypeScript or JSX runs too**: a path ending in `.ts`, `.tsx`
|
|
92802
|
+
* or `.jsx` is compiled to JavaScript first, and imported by its path or by
|
|
92803
|
+
* its path without the extension. The compiler, Sucrase, loads from `cdn` the
|
|
92804
|
+
* first time a module needs it, so the package carries none and a preview
|
|
92805
|
+
* with no such module loads none. JSX compiles to the automatic runtime,
|
|
92806
|
+
* `react/jsx-runtime`, from `dependencies`, or to the one a
|
|
92807
|
+
* `@jsxImportSource` comment names. What fails to compile shows in the
|
|
92808
|
+
* `error` part as an error the example threw, when the example imports it.
|
|
92809
|
+
*
|
|
92723
92810
|
* **Examples render in a frame**, so an example's styles and scripts do not
|
|
92724
92811
|
* affect the page around the sandbox, and `position: fixed` stays inside the
|
|
92725
92812
|
* pane. The frame starts empty, with its own stylesheets and its own custom
|
|
@@ -92906,6 +92993,10 @@ export type CustomElementsSolidJs = {
|
|
|
92906
92993
|
* - `js` sets a script that runs as a module after the markup.
|
|
92907
92994
|
* - A module file name ending in `.js` or `.mjs`, such as `utils.js`, is a
|
|
92908
92995
|
* module the other scripts import by its path, `./utils.js`.
|
|
92996
|
+
* - A module file name ending in `.ts`, `.tsx` or `.jsx`, such as `app.tsx`,
|
|
92997
|
+
* is one too, which the preview compiles to JavaScript first. The `js` pane
|
|
92998
|
+
* runs it with `import './app.tsx'`. A file that does not compile shows
|
|
92999
|
+
* why over the preview, as an error the example threw.
|
|
92909
93000
|
* - `package.json` sets the npm packages the scripts import by name, from its
|
|
92910
93001
|
* `dependencies`, which load from the preview's `cdn`.
|
|
92911
93002
|
*
|
|
@@ -98387,6 +98478,8 @@ export type CustomElementsSolidJs = {
|
|
|
98387
98478
|
* number, and both are carried as one comma-separated value, which is what a
|
|
98388
98479
|
* form submits. `TimePicker` carries the longer note on the interaction and
|
|
98389
98480
|
* on why a wheel cannot do either.
|
|
98481
|
+
* - `now-label`/`nowLabel`: The words on the list's button that chooses the current time, drawn with
|
|
98482
|
+
* `show-now`.
|
|
98390
98483
|
* - `placeholder`: Placeholder text shown before a time is entered.
|
|
98391
98484
|
* - `range-length-message`/`rangeLengthMessage`: The message shown when a range holds more than two times.
|
|
98392
98485
|
*
|
|
@@ -98404,6 +98497,9 @@ export type CustomElementsSolidJs = {
|
|
|
98404
98497
|
* - `seconds`: Whether times carry their seconds: the value is `HH:mm:ss`, a typed time
|
|
98405
98498
|
* may give them, the field writes them, and the list's `step` counts seconds.
|
|
98406
98499
|
* See Time Picker's `seconds`.
|
|
98500
|
+
* - `show-now`/`showNow`: Draws a button under the times in the list that chooses the current time,
|
|
98501
|
+
* moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
98502
|
+
* are `now-label`.
|
|
98407
98503
|
* - `step`: How far apart the offered times are, in minutes, or in seconds with
|
|
98408
98504
|
* `seconds`.
|
|
98409
98505
|
* - `time-style`/`timeStyle`: Whether the field shows the time in the local style or as the value
|
package/types/vue.d.ts
CHANGED
|
@@ -4261,7 +4261,11 @@ whole of it, which Shiki writes, are taken off, so the lines sit level
|
|
|
4261
4261
|
with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
4262
4262
|
in the slot, so the copy button copies it as written and a reader without
|
|
4263
4263
|
the script still has it. Not called on a server, which has no code to
|
|
4264
|
-
read, nor for a diff.
|
|
4264
|
+
read, nor for a diff.
|
|
4265
|
+
|
|
4266
|
+
Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
4267
|
+
every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
4268
|
+
registered one, and plain otherwise. */
|
|
4265
4269
|
highlight?: (HelixCodeBlock["highlight"]) | undefined;
|
|
4266
4270
|
};
|
|
4267
4271
|
|
|
@@ -12495,7 +12499,11 @@ Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
|
12495
12499
|
starts with every row showing. */
|
|
12496
12500
|
filter?: (HelixMenu["filter"]) | undefined;
|
|
12497
12501
|
/** Whether the menu shows a field above its rows that narrows them as the
|
|
12498
|
-
reader types, with focus staying in the field
|
|
12502
|
+
reader types, with focus staying in the field, once
|
|
12503
|
+
`@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
12504
|
+
is imported. Without that import it does nothing, so a menu that never
|
|
12505
|
+
filters carries none of the filter's code, and a development build says
|
|
12506
|
+
which import is missing. */
|
|
12499
12507
|
filterable?: (HelixMenu["filterable"]) | undefined;
|
|
12500
12508
|
/** The filter field's name and placeholder. */
|
|
12501
12509
|
"filter-label"?: (HelixMenu["filterLabel"]) | undefined;
|
|
@@ -19001,6 +19009,12 @@ number, and both are carried as one comma-separated value, which is what a
|
|
|
19001
19009
|
form submits. `TimePicker` carries the longer note on the interaction and
|
|
19002
19010
|
on why a wheel cannot do either. */
|
|
19003
19011
|
mode?: (HelixTimeInput["mode"]) | undefined;
|
|
19012
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
19013
|
+
`show-now`. */
|
|
19014
|
+
"now-label"?: (HelixTimeInput["nowLabel"]) | undefined;
|
|
19015
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
19016
|
+
`show-now`. */
|
|
19017
|
+
nowLabel?: (HelixTimeInput["nowLabel"]) | undefined;
|
|
19004
19018
|
/** Placeholder text shown before a time is entered. */
|
|
19005
19019
|
placeholder?: (HelixTimeInput["placeholder"]) | undefined;
|
|
19006
19020
|
/** The message shown when a range holds more than two times.
|
|
@@ -19041,6 +19055,14 @@ removes rather than as "Remove" said once per time. */
|
|
|
19041
19055
|
may give them, the field writes them, and the list's `step` counts seconds.
|
|
19042
19056
|
See Time Picker's `seconds`. */
|
|
19043
19057
|
seconds?: (HelixTimeInput["seconds"]) | undefined;
|
|
19058
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
19059
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
19060
|
+
are `now-label`. */
|
|
19061
|
+
"show-now"?: (HelixTimeInput["showNow"]) | undefined;
|
|
19062
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
19063
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
19064
|
+
are `now-label`. */
|
|
19065
|
+
showNow?: (HelixTimeInput["showNow"]) | undefined;
|
|
19044
19066
|
/** How far apart the offered times are, in minutes, or in seconds with
|
|
19045
19067
|
`seconds`. */
|
|
19046
19068
|
step?: (HelixTimeInput["step"]) | undefined;
|
|
@@ -24877,13 +24899,13 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
24877
24899
|
HelixRatingVueProps,
|
|
24878
24900
|
HelixRatingVueEvents
|
|
24879
24901
|
>;
|
|
24880
|
-
/** 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. */
|
|
24902
|
+
/** 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. **A module in TypeScript or JSX runs too**: a path ending in '.ts', '.tsx' or '.jsx' is compiled to JavaScript first, and imported by its path or by its path without the extension. The compiler, Sucrase, loads from 'cdn' the first time a module needs it, so the package carries none and a preview with no such module loads none. JSX compiles to the automatic runtime, 'react/jsx-runtime', from 'dependencies', or to the one a '@jsxImportSource' comment names. What fails to compile shows in the 'error' part as an error the example threw, when the example imports it. **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. */
|
|
24881
24903
|
"helix-sandbox-preview": DefineCustomElement<
|
|
24882
24904
|
HelixSandboxPreview,
|
|
24883
24905
|
HelixSandboxPreviewVueProps,
|
|
24884
24906
|
HelixSandboxPreviewVueEvents
|
|
24885
24907
|
>;
|
|
24886
|
-
/** 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. */
|
|
24908
|
+
/** 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'. - A module file name ending in '.ts', '.tsx' or '.jsx', such as 'app.tsx', is one too, which the preview compiles to JavaScript first. The 'js' pane runs it with 'import './app.tsx''. A file that does not compile shows why over the preview, as an error the example threw. - '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. */
|
|
24887
24909
|
"helix-sandbox": DefineCustomElement<
|
|
24888
24910
|
HelixSandbox,
|
|
24889
24911
|
HelixSandboxVueProps,
|
package/types/words.d.ts
CHANGED
|
@@ -502,6 +502,13 @@ declare module '@fusion.dev/helix-core' {
|
|
|
502
502
|
* English: `Notes`
|
|
503
503
|
*/
|
|
504
504
|
notesLabel: Message
|
|
505
|
+
/**
|
|
506
|
+
* The words on the list's button that chooses the current time, drawn with
|
|
507
|
+
* `show-now`.
|
|
508
|
+
*
|
|
509
|
+
* English: `Now`
|
|
510
|
+
*/
|
|
511
|
+
nowLabel: Message
|
|
505
512
|
/**
|
|
506
513
|
* The `overview`'s sentence. `{busiestLabel}` and `{totalLabel}` are
|
|
507
514
|
* `busiest-label` and `total-label`, `{busiest}` the busiest reading's name
|