@fusion.dev/helix-headless 0.183.0 → 0.185.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 +546 -80
- package/dist/code-block/root/code-block-root.d.ts +42 -1
- package/dist/code-block/root/code-block-root.js +25 -4
- package/dist/data-table/root/data-table-root.d.ts +25 -6
- package/dist/data-table/root/data-table-root.js +21 -9
- 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 +4 -0
- package/dist/menu/filter/menu-filter.d.ts +114 -0
- package/dist/menu/filter/menu-filter.js +172 -0
- package/dist/menu/root/menu-root.d.ts +28 -29
- package/dist/menu/root/menu-root.js +32 -107
- package/dist/table/root/table-root.d.ts +4 -6
- package/dist/table/root/table-root.js +2 -28
- package/dist/table/tracks.d.ts +20 -0
- package/dist/table/tracks.js +28 -0
- package/dist/time-input/root/time-input-root.d.ts +11 -0
- package/dist/time-input/root/time-input-root.js +11 -0
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +190 -44
- package/types/vue.d.ts +42 -11
- package/types/words.d.ts +7 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix-headless",
|
|
3
3
|
"description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.185.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -49,14 +49,14 @@
|
|
|
49
49
|
},
|
|
50
50
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@fusion.dev/helix-core": "0.
|
|
53
|
-
"@fusion.dev/helix-icons": "0.
|
|
52
|
+
"@fusion.dev/helix-core": "0.185.0",
|
|
53
|
+
"@fusion.dev/helix-icons": "0.185.0",
|
|
54
54
|
"tslib": "^2.8.1",
|
|
55
55
|
"uqr": "^0.1.3"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@fusion.dev/helix-cem": "0.
|
|
59
|
-
"@fusion.dev/helix-testing": "0.
|
|
58
|
+
"@fusion.dev/helix-cem": "0.185.0",
|
|
59
|
+
"@fusion.dev/helix-testing": "0.185.0",
|
|
60
60
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
61
61
|
"@happy-dom/global-registrator": "^20.14.5",
|
|
62
62
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -6392,7 +6392,11 @@ whole of it, which Shiki writes, are taken off, so the lines sit level
|
|
|
6392
6392
|
with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
6393
6393
|
in the slot, so the copy button copies it as written and a reader without
|
|
6394
6394
|
the script still has it. Not called on a server, which has no code to
|
|
6395
|
-
read, nor for a diff.
|
|
6395
|
+
read, nor for a diff.
|
|
6396
|
+
|
|
6397
|
+
Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
6398
|
+
every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
6399
|
+
registered one, and plain otherwise. */
|
|
6396
6400
|
highlight?: (HelixHeadlessCodeBlock["highlight"]) | undefined;
|
|
6397
6401
|
|
|
6398
6402
|
/** A file tab showed its file, whose name `file` now holds. */
|
|
@@ -6634,7 +6638,11 @@ whole of it, which Shiki writes, are taken off, so the lines sit level
|
|
|
6634
6638
|
with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
6635
6639
|
in the slot, so the copy button copies it as written and a reader without
|
|
6636
6640
|
the script still has it. Not called on a server, which has no code to
|
|
6637
|
-
read, nor for a diff.
|
|
6641
|
+
read, nor for a diff.
|
|
6642
|
+
|
|
6643
|
+
Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
6644
|
+
every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
6645
|
+
registered one, and plain otherwise. */
|
|
6638
6646
|
"prop:highlight"?: (HelixHeadlessCodeBlock["highlight"]) | undefined;
|
|
6639
6647
|
/** A file tab showed its file, whose name `file` now holds. */
|
|
6640
6648
|
"on:change"?: ((e: HelixHeadlessCodeBlockElementEvent) => void) | undefined;
|
|
@@ -9420,6 +9428,16 @@ and the grid becomes a tree grid.
|
|
|
9420
9428
|
Reflected, because the styled tier indents a tree grid's row headers by
|
|
9421
9429
|
it. No default, so a table that sets none writes nothing onto its host. */
|
|
9422
9430
|
childField?: (HelixHeadlessDataTable["childField"]) | undefined;
|
|
9431
|
+
/** The column tracks, as a grid track list such as `2fr 1fr max-content`,
|
|
9432
|
+
dealt out one track to a column in the order the columns are written. A
|
|
9433
|
+
column's own `width` wins in its place, and a column it does not reach
|
|
9434
|
+
takes the track a column with no `width` takes.
|
|
9435
|
+
|
|
9436
|
+
**The one track list a server can send.** A server rendering this element
|
|
9437
|
+
has no columns to read a `width` from, and neither has a stylesheet laying
|
|
9438
|
+
out the rows a page served before the table upgrades, so a table sized here
|
|
9439
|
+
lays those rows out at the widths it draws. */
|
|
9440
|
+
columns?: (HelixHeadlessDataTable["columns"]) | undefined;
|
|
9423
9441
|
/** The keys of the rows open at the start, separated by commas. Used until
|
|
9424
9442
|
`expanded` is set. */
|
|
9425
9443
|
"default-expanded"?: (HelixHeadlessDataTable["defaultExpanded"]) | undefined;
|
|
@@ -9853,6 +9871,16 @@ and the grid becomes a tree grid.
|
|
|
9853
9871
|
Reflected, because the styled tier indents a tree grid's row headers by
|
|
9854
9872
|
it. No default, so a table that sets none writes nothing onto its host. */
|
|
9855
9873
|
"prop:childField"?: (HelixHeadlessDataTable["childField"]) | undefined;
|
|
9874
|
+
/** The column tracks, as a grid track list such as `2fr 1fr max-content`,
|
|
9875
|
+
dealt out one track to a column in the order the columns are written. A
|
|
9876
|
+
column's own `width` wins in its place, and a column it does not reach
|
|
9877
|
+
takes the track a column with no `width` takes.
|
|
9878
|
+
|
|
9879
|
+
**The one track list a server can send.** A server rendering this element
|
|
9880
|
+
has no columns to read a `width` from, and neither has a stylesheet laying
|
|
9881
|
+
out the rows a page served before the table upgrades, so a table sized here
|
|
9882
|
+
lays those rows out at the widths it draws. */
|
|
9883
|
+
"prop:columns"?: (HelixHeadlessDataTable["columns"]) | undefined;
|
|
9856
9884
|
/** The keys of the rows open at the start, separated by commas. Used until
|
|
9857
9885
|
`expanded` is set. */
|
|
9858
9886
|
"attr:default-expanded"?: (HelixHeadlessDataTable["defaultExpanded"]) | undefined;
|
|
@@ -21529,7 +21557,11 @@ Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
|
21529
21557
|
starts with every row showing. */
|
|
21530
21558
|
filter?: (HelixHeadlessMenu["filter"]) | undefined;
|
|
21531
21559
|
/** Whether the menu shows a field above its rows that narrows them as the
|
|
21532
|
-
reader types, with focus staying in the field
|
|
21560
|
+
reader types, with focus staying in the field, once
|
|
21561
|
+
`@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
21562
|
+
is imported. Without that import it does nothing, so a menu that never
|
|
21563
|
+
filters carries none of the filter's code, and a development build says
|
|
21564
|
+
which import is missing. */
|
|
21533
21565
|
filterable?: (HelixHeadlessMenu["filterable"]) | undefined;
|
|
21534
21566
|
/** The filter field's name and placeholder. */
|
|
21535
21567
|
"filter-label"?: (HelixHeadlessMenu["filterLabel"]) | undefined;
|
|
@@ -21667,7 +21699,11 @@ Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
|
21667
21699
|
starts with every row showing. */
|
|
21668
21700
|
"prop:filter"?: (HelixHeadlessMenu["filter"]) | undefined;
|
|
21669
21701
|
/** Whether the menu shows a field above its rows that narrows them as the
|
|
21670
|
-
reader types, with focus staying in the field
|
|
21702
|
+
reader types, with focus staying in the field, once
|
|
21703
|
+
`@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
21704
|
+
is imported. Without that import it does nothing, so a menu that never
|
|
21705
|
+
filters carries none of the filter's code, and a development build says
|
|
21706
|
+
which import is missing. */
|
|
21671
21707
|
"prop:filterable"?: (HelixHeadlessMenu["filterable"]) | undefined;
|
|
21672
21708
|
/** The filter field's name and placeholder. */
|
|
21673
21709
|
"attr:filter-label"?: (HelixHeadlessMenu["filterLabel"]) | undefined;
|
|
@@ -30116,13 +30152,11 @@ and each column may say otherwise.
|
|
|
30116
30152
|
**It is also the only track list a server can send.** The shim has no tree
|
|
30117
30153
|
to walk, so a render there knows of no columns and this attribute is the
|
|
30118
30154
|
whole answer: a table given one lays its grid out in the first paint, and a
|
|
30119
|
-
table sized only by its columns
|
|
30155
|
+
table sized only by its columns takes, until it upgrades, a track for each
|
|
30156
|
+
column at the width a column with no `width` takes (`helix.css`).
|
|
30120
30157
|
|
|
30121
|
-
|
|
30122
|
-
|
|
30123
|
-
and a list here would be a second way to say what that says. This table's
|
|
30124
|
-
cells are markup, and a table written as rows of cells with no column
|
|
30125
|
-
declared in it has nowhere else to be sized from. */
|
|
30158
|
+
Data Table takes the same list, for the same reason: a data table that
|
|
30159
|
+
serves its first page as rows is laid out by it before it upgrades. */
|
|
30126
30160
|
columns?: (HelixHeadlessTable["columns"]) | undefined;
|
|
30127
30161
|
/** The keys of the rows whose rows are shown at the start, separated by
|
|
30128
30162
|
commas. Used until `expanded` is set. */
|
|
@@ -30381,13 +30415,11 @@ and each column may say otherwise.
|
|
|
30381
30415
|
**It is also the only track list a server can send.** The shim has no tree
|
|
30382
30416
|
to walk, so a render there knows of no columns and this attribute is the
|
|
30383
30417
|
whole answer: a table given one lays its grid out in the first paint, and a
|
|
30384
|
-
table sized only by its columns
|
|
30418
|
+
table sized only by its columns takes, until it upgrades, a track for each
|
|
30419
|
+
column at the width a column with no `width` takes (`helix.css`).
|
|
30385
30420
|
|
|
30386
|
-
|
|
30387
|
-
|
|
30388
|
-
and a list here would be a second way to say what that says. This table's
|
|
30389
|
-
cells are markup, and a table written as rows of cells with no column
|
|
30390
|
-
declared in it has nowhere else to be sized from. */
|
|
30421
|
+
Data Table takes the same list, for the same reason: a data table that
|
|
30422
|
+
serves its first page as rows is laid out by it before it upgrades. */
|
|
30391
30423
|
"prop:columns"?: (HelixHeadlessTable["columns"]) | undefined;
|
|
30392
30424
|
/** The keys of the rows whose rows are shown at the start, separated by
|
|
30393
30425
|
commas. Used until `expanded` is set. */
|
|
@@ -31763,6 +31795,12 @@ number, and both are carried as one comma-separated value, which is what a
|
|
|
31763
31795
|
form submits. `TimePicker` carries the longer note on the interaction and
|
|
31764
31796
|
on why a wheel cannot do either. */
|
|
31765
31797
|
mode?: (HelixHeadlessTimeInput["mode"]) | undefined;
|
|
31798
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
31799
|
+
`show-now`. */
|
|
31800
|
+
"now-label"?: (HelixHeadlessTimeInput["nowLabel"]) | undefined;
|
|
31801
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
31802
|
+
`show-now`. */
|
|
31803
|
+
nowLabel?: (HelixHeadlessTimeInput["nowLabel"]) | undefined;
|
|
31766
31804
|
/** Placeholder text shown before a time is entered. */
|
|
31767
31805
|
placeholder?: (HelixHeadlessTimeInput["placeholder"]) | undefined;
|
|
31768
31806
|
/** The message shown when a range holds more than two times.
|
|
@@ -31803,6 +31841,14 @@ removes rather than as "Remove" said once per time. */
|
|
|
31803
31841
|
may give them, the field writes them, and the list's `step` counts seconds.
|
|
31804
31842
|
See Time Picker's `seconds`. */
|
|
31805
31843
|
seconds?: (HelixHeadlessTimeInput["seconds"]) | undefined;
|
|
31844
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
31845
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
31846
|
+
are `now-label`. */
|
|
31847
|
+
"show-now"?: (HelixHeadlessTimeInput["showNow"]) | undefined;
|
|
31848
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
31849
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
31850
|
+
are `now-label`. */
|
|
31851
|
+
showNow?: (HelixHeadlessTimeInput["showNow"]) | undefined;
|
|
31806
31852
|
/** How far apart the offered times are, in minutes, or in seconds with
|
|
31807
31853
|
`seconds`. */
|
|
31808
31854
|
step?: (HelixHeadlessTimeInput["step"]) | undefined;
|
|
@@ -32171,6 +32217,12 @@ number, and both are carried as one comma-separated value, which is what a
|
|
|
32171
32217
|
form submits. `TimePicker` carries the longer note on the interaction and
|
|
32172
32218
|
on why a wheel cannot do either. */
|
|
32173
32219
|
"prop:mode"?: (HelixHeadlessTimeInput["mode"]) | undefined;
|
|
32220
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
32221
|
+
`show-now`. */
|
|
32222
|
+
"attr:now-label"?: (HelixHeadlessTimeInput["nowLabel"]) | undefined;
|
|
32223
|
+
/** The words on the list's button that chooses the current time, drawn with
|
|
32224
|
+
`show-now`. */
|
|
32225
|
+
"prop:nowLabel"?: (HelixHeadlessTimeInput["nowLabel"]) | undefined;
|
|
32174
32226
|
/** Placeholder text shown before a time is entered. */
|
|
32175
32227
|
"prop:placeholder"?: (HelixHeadlessTimeInput["placeholder"]) | undefined;
|
|
32176
32228
|
/** The message shown when a range holds more than two times.
|
|
@@ -32211,6 +32263,14 @@ removes rather than as "Remove" said once per time. */
|
|
|
32211
32263
|
may give them, the field writes them, and the list's `step` counts seconds.
|
|
32212
32264
|
See Time Picker's `seconds`. */
|
|
32213
32265
|
"prop:seconds"?: (HelixHeadlessTimeInput["seconds"]) | undefined;
|
|
32266
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
32267
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
32268
|
+
are `now-label`. */
|
|
32269
|
+
"bool:show-now"?: (HelixHeadlessTimeInput["showNow"]) | undefined;
|
|
32270
|
+
/** Draws a button under the times in the list that chooses the current time,
|
|
32271
|
+
moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
32272
|
+
are `now-label`. */
|
|
32273
|
+
"prop:showNow"?: (HelixHeadlessTimeInput["showNow"]) | undefined;
|
|
32214
32274
|
/** How far apart the offered times are, in minutes, or in seconds with
|
|
32215
32275
|
`seconds`. */
|
|
32216
32276
|
"prop:step"?: (HelixHeadlessTimeInput["step"]) | undefined;
|
|
@@ -42127,6 +42187,20 @@ export type CustomElements = {
|
|
|
42127
42187
|
* the slot, so the copy button and the page's own text are the code as
|
|
42128
42188
|
* written.
|
|
42129
42189
|
*
|
|
42190
|
+
* **Code Block ships no grammar**, so plain code costs you no parser. To color
|
|
42191
|
+
* code without a highlighter of your own, import one more entry beside the
|
|
42192
|
+
* block's. It colors every block by its `language` (`css`, `html`, `js`,
|
|
42193
|
+
* `jsx`, `sh`, `ts`, or `tsx`) with the Lezer grammars of the sandbox's
|
|
42194
|
+
* editor, in the editor's colors:
|
|
42195
|
+
*
|
|
42196
|
+
* ```js
|
|
42197
|
+
* import '@fusion.dev/helix/code-block'
|
|
42198
|
+
* import '@fusion.dev/helix-sandbox/code-block'
|
|
42199
|
+
* ```
|
|
42200
|
+
*
|
|
42201
|
+
* That entry calls `registerHighlighter`, which you can also call yourself to
|
|
42202
|
+
* give every block one highlighter of your own.
|
|
42203
|
+
*
|
|
42130
42204
|
* Set `expandable` on a block whose height is capped, such as by
|
|
42131
42205
|
* `--code-block-max-block-size`, and a button under it shows every line and
|
|
42132
42206
|
* then fewer again, as a docs site's long example does. The button is drawn
|
|
@@ -42299,7 +42373,11 @@ export type CustomElements = {
|
|
|
42299
42373
|
* with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
42300
42374
|
* in the slot, so the copy button copies it as written and a reader without
|
|
42301
42375
|
* the script still has it. Not called on a server, which has no code to
|
|
42302
|
-
* read, nor for a diff.
|
|
42376
|
+
* read, nor for a diff.
|
|
42377
|
+
*
|
|
42378
|
+
* Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
42379
|
+
* every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
42380
|
+
* registered one, and plain otherwise. (property only)
|
|
42303
42381
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
42304
42382
|
*
|
|
42305
42383
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -44328,11 +44406,12 @@ export type CustomElements = {
|
|
|
44328
44406
|
* `csv()` returns the result as text: every row that passes the filter, in the
|
|
44329
44407
|
* order and the columns on screen. Saving the file is up to you.
|
|
44330
44408
|
*
|
|
44331
|
-
*
|
|
44332
|
-
*
|
|
44333
|
-
*
|
|
44334
|
-
*
|
|
44335
|
-
*
|
|
44409
|
+
* Size a column with its own `width`, or every column at once with `columns`,
|
|
44410
|
+
* a track list dealt out one track to a column in the order they are written,
|
|
44411
|
+
* as `Table` deals it. A column's `width` wins in its place. **A table that
|
|
44412
|
+
* serves its first page takes its widths from `columns`**: a server and a
|
|
44413
|
+
* stylesheet can read the table's own attributes and not its columns', so the
|
|
44414
|
+
* served rows are laid out at the widths the table draws.
|
|
44336
44415
|
*
|
|
44337
44416
|
* **The columns are an import of their own.** A column is the Table family's
|
|
44338
44417
|
* `TableColumn`, which the data table does not register, so a page that writes
|
|
@@ -44358,6 +44437,15 @@ export type CustomElements = {
|
|
|
44358
44437
|
*
|
|
44359
44438
|
* Reflected, because the styled tier indents a tree grid's row headers by
|
|
44360
44439
|
* it. No default, so a table that sets none writes nothing onto its host.
|
|
44440
|
+
* - `columns`: The column tracks, as a grid track list such as `2fr 1fr max-content`,
|
|
44441
|
+
* dealt out one track to a column in the order the columns are written. A
|
|
44442
|
+
* column's own `width` wins in its place, and a column it does not reach
|
|
44443
|
+
* takes the track a column with no `width` takes.
|
|
44444
|
+
*
|
|
44445
|
+
* **The one track list a server can send.** A server rendering this element
|
|
44446
|
+
* has no columns to read a `width` from, and neither has a stylesheet laying
|
|
44447
|
+
* out the rows a page served before the table upgrades, so a table sized here
|
|
44448
|
+
* lays those rows out at the widths it draws.
|
|
44361
44449
|
* - `default-expanded`/`defaultExpanded`: The keys of the rows open at the start, separated by commas. Used until
|
|
44362
44450
|
* `expanded` is set.
|
|
44363
44451
|
* - `default-filter`/`defaultFilter`: The starting search query, used until `filter` is set.
|
|
@@ -53664,7 +53752,15 @@ export type CustomElements = {
|
|
|
53664
53752
|
* opens it from the keyboard, and the trigger is described by
|
|
53665
53753
|
* `long-press-label`, which says so.
|
|
53666
53754
|
*
|
|
53667
|
-
* **A filter field
|
|
53755
|
+
* **A filter field** is a separate import, `@fusion.dev/helix/menu/filter`, so
|
|
53756
|
+
* a menu that never filters carries none of its code:
|
|
53757
|
+
*
|
|
53758
|
+
* ```js
|
|
53759
|
+
* import '@fusion.dev/helix/menu'
|
|
53760
|
+
* import '@fusion.dev/helix/menu/filter'
|
|
53761
|
+
* ```
|
|
53762
|
+
*
|
|
53763
|
+
* With it imported and `filterable` set, the menu opens with focus in a field
|
|
53668
53764
|
* above its rows, and typing narrows the rows of the page the keys move in,
|
|
53669
53765
|
* as React Aria's `Autocomplete` around a `Menu` does. A row is kept where its
|
|
53670
53766
|
* words hold the filter, in any case, or where `filterMatch` says so. Each
|
|
@@ -53697,7 +53793,11 @@ export type CustomElements = {
|
|
|
53697
53793
|
* Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
53698
53794
|
* starts with every row showing.
|
|
53699
53795
|
* - `filterable`: Whether the menu shows a field above its rows that narrows them as the
|
|
53700
|
-
* reader types, with focus staying in the field
|
|
53796
|
+
* reader types, with focus staying in the field, once
|
|
53797
|
+
* `@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
53798
|
+
* is imported. Without that import it does nothing, so a menu that never
|
|
53799
|
+
* filters carries none of the filter's code, and a development build says
|
|
53800
|
+
* which import is missing.
|
|
53701
53801
|
* - `filter-label`/`filterLabel`: The filter field's name and placeholder.
|
|
53702
53802
|
* - `label`: Accessible name for the surface.
|
|
53703
53803
|
*
|
|
@@ -61338,13 +61438,11 @@ export type CustomElements = {
|
|
|
61338
61438
|
* **It is also the only track list a server can send.** The shim has no tree
|
|
61339
61439
|
* to walk, so a render there knows of no columns and this attribute is the
|
|
61340
61440
|
* whole answer: a table given one lays its grid out in the first paint, and a
|
|
61341
|
-
* table sized only by its columns
|
|
61441
|
+
* table sized only by its columns takes, until it upgrades, a track for each
|
|
61442
|
+
* column at the width a column with no `width` takes (`helix.css`).
|
|
61342
61443
|
*
|
|
61343
|
-
*
|
|
61344
|
-
*
|
|
61345
|
-
* and a list here would be a second way to say what that says. This table's
|
|
61346
|
-
* cells are markup, and a table written as rows of cells with no column
|
|
61347
|
-
* declared in it has nowhere else to be sized from.
|
|
61444
|
+
* Data Table takes the same list, for the same reason: a data table that
|
|
61445
|
+
* serves its first page as rows is laid out by it before it upgrades.
|
|
61348
61446
|
* - `default-expanded`/`defaultExpanded`: The keys of the rows whose rows are shown at the start, separated by
|
|
61349
61447
|
* commas. Used until `expanded` is set.
|
|
61350
61448
|
* - `default-selected`/`defaultSelected`: The keys selected at the start, separated by commas. Used until `selected`
|
|
@@ -62684,6 +62782,8 @@ export type CustomElements = {
|
|
|
62684
62782
|
* number, and both are carried as one comma-separated value, which is what a
|
|
62685
62783
|
* form submits. `TimePicker` carries the longer note on the interaction and
|
|
62686
62784
|
* on why a wheel cannot do either.
|
|
62785
|
+
* - `now-label`/`nowLabel`: The words on the list's button that chooses the current time, drawn with
|
|
62786
|
+
* `show-now`.
|
|
62687
62787
|
* - `placeholder`: Placeholder text shown before a time is entered.
|
|
62688
62788
|
* - `range-length-message`/`rangeLengthMessage`: The message shown when a range holds more than two times.
|
|
62689
62789
|
*
|
|
@@ -62701,6 +62801,9 @@ export type CustomElements = {
|
|
|
62701
62801
|
* - `seconds`: Whether times carry their seconds: the value is `HH:mm:ss`, a typed time
|
|
62702
62802
|
* may give them, the field writes them, and the list's `step` counts seconds.
|
|
62703
62803
|
* See Time Picker's `seconds`.
|
|
62804
|
+
* - `show-now`/`showNow`: Draws a button under the times in the list that chooses the current time,
|
|
62805
|
+
* moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
62806
|
+
* are `now-label`.
|
|
62704
62807
|
* - `step`: How far apart the offered times are, in minutes, or in seconds with
|
|
62705
62808
|
* `seconds`.
|
|
62706
62809
|
* - `time-style`/`timeStyle`: Whether the field shows the time in the local style or as the value
|
|
@@ -71901,6 +72004,20 @@ export type CustomElementsSolidJs = {
|
|
|
71901
72004
|
* the slot, so the copy button and the page's own text are the code as
|
|
71902
72005
|
* written.
|
|
71903
72006
|
*
|
|
72007
|
+
* **Code Block ships no grammar**, so plain code costs you no parser. To color
|
|
72008
|
+
* code without a highlighter of your own, import one more entry beside the
|
|
72009
|
+
* block's. It colors every block by its `language` (`css`, `html`, `js`,
|
|
72010
|
+
* `jsx`, `sh`, `ts`, or `tsx`) with the Lezer grammars of the sandbox's
|
|
72011
|
+
* editor, in the editor's colors:
|
|
72012
|
+
*
|
|
72013
|
+
* ```js
|
|
72014
|
+
* import '@fusion.dev/helix/code-block'
|
|
72015
|
+
* import '@fusion.dev/helix-sandbox/code-block'
|
|
72016
|
+
* ```
|
|
72017
|
+
*
|
|
72018
|
+
* That entry calls `registerHighlighter`, which you can also call yourself to
|
|
72019
|
+
* give every block one highlighter of your own.
|
|
72020
|
+
*
|
|
71904
72021
|
* Set `expandable` on a block whose height is capped, such as by
|
|
71905
72022
|
* `--code-block-max-block-size`, and a button under it shows every line and
|
|
71906
72023
|
* then fewer again, as a docs site's long example does. The button is drawn
|
|
@@ -72073,7 +72190,11 @@ export type CustomElementsSolidJs = {
|
|
|
72073
72190
|
* with the gutter's numbers and the block keeps one tab stop. The code stays
|
|
72074
72191
|
* in the slot, so the copy button copies it as written and a reader without
|
|
72075
72192
|
* the script still has it. Not called on a server, which has no code to
|
|
72076
|
-
* read, nor for a diff.
|
|
72193
|
+
* read, nor for a diff.
|
|
72194
|
+
*
|
|
72195
|
+
* Absent, the block draws with the highlighter `registerHighlighter` gave
|
|
72196
|
+
* every block, where an entry such as `@fusion.dev/helix-sandbox/code-block`
|
|
72197
|
+
* registered one, and plain otherwise. (property only)
|
|
72077
72198
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
72078
72199
|
*
|
|
72079
72200
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -74117,11 +74238,12 @@ export type CustomElementsSolidJs = {
|
|
|
74117
74238
|
* `csv()` returns the result as text: every row that passes the filter, in the
|
|
74118
74239
|
* order and the columns on screen. Saving the file is up to you.
|
|
74119
74240
|
*
|
|
74120
|
-
*
|
|
74121
|
-
*
|
|
74122
|
-
*
|
|
74123
|
-
*
|
|
74124
|
-
*
|
|
74241
|
+
* Size a column with its own `width`, or every column at once with `columns`,
|
|
74242
|
+
* a track list dealt out one track to a column in the order they are written,
|
|
74243
|
+
* as `Table` deals it. A column's `width` wins in its place. **A table that
|
|
74244
|
+
* serves its first page takes its widths from `columns`**: a server and a
|
|
74245
|
+
* stylesheet can read the table's own attributes and not its columns', so the
|
|
74246
|
+
* served rows are laid out at the widths the table draws.
|
|
74125
74247
|
*
|
|
74126
74248
|
* **The columns are an import of their own.** A column is the Table family's
|
|
74127
74249
|
* `TableColumn`, which the data table does not register, so a page that writes
|
|
@@ -74147,6 +74269,15 @@ export type CustomElementsSolidJs = {
|
|
|
74147
74269
|
*
|
|
74148
74270
|
* Reflected, because the styled tier indents a tree grid's row headers by
|
|
74149
74271
|
* it. No default, so a table that sets none writes nothing onto its host.
|
|
74272
|
+
* - `columns`: The column tracks, as a grid track list such as `2fr 1fr max-content`,
|
|
74273
|
+
* dealt out one track to a column in the order the columns are written. A
|
|
74274
|
+
* column's own `width` wins in its place, and a column it does not reach
|
|
74275
|
+
* takes the track a column with no `width` takes.
|
|
74276
|
+
*
|
|
74277
|
+
* **The one track list a server can send.** A server rendering this element
|
|
74278
|
+
* has no columns to read a `width` from, and neither has a stylesheet laying
|
|
74279
|
+
* out the rows a page served before the table upgrades, so a table sized here
|
|
74280
|
+
* lays those rows out at the widths it draws.
|
|
74150
74281
|
* - `default-expanded`/`defaultExpanded`: The keys of the rows open at the start, separated by commas. Used until
|
|
74151
74282
|
* `expanded` is set.
|
|
74152
74283
|
* - `default-filter`/`defaultFilter`: The starting search query, used until `filter` is set.
|
|
@@ -83558,7 +83689,15 @@ export type CustomElementsSolidJs = {
|
|
|
83558
83689
|
* opens it from the keyboard, and the trigger is described by
|
|
83559
83690
|
* `long-press-label`, which says so.
|
|
83560
83691
|
*
|
|
83561
|
-
* **A filter field
|
|
83692
|
+
* **A filter field** is a separate import, `@fusion.dev/helix/menu/filter`, so
|
|
83693
|
+
* a menu that never filters carries none of its code:
|
|
83694
|
+
*
|
|
83695
|
+
* ```js
|
|
83696
|
+
* import '@fusion.dev/helix/menu'
|
|
83697
|
+
* import '@fusion.dev/helix/menu/filter'
|
|
83698
|
+
* ```
|
|
83699
|
+
*
|
|
83700
|
+
* With it imported and `filterable` set, the menu opens with focus in a field
|
|
83562
83701
|
* above its rows, and typing narrows the rows of the page the keys move in,
|
|
83563
83702
|
* as React Aria's `Autocomplete` around a `Menu` does. A row is kept where its
|
|
83564
83703
|
* words hold the filter, in any case, or where `filterMatch` says so. Each
|
|
@@ -83591,7 +83730,11 @@ export type CustomElementsSolidJs = {
|
|
|
83591
83730
|
* Cleared as the menu closes and as a submenu opens or closes, so each page
|
|
83592
83731
|
* starts with every row showing.
|
|
83593
83732
|
* - `filterable`: Whether the menu shows a field above its rows that narrows them as the
|
|
83594
|
-
* reader types, with focus staying in the field
|
|
83733
|
+
* reader types, with focus staying in the field, once
|
|
83734
|
+
* `@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)
|
|
83735
|
+
* is imported. Without that import it does nothing, so a menu that never
|
|
83736
|
+
* filters carries none of the filter's code, and a development build says
|
|
83737
|
+
* which import is missing.
|
|
83595
83738
|
* - `filter-label`/`filterLabel`: The filter field's name and placeholder.
|
|
83596
83739
|
* - `label`: Accessible name for the surface.
|
|
83597
83740
|
*
|
|
@@ -91322,13 +91465,11 @@ export type CustomElementsSolidJs = {
|
|
|
91322
91465
|
* **It is also the only track list a server can send.** The shim has no tree
|
|
91323
91466
|
* to walk, so a render there knows of no columns and this attribute is the
|
|
91324
91467
|
* whole answer: a table given one lays its grid out in the first paint, and a
|
|
91325
|
-
* table sized only by its columns
|
|
91468
|
+
* table sized only by its columns takes, until it upgrades, a track for each
|
|
91469
|
+
* column at the width a column with no `width` takes (`helix.css`).
|
|
91326
91470
|
*
|
|
91327
|
-
*
|
|
91328
|
-
*
|
|
91329
|
-
* and a list here would be a second way to say what that says. This table's
|
|
91330
|
-
* cells are markup, and a table written as rows of cells with no column
|
|
91331
|
-
* declared in it has nowhere else to be sized from.
|
|
91471
|
+
* Data Table takes the same list, for the same reason: a data table that
|
|
91472
|
+
* serves its first page as rows is laid out by it before it upgrades.
|
|
91332
91473
|
* - `default-expanded`/`defaultExpanded`: The keys of the rows whose rows are shown at the start, separated by
|
|
91333
91474
|
* commas. Used until `expanded` is set.
|
|
91334
91475
|
* - `default-selected`/`defaultSelected`: The keys selected at the start, separated by commas. Used until `selected`
|
|
@@ -92692,6 +92833,8 @@ export type CustomElementsSolidJs = {
|
|
|
92692
92833
|
* number, and both are carried as one comma-separated value, which is what a
|
|
92693
92834
|
* form submits. `TimePicker` carries the longer note on the interaction and
|
|
92694
92835
|
* on why a wheel cannot do either.
|
|
92836
|
+
* - `now-label`/`nowLabel`: The words on the list's button that chooses the current time, drawn with
|
|
92837
|
+
* `show-now`.
|
|
92695
92838
|
* - `placeholder`: Placeholder text shown before a time is entered.
|
|
92696
92839
|
* - `range-length-message`/`rangeLengthMessage`: The message shown when a range holds more than two times.
|
|
92697
92840
|
*
|
|
@@ -92709,6 +92852,9 @@ export type CustomElementsSolidJs = {
|
|
|
92709
92852
|
* - `seconds`: Whether times carry their seconds: the value is `HH:mm:ss`, a typed time
|
|
92710
92853
|
* may give them, the field writes them, and the list's `step` counts seconds.
|
|
92711
92854
|
* See Time Picker's `seconds`.
|
|
92855
|
+
* - `show-now`/`showNow`: Draws a button under the times in the list that chooses the current time,
|
|
92856
|
+
* moved to the nearest time on offer. See Time Picker's `show-now`. Its words
|
|
92857
|
+
* are `now-label`.
|
|
92712
92858
|
* - `step`: How far apart the offered times are, in minutes, or in seconds with
|
|
92713
92859
|
* `seconds`.
|
|
92714
92860
|
* - `time-style`/`timeStyle`: Whether the field shows the time in the local style or as the value
|