@fusion.dev/helix-headless 0.130.0 → 0.132.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 +201 -2
- package/dist/combobox/root/combobox-root.d.ts +1 -0
- package/dist/combobox/root/combobox-root.js +1 -1
- package/dist/date-input/root/date-input-root.d.ts +1 -0
- package/dist/date-input/root/date-input-root.js +1 -1
- package/dist/element-events.generated.js +1 -0
- package/dist/file-input/root/file-input-root.d.ts +2 -0
- package/dist/file-input/root/file-input-root.js +2 -2
- package/dist/graph/root/graph-model.d.ts +23 -0
- package/dist/graph/root/graph-model.js +29 -0
- package/dist/graph/root/graph-root.d.ts +33 -1
- package/dist/graph/root/graph-root.js +54 -10
- package/dist/tag/root/tag-root.d.ts +1 -0
- package/dist/tag/root/tag-root.js +1 -1
- package/dist/time-input/root/time-input-root.d.ts +1 -0
- package/dist/time-input/root/time-input-root.js +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +68 -0
- package/types/vue.d.ts +16 -1
package/custom-elements.json
CHANGED
|
@@ -26823,6 +26823,10 @@
|
|
|
26823
26823
|
"description": "The glyph on the dismiss control, where none is slotted.",
|
|
26824
26824
|
"name": "tag-dismiss-mark"
|
|
26825
26825
|
},
|
|
26826
|
+
{
|
|
26827
|
+
"description": "The label, trimmed to its capitals and baseline.",
|
|
26828
|
+
"name": "tag-label"
|
|
26829
|
+
},
|
|
26826
26830
|
{
|
|
26827
26831
|
"description": "The category before the label.",
|
|
26828
26832
|
"name": "tag-start"
|
|
@@ -33695,6 +33699,10 @@
|
|
|
33695
33699
|
"description": "The icon on the remove button, shown when no icon is slotted.",
|
|
33696
33700
|
"name": "date-dismiss-mark"
|
|
33697
33701
|
},
|
|
33702
|
+
{
|
|
33703
|
+
"description": "The label, trimmed to its capitals and baseline.",
|
|
33704
|
+
"name": "date-label"
|
|
33705
|
+
},
|
|
33698
33706
|
{
|
|
33699
33707
|
"description": "The category before the label.",
|
|
33700
33708
|
"name": "date-start"
|
|
@@ -43446,6 +43454,10 @@
|
|
|
43446
43454
|
"description": "The glyph on the dismiss control, where none is slotted.",
|
|
43447
43455
|
"name": "kind-dismiss-mark"
|
|
43448
43456
|
},
|
|
43457
|
+
{
|
|
43458
|
+
"description": "The label, trimmed to its capitals and baseline.",
|
|
43459
|
+
"name": "kind-label"
|
|
43460
|
+
},
|
|
43449
43461
|
{
|
|
43450
43462
|
"description": "The category before the label.",
|
|
43451
43463
|
"name": "kind-start"
|
|
@@ -43482,6 +43494,10 @@
|
|
|
43482
43494
|
"description": "The glyph on the dismiss control, where none is slotted.",
|
|
43483
43495
|
"name": "size-dismiss-mark"
|
|
43484
43496
|
},
|
|
43497
|
+
{
|
|
43498
|
+
"description": "The label, trimmed to its capitals and baseline.",
|
|
43499
|
+
"name": "size-label"
|
|
43500
|
+
},
|
|
43485
43501
|
{
|
|
43486
43502
|
"description": "The category before the label.",
|
|
43487
43503
|
"name": "size-start"
|
|
@@ -50219,6 +50235,54 @@
|
|
|
50219
50235
|
}
|
|
50220
50236
|
],
|
|
50221
50237
|
"description": "The notes in the order of their names, as the page's language orders words."
|
|
50238
|
+
},
|
|
50239
|
+
{
|
|
50240
|
+
"kind": "function",
|
|
50241
|
+
"name": "groupsOf",
|
|
50242
|
+
"return": {
|
|
50243
|
+
"type": {
|
|
50244
|
+
"text": "GraphGroupEntry[]"
|
|
50245
|
+
}
|
|
50246
|
+
},
|
|
50247
|
+
"parameters": [
|
|
50248
|
+
{
|
|
50249
|
+
"name": "nodes",
|
|
50250
|
+
"type": {
|
|
50251
|
+
"text": "readonly GraphNode[]"
|
|
50252
|
+
}
|
|
50253
|
+
}
|
|
50254
|
+
],
|
|
50255
|
+
"description": "The groups the notes are in, each once, **in the order `sort()` gives\ntheir names**, which is the order `connectGraph` hands out the series\ncolors in: the legend's first group is the drawing's first color.\n\nA group takes a tone where every one of its notes has the same one, since\nthe drawing colors a toned note by its tone and the group's name in the\ncolor of a note without one."
|
|
50256
|
+
},
|
|
50257
|
+
{
|
|
50258
|
+
"kind": "function",
|
|
50259
|
+
"name": "withoutGroups",
|
|
50260
|
+
"return": {
|
|
50261
|
+
"type": {
|
|
50262
|
+
"text": "Set<string> | undefined"
|
|
50263
|
+
}
|
|
50264
|
+
},
|
|
50265
|
+
"parameters": [
|
|
50266
|
+
{
|
|
50267
|
+
"name": "nodes",
|
|
50268
|
+
"type": {
|
|
50269
|
+
"text": "readonly GraphNode[]"
|
|
50270
|
+
}
|
|
50271
|
+
},
|
|
50272
|
+
{
|
|
50273
|
+
"name": "local",
|
|
50274
|
+
"type": {
|
|
50275
|
+
"text": "Set<string> | undefined"
|
|
50276
|
+
}
|
|
50277
|
+
},
|
|
50278
|
+
{
|
|
50279
|
+
"name": "hidden",
|
|
50280
|
+
"type": {
|
|
50281
|
+
"text": "readonly string[]"
|
|
50282
|
+
}
|
|
50283
|
+
}
|
|
50284
|
+
],
|
|
50285
|
+
"description": "The notes kept by the local graph, `local`, where there is one, less every\nnote in a hidden group, or `undefined` where nothing is left out. A note in\nno group is never hidden: the legend names only groups."
|
|
50222
50286
|
}
|
|
50223
50287
|
],
|
|
50224
50288
|
"exports": [
|
|
@@ -50261,6 +50325,22 @@
|
|
|
50261
50325
|
"name": "sortedOf",
|
|
50262
50326
|
"module": "src/graph/root/graph-model.ts"
|
|
50263
50327
|
}
|
|
50328
|
+
},
|
|
50329
|
+
{
|
|
50330
|
+
"kind": "js",
|
|
50331
|
+
"name": "groupsOf",
|
|
50332
|
+
"declaration": {
|
|
50333
|
+
"name": "groupsOf",
|
|
50334
|
+
"module": "src/graph/root/graph-model.ts"
|
|
50335
|
+
}
|
|
50336
|
+
},
|
|
50337
|
+
{
|
|
50338
|
+
"kind": "js",
|
|
50339
|
+
"name": "withoutGroups",
|
|
50340
|
+
"declaration": {
|
|
50341
|
+
"name": "withoutGroups",
|
|
50342
|
+
"module": "src/graph/root/graph-model.ts"
|
|
50343
|
+
}
|
|
50264
50344
|
}
|
|
50265
50345
|
]
|
|
50266
50346
|
},
|
|
@@ -50270,7 +50350,7 @@
|
|
|
50270
50350
|
"declarations": [
|
|
50271
50351
|
{
|
|
50272
50352
|
"kind": "class",
|
|
50273
|
-
"description": "Helix draws no graph. A force layout of thousands of notes is physics and\nWebGL, which a renderer such as Sigma.js does. Put the renderer's box in the\nframe, and `connectGraph` from `@fusion.dev/helix-graph` draws `nodes` and\n`links` in it and keeps it in step with the frame.\n\nWhat the frame adds is what a drawing of a graph cannot do: a list of every\nnote beside it, which is the graph for a screen reader and a quick way to\nfind a note for anyone. The selected note comes first, then the notes it\nlinks to and from, then every other note, and the search field narrows it.\nSelecting a note in the list or in the drawing is the same selection.\n\nSet `depth` to show the local graph: only the notes within that many links\nof the selected one.\n\n`nodes` and `links` are properties, never markup: a graph of ten thousand\nnotes as ten thousand elements would cost what the renderer exists to save.\nThe list draws only the rows in view.\n\nThe list scrolls on this tier. It carries `data-scroller`, and `core` ships\n`[data-scroller] { overflow: auto }` into every shadow root. You still need\nto set a block size on the list, or it grows to hold every row.",
|
|
50353
|
+
"description": "Helix draws no graph. A force layout of thousands of notes is physics and\nWebGL, which a renderer such as Sigma.js does. Put the renderer's box in the\nframe, and `connectGraph` from `@fusion.dev/helix-graph` draws `nodes` and\n`links` in it and keeps it in step with the frame.\n\nWhat the frame adds is what a drawing of a graph cannot do: a list of every\nnote beside it, which is the graph for a screen reader and a quick way to\nfind a note for anyone. The selected note comes first, then the notes it\nlinks to and from, then every other note, and the search field narrows it.\nSelecting a note in the list or in the drawing is the same selection.\n\nSet `depth` to show the local graph: only the notes within that many links\nof the selected one.\n\nSet `legend` to name the groups over the drawing, each a button that shows\nor hides its notes. `hiddenGroups` holds the groups turned off, and the\nlist holds only what the drawing shows.\n\n`nodes` and `links` are properties, never markup: a graph of ten thousand\nnotes as ten thousand elements would cost what the renderer exists to save.\nThe list draws only the rows in view.\n\nThe list scrolls on this tier. It carries `data-scroller`, and `core` ships\n`[data-scroller] { overflow: auto }` into every shadow root. You still need\nto set a block size on the list, or it grows to hold every row.",
|
|
50274
50354
|
"name": "HelixHeadlessGraph",
|
|
50275
50355
|
"cssParts": [
|
|
50276
50356
|
{
|
|
@@ -50321,6 +50401,22 @@
|
|
|
50321
50401
|
"description": "The strip above the graph.",
|
|
50322
50402
|
"name": "header"
|
|
50323
50403
|
},
|
|
50404
|
+
{
|
|
50405
|
+
"description": "The groups over the drawing, with `legend`, each a button that shows or hides its notes.",
|
|
50406
|
+
"name": "legend"
|
|
50407
|
+
},
|
|
50408
|
+
{
|
|
50409
|
+
"description": "One group in the legend, pressed while its notes are shown. Carries `data-tone` where every note in the group has the same tone, which colors the notes over the group's own color.",
|
|
50410
|
+
"name": "legend-item"
|
|
50411
|
+
},
|
|
50412
|
+
{
|
|
50413
|
+
"description": "A group in the legend whose notes are hidden.",
|
|
50414
|
+
"name": "legend-item-hidden"
|
|
50415
|
+
},
|
|
50416
|
+
{
|
|
50417
|
+
"description": "The mark in a group's color, before its name.",
|
|
50418
|
+
"name": "legend-swatch"
|
|
50419
|
+
},
|
|
50324
50420
|
{
|
|
50325
50421
|
"description": "The list of notes, which draws only the rows in view.",
|
|
50326
50422
|
"name": "list"
|
|
@@ -50444,6 +50540,15 @@
|
|
|
50444
50540
|
"description": "How many links from the selected note to show, for its local graph. Unset\nshows every note. The list holds what the drawing shows.",
|
|
50445
50541
|
"attribute": "depth"
|
|
50446
50542
|
},
|
|
50543
|
+
{
|
|
50544
|
+
"kind": "field",
|
|
50545
|
+
"name": "hiddenGroups",
|
|
50546
|
+
"type": {
|
|
50547
|
+
"text": "readonly string[]"
|
|
50548
|
+
},
|
|
50549
|
+
"default": "[]",
|
|
50550
|
+
"description": "The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute."
|
|
50551
|
+
},
|
|
50447
50552
|
{
|
|
50448
50553
|
"kind": "field",
|
|
50449
50554
|
"name": "label",
|
|
@@ -50454,6 +50559,26 @@
|
|
|
50454
50559
|
"description": "The graph's name, read by screen readers, such as \"Research notes\".\nRequired.",
|
|
50455
50560
|
"attribute": "label"
|
|
50456
50561
|
},
|
|
50562
|
+
{
|
|
50563
|
+
"kind": "field",
|
|
50564
|
+
"name": "legend",
|
|
50565
|
+
"type": {
|
|
50566
|
+
"text": "boolean"
|
|
50567
|
+
},
|
|
50568
|
+
"default": "false",
|
|
50569
|
+
"description": "Names the groups over the drawing, each a button in its color that shows\nor hides its notes. Drawn where the notes have two groups or more.",
|
|
50570
|
+
"attribute": "legend"
|
|
50571
|
+
},
|
|
50572
|
+
{
|
|
50573
|
+
"kind": "field",
|
|
50574
|
+
"name": "legendLabel",
|
|
50575
|
+
"type": {
|
|
50576
|
+
"text": "string"
|
|
50577
|
+
},
|
|
50578
|
+
"default": "'Groups'",
|
|
50579
|
+
"description": "The legend's name, read by screen readers.",
|
|
50580
|
+
"attribute": "legend-label"
|
|
50581
|
+
},
|
|
50457
50582
|
{
|
|
50458
50583
|
"kind": "field",
|
|
50459
50584
|
"name": "linkedBothLabel",
|
|
@@ -50610,7 +50735,17 @@
|
|
|
50610
50735
|
"text": "Set<string> | undefined"
|
|
50611
50736
|
},
|
|
50612
50737
|
"privacy": "private",
|
|
50613
|
-
"description": "The notes the local graph
|
|
50738
|
+
"description": "The notes the local graph and the legend keep, or `undefined` where neither leaves any out."
|
|
50739
|
+
},
|
|
50740
|
+
{
|
|
50741
|
+
"kind": "field",
|
|
50742
|
+
"name": "groups",
|
|
50743
|
+
"type": {
|
|
50744
|
+
"text": "GraphGroupEntry[]"
|
|
50745
|
+
},
|
|
50746
|
+
"privacy": "private",
|
|
50747
|
+
"default": "[]",
|
|
50748
|
+
"description": "The groups the notes are in, each with the tone all its notes share\nwhere they share one. **In the order of their names**, which is the\norder `connectGraph` gives them their colors in."
|
|
50614
50749
|
},
|
|
50615
50750
|
{
|
|
50616
50751
|
"kind": "field",
|
|
@@ -50855,6 +50990,36 @@
|
|
|
50855
50990
|
],
|
|
50856
50991
|
"description": "How a row stands to the selected note, in words, or nothing where it does not."
|
|
50857
50992
|
},
|
|
50993
|
+
{
|
|
50994
|
+
"kind": "method",
|
|
50995
|
+
"name": "toggleGroup",
|
|
50996
|
+
"privacy": "private",
|
|
50997
|
+
"return": {
|
|
50998
|
+
"type": {
|
|
50999
|
+
"text": "void"
|
|
51000
|
+
}
|
|
51001
|
+
},
|
|
51002
|
+
"parameters": [
|
|
51003
|
+
{
|
|
51004
|
+
"name": "name",
|
|
51005
|
+
"type": {
|
|
51006
|
+
"text": "string"
|
|
51007
|
+
}
|
|
51008
|
+
}
|
|
51009
|
+
],
|
|
51010
|
+
"description": "Shows a group's notes or hides them, through the request a page can refuse."
|
|
51011
|
+
},
|
|
51012
|
+
{
|
|
51013
|
+
"kind": "method",
|
|
51014
|
+
"name": "renderLegend",
|
|
51015
|
+
"privacy": "private",
|
|
51016
|
+
"return": {
|
|
51017
|
+
"type": {
|
|
51018
|
+
"text": "TemplateResult | typeof nothing"
|
|
51019
|
+
}
|
|
51020
|
+
},
|
|
51021
|
+
"description": "The groups over the drawing, with `legend`, each a button pressed while\nits notes are shown. **Nothing for one group or none**: a legend of one\nnames what every note is, and turning it off empties the graph."
|
|
51022
|
+
},
|
|
50858
51023
|
{
|
|
50859
51024
|
"kind": "method",
|
|
50860
51025
|
"name": "choose",
|
|
@@ -52157,6 +52322,14 @@
|
|
|
52157
52322
|
"name": "helix-before-activate",
|
|
52158
52323
|
"reactProp": "onhelix-before-activate"
|
|
52159
52324
|
},
|
|
52325
|
+
{
|
|
52326
|
+
"type": {
|
|
52327
|
+
"text": "HelixGraphFilterEvent"
|
|
52328
|
+
},
|
|
52329
|
+
"description": "A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself.",
|
|
52330
|
+
"name": "helix-graph-filter",
|
|
52331
|
+
"reactProp": "onhelix-graph-filter"
|
|
52332
|
+
},
|
|
52160
52333
|
{
|
|
52161
52334
|
"type": {
|
|
52162
52335
|
"text": "HelixGraphLayoutEvent"
|
|
@@ -52233,6 +52406,24 @@
|
|
|
52233
52406
|
"description": "The graph's name, read by screen readers, such as \"Research notes\".\nRequired.",
|
|
52234
52407
|
"fieldName": "label"
|
|
52235
52408
|
},
|
|
52409
|
+
{
|
|
52410
|
+
"name": "legend",
|
|
52411
|
+
"type": {
|
|
52412
|
+
"text": "boolean"
|
|
52413
|
+
},
|
|
52414
|
+
"default": "false",
|
|
52415
|
+
"description": "Names the groups over the drawing, each a button in its color that shows\nor hides its notes. Drawn where the notes have two groups or more.",
|
|
52416
|
+
"fieldName": "legend"
|
|
52417
|
+
},
|
|
52418
|
+
{
|
|
52419
|
+
"name": "legend-label",
|
|
52420
|
+
"type": {
|
|
52421
|
+
"text": "string"
|
|
52422
|
+
},
|
|
52423
|
+
"default": "'Groups'",
|
|
52424
|
+
"description": "The legend's name, read by screen readers.",
|
|
52425
|
+
"fieldName": "legendLabel"
|
|
52426
|
+
},
|
|
52236
52427
|
{
|
|
52237
52428
|
"name": "linked-both-label",
|
|
52238
52429
|
"type": {
|
|
@@ -110853,6 +111044,10 @@
|
|
|
110853
111044
|
"description": "The icon on the remove button.",
|
|
110854
111045
|
"name": "dismiss-mark"
|
|
110855
111046
|
},
|
|
111047
|
+
{
|
|
111048
|
+
"description": "The label, which the styled tag trims to its capitals and baseline so the letters sit at the middle in any font.",
|
|
111049
|
+
"name": "label"
|
|
111050
|
+
},
|
|
110856
111051
|
{
|
|
110857
111052
|
"description": "The category before the label.",
|
|
110858
111053
|
"name": "start"
|
|
@@ -113146,6 +113341,10 @@
|
|
|
113146
113341
|
"description": "The default icon on the remove button, shown when none is slotted.",
|
|
113147
113342
|
"name": "time-dismiss-mark"
|
|
113148
113343
|
},
|
|
113344
|
+
{
|
|
113345
|
+
"description": "The label, trimmed to its capitals and baseline.",
|
|
113346
|
+
"name": "time-label"
|
|
113347
|
+
},
|
|
113149
113348
|
{
|
|
113150
113349
|
"description": "The category before the label.",
|
|
113151
113350
|
"name": "time-start"
|
|
@@ -72,6 +72,7 @@ declare const HelixHeadlessCombobox_base: (new (...args: any[]) => import("@fusi
|
|
|
72
72
|
* @csspart tag - One chosen option.
|
|
73
73
|
* @csspart tag-dismiss - The remove button, when `dismissible`.
|
|
74
74
|
* @csspart tag-dismiss-mark - The glyph on the dismiss control, where none is slotted.
|
|
75
|
+
* @csspart tag-label - The label, trimmed to its capitals and baseline.
|
|
75
76
|
* @csspart tag-start - The category before the label.
|
|
76
77
|
* @csspart tags - The row of chosen options, when `multiple` is set.
|
|
77
78
|
*
|
|
@@ -287,7 +287,7 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
|
|
|
287
287
|
renderTag(option) {
|
|
288
288
|
return html `<${this.tag('tag')}
|
|
289
289
|
part="tag"
|
|
290
|
-
exportparts="dismiss: tag-dismiss, dismiss-mark: tag-dismiss-mark, start: tag-start"
|
|
290
|
+
exportparts="dismiss: tag-dismiss, dismiss-mark: tag-dismiss-mark, label: tag-label, start: tag-start"
|
|
291
291
|
data-value=${option.value}
|
|
292
292
|
dismiss-label=${fillTemplate(this.removeLabel, { name: option.text })}
|
|
293
293
|
?dismissible=${!this.isDisabled}
|
|
@@ -36,6 +36,7 @@ declare const HelixHeadlessDateInput_base: (new (...args: any[]) => import("@fus
|
|
|
36
36
|
* @csspart date - One held date, as a tag, in `multiple`.
|
|
37
37
|
* @csspart date-dismiss - The remove button, when `dismissible`.
|
|
38
38
|
* @csspart date-dismiss-mark - The icon on the remove button, shown when no icon is slotted.
|
|
39
|
+
* @csspart date-label - The label, trimmed to its capitals and baseline.
|
|
39
40
|
* @csspart date-start - The category before the label.
|
|
40
41
|
* @csspart feedback - The error message under the field.
|
|
41
42
|
* @csspart field - The box that holds the text and the trigger.
|
|
@@ -201,7 +201,7 @@ let HelixHeadlessDateInput = class HelixHeadlessDateInput extends MixinPickerEdi
|
|
|
201
201
|
renderTag(date) {
|
|
202
202
|
return html `<${this.tag('tag')}
|
|
203
203
|
part="date"
|
|
204
|
-
exportparts="dismiss: date-dismiss, dismiss-mark: date-dismiss-mark, start: date-start"
|
|
204
|
+
exportparts="dismiss: date-dismiss, dismiss-mark: date-dismiss-mark, label: date-label, start: date-start"
|
|
205
205
|
dismissible
|
|
206
206
|
dismiss-label=${fillTemplate(this.removeLabel, { name: this.written(date) })}
|
|
207
207
|
?disabled=${this.isDisabled}
|
|
@@ -39,6 +39,7 @@ declare const HelixHeadlessFileInput_base: (new (...args: any[]) => import("@fus
|
|
|
39
39
|
* @csspart kind - A file's type.
|
|
40
40
|
* @csspart kind-dismiss - The remove button, when `dismissible`.
|
|
41
41
|
* @csspart kind-dismiss-mark - The glyph on the dismiss control, where none is slotted.
|
|
42
|
+
* @csspart kind-label - The label, trimmed to its capitals and baseline.
|
|
42
43
|
* @csspart kind-start - The category before the label.
|
|
43
44
|
* @csspart label - The label above the field.
|
|
44
45
|
* @csspart list - The chosen files.
|
|
@@ -48,6 +49,7 @@ declare const HelixHeadlessFileInput_base: (new (...args: any[]) => import("@fus
|
|
|
48
49
|
* @csspart size - A file's size.
|
|
49
50
|
* @csspart size-dismiss - The remove button, when `dismissible`.
|
|
50
51
|
* @csspart size-dismiss-mark - The glyph on the dismiss control, where none is slotted.
|
|
52
|
+
* @csspart size-label - The label, trimmed to its capitals and baseline.
|
|
51
53
|
* @csspart size-start - The category before the label.
|
|
52
54
|
* @csspart trigger - The label that opens the picker.
|
|
53
55
|
*
|
|
@@ -164,10 +164,10 @@ let HelixHeadlessFileInput = class HelixHeadlessFileInput extends MixinField(Hel
|
|
|
164
164
|
}
|
|
165
165
|
renderMeta(file) {
|
|
166
166
|
return html `<${this.tag('tag')} part="size"
|
|
167
|
-
exportparts="dismiss: size-dismiss, dismiss-mark: size-dismiss-mark, start: size-start">${size(file.size, this.locale)}</${this.tag('tag')}>
|
|
167
|
+
exportparts="dismiss: size-dismiss, dismiss-mark: size-dismiss-mark, label: size-label, start: size-start">${size(file.size, this.locale)}</${this.tag('tag')}>
|
|
168
168
|
<${this.tag('tag')}
|
|
169
169
|
part="kind"
|
|
170
|
-
exportparts="dismiss: kind-dismiss, dismiss-mark: kind-dismiss-mark, start: kind-start">${kind(file)}</${this.tag('tag')}>`;
|
|
170
|
+
exportparts="dismiss: kind-dismiss, dismiss-mark: kind-dismiss-mark, label: kind-label, start: kind-start">${kind(file)}</${this.tag('tag')}>`;
|
|
171
171
|
}
|
|
172
172
|
render() {
|
|
173
173
|
const files = this.files;
|
|
@@ -89,3 +89,26 @@ export declare const within: (adjacency: Adjacency, from: string, depth: number)
|
|
|
89
89
|
export declare const entriesOf: (sorted: readonly GraphNode[], adjacency: Adjacency, active: string, query: string, shown?: ReadonlySet<string>) => Entry[];
|
|
90
90
|
/** The notes in the order of their names, as the page's language orders words. */
|
|
91
91
|
export declare const sortedOf: (nodes: readonly GraphNode[], lang?: string) => GraphNode[];
|
|
92
|
+
/** One group the notes are in, as the legend names it. */
|
|
93
|
+
export interface GraphGroupEntry {
|
|
94
|
+
/** The group's name, as the notes give it. */
|
|
95
|
+
name: string;
|
|
96
|
+
/** The tone every note in the group has, where they all have the same one, which colors them over the group's color. */
|
|
97
|
+
tone?: GraphNodeTone | undefined;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The groups the notes are in, each once, **in the order `sort()` gives
|
|
101
|
+
* their names**, which is the order `connectGraph` hands out the series
|
|
102
|
+
* colors in: the legend's first group is the drawing's first color.
|
|
103
|
+
*
|
|
104
|
+
* A group takes a tone where every one of its notes has the same one, since
|
|
105
|
+
* the drawing colors a toned note by its tone and the group's name in the
|
|
106
|
+
* color of a note without one.
|
|
107
|
+
*/
|
|
108
|
+
export declare const groupsOf: (nodes: readonly GraphNode[]) => GraphGroupEntry[];
|
|
109
|
+
/**
|
|
110
|
+
* The notes kept by the local graph, `local`, where there is one, less every
|
|
111
|
+
* note in a hidden group, or `undefined` where nothing is left out. A note in
|
|
112
|
+
* no group is never hidden: the legend names only groups.
|
|
113
|
+
*/
|
|
114
|
+
export declare const withoutGroups: (nodes: readonly GraphNode[], local: Set<string> | undefined, hidden: readonly string[]) => Set<string> | undefined;
|
|
@@ -73,3 +73,32 @@ export const sortedOf = (nodes, lang) => {
|
|
|
73
73
|
const collator = new Intl.Collator(lang || undefined, { numeric: true, sensitivity: 'base' });
|
|
74
74
|
return [...nodes].sort((one, other) => collator.compare(nameOf(one), nameOf(other)));
|
|
75
75
|
};
|
|
76
|
+
export const groupsOf = (nodes) => {
|
|
77
|
+
const tones = new Map();
|
|
78
|
+
for (const node of nodes) {
|
|
79
|
+
if (node.group === undefined || node.group === '') {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const tone = node.tone ?? null;
|
|
83
|
+
if (!tones.has(node.group)) {
|
|
84
|
+
tones.set(node.group, tone);
|
|
85
|
+
}
|
|
86
|
+
else if (tones.get(node.group) !== tone) {
|
|
87
|
+
tones.set(node.group, null);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return [...tones.keys()].sort().map((name) => ({ name, tone: tones.get(name) ?? undefined }));
|
|
91
|
+
};
|
|
92
|
+
export const withoutGroups = (nodes, local, hidden) => {
|
|
93
|
+
if (hidden.length === 0) {
|
|
94
|
+
return local;
|
|
95
|
+
}
|
|
96
|
+
const off = new Set(hidden);
|
|
97
|
+
const kept = new Set();
|
|
98
|
+
for (const node of nodes) {
|
|
99
|
+
if ((local === undefined || local.has(node.id)) && !off.has(node.group ?? '')) {
|
|
100
|
+
kept.add(node.id);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return kept;
|
|
104
|
+
};
|
|
@@ -20,6 +20,10 @@ declare const HelixHeadlessGraph_base: (new (...args: any[]) => import("@fusion.
|
|
|
20
20
|
* Set `depth` to show the local graph: only the notes within that many links
|
|
21
21
|
* of the selected one.
|
|
22
22
|
*
|
|
23
|
+
* Set `legend` to name the groups over the drawing, each a button that shows
|
|
24
|
+
* or hides its notes. `hiddenGroups` holds the groups turned off, and the
|
|
25
|
+
* list holds only what the drawing shows.
|
|
26
|
+
*
|
|
23
27
|
* `nodes` and `links` are properties, never markup: a graph of ten thousand
|
|
24
28
|
* notes as ten thousand elements would cost what the renderer exists to save.
|
|
25
29
|
* The list draws only the rows in view.
|
|
@@ -41,6 +45,7 @@ declare const HelixHeadlessGraph_base: (new (...args: any[]) => import("@fusion.
|
|
|
41
45
|
*
|
|
42
46
|
* @event {HelixActivateEvent} helix-activate - A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
|
|
43
47
|
* @event {HelixBeforeActivateEvent} helix-before-activate - A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
|
|
48
|
+
* @event {HelixGraphFilterEvent} helix-graph-filter - A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself.
|
|
44
49
|
* @event {HelixGraphLayoutEvent} helix-graph-layout - A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions.
|
|
45
50
|
* @event {HelixGraphPanEvent} helix-graph-pan - A pan button or arrow key was pressed. `connectGraph` moves the drawing.
|
|
46
51
|
* @event {HelixGraphPartChangeEvent} helix-graph-part-change - The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it.
|
|
@@ -60,6 +65,10 @@ declare const HelixHeadlessGraph_base: (new (...args: any[]) => import("@fusion.
|
|
|
60
65
|
* @csspart gesture-hint - Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
|
|
61
66
|
* @csspart gesture-status - The line shown while a graph with `gestures="activate"` has the gestures.
|
|
62
67
|
* @csspart header - The strip above the graph.
|
|
68
|
+
* @csspart legend - The groups over the drawing, with `legend`, each a button that shows or hides its notes.
|
|
69
|
+
* @csspart legend-item - One group in the legend, pressed while its notes are shown. Carries `data-tone` where every note in the group has the same tone, which colors the notes over the group's own color.
|
|
70
|
+
* @csspart legend-item-hidden - A group in the legend whose notes are hidden.
|
|
71
|
+
* @csspart legend-swatch - The mark in a group's color, before its name.
|
|
63
72
|
* @csspart list - The list of notes, which draws only the rows in view.
|
|
64
73
|
* @csspart live - What screen readers hear when a search changes how many notes there are.
|
|
65
74
|
* @csspart note - One note in the list.
|
|
@@ -96,11 +105,20 @@ export declare class HelixHeadlessGraph extends HelixHeadlessGraph_base {
|
|
|
96
105
|
* shows every note. The list holds what the drawing shows.
|
|
97
106
|
*/
|
|
98
107
|
depth?: number;
|
|
108
|
+
/** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
|
|
109
|
+
hiddenGroups: readonly string[];
|
|
99
110
|
/**
|
|
100
111
|
* The graph's name, read by screen readers, such as "Research notes".
|
|
101
112
|
* Required.
|
|
102
113
|
*/
|
|
103
114
|
label: string;
|
|
115
|
+
/**
|
|
116
|
+
* Names the groups over the drawing, each a button in its color that shows
|
|
117
|
+
* or hides its notes. Drawn where the notes have two groups or more.
|
|
118
|
+
*/
|
|
119
|
+
legend: boolean;
|
|
120
|
+
/** The legend's name, read by screen readers. */
|
|
121
|
+
legendLabel: string;
|
|
104
122
|
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
105
123
|
linkedBothLabel: string;
|
|
106
124
|
/** How a note the selected one links to is described, with `{note}`, the selected note's name. */
|
|
@@ -135,8 +153,14 @@ export declare class HelixHeadlessGraph extends HelixHeadlessGraph_base {
|
|
|
135
153
|
private sorted;
|
|
136
154
|
/** The list's rows, read again when anything they come from changes. */
|
|
137
155
|
private entries;
|
|
138
|
-
/** The notes the local graph
|
|
156
|
+
/** The notes the local graph and the legend keep, or `undefined` where neither leaves any out. */
|
|
139
157
|
private kept;
|
|
158
|
+
/**
|
|
159
|
+
* The groups the notes are in, each with the tone all its notes share
|
|
160
|
+
* where they share one. **In the order of their names**, which is the
|
|
161
|
+
* order `connectGraph` gives them their colors in.
|
|
162
|
+
*/
|
|
163
|
+
private groups;
|
|
140
164
|
/** Whether the graph has been drawn whole, which `drawn()` says. */
|
|
141
165
|
private whole;
|
|
142
166
|
/** How many notes there were when the count was last said. */
|
|
@@ -195,6 +219,14 @@ export declare class HelixHeadlessGraph extends HelixHeadlessGraph_base {
|
|
|
195
219
|
private countText;
|
|
196
220
|
/** How a row stands to the selected note, in words, or nothing where it does not. */
|
|
197
221
|
private relationText;
|
|
222
|
+
/** Shows a group's notes or hides them, through the request a page can refuse. */
|
|
223
|
+
private toggleGroup;
|
|
224
|
+
/**
|
|
225
|
+
* The groups over the drawing, with `legend`, each a button pressed while
|
|
226
|
+
* its notes are shown. **Nothing for one group or none**: a legend of one
|
|
227
|
+
* names what every note is, and turning it off empties the graph.
|
|
228
|
+
*/
|
|
229
|
+
private renderLegend;
|
|
198
230
|
/** Selects the note a row names, through the request a page can refuse. */
|
|
199
231
|
private choose;
|
|
200
232
|
/**
|
|
@@ -4,18 +4,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, fillTemplate, formatNumbers, HelixElement, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, MixinControllerActive, MixinViewport, VirtualizeController, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, fillTemplate, formatNumbers, HelixElement, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, MixinControllerActive, MixinViewport, VirtualizeController, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { list, magnifyingGlass } from '@fusion.dev/helix-icons';
|
|
9
9
|
import { html, nothing } from 'lit';
|
|
10
10
|
import { property, state } from 'lit/decorators.js';
|
|
11
11
|
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
|
|
12
|
-
import { adjacencyOf, entriesOf, nameOf, sortedOf, within, } from './graph-model.js';
|
|
12
|
+
import { adjacencyOf, entriesOf, groupsOf, nameOf, sortedOf, within, withoutGroups, } from './graph-model.js';
|
|
13
13
|
const PAGE = 10;
|
|
14
14
|
let HelixHeadlessGraph = class HelixHeadlessGraph extends MixinViewport(MixinControllerActive(HelixElement)) {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
17
|
this.countLabel = '{count} notes';
|
|
18
|
+
this.hiddenGroups = [];
|
|
18
19
|
this.label = '';
|
|
20
|
+
this.legend = false;
|
|
21
|
+
this.legendLabel = 'Groups';
|
|
19
22
|
this.linkedBothLabel = 'Linked both ways with {note}';
|
|
20
23
|
this.linkedFromLabel = 'Linked from {note}';
|
|
21
24
|
this.links = [];
|
|
@@ -31,6 +34,7 @@ let HelixHeadlessGraph = class HelixHeadlessGraph extends MixinViewport(MixinCon
|
|
|
31
34
|
this.adjacency = new Map();
|
|
32
35
|
this.sorted = [];
|
|
33
36
|
this.entries = [];
|
|
37
|
+
this.groups = [];
|
|
34
38
|
this.whole = false;
|
|
35
39
|
this.said = '';
|
|
36
40
|
this.virtualize = new VirtualizeController(this, {
|
|
@@ -120,14 +124,17 @@ let HelixHeadlessGraph = class HelixHeadlessGraph extends MixinViewport(MixinCon
|
|
|
120
124
|
if (changed.has('nodes')) {
|
|
121
125
|
this.sorted = sortedOf(this.nodes, this.closest?.('[lang]')?.getAttribute('lang') ?? '');
|
|
122
126
|
}
|
|
123
|
-
if (
|
|
127
|
+
if (changed.has('nodes')) {
|
|
128
|
+
this.groups = groupsOf(this.nodes);
|
|
129
|
+
}
|
|
130
|
+
if (['nodes', 'links', 'active', 'depth', 'hiddenGroups'].some((name) => changed.has(name))) {
|
|
124
131
|
const held = this.active !== '' && this.nodes.some((node) => node.id === this.active);
|
|
125
|
-
this.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
const local = typeof this.depth === 'number' && held
|
|
133
|
+
? within(this.adjacency, this.active, Math.max(0, this.depth))
|
|
134
|
+
: undefined;
|
|
135
|
+
this.kept = withoutGroups(this.nodes, local, this.hiddenGroups);
|
|
129
136
|
}
|
|
130
|
-
if (['nodes', 'links', 'active', 'depth', 'query'].some((name) => changed.has(name))) {
|
|
137
|
+
if (['nodes', 'links', 'active', 'depth', 'hiddenGroups', 'query'].some((name) => changed.has(name))) {
|
|
131
138
|
this.entries = entriesOf(this.sorted, this.adjacency, this.active, this.query, this.kept);
|
|
132
139
|
this.cursor = 0;
|
|
133
140
|
const list = this.partNamed('list');
|
|
@@ -142,7 +149,7 @@ let HelixHeadlessGraph = class HelixHeadlessGraph extends MixinViewport(MixinCon
|
|
|
142
149
|
if (changed.has('nodes') || changed.has('links')) {
|
|
143
150
|
this.dispatchEvent(new HelixGraphPartChangeEvent({ kind: 'data' }));
|
|
144
151
|
}
|
|
145
|
-
else if (changed.has('active') || changed.has('depth')) {
|
|
152
|
+
else if (changed.has('active') || changed.has('depth') || changed.has('hiddenGroups')) {
|
|
146
153
|
this.dispatchEvent(new HelixGraphPartChangeEvent({ kind: 'focus' }));
|
|
147
154
|
}
|
|
148
155
|
if (changed.has('query') && changed.get('query') !== undefined) {
|
|
@@ -192,6 +199,34 @@ let HelixHeadlessGraph = class HelixHeadlessGraph extends MixinViewport(MixinCon
|
|
|
192
199
|
return '';
|
|
193
200
|
}
|
|
194
201
|
}
|
|
202
|
+
toggleGroup(name) {
|
|
203
|
+
const hidden = this.hiddenGroups.includes(name)
|
|
204
|
+
? this.hiddenGroups.filter((group) => group !== name)
|
|
205
|
+
: [...this.hiddenGroups, name];
|
|
206
|
+
if (this.dispatchEvent(new HelixGraphFilterEvent({ hidden }))) {
|
|
207
|
+
this.hiddenGroups = hidden;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
renderLegend() {
|
|
211
|
+
if (!this.legend || this.groups.length < 2) {
|
|
212
|
+
return nothing;
|
|
213
|
+
}
|
|
214
|
+
const hidden = new Set(this.hiddenGroups);
|
|
215
|
+
return html `<div part="legend" role="group" aria-label=${this.legendLabel}>
|
|
216
|
+
${this.groups.map(({ name, tone }) => {
|
|
217
|
+
const shown = !hidden.has(name);
|
|
218
|
+
return html `<button
|
|
219
|
+
part="legend-item${shown ? '' : ' legend-item-hidden'}"
|
|
220
|
+
type="button"
|
|
221
|
+
aria-pressed=${shown ? 'true' : 'false'}
|
|
222
|
+
data-tone=${tone ?? nothing}
|
|
223
|
+
@click=${() => this.toggleGroup(name)}
|
|
224
|
+
>
|
|
225
|
+
<span part="legend-swatch" aria-hidden="true"></span>${name}
|
|
226
|
+
</button>`;
|
|
227
|
+
})}
|
|
228
|
+
</div>`;
|
|
229
|
+
}
|
|
195
230
|
choose(index) {
|
|
196
231
|
const entry = this.entries[index];
|
|
197
232
|
if (entry) {
|
|
@@ -300,7 +335,7 @@ let HelixHeadlessGraph = class HelixHeadlessGraph extends MixinViewport(MixinCon
|
|
|
300
335
|
<slot></slot>
|
|
301
336
|
${this.renderGestures()}
|
|
302
337
|
</div>
|
|
303
|
-
${this.renderControls()}
|
|
338
|
+
${this.renderControls()} ${this.renderLegend()}
|
|
304
339
|
</div>
|
|
305
340
|
<div
|
|
306
341
|
part="panel"
|
|
@@ -352,9 +387,18 @@ __decorate([
|
|
|
352
387
|
__decorate([
|
|
353
388
|
property({ type: Number })
|
|
354
389
|
], HelixHeadlessGraph.prototype, "depth", void 0);
|
|
390
|
+
__decorate([
|
|
391
|
+
property({ attribute: false })
|
|
392
|
+
], HelixHeadlessGraph.prototype, "hiddenGroups", void 0);
|
|
355
393
|
__decorate([
|
|
356
394
|
property()
|
|
357
395
|
], HelixHeadlessGraph.prototype, "label", void 0);
|
|
396
|
+
__decorate([
|
|
397
|
+
property({ type: Boolean })
|
|
398
|
+
], HelixHeadlessGraph.prototype, "legend", void 0);
|
|
399
|
+
__decorate([
|
|
400
|
+
property({ attribute: 'legend-label' })
|
|
401
|
+
], HelixHeadlessGraph.prototype, "legendLabel", void 0);
|
|
358
402
|
__decorate([
|
|
359
403
|
property({ attribute: 'linked-both-label' })
|
|
360
404
|
], HelixHeadlessGraph.prototype, "linkedBothLabel", void 0);
|
|
@@ -26,6 +26,7 @@ declare const HelixHeadlessTag_base: (new (...args: any[]) => import("@fusion.de
|
|
|
26
26
|
*
|
|
27
27
|
* @csspart dismiss - The button that removes the tag.
|
|
28
28
|
* @csspart dismiss-mark - The icon on the remove button.
|
|
29
|
+
* @csspart label - The label, which the styled tag trims to its capitals and baseline so the letters sit at the middle in any font.
|
|
29
30
|
* @csspart start - The category before the label.
|
|
30
31
|
*/
|
|
31
32
|
export declare class HelixHeadlessTag extends HelixHeadlessTag_base {
|
|
@@ -15,7 +15,7 @@ let HelixHeadlessTag = class HelixHeadlessTag extends MixinDismissible(HelixElem
|
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
17
|
return html `<slot name="start" part="start"></slot>
|
|
18
|
-
<slot></slot>
|
|
18
|
+
<slot part="label"></slot>
|
|
19
19
|
${this.dismissible
|
|
20
20
|
? html `<button
|
|
21
21
|
part="dismiss"
|
|
@@ -85,6 +85,7 @@ declare const HelixHeadlessTimeInput_base: (new (...args: any[]) => import("@fus
|
|
|
85
85
|
* @csspart time - One held time, as a tag, in `multiple`.
|
|
86
86
|
* @csspart time-dismiss - The remove button, when `dismissible`.
|
|
87
87
|
* @csspart time-dismiss-mark - The default icon on the remove button, shown when none is slotted.
|
|
88
|
+
* @csspart time-label - The label, trimmed to its capitals and baseline.
|
|
88
89
|
* @csspart time-start - The category before the label.
|
|
89
90
|
* @csspart trigger - The control that opens the list.
|
|
90
91
|
* @csspart trigger-icon - The icon on the button that opens the clock.
|
|
@@ -176,7 +176,7 @@ let HelixHeadlessTimeInput = class HelixHeadlessTimeInput extends MixinPickerEdi
|
|
|
176
176
|
renderTag(at) {
|
|
177
177
|
return html `<${this.tag('tag')}
|
|
178
178
|
part="time"
|
|
179
|
-
exportparts="dismiss: time-dismiss, dismiss-mark: time-dismiss-mark, start: time-start"
|
|
179
|
+
exportparts="dismiss: time-dismiss, dismiss-mark: time-dismiss-mark, label: time-label, start: time-start"
|
|
180
180
|
dismissible
|
|
181
181
|
dismiss-label=${fillTemplate(this.removeLabel, { name: this.written(at) })}
|
|
182
182
|
?disabled=${this.isDisabled}
|
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.132.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
},
|
|
47
47
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@fusion.dev/helix-core": "0.
|
|
50
|
-
"@fusion.dev/helix-icons": "0.
|
|
49
|
+
"@fusion.dev/helix-core": "0.132.0",
|
|
50
|
+
"@fusion.dev/helix-icons": "0.132.0",
|
|
51
51
|
"uqr": "^0.1.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@fusion.dev/helix-cem": "0.
|
|
55
|
-
"@fusion.dev/helix-testing": "0.
|
|
54
|
+
"@fusion.dev/helix-cem": "0.132.0",
|
|
55
|
+
"@fusion.dev/helix-testing": "0.132.0",
|
|
56
56
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
57
57
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
58
58
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ import type {
|
|
|
36
36
|
HelixFacetEvent,
|
|
37
37
|
HelixFilterEvent,
|
|
38
38
|
HelixFormElement,
|
|
39
|
+
HelixGraphFilterEvent,
|
|
39
40
|
HelixGraphLayoutEvent,
|
|
40
41
|
HelixGraphPanEvent,
|
|
41
42
|
HelixGraphPartChangeEvent,
|
|
@@ -9375,6 +9376,9 @@ export type HelixHeadlessGraphHelixActivateElementEvent =
|
|
|
9375
9376
|
/** `helix-before-activate` event type */
|
|
9376
9377
|
export type HelixHeadlessGraphHelixBeforeActivateElementEvent =
|
|
9377
9378
|
HelixHeadlessGraphElementEvent<HelixBeforeActivateEvent>;
|
|
9379
|
+
/** `helix-graph-filter` event type */
|
|
9380
|
+
export type HelixHeadlessGraphHelixGraphFilterElementEvent =
|
|
9381
|
+
HelixHeadlessGraphElementEvent<HelixGraphFilterEvent>;
|
|
9378
9382
|
/** `helix-graph-layout` event type */
|
|
9379
9383
|
export type HelixHeadlessGraphHelixGraphLayoutElementEvent =
|
|
9380
9384
|
HelixHeadlessGraphElementEvent<HelixGraphLayoutEvent>;
|
|
@@ -9405,6 +9409,13 @@ shows every note. The list holds what the drawing shows. */
|
|
|
9405
9409
|
/** The graph's name, read by screen readers, such as "Research notes".
|
|
9406
9410
|
Required. */
|
|
9407
9411
|
label?: (HelixHeadlessGraph["label"]) | undefined;
|
|
9412
|
+
/** Names the groups over the drawing, each a button in its color that shows
|
|
9413
|
+
or hides its notes. Drawn where the notes have two groups or more. */
|
|
9414
|
+
legend?: (HelixHeadlessGraph["legend"]) | undefined;
|
|
9415
|
+
/** The legend's name, read by screen readers. */
|
|
9416
|
+
"legend-label"?: (HelixHeadlessGraph["legendLabel"]) | undefined;
|
|
9417
|
+
/** The legend's name, read by screen readers. */
|
|
9418
|
+
legendLabel?: (HelixHeadlessGraph["legendLabel"]) | undefined;
|
|
9408
9419
|
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
9409
9420
|
"linked-both-label"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
|
|
9410
9421
|
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
@@ -9626,6 +9637,8 @@ Ignored once `active` is written. */
|
|
|
9626
9637
|
|
|
9627
9638
|
Ignored once `active` is written. */
|
|
9628
9639
|
defaultActive?: (HelixHeadlessGraph["defaultActive"]) | undefined;
|
|
9640
|
+
/** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
|
|
9641
|
+
hiddenGroups?: (HelixHeadlessGraph["hiddenGroups"]) | undefined;
|
|
9629
9642
|
/** The links between notes, each from `source` to `target`. A property, never an attribute. */
|
|
9630
9643
|
links?: (HelixHeadlessGraph["links"]) | undefined;
|
|
9631
9644
|
/** The notes. A property, never an attribute. */
|
|
@@ -9637,6 +9650,10 @@ Ignored once `active` is written. */
|
|
|
9637
9650
|
"onhelix-before-activate"?: ((
|
|
9638
9651
|
e: HelixHeadlessGraphHelixBeforeActivateElementEvent,
|
|
9639
9652
|
) => void) | undefined;
|
|
9653
|
+
/** A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself. */
|
|
9654
|
+
"onhelix-graph-filter"?: ((
|
|
9655
|
+
e: HelixHeadlessGraphHelixGraphFilterElementEvent,
|
|
9656
|
+
) => void) | undefined;
|
|
9640
9657
|
/** A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions. */
|
|
9641
9658
|
"onhelix-graph-layout"?: ((
|
|
9642
9659
|
e: HelixHeadlessGraphHelixGraphLayoutElementEvent,
|
|
@@ -9674,6 +9691,13 @@ shows every note. The list holds what the drawing shows. */
|
|
|
9674
9691
|
/** The graph's name, read by screen readers, such as "Research notes".
|
|
9675
9692
|
Required. */
|
|
9676
9693
|
"prop:label"?: (HelixHeadlessGraph["label"]) | undefined;
|
|
9694
|
+
/** Names the groups over the drawing, each a button in its color that shows
|
|
9695
|
+
or hides its notes. Drawn where the notes have two groups or more. */
|
|
9696
|
+
"prop:legend"?: (HelixHeadlessGraph["legend"]) | undefined;
|
|
9697
|
+
/** The legend's name, read by screen readers. */
|
|
9698
|
+
"attr:legend-label"?: (HelixHeadlessGraph["legendLabel"]) | undefined;
|
|
9699
|
+
/** The legend's name, read by screen readers. */
|
|
9700
|
+
"prop:legendLabel"?: (HelixHeadlessGraph["legendLabel"]) | undefined;
|
|
9677
9701
|
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
9678
9702
|
"attr:linked-both-label"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
|
|
9679
9703
|
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
@@ -9895,6 +9919,8 @@ Ignored once `active` is written. */
|
|
|
9895
9919
|
|
|
9896
9920
|
Ignored once `active` is written. */
|
|
9897
9921
|
"prop:defaultActive"?: (HelixHeadlessGraph["defaultActive"]) | undefined;
|
|
9922
|
+
/** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
|
|
9923
|
+
"prop:hiddenGroups"?: (HelixHeadlessGraph["hiddenGroups"]) | undefined;
|
|
9898
9924
|
/** The links between notes, each from `source` to `target`. A property, never an attribute. */
|
|
9899
9925
|
"prop:links"?: (HelixHeadlessGraph["links"]) | undefined;
|
|
9900
9926
|
/** The notes. A property, never an attribute. */
|
|
@@ -9907,6 +9933,10 @@ Ignored once `active` is written. */
|
|
|
9907
9933
|
"on:helix-before-activate"?: ((
|
|
9908
9934
|
e: HelixHeadlessGraphHelixBeforeActivateElementEvent,
|
|
9909
9935
|
) => void) | undefined;
|
|
9936
|
+
/** A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself. */
|
|
9937
|
+
"on:helix-graph-filter"?: ((
|
|
9938
|
+
e: HelixHeadlessGraphHelixGraphFilterElementEvent,
|
|
9939
|
+
) => void) | undefined;
|
|
9910
9940
|
/** A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions. */
|
|
9911
9941
|
"on:helix-graph-layout"?: ((
|
|
9912
9942
|
e: HelixHeadlessGraphHelixGraphLayoutElementEvent,
|
|
@@ -27863,6 +27893,7 @@ export type CustomElements = {
|
|
|
27863
27893
|
* - `tag`: One chosen option.
|
|
27864
27894
|
* - `tag-dismiss`: The remove button, when `dismissible`.
|
|
27865
27895
|
* - `tag-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
|
|
27896
|
+
* - `tag-label`: The label, trimmed to its capitals and baseline.
|
|
27866
27897
|
* - `tag-start`: The category before the label.
|
|
27867
27898
|
* - `tags`: The row of chosen options, when `multiple` is set.
|
|
27868
27899
|
*
|
|
@@ -28856,6 +28887,7 @@ export type CustomElements = {
|
|
|
28856
28887
|
* - `date`: One held date, as a tag, in `multiple`.
|
|
28857
28888
|
* - `date-dismiss`: The remove button, when `dismissible`.
|
|
28858
28889
|
* - `date-dismiss-mark`: The icon on the remove button, shown when no icon is slotted.
|
|
28890
|
+
* - `date-label`: The label, trimmed to its capitals and baseline.
|
|
28859
28891
|
* - `date-start`: The category before the label.
|
|
28860
28892
|
* - `feedback`: The error message under the field.
|
|
28861
28893
|
* - `field`: The box that holds the text and the trigger.
|
|
@@ -30326,6 +30358,7 @@ export type CustomElements = {
|
|
|
30326
30358
|
* - `kind`: A file's type.
|
|
30327
30359
|
* - `kind-dismiss`: The remove button, when `dismissible`.
|
|
30328
30360
|
* - `kind-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
|
|
30361
|
+
* - `kind-label`: The label, trimmed to its capitals and baseline.
|
|
30329
30362
|
* - `kind-start`: The category before the label.
|
|
30330
30363
|
* - `label`: The label above the field.
|
|
30331
30364
|
* - `list`: The chosen files.
|
|
@@ -30335,6 +30368,7 @@ export type CustomElements = {
|
|
|
30335
30368
|
* - `size`: A file's size.
|
|
30336
30369
|
* - `size-dismiss`: The remove button, when `dismissible`.
|
|
30337
30370
|
* - `size-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
|
|
30371
|
+
* - `size-label`: The label, trimmed to its capitals and baseline.
|
|
30338
30372
|
* - `size-start`: The category before the label.
|
|
30339
30373
|
* - `trigger`: The label that opens the picker.
|
|
30340
30374
|
*
|
|
@@ -31260,6 +31294,10 @@ export type CustomElements = {
|
|
|
31260
31294
|
* Set `depth` to show the local graph: only the notes within that many links
|
|
31261
31295
|
* of the selected one.
|
|
31262
31296
|
*
|
|
31297
|
+
* Set `legend` to name the groups over the drawing, each a button that shows
|
|
31298
|
+
* or hides its notes. `hiddenGroups` holds the groups turned off, and the
|
|
31299
|
+
* list holds only what the drawing shows.
|
|
31300
|
+
*
|
|
31263
31301
|
* `nodes` and `links` are properties, never markup: a graph of ten thousand
|
|
31264
31302
|
* notes as ten thousand elements would cost what the renderer exists to save.
|
|
31265
31303
|
* The list draws only the rows in view.
|
|
@@ -31277,6 +31315,9 @@ export type CustomElements = {
|
|
|
31277
31315
|
* shows every note. The list holds what the drawing shows.
|
|
31278
31316
|
* - `label`: The graph's name, read by screen readers, such as "Research notes".
|
|
31279
31317
|
* Required.
|
|
31318
|
+
* - `legend`: Names the groups over the drawing, each a button in its color that shows
|
|
31319
|
+
* or hides its notes. Drawn where the notes have two groups or more.
|
|
31320
|
+
* - `legend-label`/`legendLabel`: The legend's name, read by screen readers.
|
|
31280
31321
|
* - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
|
|
31281
31322
|
* - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
|
|
31282
31323
|
* - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
|
|
@@ -31387,6 +31428,7 @@ export type CustomElements = {
|
|
|
31387
31428
|
* - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
|
|
31388
31429
|
*
|
|
31389
31430
|
* Ignored once `active` is written.
|
|
31431
|
+
* - `hiddenGroups`: The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. (property only)
|
|
31390
31432
|
* - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
|
|
31391
31433
|
* - `nodes`: The notes. A property, never an attribute. (property only)
|
|
31392
31434
|
* - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
|
|
@@ -31417,6 +31459,7 @@ export type CustomElements = {
|
|
|
31417
31459
|
*
|
|
31418
31460
|
* - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
|
|
31419
31461
|
* - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
|
|
31462
|
+
* - `helix-graph-filter`: A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself.
|
|
31420
31463
|
* - `helix-graph-layout`: A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions.
|
|
31421
31464
|
* - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
|
|
31422
31465
|
* - `helix-graph-part-change`: The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it.
|
|
@@ -31482,6 +31525,10 @@ export type CustomElements = {
|
|
|
31482
31525
|
* - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
|
|
31483
31526
|
* - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
|
|
31484
31527
|
* - `header`: The strip above the graph.
|
|
31528
|
+
* - `legend`: The groups over the drawing, with `legend`, each a button that shows or hides its notes.
|
|
31529
|
+
* - `legend-item`: One group in the legend, pressed while its notes are shown. Carries `data-tone` where every note in the group has the same tone, which colors the notes over the group's own color.
|
|
31530
|
+
* - `legend-item-hidden`: A group in the legend whose notes are hidden.
|
|
31531
|
+
* - `legend-swatch`: The mark in a group's color, before its name.
|
|
31485
31532
|
* - `list`: The list of notes, which draws only the rows in view.
|
|
31486
31533
|
* - `live`: What screen readers hear when a search changes how many notes there are.
|
|
31487
31534
|
* - `note`: One note in the list.
|
|
@@ -40649,6 +40696,7 @@ export type CustomElements = {
|
|
|
40649
40696
|
*
|
|
40650
40697
|
* - `dismiss`: The button that removes the tag.
|
|
40651
40698
|
* - `dismiss-mark`: The icon on the remove button.
|
|
40699
|
+
* - `label`: The label, which the styled tag trims to its capitals and baseline so the letters sit at the middle in any font.
|
|
40652
40700
|
* - `start`: The category before the label.
|
|
40653
40701
|
*
|
|
40654
40702
|
* ## CSS States
|
|
@@ -41202,6 +41250,7 @@ export type CustomElements = {
|
|
|
41202
41250
|
* - `time`: One held time, as a tag, in `multiple`.
|
|
41203
41251
|
* - `time-dismiss`: The remove button, when `dismissible`.
|
|
41204
41252
|
* - `time-dismiss-mark`: The default icon on the remove button, shown when none is slotted.
|
|
41253
|
+
* - `time-label`: The label, trimmed to its capitals and baseline.
|
|
41205
41254
|
* - `time-start`: The category before the label.
|
|
41206
41255
|
* - `trigger`: The control that opens the list.
|
|
41207
41256
|
* - `trigger-icon`: The icon on the button that opens the clock.
|
|
@@ -48202,6 +48251,7 @@ export type CustomElementsSolidJs = {
|
|
|
48202
48251
|
* - `tag`: One chosen option.
|
|
48203
48252
|
* - `tag-dismiss`: The remove button, when `dismissible`.
|
|
48204
48253
|
* - `tag-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
|
|
48254
|
+
* - `tag-label`: The label, trimmed to its capitals and baseline.
|
|
48205
48255
|
* - `tag-start`: The category before the label.
|
|
48206
48256
|
* - `tags`: The row of chosen options, when `multiple` is set.
|
|
48207
48257
|
*
|
|
@@ -49205,6 +49255,7 @@ export type CustomElementsSolidJs = {
|
|
|
49205
49255
|
* - `date`: One held date, as a tag, in `multiple`.
|
|
49206
49256
|
* - `date-dismiss`: The remove button, when `dismissible`.
|
|
49207
49257
|
* - `date-dismiss-mark`: The icon on the remove button, shown when no icon is slotted.
|
|
49258
|
+
* - `date-label`: The label, trimmed to its capitals and baseline.
|
|
49208
49259
|
* - `date-start`: The category before the label.
|
|
49209
49260
|
* - `feedback`: The error message under the field.
|
|
49210
49261
|
* - `field`: The box that holds the text and the trigger.
|
|
@@ -50698,6 +50749,7 @@ export type CustomElementsSolidJs = {
|
|
|
50698
50749
|
* - `kind`: A file's type.
|
|
50699
50750
|
* - `kind-dismiss`: The remove button, when `dismissible`.
|
|
50700
50751
|
* - `kind-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
|
|
50752
|
+
* - `kind-label`: The label, trimmed to its capitals and baseline.
|
|
50701
50753
|
* - `kind-start`: The category before the label.
|
|
50702
50754
|
* - `label`: The label above the field.
|
|
50703
50755
|
* - `list`: The chosen files.
|
|
@@ -50707,6 +50759,7 @@ export type CustomElementsSolidJs = {
|
|
|
50707
50759
|
* - `size`: A file's size.
|
|
50708
50760
|
* - `size-dismiss`: The remove button, when `dismissible`.
|
|
50709
50761
|
* - `size-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
|
|
50762
|
+
* - `size-label`: The label, trimmed to its capitals and baseline.
|
|
50710
50763
|
* - `size-start`: The category before the label.
|
|
50711
50764
|
* - `trigger`: The label that opens the picker.
|
|
50712
50765
|
*
|
|
@@ -51641,6 +51694,10 @@ export type CustomElementsSolidJs = {
|
|
|
51641
51694
|
* Set `depth` to show the local graph: only the notes within that many links
|
|
51642
51695
|
* of the selected one.
|
|
51643
51696
|
*
|
|
51697
|
+
* Set `legend` to name the groups over the drawing, each a button that shows
|
|
51698
|
+
* or hides its notes. `hiddenGroups` holds the groups turned off, and the
|
|
51699
|
+
* list holds only what the drawing shows.
|
|
51700
|
+
*
|
|
51644
51701
|
* `nodes` and `links` are properties, never markup: a graph of ten thousand
|
|
51645
51702
|
* notes as ten thousand elements would cost what the renderer exists to save.
|
|
51646
51703
|
* The list draws only the rows in view.
|
|
@@ -51658,6 +51715,9 @@ export type CustomElementsSolidJs = {
|
|
|
51658
51715
|
* shows every note. The list holds what the drawing shows.
|
|
51659
51716
|
* - `label`: The graph's name, read by screen readers, such as "Research notes".
|
|
51660
51717
|
* Required.
|
|
51718
|
+
* - `legend`: Names the groups over the drawing, each a button in its color that shows
|
|
51719
|
+
* or hides its notes. Drawn where the notes have two groups or more.
|
|
51720
|
+
* - `legend-label`/`legendLabel`: The legend's name, read by screen readers.
|
|
51661
51721
|
* - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
|
|
51662
51722
|
* - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
|
|
51663
51723
|
* - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
|
|
@@ -51768,6 +51828,7 @@ export type CustomElementsSolidJs = {
|
|
|
51768
51828
|
* - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
|
|
51769
51829
|
*
|
|
51770
51830
|
* Ignored once `active` is written.
|
|
51831
|
+
* - `hiddenGroups`: The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. (property only)
|
|
51771
51832
|
* - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
|
|
51772
51833
|
* - `nodes`: The notes. A property, never an attribute. (property only)
|
|
51773
51834
|
* - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
|
|
@@ -51798,6 +51859,7 @@ export type CustomElementsSolidJs = {
|
|
|
51798
51859
|
*
|
|
51799
51860
|
* - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
|
|
51800
51861
|
* - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
|
|
51862
|
+
* - `helix-graph-filter`: A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself.
|
|
51801
51863
|
* - `helix-graph-layout`: A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions.
|
|
51802
51864
|
* - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
|
|
51803
51865
|
* - `helix-graph-part-change`: The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it.
|
|
@@ -51863,6 +51925,10 @@ export type CustomElementsSolidJs = {
|
|
|
51863
51925
|
* - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
|
|
51864
51926
|
* - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
|
|
51865
51927
|
* - `header`: The strip above the graph.
|
|
51928
|
+
* - `legend`: The groups over the drawing, with `legend`, each a button that shows or hides its notes.
|
|
51929
|
+
* - `legend-item`: One group in the legend, pressed while its notes are shown. Carries `data-tone` where every note in the group has the same tone, which colors the notes over the group's own color.
|
|
51930
|
+
* - `legend-item-hidden`: A group in the legend whose notes are hidden.
|
|
51931
|
+
* - `legend-swatch`: The mark in a group's color, before its name.
|
|
51866
51932
|
* - `list`: The list of notes, which draws only the rows in view.
|
|
51867
51933
|
* - `live`: What screen readers hear when a search changes how many notes there are.
|
|
51868
51934
|
* - `note`: One note in the list.
|
|
@@ -61202,6 +61268,7 @@ export type CustomElementsSolidJs = {
|
|
|
61202
61268
|
*
|
|
61203
61269
|
* - `dismiss`: The button that removes the tag.
|
|
61204
61270
|
* - `dismiss-mark`: The icon on the remove button.
|
|
61271
|
+
* - `label`: The label, which the styled tag trims to its capitals and baseline so the letters sit at the middle in any font.
|
|
61205
61272
|
* - `start`: The category before the label.
|
|
61206
61273
|
*
|
|
61207
61274
|
* ## CSS States
|
|
@@ -61761,6 +61828,7 @@ export type CustomElementsSolidJs = {
|
|
|
61761
61828
|
* - `time`: One held time, as a tag, in `multiple`.
|
|
61762
61829
|
* - `time-dismiss`: The remove button, when `dismissible`.
|
|
61763
61830
|
* - `time-dismiss-mark`: The default icon on the remove button, shown when none is slotted.
|
|
61831
|
+
* - `time-label`: The label, trimmed to its capitals and baseline.
|
|
61764
61832
|
* - `time-start`: The category before the label.
|
|
61765
61833
|
* - `trigger`: The control that opens the list.
|
|
61766
61834
|
* - `trigger-icon`: The icon on the button that opens the clock.
|
package/types/vue.d.ts
CHANGED
|
@@ -196,6 +196,7 @@ import type {
|
|
|
196
196
|
HelixFacetEvent,
|
|
197
197
|
HelixActivateEvent,
|
|
198
198
|
HelixBeforeActivateEvent,
|
|
199
|
+
HelixGraphFilterEvent,
|
|
199
200
|
HelixGraphLayoutEvent,
|
|
200
201
|
HelixGraphPanEvent,
|
|
201
202
|
HelixGraphPartChangeEvent,
|
|
@@ -4811,6 +4812,9 @@ export type HelixHeadlessGraphHelixActivateElementEvent =
|
|
|
4811
4812
|
/** `helix-before-activate` event type */
|
|
4812
4813
|
export type HelixHeadlessGraphHelixBeforeActivateElementEvent =
|
|
4813
4814
|
HelixHeadlessGraphElementEvent<HelixBeforeActivateEvent>;
|
|
4815
|
+
/** `helix-graph-filter` event type */
|
|
4816
|
+
export type HelixHeadlessGraphHelixGraphFilterElementEvent =
|
|
4817
|
+
HelixHeadlessGraphElementEvent<HelixGraphFilterEvent>;
|
|
4814
4818
|
/** `helix-graph-layout` event type */
|
|
4815
4819
|
export type HelixHeadlessGraphHelixGraphLayoutElementEvent =
|
|
4816
4820
|
HelixHeadlessGraphElementEvent<HelixGraphLayoutEvent>;
|
|
@@ -4841,6 +4845,13 @@ shows every note. The list holds what the drawing shows. */
|
|
|
4841
4845
|
/** The graph's name, read by screen readers, such as "Research notes".
|
|
4842
4846
|
Required. */
|
|
4843
4847
|
label?: (HelixHeadlessGraph["label"]) | undefined;
|
|
4848
|
+
/** Names the groups over the drawing, each a button in its color that shows
|
|
4849
|
+
or hides its notes. Drawn where the notes have two groups or more. */
|
|
4850
|
+
legend?: (HelixHeadlessGraph["legend"]) | undefined;
|
|
4851
|
+
/** The legend's name, read by screen readers. */
|
|
4852
|
+
"legend-label"?: (HelixHeadlessGraph["legendLabel"]) | undefined;
|
|
4853
|
+
/** The legend's name, read by screen readers. */
|
|
4854
|
+
legendLabel?: (HelixHeadlessGraph["legendLabel"]) | undefined;
|
|
4844
4855
|
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
4845
4856
|
"linked-both-label"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
|
|
4846
4857
|
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
@@ -5062,6 +5073,8 @@ Ignored once `active` is written. */
|
|
|
5062
5073
|
|
|
5063
5074
|
Ignored once `active` is written. */
|
|
5064
5075
|
defaultActive?: (HelixHeadlessGraph["defaultActive"]) | undefined;
|
|
5076
|
+
/** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
|
|
5077
|
+
hiddenGroups?: (HelixHeadlessGraph["hiddenGroups"]) | undefined;
|
|
5065
5078
|
/** The links between notes, each from `source` to `target`. A property, never an attribute. */
|
|
5066
5079
|
links?: (HelixHeadlessGraph["links"]) | undefined;
|
|
5067
5080
|
/** The notes. A property, never an attribute. */
|
|
@@ -5073,6 +5086,8 @@ export type HelixHeadlessGraphVueEvents = {
|
|
|
5073
5086
|
"helix-activate": HelixHeadlessGraphHelixActivateElementEvent;
|
|
5074
5087
|
/** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
|
|
5075
5088
|
"helix-before-activate": HelixHeadlessGraphHelixBeforeActivateElementEvent;
|
|
5089
|
+
/** A group in the legend was pressed, to show or hide its notes. The detail's `hidden` is every group that would be hidden. Cancelable: cancel it to keep the groups as they were, or to set `hiddenGroups` yourself. */
|
|
5090
|
+
"helix-graph-filter": HelixHeadlessGraphHelixGraphFilterElementEvent;
|
|
5076
5091
|
/** A layout settled, with where it put each note, sent by `laidOut()`. Keep the positions and pass them back as each note's `x` and `y`, and `z` where a renderer draws in three dimensions. */
|
|
5077
5092
|
"helix-graph-layout": HelixHeadlessGraphHelixGraphLayoutElementEvent;
|
|
5078
5093
|
/** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
|
|
@@ -12456,7 +12471,7 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
12456
12471
|
HelixHeadlessFormatDateVueProps,
|
|
12457
12472
|
HelixHeadlessFormatDateVueEvents
|
|
12458
12473
|
>;
|
|
12459
|
-
/** Helix draws no graph. A force layout of thousands of notes is physics and WebGL, which a renderer such as Sigma.js does. Put the renderer's box in the frame, and 'connectGraph' from '@fusion.dev/helix-graph' draws 'nodes' and 'links' in it and keeps it in step with the frame. What the frame adds is what a drawing of a graph cannot do: a list of every note beside it, which is the graph for a screen reader and a quick way to find a note for anyone. The selected note comes first, then the notes it links to and from, then every other note, and the search field narrows it. Selecting a note in the list or in the drawing is the same selection. Set 'depth' to show the local graph: only the notes within that many links of the selected one. 'nodes' and 'links' are properties, never markup: a graph of ten thousand notes as ten thousand elements would cost what the renderer exists to save. The list draws only the rows in view. The list scrolls on this tier. It carries 'data-scroller', and 'core' ships '[data-scroller] { overflow: auto }' into every shadow root. You still need to set a block size on the list, or it grows to hold every row. */
|
|
12474
|
+
/** Helix draws no graph. A force layout of thousands of notes is physics and WebGL, which a renderer such as Sigma.js does. Put the renderer's box in the frame, and 'connectGraph' from '@fusion.dev/helix-graph' draws 'nodes' and 'links' in it and keeps it in step with the frame. What the frame adds is what a drawing of a graph cannot do: a list of every note beside it, which is the graph for a screen reader and a quick way to find a note for anyone. The selected note comes first, then the notes it links to and from, then every other note, and the search field narrows it. Selecting a note in the list or in the drawing is the same selection. Set 'depth' to show the local graph: only the notes within that many links of the selected one. Set 'legend' to name the groups over the drawing, each a button that shows or hides its notes. 'hiddenGroups' holds the groups turned off, and the list holds only what the drawing shows. 'nodes' and 'links' are properties, never markup: a graph of ten thousand notes as ten thousand elements would cost what the renderer exists to save. The list draws only the rows in view. The list scrolls on this tier. It carries 'data-scroller', and 'core' ships '[data-scroller] { overflow: auto }' into every shadow root. You still need to set a block size on the list, or it grows to hold every row. */
|
|
12460
12475
|
"helix-headless-graph": DefineCustomElement<
|
|
12461
12476
|
HelixHeadlessGraph,
|
|
12462
12477
|
HelixHeadlessGraphVueProps,
|