@fusion.dev/helix 0.182.2 → 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 +477 -116
- package/dist/bar-chart/root/bar-chart-root.css.js +1 -1
- 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 +144 -16
- package/types/vue.d.ts +36 -6
- package/types/words.d.ts +7 -0
package/custom-elements.json
CHANGED
|
@@ -11893,7 +11893,7 @@
|
|
|
11893
11893
|
"part": "Root",
|
|
11894
11894
|
"examples": [
|
|
11895
11895
|
{
|
|
11896
|
-
"description": "Revenue by quarter, drawn from a table whose cells show text and hold the plotted number in `data-value`, then signups by channel stacked into one column a quarter, and a net figure that goes below zero.",
|
|
11896
|
+
"description": "Revenue by quarter, drawn from a table whose cells show text and hold the plotted number in `data-value`, then signups by channel stacked into one column a quarter, and a net figure that goes below zero, outlined.",
|
|
11897
11897
|
"slug": "preview"
|
|
11898
11898
|
},
|
|
11899
11899
|
{
|
|
@@ -12004,6 +12004,14 @@
|
|
|
12004
12004
|
"module": "src/bar-chart/root/bar-chart-root.ts"
|
|
12005
12005
|
}
|
|
12006
12006
|
},
|
|
12007
|
+
{
|
|
12008
|
+
"description": "A bar below zero, standing alone or any segment of a stack below it, whose base is its top, or its inline end when the bars run across. Set together with `bar`.",
|
|
12009
|
+
"name": "bar-negative",
|
|
12010
|
+
"inheritedFrom": {
|
|
12011
|
+
"name": "HelixHeadlessBarChart",
|
|
12012
|
+
"module": "src/bar-chart/root/bar-chart-root.ts"
|
|
12013
|
+
}
|
|
12014
|
+
},
|
|
12007
12015
|
{
|
|
12008
12016
|
"description": "The far stop of a bar's gradient, where one is used.",
|
|
12009
12017
|
"name": "bar-wash-end",
|
|
@@ -39547,6 +39555,22 @@
|
|
|
39547
39555
|
"path": "src/code-block/index.ts",
|
|
39548
39556
|
"declarations": [],
|
|
39549
39557
|
"exports": [
|
|
39558
|
+
{
|
|
39559
|
+
"kind": "js",
|
|
39560
|
+
"name": "CodeBlockHighlighter",
|
|
39561
|
+
"declaration": {
|
|
39562
|
+
"name": "CodeBlockHighlighter",
|
|
39563
|
+
"package": "@fusion.dev/helix-headless/code-block"
|
|
39564
|
+
}
|
|
39565
|
+
},
|
|
39566
|
+
{
|
|
39567
|
+
"kind": "js",
|
|
39568
|
+
"name": "registerHighlighter",
|
|
39569
|
+
"declaration": {
|
|
39570
|
+
"name": "registerHighlighter",
|
|
39571
|
+
"package": "@fusion.dev/helix-headless/code-block"
|
|
39572
|
+
}
|
|
39573
|
+
},
|
|
39550
39574
|
{
|
|
39551
39575
|
"kind": "js",
|
|
39552
39576
|
"name": "*",
|
|
@@ -39944,7 +39968,7 @@
|
|
|
39944
39968
|
"type": {
|
|
39945
39969
|
"text": "(code: string, language: string) => string | undefined"
|
|
39946
39970
|
},
|
|
39947
|
-
"description": "Turns the code into highlighted markup, which the block draws in place of\nthe plain text.\n\nCalled with the code as written and the block's `language`, and returning\nHTML, such as the output of Shiki's `codeToHtml` or Prism's `highlight`.\nOne function serves every block on a page, each block saying its own\nlanguage:\n\n```js\nfor (const block of document.querySelectorAll('helix-code-block')) {\n block.highlight = (code, lang) => codeToHtml(code, { lang, theme: 'github-light' })\n}\n```\n\n**The markup is drawn as given**, so it has to escape the code it was\nhanded, which those highlighters do. A `<pre>` and `<code>` around the\nwhole of it, which Shiki writes, are taken off, so the lines sit level\nwith the gutter's numbers and the block keeps one tab stop. The code stays\nin the slot, so the copy button copies it as written and a reader without\nthe script still has it. Not called on a server, which has no code to\nread, nor for a diff.",
|
|
39971
|
+
"description": "Turns the code into highlighted markup, which the block draws in place of\nthe plain text.\n\nCalled with the code as written and the block's `language`, and returning\nHTML, such as the output of Shiki's `codeToHtml` or Prism's `highlight`.\nOne function serves every block on a page, each block saying its own\nlanguage:\n\n```js\nfor (const block of document.querySelectorAll('helix-code-block')) {\n block.highlight = (code, lang) => codeToHtml(code, { lang, theme: 'github-light' })\n}\n```\n\n**The markup is drawn as given**, so it has to escape the code it was\nhanded, which those highlighters do. A `<pre>` and `<code>` around the\nwhole of it, which Shiki writes, are taken off, so the lines sit level\nwith the gutter's numbers and the block keeps one tab stop. The code stays\nin the slot, so the copy button copies it as written and a reader without\nthe script still has it. Not called on a server, which has no code to\nread, nor for a diff.\n\nAbsent, the block draws with the highlighter `registerHighlighter` gave\nevery block, where an entry such as `@fusion.dev/helix-sandbox/code-block`\nregistered one, and plain otherwise.",
|
|
39948
39972
|
"inheritedFrom": {
|
|
39949
39973
|
"name": "HelixHeadlessCodeBlock",
|
|
39950
39974
|
"module": "src/code-block/root/code-block-root.ts"
|
|
@@ -99214,7 +99238,7 @@
|
|
|
99214
99238
|
},
|
|
99215
99239
|
"privacy": "private",
|
|
99216
99240
|
"default": "-1",
|
|
99217
|
-
"description": "Where a range taken in with Shift starts: the cell last pressed, or none.",
|
|
99241
|
+
"description": "Where a range taken in with Shift starts: the row of the table whose cell\nwas last pressed, or none.\n\n**The row, and not the cell's place among those drawn.** A narrow strip\ndraws the newest whole columns, so a resize that drops or adds a column\nmoves every cell's place, and an anchor kept as a place started the next\nrange on another day.",
|
|
99218
99242
|
"inheritedFrom": {
|
|
99219
99243
|
"name": "HelixHeadlessHeatmap",
|
|
99220
99244
|
"module": "src/heatmap/root/heatmap-root.ts"
|
|
@@ -99498,6 +99522,20 @@
|
|
|
99498
99522
|
"module": "src/heatmap/root/heatmap-root.ts"
|
|
99499
99523
|
}
|
|
99500
99524
|
},
|
|
99525
|
+
{
|
|
99526
|
+
"kind": "field",
|
|
99527
|
+
"name": "dropped",
|
|
99528
|
+
"type": {
|
|
99529
|
+
"text": "number"
|
|
99530
|
+
},
|
|
99531
|
+
"privacy": "private",
|
|
99532
|
+
"description": "How many of the oldest rows a narrow strip leaves undrawn.",
|
|
99533
|
+
"readonly": true,
|
|
99534
|
+
"inheritedFrom": {
|
|
99535
|
+
"name": "HelixHeadlessHeatmap",
|
|
99536
|
+
"module": "src/heatmap/root/heatmap-root.ts"
|
|
99537
|
+
}
|
|
99538
|
+
},
|
|
99501
99539
|
{
|
|
99502
99540
|
"kind": "method",
|
|
99503
99541
|
"name": "pageFrom",
|
|
@@ -104887,6 +104925,14 @@
|
|
|
104887
104925
|
"module": "src/megamenu/index.js"
|
|
104888
104926
|
}
|
|
104889
104927
|
},
|
|
104928
|
+
{
|
|
104929
|
+
"kind": "js",
|
|
104930
|
+
"name": "*",
|
|
104931
|
+
"declaration": {
|
|
104932
|
+
"name": "*",
|
|
104933
|
+
"module": "src/menu/filter/index.js"
|
|
104934
|
+
}
|
|
104935
|
+
},
|
|
104890
104936
|
{
|
|
104891
104937
|
"kind": "js",
|
|
104892
104938
|
"name": "*",
|
|
@@ -135499,6 +135545,49 @@
|
|
|
135499
135545
|
}
|
|
135500
135546
|
]
|
|
135501
135547
|
},
|
|
135548
|
+
{
|
|
135549
|
+
"kind": "javascript-module",
|
|
135550
|
+
"path": "src/menu/filter/index.ts",
|
|
135551
|
+
"declarations": [],
|
|
135552
|
+
"exports": [
|
|
135553
|
+
{
|
|
135554
|
+
"kind": "js",
|
|
135555
|
+
"name": "filterMenu",
|
|
135556
|
+
"declaration": {
|
|
135557
|
+
"name": "filterMenu",
|
|
135558
|
+
"package": "@fusion.dev/helix-headless/menu/filter"
|
|
135559
|
+
}
|
|
135560
|
+
},
|
|
135561
|
+
{
|
|
135562
|
+
"kind": "js",
|
|
135563
|
+
"name": "MenuFilterController",
|
|
135564
|
+
"declaration": {
|
|
135565
|
+
"name": "MenuFilterController",
|
|
135566
|
+
"package": "@fusion.dev/helix-headless/menu/filter"
|
|
135567
|
+
}
|
|
135568
|
+
}
|
|
135569
|
+
]
|
|
135570
|
+
},
|
|
135571
|
+
{
|
|
135572
|
+
"kind": "javascript-module",
|
|
135573
|
+
"path": "src/menu/filter/menu-filter.css.ts",
|
|
135574
|
+
"declarations": [
|
|
135575
|
+
{
|
|
135576
|
+
"kind": "variable",
|
|
135577
|
+
"name": "styles"
|
|
135578
|
+
}
|
|
135579
|
+
],
|
|
135580
|
+
"exports": [
|
|
135581
|
+
{
|
|
135582
|
+
"kind": "js",
|
|
135583
|
+
"name": "styles",
|
|
135584
|
+
"declaration": {
|
|
135585
|
+
"name": "styles",
|
|
135586
|
+
"module": "src/menu/filter/menu-filter.css.ts"
|
|
135587
|
+
}
|
|
135588
|
+
}
|
|
135589
|
+
]
|
|
135590
|
+
},
|
|
135502
135591
|
{
|
|
135503
135592
|
"kind": "javascript-module",
|
|
135504
135593
|
"path": "src/menu/index.ts",
|
|
@@ -137375,7 +137464,7 @@
|
|
|
137375
137464
|
"text": "boolean"
|
|
137376
137465
|
},
|
|
137377
137466
|
"default": "false",
|
|
137378
|
-
"description": "Whether the menu shows a field above its rows that narrows them as the\nreader types, with focus staying in the field.",
|
|
137467
|
+
"description": "Whether the menu shows a field above its rows that narrows them as the\nreader types, with focus staying in the field, once\n`@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)\nis imported. Without that import it does nothing, so a menu that never\nfilters carries none of the filter's code, and a development build says\nwhich import is missing.",
|
|
137379
137468
|
"attribute": "filterable",
|
|
137380
137469
|
"inheritedFrom": {
|
|
137381
137470
|
"name": "HelixHeadlessMenu",
|
|
@@ -137866,13 +137955,12 @@
|
|
|
137866
137955
|
},
|
|
137867
137956
|
{
|
|
137868
137957
|
"kind": "field",
|
|
137869
|
-
"name": "
|
|
137958
|
+
"name": "filterer",
|
|
137870
137959
|
"type": {
|
|
137871
|
-
"text": "
|
|
137960
|
+
"text": "MenuFilterController | undefined"
|
|
137872
137961
|
},
|
|
137873
137962
|
"privacy": "private",
|
|
137874
|
-
"description": "The filter
|
|
137875
|
-
"readonly": true,
|
|
137963
|
+
"description": "The filter `menu/filter` gives this menu, which `filterable` turns on.\n\nDeclared and never initialized, because the entry sets it from the\nconstructor Lit runs initializers in, which is before this class's own\nfields: an initializer here would set it back to `undefined`.",
|
|
137876
137964
|
"inheritedFrom": {
|
|
137877
137965
|
"name": "HelixHeadlessMenu",
|
|
137878
137966
|
"module": "src/menu/root/menu-root.ts"
|
|
@@ -137880,39 +137968,12 @@
|
|
|
137880
137968
|
},
|
|
137881
137969
|
{
|
|
137882
137970
|
"kind": "field",
|
|
137883
|
-
"name": "
|
|
137971
|
+
"name": "filters",
|
|
137884
137972
|
"type": {
|
|
137885
|
-
"text": "
|
|
137973
|
+
"text": "MenuFilterController | undefined"
|
|
137886
137974
|
},
|
|
137887
137975
|
"privacy": "private",
|
|
137888
|
-
"
|
|
137889
|
-
"description": "The submenu the filter narrows, or null for the top page.",
|
|
137890
|
-
"inheritedFrom": {
|
|
137891
|
-
"name": "HelixHeadlessMenu",
|
|
137892
|
-
"module": "src/menu/root/menu-root.ts"
|
|
137893
|
-
}
|
|
137894
|
-
},
|
|
137895
|
-
{
|
|
137896
|
-
"kind": "field",
|
|
137897
|
-
"name": "refused",
|
|
137898
|
-
"type": {
|
|
137899
|
-
"text": "string | undefined"
|
|
137900
|
-
},
|
|
137901
|
-
"privacy": "private",
|
|
137902
|
-
"description": "The filter a listener refused, which narrows nothing.",
|
|
137903
|
-
"inheritedFrom": {
|
|
137904
|
-
"name": "HelixHeadlessMenu",
|
|
137905
|
-
"module": "src/menu/root/menu-root.ts"
|
|
137906
|
-
}
|
|
137907
|
-
},
|
|
137908
|
-
{
|
|
137909
|
-
"kind": "field",
|
|
137910
|
-
"name": "filtering",
|
|
137911
|
-
"type": {
|
|
137912
|
-
"text": "boolean"
|
|
137913
|
-
},
|
|
137914
|
-
"privacy": "private",
|
|
137915
|
-
"description": "Whether the filter is narrowing the rows.",
|
|
137976
|
+
"description": "The filter, while `filterable` is set and `menu/filter` is imported.",
|
|
137916
137977
|
"readonly": true,
|
|
137917
137978
|
"inheritedFrom": {
|
|
137918
137979
|
"name": "HelixHeadlessMenu",
|
|
@@ -137936,7 +137997,7 @@
|
|
|
137936
137997
|
}
|
|
137937
137998
|
}
|
|
137938
137999
|
],
|
|
137939
|
-
"description": "Whether the filter keeps a row
|
|
138000
|
+
"description": "Whether the filter keeps a row, which every row is without one.",
|
|
137940
138001
|
"inheritedFrom": {
|
|
137941
138002
|
"name": "HelixHeadlessMenu",
|
|
137942
138003
|
"module": "src/menu/root/menu-root.ts"
|
|
@@ -137959,53 +138020,7 @@
|
|
|
137959
138020
|
}
|
|
137960
138021
|
}
|
|
137961
138022
|
],
|
|
137962
|
-
"description": "Asks to filter by new text
|
|
137963
|
-
"inheritedFrom": {
|
|
137964
|
-
"name": "HelixHeadlessMenu",
|
|
137965
|
-
"module": "src/menu/root/menu-root.ts"
|
|
137966
|
-
}
|
|
137967
|
-
},
|
|
137968
|
-
{
|
|
137969
|
-
"kind": "field",
|
|
137970
|
-
"name": "handleFilterInput",
|
|
137971
|
-
"privacy": "private",
|
|
137972
|
-
"readonly": true,
|
|
137973
|
-
"inheritedFrom": {
|
|
137974
|
-
"name": "HelixHeadlessMenu",
|
|
137975
|
-
"module": "src/menu/root/menu-root.ts"
|
|
137976
|
-
}
|
|
137977
|
-
},
|
|
137978
|
-
{
|
|
137979
|
-
"kind": "method",
|
|
137980
|
-
"name": "filterBy",
|
|
137981
|
-
"privacy": "private",
|
|
137982
|
-
"return": {
|
|
137983
|
-
"type": {
|
|
137984
|
-
"text": "void"
|
|
137985
|
-
}
|
|
137986
|
-
},
|
|
137987
|
-
"parameters": [
|
|
137988
|
-
{
|
|
137989
|
-
"name": "value",
|
|
137990
|
-
"type": {
|
|
137991
|
-
"text": "string"
|
|
137992
|
-
}
|
|
137993
|
-
}
|
|
137994
|
-
],
|
|
137995
|
-
"description": "Filters by what the reader typed, and highlights the first row kept.",
|
|
137996
|
-
"inheritedFrom": {
|
|
137997
|
-
"name": "HelixHeadlessMenu",
|
|
137998
|
-
"module": "src/menu/root/menu-root.ts"
|
|
137999
|
-
}
|
|
138000
|
-
},
|
|
138001
|
-
{
|
|
138002
|
-
"kind": "field",
|
|
138003
|
-
"name": "highlighted",
|
|
138004
|
-
"type": {
|
|
138005
|
-
"text": "HelixHeadlessMenuItem | undefined"
|
|
138006
|
-
},
|
|
138007
|
-
"privacy": "private",
|
|
138008
|
-
"description": "The row the keys reached while focus stays in the filter field.",
|
|
138023
|
+
"description": "Asks to filter by new text. See `MenuFilterController.request`.",
|
|
138009
138024
|
"inheritedFrom": {
|
|
138010
138025
|
"name": "HelixHeadlessMenu",
|
|
138011
138026
|
"module": "src/menu/root/menu-root.ts"
|
|
@@ -138028,7 +138043,7 @@
|
|
|
138028
138043
|
}
|
|
138029
138044
|
}
|
|
138030
138045
|
],
|
|
138031
|
-
"description": "Moves the reader to a row: focus, or with
|
|
138046
|
+
"description": "Moves the reader to a row: focus, or with a filter the highlight, focus\nstaying in the filter field.",
|
|
138032
138047
|
"inheritedFrom": {
|
|
138033
138048
|
"name": "HelixHeadlessMenu",
|
|
138034
138049
|
"module": "src/menu/root/menu-root.ts"
|
|
@@ -138362,17 +138377,6 @@
|
|
|
138362
138377
|
"module": "src/menu/root/menu-root.ts"
|
|
138363
138378
|
}
|
|
138364
138379
|
},
|
|
138365
|
-
{
|
|
138366
|
-
"kind": "field",
|
|
138367
|
-
"name": "handleMouseDown",
|
|
138368
|
-
"privacy": "private",
|
|
138369
|
-
"readonly": true,
|
|
138370
|
-
"description": "Keeps focus in the filter field through a press on a row or the way\nback, as React Aria's virtual focus does: the press still chooses.",
|
|
138371
|
-
"inheritedFrom": {
|
|
138372
|
-
"name": "HelixHeadlessMenu",
|
|
138373
|
-
"module": "src/menu/root/menu-root.ts"
|
|
138374
|
-
}
|
|
138375
|
-
},
|
|
138376
138380
|
{
|
|
138377
138381
|
"kind": "field",
|
|
138378
138382
|
"name": "handlePointerMove",
|
|
@@ -139157,7 +139161,7 @@
|
|
|
139157
139161
|
"text": "boolean"
|
|
139158
139162
|
},
|
|
139159
139163
|
"default": "false",
|
|
139160
|
-
"description": "Whether the menu shows a field above its rows that narrows them as the\nreader types, with focus staying in the field.",
|
|
139164
|
+
"description": "Whether the menu shows a field above its rows that narrows them as the\nreader types, with focus staying in the field, once\n`@fusion.dev/helix/menu/filter` (or `@fusion.dev/helix-headless/menu/filter`)\nis imported. Without that import it does nothing, so a menu that never\nfilters carries none of the filter's code, and a development build says\nwhich import is missing.",
|
|
139161
139165
|
"fieldName": "filterable",
|
|
139162
139166
|
"inheritedFrom": {
|
|
139163
139167
|
"name": "HelixHeadlessMenu",
|
|
@@ -172379,6 +172383,96 @@
|
|
|
172379
172383
|
}
|
|
172380
172384
|
]
|
|
172381
172385
|
},
|
|
172386
|
+
{
|
|
172387
|
+
"kind": "javascript-module",
|
|
172388
|
+
"path": "src/sandbox/compile.ts",
|
|
172389
|
+
"declarations": [
|
|
172390
|
+
{
|
|
172391
|
+
"kind": "variable",
|
|
172392
|
+
"name": "COMPILER",
|
|
172393
|
+
"type": {
|
|
172394
|
+
"text": "string"
|
|
172395
|
+
},
|
|
172396
|
+
"default": "'sucrase@3.35.1'",
|
|
172397
|
+
"description": "The compiler a module file in TypeScript or JSX runs through before the\nframe loads it, by its npm name and its pinned version.\n\n**Sucrase, measured against esbuild-wasm on October 8, 2026**, on a TSX\nmodule of 241 lines with the automatic JSX runtime:\n\n| | Sucrase 3.35 | esbuild-wasm 0.28 |\n| --- | --- | --- |\n| Download, gzip | 48 KB, and 9 KB of `buffer` esm.sh adds | 3.2 MB of WebAssembly, and 19 KB |\n| First compile | 14 ms | 188 ms, the WebAssembly starting |\n| Each after | 0.8 ms | 4.6 ms |\n| Automatic JSX runtime | yes | yes |\n| Source map | yes | yes |\n\nBoth compile what a sandbox holds, and neither checks types. esbuild-wasm\ndownloads 56 times as much before the first module runs, which a reader\nwaits through on the first edit of every page. Sucrase also keeps every line\nwhere it was, so a line number in an error in the frame is the line in the\npane even where a browser ignores the source map.\n\n**Loaded the first time a module needs it**, from the preview's `cdn` as a\npackage in `dependencies` is, so the published package carries no compiler\nand a sandbox with no TypeScript loads none.\n\n**In a worker of its own**, which has no access to the page and keeps a\nlong compile off the page's thread. The worker's script is text, so the\n`import()` of an address known only at run time is one no bundler reads:\nwritten in this module, Turbopack refused to build a page that imported\nit, the TypeScript build having dropped the comments that tell bundlers to\nleave it alone. The compiler reads the source as text, and the example\nitself still runs only in the frame."
|
|
172398
|
+
},
|
|
172399
|
+
{
|
|
172400
|
+
"kind": "variable",
|
|
172401
|
+
"name": "COMPILED",
|
|
172402
|
+
"description": "Whether a module file is TypeScript or JSX, which a browser cannot run as written."
|
|
172403
|
+
},
|
|
172404
|
+
{
|
|
172405
|
+
"kind": "variable",
|
|
172406
|
+
"name": "compilers",
|
|
172407
|
+
"default": "new Map<string, Transform>()",
|
|
172408
|
+
"description": "The compiler for each `cdn`, so each is set up once a page. A spec puts a\nstand-in here, for an address of its own."
|
|
172409
|
+
},
|
|
172410
|
+
{
|
|
172411
|
+
"kind": "function",
|
|
172412
|
+
"name": "compile",
|
|
172413
|
+
"return": {
|
|
172414
|
+
"type": {
|
|
172415
|
+
"text": "Promise<string>"
|
|
172416
|
+
}
|
|
172417
|
+
},
|
|
172418
|
+
"parameters": [
|
|
172419
|
+
{
|
|
172420
|
+
"name": "cdn",
|
|
172421
|
+
"type": {
|
|
172422
|
+
"text": "string"
|
|
172423
|
+
}
|
|
172424
|
+
},
|
|
172425
|
+
{
|
|
172426
|
+
"name": "path",
|
|
172427
|
+
"type": {
|
|
172428
|
+
"text": "string"
|
|
172429
|
+
}
|
|
172430
|
+
},
|
|
172431
|
+
{
|
|
172432
|
+
"name": "source",
|
|
172433
|
+
"type": {
|
|
172434
|
+
"text": "string"
|
|
172435
|
+
}
|
|
172436
|
+
}
|
|
172437
|
+
],
|
|
172438
|
+
"description": "A module file compiled to JavaScript, with its source map inline, for the\nframe to load as its other modules.\n\n`.ts` is read as TypeScript, `.tsx` as TypeScript with JSX, and `.jsx` as\nJSX. JSX compiles to the automatic runtime, `react/jsx-runtime`, which an\nexample lists in `dependencies`, or to the runtime a\n`@jsxImportSource preact` comment in the file names.\n\n**What fails to compile still runs, as a module that throws** what the\ncompiler said, such as `Error transforming app.tsx: Unexpected token (2:1)`.\nThe frame reports it as it reports any error an example does not catch, so\nit shows over the example in the preview's `error` part and in the\nterminal, and only where the example imports the file."
|
|
172439
|
+
}
|
|
172440
|
+
],
|
|
172441
|
+
"exports": [
|
|
172442
|
+
{
|
|
172443
|
+
"kind": "js",
|
|
172444
|
+
"name": "COMPILER",
|
|
172445
|
+
"declaration": {
|
|
172446
|
+
"name": "COMPILER",
|
|
172447
|
+
"module": "src/sandbox/compile.ts"
|
|
172448
|
+
}
|
|
172449
|
+
},
|
|
172450
|
+
{
|
|
172451
|
+
"kind": "js",
|
|
172452
|
+
"name": "COMPILED",
|
|
172453
|
+
"declaration": {
|
|
172454
|
+
"name": "COMPILED",
|
|
172455
|
+
"module": "src/sandbox/compile.ts"
|
|
172456
|
+
}
|
|
172457
|
+
},
|
|
172458
|
+
{
|
|
172459
|
+
"kind": "js",
|
|
172460
|
+
"name": "compilers",
|
|
172461
|
+
"declaration": {
|
|
172462
|
+
"name": "compilers",
|
|
172463
|
+
"module": "src/sandbox/compile.ts"
|
|
172464
|
+
}
|
|
172465
|
+
},
|
|
172466
|
+
{
|
|
172467
|
+
"kind": "js",
|
|
172468
|
+
"name": "compile",
|
|
172469
|
+
"declaration": {
|
|
172470
|
+
"name": "compile",
|
|
172471
|
+
"module": "src/sandbox/compile.ts"
|
|
172472
|
+
}
|
|
172473
|
+
}
|
|
172474
|
+
]
|
|
172475
|
+
},
|
|
172382
172476
|
{
|
|
172383
172477
|
"kind": "javascript-module",
|
|
172384
172478
|
"path": "src/sandbox/frame.ts",
|
|
@@ -172783,7 +172877,7 @@
|
|
|
172783
172877
|
"declarations": [
|
|
172784
172878
|
{
|
|
172785
172879
|
"kind": "class",
|
|
172786
|
-
"description": "A sandboxed `<iframe>` that loads `src`, a document you provide. That\ndocument imports what the examples need, listens for a render message, and\nwrites the markup into itself.\n\n**Without `src`, the frame loads a built-in document**, so a sandbox renders\nwith nothing to host. It runs HTML, CSS, and scripts, and reports the\nconsole, uncaught errors, its height, and presses as a frame on\n`servePreview` does. It defines no element, so an example that uses Helix\ncomponents needs a `src` that imports them.\n\n**`imports` lets an example import packages by name** in the built-in\ndocument, as an import map: each name maps to the address of an ES module,\nsuch as `{\"canvas-confetti\": \"https://esm.sh/canvas-confetti@1.9.3\"}`, and\n`import confetti from 'canvas-confetti'` in the `js` pane then loads it. A\nCDN that serves npm packages as modules, such as esm.sh or jsDelivr's\n`+esm`, gives every package an address. A new map loads the document again,\nsince a browser reads one only as a document starts. A `src` document\ndeclares its own.\n\n**`dependencies` names packages by version instead**, as a `package.json`\ndoes: `{\"canvas-confetti\": \"^1.9\"}` loads `canvas-confetti` and the paths\nunder it from `cdn`, `https://esm.sh/` by default, at the version or range\ngiven. An address in `imports` wins over a package of the same name.\n\n**`modules` holds files the example imports by a relative path**: each path,\nsuch as `utils.js`, to its source, and `import { add } from './utils.js'`\nin the `js` pane or in another module loads it. A sandbox writes each pane\nnamed for a module file here.\n\n**Examples render in a frame**, so an example's styles and scripts do not\naffect the page around the sandbox, and `position: fixed` stays inside the\npane. The frame starts empty, with its own stylesheets and its own custom\nelement registry, so `src` must load the styles and components the examples\nuse.\n\n**The source is untrusted, and the frame keeps it isolated.** The frame uses\n`sandbox=\"allow-scripts\"` and never `allow-same-origin`. Together, the two\nlet a document on the same origin remove its own sandbox, which is the same\nas having none.\n\n**A preview says where it is.** It is `:state(loading)` from the moment it\nhas a `src` until that document can take the example, and again through\n`reload()`. It is `:state(failed)` once the example throws an error it does\nnot catch, until the next source is sent, which a frame on `servePreview`\nreports. A page draws its own spinner or message from either, such as a\nsibling shown by `helix-sandbox-preview:state(failed) + .message`.\n\n**A failed preview shows the error over the example**, in the `error` part,\nuntil the next source is sent. The terminal says it too, so the part is not\nannounced, and it is the frame's description while it shows, so a screen\nreader reads it with the frame. Hide it with `::part(error) { display: none }`\nwhere the page draws its own.\n\n**`controls` draws two buttons in the preview's corner**: one reloads the\nframe's document, as `reload()` does, and one opens the example in a new\ntab, as `open()` does. The tab runs it in a frame sandboxed as this one is.",
|
|
172880
|
+
"description": "A sandboxed `<iframe>` that loads `src`, a document you provide. That\ndocument imports what the examples need, listens for a render message, and\nwrites the markup into itself.\n\n**Without `src`, the frame loads a built-in document**, so a sandbox renders\nwith nothing to host. It runs HTML, CSS, and scripts, and reports the\nconsole, uncaught errors, its height, and presses as a frame on\n`servePreview` does. It defines no element, so an example that uses Helix\ncomponents needs a `src` that imports them.\n\n**`imports` lets an example import packages by name** in the built-in\ndocument, as an import map: each name maps to the address of an ES module,\nsuch as `{\"canvas-confetti\": \"https://esm.sh/canvas-confetti@1.9.3\"}`, and\n`import confetti from 'canvas-confetti'` in the `js` pane then loads it. A\nCDN that serves npm packages as modules, such as esm.sh or jsDelivr's\n`+esm`, gives every package an address. A new map loads the document again,\nsince a browser reads one only as a document starts. A `src` document\ndeclares its own.\n\n**`dependencies` names packages by version instead**, as a `package.json`\ndoes: `{\"canvas-confetti\": \"^1.9\"}` loads `canvas-confetti` and the paths\nunder it from `cdn`, `https://esm.sh/` by default, at the version or range\ngiven. An address in `imports` wins over a package of the same name.\n\n**`modules` holds files the example imports by a relative path**: each path,\nsuch as `utils.js`, to its source, and `import { add } from './utils.js'`\nin the `js` pane or in another module loads it. A sandbox writes each pane\nnamed for a module file here.\n\n**A module in TypeScript or JSX runs too**: a path ending in `.ts`, `.tsx`\nor `.jsx` is compiled to JavaScript first, and imported by its path or by\nits path without the extension. The compiler, Sucrase, loads from `cdn` the\nfirst time a module needs it, so the package carries none and a preview\nwith no such module loads none. JSX compiles to the automatic runtime,\n`react/jsx-runtime`, from `dependencies`, or to the one a\n`@jsxImportSource` comment names. What fails to compile shows in the\n`error` part as an error the example threw, when the example imports it.\n\n**Examples render in a frame**, so an example's styles and scripts do not\naffect the page around the sandbox, and `position: fixed` stays inside the\npane. The frame starts empty, with its own stylesheets and its own custom\nelement registry, so `src` must load the styles and components the examples\nuse.\n\n**The source is untrusted, and the frame keeps it isolated.** The frame uses\n`sandbox=\"allow-scripts\"` and never `allow-same-origin`. Together, the two\nlet a document on the same origin remove its own sandbox, which is the same\nas having none.\n\n**A preview says where it is.** It is `:state(loading)` from the moment it\nhas a `src` until that document can take the example, and again through\n`reload()`. It is `:state(failed)` once the example throws an error it does\nnot catch, until the next source is sent, which a frame on `servePreview`\nreports. A page draws its own spinner or message from either, such as a\nsibling shown by `helix-sandbox-preview:state(failed) + .message`.\n\n**A failed preview shows the error over the example**, in the `error` part,\nuntil the next source is sent. The terminal says it too, so the part is not\nannounced, and it is the frame's description while it shows, so a screen\nreader reads it with the frame. Hide it with `::part(error) { display: none }`\nwhere the page draws its own.\n\n**`controls` draws two buttons in the preview's corner**: one reloads the\nframe's document, as `reload()` does, and one opens the example in a new\ntab, as `open()` does. The tab runs it in a frame sandboxed as this one is.",
|
|
172787
172881
|
"name": "HelixSandboxPreview",
|
|
172788
172882
|
"cssParts": [
|
|
172789
172883
|
{
|
|
@@ -172999,6 +173093,31 @@
|
|
|
172999
173093
|
"privacy": "private",
|
|
173000
173094
|
"description": "What the example threw and did not catch, while the preview is `failed`."
|
|
173001
173095
|
},
|
|
173096
|
+
{
|
|
173097
|
+
"kind": "field",
|
|
173098
|
+
"name": "compiled",
|
|
173099
|
+
"privacy": "private",
|
|
173100
|
+
"default": "new Map<string, string>()",
|
|
173101
|
+
"description": "Each module file compiled to JavaScript, by its path and source."
|
|
173102
|
+
},
|
|
173103
|
+
{
|
|
173104
|
+
"kind": "field",
|
|
173105
|
+
"name": "compiling",
|
|
173106
|
+
"privacy": "private",
|
|
173107
|
+
"readonly": true,
|
|
173108
|
+
"default": "new Set<string>()",
|
|
173109
|
+
"description": "The module files being compiled, by their path and source."
|
|
173110
|
+
},
|
|
173111
|
+
{
|
|
173112
|
+
"kind": "field",
|
|
173113
|
+
"name": "map",
|
|
173114
|
+
"type": {
|
|
173115
|
+
"text": "Record<string, string>"
|
|
173116
|
+
},
|
|
173117
|
+
"privacy": "private",
|
|
173118
|
+
"default": "{}",
|
|
173119
|
+
"description": "The import map the built-in document loads with: the last one with every\nmodule file compiled, so a frame never loads without one an example\nimports."
|
|
173120
|
+
},
|
|
173002
173121
|
{
|
|
173003
173122
|
"kind": "method",
|
|
173004
173123
|
"name": "fail",
|
|
@@ -173042,12 +173161,43 @@
|
|
|
173042
173161
|
"kind": "field",
|
|
173043
173162
|
"name": "importMap",
|
|
173044
173163
|
"type": {
|
|
173045
|
-
"text": "Record<string, string>"
|
|
173164
|
+
"text": "Record<string, string> | undefined"
|
|
173046
173165
|
},
|
|
173047
173166
|
"privacy": "private",
|
|
173048
173167
|
"description": "The import map of the built-in document: each module file, by its path\nand by the address its neighbors import it at, each package in\n`dependencies` and the paths under it, and `imports` over all of them.",
|
|
173049
173168
|
"readonly": true
|
|
173050
173169
|
},
|
|
173170
|
+
{
|
|
173171
|
+
"kind": "method",
|
|
173172
|
+
"name": "compileModule",
|
|
173173
|
+
"privacy": "private",
|
|
173174
|
+
"return": {
|
|
173175
|
+
"type": {
|
|
173176
|
+
"text": "void"
|
|
173177
|
+
}
|
|
173178
|
+
},
|
|
173179
|
+
"parameters": [
|
|
173180
|
+
{
|
|
173181
|
+
"name": "key",
|
|
173182
|
+
"type": {
|
|
173183
|
+
"text": "string"
|
|
173184
|
+
}
|
|
173185
|
+
},
|
|
173186
|
+
{
|
|
173187
|
+
"name": "path",
|
|
173188
|
+
"type": {
|
|
173189
|
+
"text": "string"
|
|
173190
|
+
}
|
|
173191
|
+
},
|
|
173192
|
+
{
|
|
173193
|
+
"name": "source",
|
|
173194
|
+
"type": {
|
|
173195
|
+
"text": "string"
|
|
173196
|
+
}
|
|
173197
|
+
}
|
|
173198
|
+
],
|
|
173199
|
+
"description": "Compiles a module file, once, then draws again with it. Not on a server,\nwhich loads no frame."
|
|
173200
|
+
},
|
|
173051
173201
|
{
|
|
173052
173202
|
"kind": "field",
|
|
173053
173203
|
"name": "handleFrameLoad",
|
|
@@ -173112,7 +173262,7 @@
|
|
|
173112
173262
|
"text": "void"
|
|
173113
173263
|
}
|
|
173114
173264
|
},
|
|
173115
|
-
"description": "Sends the current source to the frame, once it is listening."
|
|
173265
|
+
"description": "Sends the current source to the frame, once it is listening and no\nmodule it may import is still compiling."
|
|
173116
173266
|
},
|
|
173117
173267
|
{
|
|
173118
173268
|
"kind": "method",
|
|
@@ -173762,7 +173912,7 @@
|
|
|
173762
173912
|
"declarations": [
|
|
173763
173913
|
{
|
|
173764
173914
|
"kind": "class",
|
|
173765
|
-
"description": "A source pane dispatches `helix-before-edit`, which bubbles, and the sandbox\npasses the value to the preview slotted into it. The source pane and the\npreview do not reference each other, so you can replace either one or use it\nalone.\n\nThe preview runs an edit once typing has rested for `preview-delay`, 300\nmilliseconds by default, so a word typed reloads it once. A pane's text when the sandbox starts reaches it at once.\n\nThe event carries the pane's `name`, so one sandbox can hold several panes.\nThe names the sandbox writes into its previews:\n\n- `html` sets the preview's markup.\n- `css` sets its stylesheet.\n- `js` sets a script that runs as a module after the markup.\n- A module file name ending in `.js` or `.mjs`, such as `utils.js`, is a\n module the other scripts import by its path, `./utils.js`.\n- `package.json` sets the npm packages the scripts import by name, from its\n `dependencies`, which load from the preview's `cdn`.\n\nThe sandbox ignores a pane with any other name, so that pane can show\ncontent without changing the preview.\n\n**The sandbox is `:state(modified)` while a source pane holds an edit**, and\nthat pane's file tab is also `file-modified` and described as modified to\na screen reader. `reset()` puts every pane back to the source it was given.\n\n**The dividers are two nested `helix-splitter` elements**, which handle the\npointer, the keyboard, and the corner. The inner splitter holds the panes and\nthe outer one holds the panel, so the panel spans the full width.\n\n**Several source panes are files**, one shown at a time under a row of\ntabs, each named by the pane's `label` or, without one, its `name`. `file`\nholds the `name` of the pane shown. The tabs are a tab list: the arrow keys\nmove between them and show each pane, and `Home` and `End` go to the first\nand the last. Choosing one sends `helix-before-change` with the pane's\n`name`, which you can cancel, and `change` once `file` holds it. The panes\nnot shown carry `hidden`. One pane draws no tabs.\n\n**Any editor can be the source pane**: an element in the `source` slot with\na `name` that dispatches `helix-before-edit` with its text, which bubbles.\nA wrapper around CodeMirror or Monaco sends one on each change and is a pane\nlike `helix-sandbox-source`, and the sandbox reads its `value` to seed the\npreview. Dispatch `helix-caret` from it too for the status bar's position.\n\nSandbox is styled only and has behavior, as `Aura` is. Its behavior is the\nhand-off from a source pane to a preview frame, which works with any pane\nthat sends `helix-before-edit`, and what it draws is the layout around them:\ndividers, file tabs, and a panel. A page that wants another look slots its\nown panes and keeps the hand-off, so there is nothing for a headless version\nto hold.\n\nA development build warns about a source pane with no `label` and no `name`,\nwhose file tab would have no words.\n\nOn a focused divider, the arrow keys move it, and `Home` and `End` move it\nto its ends. `Enter` on the panes divider shuts the lead pane, and pressed\nagain it opens the pane where it was. `Enter` on the panel divider shuts the\npanel to `panel-collapsed-size`, and pressed again it opens the panel to its\nlast height.",
|
|
173915
|
+
"description": "A source pane dispatches `helix-before-edit`, which bubbles, and the sandbox\npasses the value to the preview slotted into it. The source pane and the\npreview do not reference each other, so you can replace either one or use it\nalone.\n\nThe preview runs an edit once typing has rested for `preview-delay`, 300\nmilliseconds by default, so a word typed reloads it once. A pane's text when the sandbox starts reaches it at once.\n\nThe event carries the pane's `name`, so one sandbox can hold several panes.\nThe names the sandbox writes into its previews:\n\n- `html` sets the preview's markup.\n- `css` sets its stylesheet.\n- `js` sets a script that runs as a module after the markup.\n- A module file name ending in `.js` or `.mjs`, such as `utils.js`, is a\n module the other scripts import by its path, `./utils.js`.\n- A module file name ending in `.ts`, `.tsx` or `.jsx`, such as `app.tsx`,\n is one too, which the preview compiles to JavaScript first. The `js` pane\n runs it with `import './app.tsx'`. A file that does not compile shows\n why over the preview, as an error the example threw.\n- `package.json` sets the npm packages the scripts import by name, from its\n `dependencies`, which load from the preview's `cdn`.\n\nThe sandbox ignores a pane with any other name, so that pane can show\ncontent without changing the preview.\n\n**The sandbox is `:state(modified)` while a source pane holds an edit**, and\nthat pane's file tab is also `file-modified` and described as modified to\na screen reader. `reset()` puts every pane back to the source it was given.\n\n**The dividers are two nested `helix-splitter` elements**, which handle the\npointer, the keyboard, and the corner. The inner splitter holds the panes and\nthe outer one holds the panel, so the panel spans the full width.\n\n**Several source panes are files**, one shown at a time under a row of\ntabs, each named by the pane's `label` or, without one, its `name`. `file`\nholds the `name` of the pane shown. The tabs are a tab list: the arrow keys\nmove between them and show each pane, and `Home` and `End` go to the first\nand the last. Choosing one sends `helix-before-change` with the pane's\n`name`, which you can cancel, and `change` once `file` holds it. The panes\nnot shown carry `hidden`. One pane draws no tabs.\n\n**Any editor can be the source pane**: an element in the `source` slot with\na `name` that dispatches `helix-before-edit` with its text, which bubbles.\nA wrapper around CodeMirror or Monaco sends one on each change and is a pane\nlike `helix-sandbox-source`, and the sandbox reads its `value` to seed the\npreview. Dispatch `helix-caret` from it too for the status bar's position.\n\nSandbox is styled only and has behavior, as `Aura` is. Its behavior is the\nhand-off from a source pane to a preview frame, which works with any pane\nthat sends `helix-before-edit`, and what it draws is the layout around them:\ndividers, file tabs, and a panel. A page that wants another look slots its\nown panes and keeps the hand-off, so there is nothing for a headless version\nto hold.\n\nA development build warns about a source pane with no `label` and no `name`,\nwhose file tab would have no words.\n\nOn a focused divider, the arrow keys move it, and `Home` and `End` move it\nto its ends. `Enter` on the panes divider shuts the lead pane, and pressed\nagain it opens the pane where it was. `Enter` on the panel divider shuts the\npanel to `panel-collapsed-size`, and pressed again it opens the panel to its\nlast height.",
|
|
173766
173916
|
"name": "HelixSandbox",
|
|
173767
173917
|
"cssProperties": [
|
|
173768
173918
|
{
|
|
@@ -220413,6 +220563,23 @@
|
|
|
220413
220563
|
"module": "src/time-input/root/time-input-root.ts"
|
|
220414
220564
|
}
|
|
220415
220565
|
},
|
|
220566
|
+
{
|
|
220567
|
+
"kind": "field",
|
|
220568
|
+
"name": "nowLabel",
|
|
220569
|
+
"type": {
|
|
220570
|
+
"text": "string"
|
|
220571
|
+
},
|
|
220572
|
+
"default": "'Now'",
|
|
220573
|
+
"description": "The words on the list's button that chooses the current time, drawn with\n`show-now`.",
|
|
220574
|
+
"attribute": "now-label",
|
|
220575
|
+
"helix": {
|
|
220576
|
+
"words": true
|
|
220577
|
+
},
|
|
220578
|
+
"inheritedFrom": {
|
|
220579
|
+
"name": "HelixHeadlessTimeInput",
|
|
220580
|
+
"module": "src/time-input/root/time-input-root.ts"
|
|
220581
|
+
}
|
|
220582
|
+
},
|
|
220416
220583
|
{
|
|
220417
220584
|
"kind": "field",
|
|
220418
220585
|
"name": "placeholder",
|
|
@@ -220512,6 +220679,20 @@
|
|
|
220512
220679
|
"module": "src/time-input/root/time-input-root.ts"
|
|
220513
220680
|
}
|
|
220514
220681
|
},
|
|
220682
|
+
{
|
|
220683
|
+
"kind": "field",
|
|
220684
|
+
"name": "showNow",
|
|
220685
|
+
"type": {
|
|
220686
|
+
"text": "boolean"
|
|
220687
|
+
},
|
|
220688
|
+
"default": "false",
|
|
220689
|
+
"description": "Draws a button under the times in the list that chooses the current time,\nmoved to the nearest time on offer. See Time Picker's `show-now`. Its words\nare `now-label`.",
|
|
220690
|
+
"attribute": "show-now",
|
|
220691
|
+
"inheritedFrom": {
|
|
220692
|
+
"name": "HelixHeadlessTimeInput",
|
|
220693
|
+
"module": "src/time-input/root/time-input-root.ts"
|
|
220694
|
+
}
|
|
220695
|
+
},
|
|
220515
220696
|
{
|
|
220516
220697
|
"kind": "field",
|
|
220517
220698
|
"name": "step",
|
|
@@ -222244,6 +222425,19 @@
|
|
|
222244
222425
|
"module": "src/time-input/root/time-input-root.ts"
|
|
222245
222426
|
}
|
|
222246
222427
|
},
|
|
222428
|
+
{
|
|
222429
|
+
"name": "now-label",
|
|
222430
|
+
"type": {
|
|
222431
|
+
"text": "string"
|
|
222432
|
+
},
|
|
222433
|
+
"default": "'Now'",
|
|
222434
|
+
"description": "The words on the list's button that chooses the current time, drawn with\n`show-now`.",
|
|
222435
|
+
"fieldName": "nowLabel",
|
|
222436
|
+
"inheritedFrom": {
|
|
222437
|
+
"name": "HelixHeadlessTimeInput",
|
|
222438
|
+
"module": "src/time-input/root/time-input-root.ts"
|
|
222439
|
+
}
|
|
222440
|
+
},
|
|
222247
222441
|
{
|
|
222248
222442
|
"name": "placeholder",
|
|
222249
222443
|
"type": {
|
|
@@ -222322,6 +222516,19 @@
|
|
|
222322
222516
|
"module": "src/time-input/root/time-input-root.ts"
|
|
222323
222517
|
}
|
|
222324
222518
|
},
|
|
222519
|
+
{
|
|
222520
|
+
"name": "show-now",
|
|
222521
|
+
"type": {
|
|
222522
|
+
"text": "boolean"
|
|
222523
|
+
},
|
|
222524
|
+
"default": "false",
|
|
222525
|
+
"description": "Draws a button under the times in the list that chooses the current time,\nmoved to the nearest time on offer. See Time Picker's `show-now`. Its words\nare `now-label`.",
|
|
222526
|
+
"fieldName": "showNow",
|
|
222527
|
+
"inheritedFrom": {
|
|
222528
|
+
"name": "HelixHeadlessTimeInput",
|
|
222529
|
+
"module": "src/time-input/root/time-input-root.ts"
|
|
222530
|
+
}
|
|
222531
|
+
},
|
|
222325
222532
|
{
|
|
222326
222533
|
"name": "step",
|
|
222327
222534
|
"type": {
|
|
@@ -251603,6 +251810,20 @@
|
|
|
251603
251810
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
251604
251811
|
}
|
|
251605
251812
|
},
|
|
251813
|
+
{
|
|
251814
|
+
"kind": "field",
|
|
251815
|
+
"name": "layout",
|
|
251816
|
+
"type": {
|
|
251817
|
+
"text": "'grid' | 'waterfall'"
|
|
251818
|
+
},
|
|
251819
|
+
"default": "'grid'",
|
|
251820
|
+
"description": "How items of more than one column are laid out. `grid`, the default, puts\nthem in lines of equal columns. `waterfall` puts each item, in the order\nof the set, under the column that ends highest, as a wall of photos of\ndifferent heights is: `columns`, or `min-column-width`, says how many\ncolumns. Rows of a waterfall are measured, and Up and Down move along a\ncolumn.",
|
|
251821
|
+
"attribute": "layout",
|
|
251822
|
+
"inheritedFrom": {
|
|
251823
|
+
"name": "HelixHeadlessVirtualList",
|
|
251824
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
251825
|
+
}
|
|
251826
|
+
},
|
|
251606
251827
|
{
|
|
251607
251828
|
"kind": "field",
|
|
251608
251829
|
"name": "loading",
|
|
@@ -251669,7 +251890,7 @@
|
|
|
251669
251890
|
"text": "'horizontal' | 'vertical'"
|
|
251670
251891
|
},
|
|
251671
251892
|
"default": "'vertical'",
|
|
251672
|
-
"description": "Which way the list runs. `horizontal` lays the items out along a line\nand scrolls it sideways: Left and Right move between items, the other\nway round on a right-to-left page, and `estimate` is an item's width. A\ngrid always
|
|
251893
|
+
"description": "Which way the list runs. `horizontal` lays the items out along a line\nand scrolls it sideways: Left and Right move between items, the other\nway round on a right-to-left page, and `estimate` is an item's width. A\ngrid and a waterfall always run down.",
|
|
251673
251894
|
"attribute": "orientation",
|
|
251674
251895
|
"inheritedFrom": {
|
|
251675
251896
|
"name": "HelixHeadlessVirtualList",
|
|
@@ -251707,7 +251928,7 @@
|
|
|
251707
251928
|
"text": "boolean"
|
|
251708
251929
|
},
|
|
251709
251930
|
"default": "false",
|
|
251710
|
-
"description": "Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`\n(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt\nwith an arrow moves the row the keys are on, and a pointer drags a row.\nThe list moves no item itself: you move your `items` on `helix-reorder`.\nWithout that import it does nothing, so a list that never moves items\ncarries none of the code. A list of one column, without sections.",
|
|
251931
|
+
"description": "Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`\n(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt\nwith an arrow moves the row the keys are on, and a pointer drags a row.\nThe list moves no item itself: you move your `items` on `helix-reorder`.\nWithout that import it does nothing, so a list that never moves items\ncarries none of the code. A list of one column, without sections or a\nwaterfall.",
|
|
251711
251932
|
"attribute": "reorderable",
|
|
251712
251933
|
"inheritedFrom": {
|
|
251713
251934
|
"name": "HelixHeadlessVirtualList",
|
|
@@ -251972,7 +252193,7 @@
|
|
|
251972
252193
|
"name": "virtualize",
|
|
251973
252194
|
"privacy": "private",
|
|
251974
252195
|
"readonly": true,
|
|
251975
|
-
"default": "new VirtualizeController(this, { container: () => this.partNamed('viewport'), count: () => this.sections ? this.data.length + this.sections.starts.length : Math.ceil(this.data.length / this.across), estimate: () => this.estimate, gap: () => this.space, horizontal: () => this.horizontal, measured: () => this.measured, rows: () => this.lines(), })",
|
|
252196
|
+
"default": "new VirtualizeController(this, { container: () => this.partNamed('viewport'), count: () => this.sections ? this.data.length + this.sections.starts.length : Math.ceil(this.data.length / this.across), estimate: () => this.estimate, gap: () => this.space, horizontal: () => this.horizontal, measured: () => this.measured, rows: () => this.lines(), waterfall: () => { this.lanes.lanes = this.columnCount return this.waterfall ? this.lanes : undefined }, })",
|
|
251976
252197
|
"inheritedFrom": {
|
|
251977
252198
|
"name": "HelixHeadlessVirtualList",
|
|
251978
252199
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
@@ -252005,6 +252226,46 @@
|
|
|
252005
252226
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252006
252227
|
}
|
|
252007
252228
|
},
|
|
252229
|
+
{
|
|
252230
|
+
"kind": "field",
|
|
252231
|
+
"name": "lanes",
|
|
252232
|
+
"privacy": "private",
|
|
252233
|
+
"readonly": true,
|
|
252234
|
+
"default": "new Waterfall()",
|
|
252235
|
+
"description": "Where each item of a waterfall stands, which the controller places.",
|
|
252236
|
+
"inheritedFrom": {
|
|
252237
|
+
"name": "HelixHeadlessVirtualList",
|
|
252238
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252239
|
+
}
|
|
252240
|
+
},
|
|
252241
|
+
{
|
|
252242
|
+
"kind": "field",
|
|
252243
|
+
"name": "waterfall",
|
|
252244
|
+
"type": {
|
|
252245
|
+
"text": "boolean"
|
|
252246
|
+
},
|
|
252247
|
+
"privacy": "private",
|
|
252248
|
+
"description": "Whether the items are laid out as a waterfall, each down a column.",
|
|
252249
|
+
"readonly": true,
|
|
252250
|
+
"inheritedFrom": {
|
|
252251
|
+
"name": "HelixHeadlessVirtualList",
|
|
252252
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252253
|
+
}
|
|
252254
|
+
},
|
|
252255
|
+
{
|
|
252256
|
+
"kind": "field",
|
|
252257
|
+
"name": "lined",
|
|
252258
|
+
"type": {
|
|
252259
|
+
"text": "boolean"
|
|
252260
|
+
},
|
|
252261
|
+
"privacy": "private",
|
|
252262
|
+
"description": "Whether the list is a grid a reader reads, and not a list box: lines of\ncolumns with no `selection-mode`, which are `grid`, `row` and `gridcell`\nto a reader, as the APG's grid and React Aria's grid list are.",
|
|
252263
|
+
"readonly": true,
|
|
252264
|
+
"inheritedFrom": {
|
|
252265
|
+
"name": "HelixHeadlessVirtualList",
|
|
252266
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252267
|
+
}
|
|
252268
|
+
},
|
|
252008
252269
|
{
|
|
252009
252270
|
"kind": "field",
|
|
252010
252271
|
"name": "across",
|
|
@@ -252012,7 +252273,21 @@
|
|
|
252012
252273
|
"text": "number"
|
|
252013
252274
|
},
|
|
252014
252275
|
"privacy": "private",
|
|
252015
|
-
"description": "How many items a line holds
|
|
252276
|
+
"description": "How many items a line holds, which a waterfall draws one at a time: its\ncolumns are not lines.",
|
|
252277
|
+
"readonly": true,
|
|
252278
|
+
"inheritedFrom": {
|
|
252279
|
+
"name": "HelixHeadlessVirtualList",
|
|
252280
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252281
|
+
}
|
|
252282
|
+
},
|
|
252283
|
+
{
|
|
252284
|
+
"kind": "field",
|
|
252285
|
+
"name": "columnCount",
|
|
252286
|
+
"type": {
|
|
252287
|
+
"text": "number"
|
|
252288
|
+
},
|
|
252289
|
+
"privacy": "private",
|
|
252290
|
+
"description": "How many columns there are: as many as fit at `min-column-width` where\nit is set and the box has a width, and `columns` otherwise, at least one.",
|
|
252016
252291
|
"readonly": true,
|
|
252017
252292
|
"inheritedFrom": {
|
|
252018
252293
|
"name": "HelixHeadlessVirtualList",
|
|
@@ -252050,11 +252325,11 @@
|
|
|
252050
252325
|
"kind": "field",
|
|
252051
252326
|
"name": "measuredAcross",
|
|
252052
252327
|
"type": {
|
|
252053
|
-
"text": "number"
|
|
252328
|
+
"text": "number | string"
|
|
252054
252329
|
},
|
|
252055
252330
|
"privacy": "private",
|
|
252056
252331
|
"default": "1",
|
|
252057
|
-
"description": "The items to a line the measurements were taken at.",
|
|
252332
|
+
"description": "The items to a line the measurements were taken at, or a waterfall's columns and width.",
|
|
252058
252333
|
"inheritedFrom": {
|
|
252059
252334
|
"name": "HelixHeadlessVirtualList",
|
|
252060
252335
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
@@ -252069,7 +252344,7 @@
|
|
|
252069
252344
|
"text": "void"
|
|
252070
252345
|
}
|
|
252071
252346
|
},
|
|
252072
|
-
"description": "Watches the box for its width while `min-column-width` asks for it.",
|
|
252347
|
+
"description": "Watches the box for its width while `min-column-width` asks for it, or a\nwaterfall, whose items are as tall as their width makes them.",
|
|
252073
252348
|
"inheritedFrom": {
|
|
252074
252349
|
"name": "HelixHeadlessVirtualList",
|
|
252075
252350
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
@@ -252128,7 +252403,7 @@
|
|
|
252128
252403
|
"text": "boolean"
|
|
252129
252404
|
},
|
|
252130
252405
|
"privacy": "private",
|
|
252131
|
-
"description": "Whether the list runs across, which a grid never
|
|
252406
|
+
"description": "Whether the list runs across, which a grid and a waterfall never do.",
|
|
252132
252407
|
"readonly": true,
|
|
252133
252408
|
"inheritedFrom": {
|
|
252134
252409
|
"name": "HelixHeadlessVirtualList",
|
|
@@ -252468,6 +252743,47 @@
|
|
|
252468
252743
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252469
252744
|
}
|
|
252470
252745
|
},
|
|
252746
|
+
{
|
|
252747
|
+
"kind": "method",
|
|
252748
|
+
"name": "inWaterfall",
|
|
252749
|
+
"privacy": "private",
|
|
252750
|
+
"return": {
|
|
252751
|
+
"type": {
|
|
252752
|
+
"text": "number | undefined"
|
|
252753
|
+
}
|
|
252754
|
+
},
|
|
252755
|
+
"parameters": [
|
|
252756
|
+
{
|
|
252757
|
+
"name": "key",
|
|
252758
|
+
"type": {
|
|
252759
|
+
"text": "string"
|
|
252760
|
+
}
|
|
252761
|
+
},
|
|
252762
|
+
{
|
|
252763
|
+
"name": "at",
|
|
252764
|
+
"type": {
|
|
252765
|
+
"text": "number"
|
|
252766
|
+
}
|
|
252767
|
+
},
|
|
252768
|
+
{
|
|
252769
|
+
"name": "count",
|
|
252770
|
+
"type": {
|
|
252771
|
+
"text": "number"
|
|
252772
|
+
}
|
|
252773
|
+
},
|
|
252774
|
+
{
|
|
252775
|
+
"name": "forward",
|
|
252776
|
+
"type": {
|
|
252777
|
+
"text": "string"
|
|
252778
|
+
}
|
|
252779
|
+
}
|
|
252780
|
+
],
|
|
252781
|
+
"description": "Where a key goes in a waterfall, through the columns `Waterfall.step`\nreads: along the column for Down, Up, Page Down and Page Up, and to the\nitem beside in the next column or the one before for the keys along the\nline, the other way round on a right-to-left page. Past a disabled item,\non the same way.",
|
|
252782
|
+
"inheritedFrom": {
|
|
252783
|
+
"name": "HelixHeadlessVirtualList",
|
|
252784
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252785
|
+
}
|
|
252786
|
+
},
|
|
252471
252787
|
{
|
|
252472
252788
|
"kind": "method",
|
|
252473
252789
|
"name": "keyAt",
|
|
@@ -252707,7 +253023,7 @@
|
|
|
252707
253023
|
}
|
|
252708
253024
|
}
|
|
252709
253025
|
],
|
|
252710
|
-
"description": "Writes a row's role, and whether it is chosen in a list that selects:\n`option` with `aria-selected` there, and `listitem
|
|
253026
|
+
"description": "Writes a row's role, and whether it is chosen in a list that selects:\n`option` with `aria-selected` there, `gridcell` in a grid, and `listitem`\notherwise, and `aria-disabled` on an item `disabled-keys` names. Every\npass, since a choice changes no row's content.\n\nIts place too: `aria-posinset` and `aria-setsize` in a list, and in a\ngrid its column, with the line's `row` given by the slot it is drawn in.\n\n`data-selected` and `data-disabled` say the same to a stylesheet, as\nReact Aria's rows do, so one rule reads the same in either kind of list.",
|
|
252711
253027
|
"inheritedFrom": {
|
|
252712
253028
|
"name": "HelixHeadlessVirtualList",
|
|
252713
253029
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
@@ -252736,7 +253052,7 @@
|
|
|
252736
253052
|
}
|
|
252737
253053
|
}
|
|
252738
253054
|
],
|
|
252739
|
-
"description": "Writes a row
|
|
253055
|
+
"description": "Writes which item a row drew, for the controller to measure it against:\nthe real index, the same one `aria-posinset` carries one higher.\n\n`mark` writes the place a reader hears from it, the real index and the\nreal total, not the position in the window. A reader arrowing through\nthis should hear where they are in the set.",
|
|
252740
253056
|
"inheritedFrom": {
|
|
252741
253057
|
"name": "HelixHeadlessVirtualList",
|
|
252742
253058
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
@@ -252828,6 +253144,34 @@
|
|
|
252828
253144
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
252829
253145
|
}
|
|
252830
253146
|
},
|
|
253147
|
+
{
|
|
253148
|
+
"kind": "field",
|
|
253149
|
+
"name": "placedWaterfall",
|
|
253150
|
+
"type": {
|
|
253151
|
+
"text": "boolean"
|
|
253152
|
+
},
|
|
253153
|
+
"privacy": "private",
|
|
253154
|
+
"default": "false",
|
|
253155
|
+
"description": "Whether the rows were last placed in a waterfall.",
|
|
253156
|
+
"inheritedFrom": {
|
|
253157
|
+
"name": "HelixHeadlessVirtualList",
|
|
253158
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
253159
|
+
}
|
|
253160
|
+
},
|
|
253161
|
+
{
|
|
253162
|
+
"kind": "field",
|
|
253163
|
+
"name": "drawnLines",
|
|
253164
|
+
"type": {
|
|
253165
|
+
"text": "number[]"
|
|
253166
|
+
},
|
|
253167
|
+
"privacy": "private",
|
|
253168
|
+
"default": "[]",
|
|
253169
|
+
"description": "The lines of a grid drawn on the last pass, each a `row` the render draws a slot in.",
|
|
253170
|
+
"inheritedFrom": {
|
|
253171
|
+
"name": "HelixHeadlessVirtualList",
|
|
253172
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
253173
|
+
}
|
|
253174
|
+
},
|
|
252831
253175
|
{
|
|
252832
253176
|
"kind": "field",
|
|
252833
253177
|
"name": "headedBy",
|
|
@@ -253277,6 +253621,10 @@
|
|
|
253277
253621
|
{
|
|
253278
253622
|
"description": "Files given as an array and drawn from a row template with links, with more added as you near the end.",
|
|
253279
253623
|
"slug": "loading-more"
|
|
253624
|
+
},
|
|
253625
|
+
{
|
|
253626
|
+
"description": "Two thousand cards of different heights in three columns, each placed under the column that ends highest, with Down and Up moving along a column and Left and Right across.",
|
|
253627
|
+
"slug": "waterfall"
|
|
253280
253628
|
}
|
|
253281
253629
|
],
|
|
253282
253630
|
"source": "helix/styled/src/virtual-list"
|
|
@@ -253414,6 +253762,19 @@
|
|
|
253414
253762
|
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
253415
253763
|
}
|
|
253416
253764
|
},
|
|
253765
|
+
{
|
|
253766
|
+
"name": "layout",
|
|
253767
|
+
"type": {
|
|
253768
|
+
"text": "'grid' | 'waterfall'"
|
|
253769
|
+
},
|
|
253770
|
+
"default": "'grid'",
|
|
253771
|
+
"description": "How items of more than one column are laid out. `grid`, the default, puts\nthem in lines of equal columns. `waterfall` puts each item, in the order\nof the set, under the column that ends highest, as a wall of photos of\ndifferent heights is: `columns`, or `min-column-width`, says how many\ncolumns. Rows of a waterfall are measured, and Up and Down move along a\ncolumn.",
|
|
253772
|
+
"fieldName": "layout",
|
|
253773
|
+
"inheritedFrom": {
|
|
253774
|
+
"name": "HelixHeadlessVirtualList",
|
|
253775
|
+
"module": "src/virtual-list/root/virtual-list-root.ts"
|
|
253776
|
+
}
|
|
253777
|
+
},
|
|
253417
253778
|
{
|
|
253418
253779
|
"name": "loading",
|
|
253419
253780
|
"type": {
|
|
@@ -253472,7 +253833,7 @@
|
|
|
253472
253833
|
"text": "'horizontal' | 'vertical'"
|
|
253473
253834
|
},
|
|
253474
253835
|
"default": "'vertical'",
|
|
253475
|
-
"description": "Which way the list runs. `horizontal` lays the items out along a line\nand scrolls it sideways: Left and Right move between items, the other\nway round on a right-to-left page, and `estimate` is an item's width. A\ngrid always
|
|
253836
|
+
"description": "Which way the list runs. `horizontal` lays the items out along a line\nand scrolls it sideways: Left and Right move between items, the other\nway round on a right-to-left page, and `estimate` is an item's width. A\ngrid and a waterfall always run down.",
|
|
253476
253837
|
"fieldName": "orientation",
|
|
253477
253838
|
"inheritedFrom": {
|
|
253478
253839
|
"name": "HelixHeadlessVirtualList",
|
|
@@ -253485,7 +253846,7 @@
|
|
|
253485
253846
|
"text": "boolean"
|
|
253486
253847
|
},
|
|
253487
253848
|
"default": "false",
|
|
253488
|
-
"description": "Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`\n(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt\nwith an arrow moves the row the keys are on, and a pointer drags a row.\nThe list moves no item itself: you move your `items` on `helix-reorder`.\nWithout that import it does nothing, so a list that never moves items\ncarries none of the code. A list of one column, without sections.",
|
|
253849
|
+
"description": "Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`\n(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt\nwith an arrow moves the row the keys are on, and a pointer drags a row.\nThe list moves no item itself: you move your `items` on `helix-reorder`.\nWithout that import it does nothing, so a list that never moves items\ncarries none of the code. A list of one column, without sections or a\nwaterfall.",
|
|
253489
253850
|
"fieldName": "reorderable",
|
|
253490
253851
|
"inheritedFrom": {
|
|
253491
253852
|
"name": "HelixHeadlessVirtualList",
|
|
@@ -253691,6 +254052,6 @@
|
|
|
253691
254052
|
],
|
|
253692
254053
|
"helix": {
|
|
253693
254054
|
"package": "@fusion.dev/helix",
|
|
253694
|
-
"version": "0.
|
|
254055
|
+
"version": "0.184.0"
|
|
253695
254056
|
}
|
|
253696
254057
|
}
|