@fusion.dev/helix 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.
@@ -36348,6 +36348,14 @@
36348
36348
  "module": "src/combobox/root/combobox-root.ts"
36349
36349
  }
36350
36350
  },
36351
+ {
36352
+ "description": "The label, trimmed to its capitals and baseline.",
36353
+ "name": "tag-label",
36354
+ "inheritedFrom": {
36355
+ "name": "HelixHeadlessCombobox",
36356
+ "module": "src/combobox/root/combobox-root.ts"
36357
+ }
36358
+ },
36351
36359
  {
36352
36360
  "description": "The category before the label.",
36353
36361
  "name": "tag-start",
@@ -44595,6 +44603,14 @@
44595
44603
  "module": "src/date-input/root/date-input-root.ts"
44596
44604
  }
44597
44605
  },
44606
+ {
44607
+ "description": "The label, trimmed to its capitals and baseline.",
44608
+ "name": "date-label",
44609
+ "inheritedFrom": {
44610
+ "name": "HelixHeadlessDateInput",
44611
+ "module": "src/date-input/root/date-input-root.ts"
44612
+ }
44613
+ },
44598
44614
  {
44599
44615
  "description": "The category before the label.",
44600
44616
  "name": "date-start",
@@ -55306,6 +55322,14 @@
55306
55322
  "module": "src/file-input/root/file-input-root.ts"
55307
55323
  }
55308
55324
  },
55325
+ {
55326
+ "description": "The label, trimmed to its capitals and baseline.",
55327
+ "name": "kind-label",
55328
+ "inheritedFrom": {
55329
+ "name": "HelixHeadlessFileInput",
55330
+ "module": "src/file-input/root/file-input-root.ts"
55331
+ }
55332
+ },
55309
55333
  {
55310
55334
  "description": "The category before the label.",
55311
55335
  "name": "kind-start",
@@ -55378,6 +55402,14 @@
55378
55402
  "module": "src/file-input/root/file-input-root.ts"
55379
55403
  }
55380
55404
  },
55405
+ {
55406
+ "description": "The label, trimmed to its capitals and baseline.",
55407
+ "name": "size-label",
55408
+ "inheritedFrom": {
55409
+ "name": "HelixHeadlessFileInput",
55410
+ "module": "src/file-input/root/file-input-root.ts"
55411
+ }
55412
+ },
55381
55413
  {
55382
55414
  "description": "The category before the label.",
55383
55415
  "name": "size-start",
@@ -62983,6 +63015,19 @@
62983
63015
  "module": "src/graph/root/graph-root.ts"
62984
63016
  }
62985
63017
  },
63018
+ {
63019
+ "kind": "field",
63020
+ "name": "hiddenGroups",
63021
+ "type": {
63022
+ "text": "readonly string[]"
63023
+ },
63024
+ "default": "[]",
63025
+ "description": "The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute.",
63026
+ "inheritedFrom": {
63027
+ "name": "HelixHeadlessGraph",
63028
+ "module": "src/graph/root/graph-root.ts"
63029
+ }
63030
+ },
62986
63031
  {
62987
63032
  "kind": "field",
62988
63033
  "name": "label",
@@ -62997,6 +63042,34 @@
62997
63042
  "module": "src/graph/root/graph-root.ts"
62998
63043
  }
62999
63044
  },
63045
+ {
63046
+ "kind": "field",
63047
+ "name": "legend",
63048
+ "type": {
63049
+ "text": "boolean"
63050
+ },
63051
+ "default": "false",
63052
+ "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.",
63053
+ "attribute": "legend",
63054
+ "inheritedFrom": {
63055
+ "name": "HelixHeadlessGraph",
63056
+ "module": "src/graph/root/graph-root.ts"
63057
+ }
63058
+ },
63059
+ {
63060
+ "kind": "field",
63061
+ "name": "legendLabel",
63062
+ "type": {
63063
+ "text": "string"
63064
+ },
63065
+ "default": "'Groups'",
63066
+ "description": "The legend's name, read by screen readers.",
63067
+ "attribute": "legend-label",
63068
+ "inheritedFrom": {
63069
+ "name": "HelixHeadlessGraph",
63070
+ "module": "src/graph/root/graph-root.ts"
63071
+ }
63072
+ },
63000
63073
  {
63001
63074
  "kind": "field",
63002
63075
  "name": "linkedBothLabel",
@@ -63213,7 +63286,21 @@
63213
63286
  "text": "Set<string> | undefined"
63214
63287
  },
63215
63288
  "privacy": "private",
63216
- "description": "The notes the local graph keeps, or every note where there is no `depth`.",
63289
+ "description": "The notes the local graph and the legend keep, or `undefined` where neither leaves any out.",
63290
+ "inheritedFrom": {
63291
+ "name": "HelixHeadlessGraph",
63292
+ "module": "src/graph/root/graph-root.ts"
63293
+ }
63294
+ },
63295
+ {
63296
+ "kind": "field",
63297
+ "name": "groups",
63298
+ "type": {
63299
+ "text": "GraphGroupEntry[]"
63300
+ },
63301
+ "privacy": "private",
63302
+ "default": "[]",
63303
+ "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.",
63217
63304
  "inheritedFrom": {
63218
63305
  "name": "HelixHeadlessGraph",
63219
63306
  "module": "src/graph/root/graph-root.ts"
@@ -63395,6 +63482,44 @@
63395
63482
  "module": "src/graph/root/graph-root.ts"
63396
63483
  }
63397
63484
  },
63485
+ {
63486
+ "kind": "method",
63487
+ "name": "toggleGroup",
63488
+ "privacy": "private",
63489
+ "return": {
63490
+ "type": {
63491
+ "text": "void"
63492
+ }
63493
+ },
63494
+ "parameters": [
63495
+ {
63496
+ "name": "name",
63497
+ "type": {
63498
+ "text": "string"
63499
+ }
63500
+ }
63501
+ ],
63502
+ "description": "Shows a group's notes or hides them, through the request a page can refuse.",
63503
+ "inheritedFrom": {
63504
+ "name": "HelixHeadlessGraph",
63505
+ "module": "src/graph/root/graph-root.ts"
63506
+ }
63507
+ },
63508
+ {
63509
+ "kind": "method",
63510
+ "name": "renderLegend",
63511
+ "privacy": "private",
63512
+ "return": {
63513
+ "type": {
63514
+ "text": "TemplateResult | typeof nothing"
63515
+ }
63516
+ },
63517
+ "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.",
63518
+ "inheritedFrom": {
63519
+ "name": "HelixHeadlessGraph",
63520
+ "module": "src/graph/root/graph-root.ts"
63521
+ }
63522
+ },
63398
63523
  {
63399
63524
  "kind": "method",
63400
63525
  "name": "choose",
@@ -63900,7 +64025,7 @@
63900
64025
  "slug": "large"
63901
64026
  },
63902
64027
  {
63903
- "description": "A graph of company notes drawn by Sigma.js, with notes arriving and messages passing between them as they happen.",
64028
+ "description": "A graph of company notes drawn by Sigma.js, with notes arriving and messages passing between them as they happen, and a legend that shows or hides each subject.",
63904
64029
  "slug": "live"
63905
64030
  }
63906
64031
  ],
@@ -64185,6 +64310,32 @@
64185
64310
  "module": "src/graph/root/graph-root.ts"
64186
64311
  }
64187
64312
  },
64313
+ {
64314
+ "name": "legend",
64315
+ "type": {
64316
+ "text": "boolean"
64317
+ },
64318
+ "default": "false",
64319
+ "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.",
64320
+ "fieldName": "legend",
64321
+ "inheritedFrom": {
64322
+ "name": "HelixHeadlessGraph",
64323
+ "module": "src/graph/root/graph-root.ts"
64324
+ }
64325
+ },
64326
+ {
64327
+ "name": "legend-label",
64328
+ "type": {
64329
+ "text": "string"
64330
+ },
64331
+ "default": "'Groups'",
64332
+ "description": "The legend's name, read by screen readers.",
64333
+ "fieldName": "legendLabel",
64334
+ "inheritedFrom": {
64335
+ "name": "HelixHeadlessGraph",
64336
+ "module": "src/graph/root/graph-root.ts"
64337
+ }
64338
+ },
64188
64339
  {
64189
64340
  "name": "linked-both-label",
64190
64341
  "type": {
@@ -64302,6 +64453,18 @@
64302
64453
  "module": "src/graph/root/graph-root.ts"
64303
64454
  }
64304
64455
  },
64456
+ {
64457
+ "type": {
64458
+ "text": "HelixGraphFilterEvent"
64459
+ },
64460
+ "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.",
64461
+ "name": "helix-graph-filter",
64462
+ "reactProp": "onhelix-graph-filter",
64463
+ "inheritedFrom": {
64464
+ "name": "HelixHeadlessGraph",
64465
+ "module": "src/graph/root/graph-root.ts"
64466
+ }
64467
+ },
64305
64468
  {
64306
64469
  "type": {
64307
64470
  "text": "HelixGraphLayoutEvent"
@@ -64506,6 +64669,38 @@
64506
64669
  "module": "src/graph/root/graph-root.ts"
64507
64670
  }
64508
64671
  },
64672
+ {
64673
+ "description": "The groups over the drawing, with `legend`, each a button that shows or hides its notes.",
64674
+ "name": "legend",
64675
+ "inheritedFrom": {
64676
+ "name": "HelixHeadlessGraph",
64677
+ "module": "src/graph/root/graph-root.ts"
64678
+ }
64679
+ },
64680
+ {
64681
+ "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.",
64682
+ "name": "legend-item",
64683
+ "inheritedFrom": {
64684
+ "name": "HelixHeadlessGraph",
64685
+ "module": "src/graph/root/graph-root.ts"
64686
+ }
64687
+ },
64688
+ {
64689
+ "description": "A group in the legend whose notes are hidden.",
64690
+ "name": "legend-item-hidden",
64691
+ "inheritedFrom": {
64692
+ "name": "HelixHeadlessGraph",
64693
+ "module": "src/graph/root/graph-root.ts"
64694
+ }
64695
+ },
64696
+ {
64697
+ "description": "The mark in a group's color, before its name.",
64698
+ "name": "legend-swatch",
64699
+ "inheritedFrom": {
64700
+ "name": "HelixHeadlessGraph",
64701
+ "module": "src/graph/root/graph-root.ts"
64702
+ }
64703
+ },
64509
64704
  {
64510
64705
  "description": "The list of notes, which draws only the rows in view.",
64511
64706
  "name": "list",
@@ -140499,6 +140694,14 @@
140499
140694
  "module": "src/tag/root/tag-root.ts"
140500
140695
  }
140501
140696
  },
140697
+ {
140698
+ "description": "The label, which the styled tag trims to its capitals and baseline so the letters sit at the middle in any font.",
140699
+ "name": "label",
140700
+ "inheritedFrom": {
140701
+ "name": "HelixHeadlessTag",
140702
+ "module": "src/tag/root/tag-root.ts"
140703
+ }
140704
+ },
140502
140705
  {
140503
140706
  "description": "The category before the label.",
140504
140707
  "name": "start",
@@ -146243,6 +146446,14 @@
146243
146446
  "module": "src/time-input/root/time-input-root.ts"
146244
146447
  }
146245
146448
  },
146449
+ {
146450
+ "description": "The label, trimmed to its capitals and baseline.",
146451
+ "name": "time-label",
146452
+ "inheritedFrom": {
146453
+ "name": "HelixHeadlessTimeInput",
146454
+ "module": "src/time-input/root/time-input-root.ts"
146455
+ }
146456
+ },
146246
146457
  {
146247
146458
  "description": "The category before the label.",
146248
146459
  "name": "time-start",
@@ -90,6 +90,7 @@ registerElementEvents({
90
90
  'helix-graph': [
91
91
  'helix-activate',
92
92
  'helix-before-activate',
93
+ 'helix-graph-filter',
93
94
  'helix-graph-layout',
94
95
  'helix-graph-pan',
95
96
  'helix-graph-part-change',
@@ -113,6 +113,196 @@ grid-template-areas:
113
113
  ". . . full";
114
114
  }
115
115
 
116
+ [part="legend"] {
117
+ display: flex;
118
+ flex-wrap: wrap;
119
+ gap: var(--helix-space-2xs);
120
+ inset-block-end: var(--helix-space-sm);
121
+ inset-inline-start: var(--helix-space-sm);
122
+ max-inline-size: calc(100% - var(--helix-space-sm) * 3 - var(--helix-size-control-sm));
123
+ position: absolute;
124
+ }
125
+
126
+ :host([controls-placement="bottom-start"]) [part="legend"] {
127
+ inset-inline: auto var(--helix-space-sm);
128
+ }
129
+
130
+ @container (inline-size < 40rem) {
131
+ [part="legend"] {
132
+ flex-wrap: nowrap;
133
+ inset-block-end: calc(var(--helix-space-sm) - var(--helix-space-2xs));
134
+ inset-inline-start: calc(var(--helix-space-sm) - var(--helix-space-2xs));
135
+ overflow-x: auto;
136
+ padding: var(--helix-space-2xs);
137
+ scrollbar-width: none;
138
+ }
139
+ }
140
+
141
+ [part~="legend-item"] {
142
+ align-items: center;
143
+ background-color: var(--viewport-control-background-color, var(--helix-color-surface-overlay));
144
+ block-size: var(--helix-size-control-tight);
145
+ border: var(--helix-border-floating) solid var(--helix-color-border);
146
+ border-radius: var(--helix-radii-sm);
147
+ box-shadow: var(--helix-shadow-floating);
148
+ color: var(--helix-color-foreground);
149
+ cursor: pointer;
150
+ display: inline-flex;
151
+ font-family: var(--helix-font-sans);
152
+ font-size: var(--helix-text-xs);
153
+ font-weight: var(--helix-weight-medium);
154
+ gap: var(--helix-space-2xs);
155
+ padding-inline: var(--helix-space-xs);
156
+ white-space: nowrap;
157
+ }
158
+
159
+ [part~="legend-item"]:focus-visible {
160
+ outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
161
+ outline-offset: var(--helix-size-focus-offset);
162
+ }
163
+
164
+ [part~="legend-item"]:nth-child(24n + 1) {
165
+ --_graph-swatch: var(--helix-color-series-1);
166
+ }
167
+
168
+ [part~="legend-item"]:nth-child(24n + 2) {
169
+ --_graph-swatch: var(--helix-color-series-2);
170
+ }
171
+
172
+ [part~="legend-item"]:nth-child(24n + 3) {
173
+ --_graph-swatch: var(--helix-color-series-3);
174
+ }
175
+
176
+ [part~="legend-item"]:nth-child(24n + 4) {
177
+ --_graph-swatch: var(--helix-color-series-4);
178
+ }
179
+
180
+ [part~="legend-item"]:nth-child(24n + 5) {
181
+ --_graph-swatch: var(--helix-color-series-5);
182
+ }
183
+
184
+ [part~="legend-item"]:nth-child(24n + 6) {
185
+ --_graph-swatch: var(--helix-color-series-6);
186
+ }
187
+
188
+ [part~="legend-item"]:nth-child(24n + 7) {
189
+ --_graph-swatch: var(--helix-color-series-7);
190
+ }
191
+
192
+ [part~="legend-item"]:nth-child(24n + 8) {
193
+ --_graph-swatch: var(--helix-color-series-8);
194
+ }
195
+
196
+ [part~="legend-item"]:nth-child(24n + 9) {
197
+ --_graph-swatch: var(--helix-color-series-9);
198
+ }
199
+
200
+ [part~="legend-item"]:nth-child(24n + 10) {
201
+ --_graph-swatch: var(--helix-color-series-10);
202
+ }
203
+
204
+ [part~="legend-item"]:nth-child(24n + 11) {
205
+ --_graph-swatch: var(--helix-color-series-11);
206
+ }
207
+
208
+ [part~="legend-item"]:nth-child(24n + 12) {
209
+ --_graph-swatch: var(--helix-color-series-12);
210
+ }
211
+
212
+ [part~="legend-item"]:nth-child(24n + 13) {
213
+ --_graph-swatch: var(--helix-color-series-13);
214
+ }
215
+
216
+ [part~="legend-item"]:nth-child(24n + 14) {
217
+ --_graph-swatch: var(--helix-color-series-14);
218
+ }
219
+
220
+ [part~="legend-item"]:nth-child(24n + 15) {
221
+ --_graph-swatch: var(--helix-color-series-15);
222
+ }
223
+
224
+ [part~="legend-item"]:nth-child(24n + 16) {
225
+ --_graph-swatch: var(--helix-color-series-16);
226
+ }
227
+
228
+ [part~="legend-item"]:nth-child(24n + 17) {
229
+ --_graph-swatch: var(--helix-color-series-17);
230
+ }
231
+
232
+ [part~="legend-item"]:nth-child(24n + 18) {
233
+ --_graph-swatch: var(--helix-color-series-18);
234
+ }
235
+
236
+ [part~="legend-item"]:nth-child(24n + 19) {
237
+ --_graph-swatch: var(--helix-color-series-19);
238
+ }
239
+
240
+ [part~="legend-item"]:nth-child(24n + 20) {
241
+ --_graph-swatch: var(--helix-color-series-20);
242
+ }
243
+
244
+ [part~="legend-item"]:nth-child(24n + 21) {
245
+ --_graph-swatch: var(--helix-color-series-21);
246
+ }
247
+
248
+ [part~="legend-item"]:nth-child(24n + 22) {
249
+ --_graph-swatch: var(--helix-color-series-22);
250
+ }
251
+
252
+ [part~="legend-item"]:nth-child(24n + 23) {
253
+ --_graph-swatch: var(--helix-color-series-23);
254
+ }
255
+
256
+ [part~="legend-item"]:nth-child(24n + 24) {
257
+ --_graph-swatch: var(--helix-color-series-24);
258
+ }
259
+
260
+ [part~="legend-item"][data-tone="accent"] {
261
+ --_graph-swatch: var(--helix-color-accent);
262
+ }
263
+
264
+ [part~="legend-item"][data-tone="danger"] {
265
+ --_graph-swatch: var(--helix-color-danger);
266
+ }
267
+
268
+ [part~="legend-item"][data-tone="info"] {
269
+ --_graph-swatch: var(--helix-color-info);
270
+ }
271
+
272
+ [part~="legend-item"][data-tone="neutral"] {
273
+ --_graph-swatch: var(--helix-color-foreground-muted);
274
+ }
275
+
276
+ [part~="legend-item"][data-tone="primary"] {
277
+ --_graph-swatch: var(--helix-color-primary);
278
+ }
279
+
280
+ [part~="legend-item"][data-tone="success"] {
281
+ --_graph-swatch: var(--helix-color-success);
282
+ }
283
+
284
+ [part~="legend-item"][data-tone="warning"] {
285
+ --_graph-swatch: var(--helix-color-warning);
286
+ }
287
+
288
+ [part="legend-swatch"] {
289
+ block-size: var(--helix-space-xs);
290
+ border: var(--helix-border-thin) solid var(--_graph-swatch, var(--helix-color-foreground-muted));
291
+ border-radius: var(--helix-radii-full);
292
+ box-sizing: border-box;
293
+ background-color: var(--_graph-swatch, var(--helix-color-foreground-muted));
294
+ flex: 0 0 auto;
295
+ inline-size: var(--helix-space-xs);
296
+ }
297
+
298
+ [part~="legend-item-hidden"] {
299
+ color: var(--helix-color-foreground-subtle);
300
+ }
301
+
302
+ [part~="legend-item-hidden"] [part="legend-swatch"] {
303
+ background-color: transparent;
304
+ }
305
+
116
306
  [part="search"] {
117
307
  align-items: center;
118
308
  border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
@@ -239,6 +429,10 @@ min-inline-size: 0;
239
429
  }
240
430
 
241
431
  @media (forced-colors: active) {
432
+ [part~="legend-item-hidden"] {
433
+ color: GrayText;
434
+ }
435
+
242
436
  [part="list"]:focus-visible [part~="note-cursor"] {
243
437
  outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
244
438
  outline-offset: calc(var(--helix-size-focus-offset) * -1);
@@ -31,6 +31,13 @@ overflow: hidden;
31
31
  text-overflow: ellipsis;
32
32
  }
33
33
 
34
+ @supports (text-box: trim-both cap alphabetic) {
35
+ slot:not([name]) {
36
+ padding-block: var(--helix-space-2xs);
37
+ text-box: trim-both cap alphabetic;
38
+ }
39
+ }
40
+
34
41
  slot:not([name])::slotted(helix-icon) {
35
42
  vertical-align: middle;
36
43
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.130.0",
4
+ "version": "0.132.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -51,13 +51,13 @@
51
51
  },
52
52
  "bugs": "https://github.com/project-fusion/fusion/issues",
53
53
  "dependencies": {
54
- "@fusion.dev/helix-core": "0.130.0",
55
- "@fusion.dev/helix-headless": "0.130.0",
56
- "@fusion.dev/helix-styles": "0.130.0"
54
+ "@fusion.dev/helix-core": "0.132.0",
55
+ "@fusion.dev/helix-headless": "0.132.0",
56
+ "@fusion.dev/helix-styles": "0.132.0"
57
57
  },
58
58
  "devDependencies": {
59
- "@fusion.dev/helix-cem": "0.130.0",
60
- "@fusion.dev/helix-testing": "0.130.0",
59
+ "@fusion.dev/helix-cem": "0.132.0",
60
+ "@fusion.dev/helix-testing": "0.132.0",
61
61
  "@fusion.dev/scripts": "0.0.0-dev",
62
62
  "@happy-dom/global-registrator": "^20.0.0",
63
63
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -83,6 +83,7 @@ import type {
83
83
  HelixFormElement,
84
84
  HelixFormatDate,
85
85
  HelixGraph,
86
+ HelixGraphFilterEvent,
86
87
  HelixGraphLayoutEvent,
87
88
  HelixGraphPanEvent,
88
89
  HelixGraphPartChangeEvent,
@@ -11107,6 +11108,9 @@ export type HelixGraphHelixActivateElementEvent =
11107
11108
  /** `helix-before-activate` event type */
11108
11109
  export type HelixGraphHelixBeforeActivateElementEvent =
11109
11110
  HelixGraphElementEvent<HelixBeforeActivateEvent>;
11111
+ /** `helix-graph-filter` event type */
11112
+ export type HelixGraphHelixGraphFilterElementEvent =
11113
+ HelixGraphElementEvent<HelixGraphFilterEvent>;
11110
11114
  /** `helix-graph-layout` event type */
11111
11115
  export type HelixGraphHelixGraphLayoutElementEvent =
11112
11116
  HelixGraphElementEvent<HelixGraphLayoutEvent>;
@@ -11326,6 +11330,13 @@ shows every note. The list holds what the drawing shows. */
11326
11330
  /** The graph's name, read by screen readers, such as "Research notes".
11327
11331
  Required. */
11328
11332
  label?: (HelixGraph["label"]) | undefined;
11333
+ /** Names the groups over the drawing, each a button in its color that shows
11334
+ or hides its notes. Drawn where the notes have two groups or more. */
11335
+ legend?: (HelixGraph["legend"]) | undefined;
11336
+ /** The legend's name, read by screen readers. */
11337
+ "legend-label"?: (HelixGraph["legendLabel"]) | undefined;
11338
+ /** The legend's name, read by screen readers. */
11339
+ legendLabel?: (HelixGraph["legendLabel"]) | undefined;
11329
11340
  /** How a note linked both to and from the selected one is described, with `{note}`. */
11330
11341
  "linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
11331
11342
  /** How a note linked both to and from the selected one is described, with `{note}`. */
@@ -11358,6 +11369,8 @@ such as at the top of a page, where the drawing takes the whole frame. */
11358
11369
  "selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
11359
11370
  /** How the selected note is described in the list. */
11360
11371
  selectedLabel?: (HelixGraph["selectedLabel"]) | undefined;
11372
+ /** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
11373
+ hiddenGroups?: (HelixGraph["hiddenGroups"]) | undefined;
11361
11374
  /** The links between notes, each from `source` to `target`. A property, never an attribute. */
11362
11375
  links?: (HelixGraph["links"]) | undefined;
11363
11376
  /** The notes. A property, never an attribute. */
@@ -11369,6 +11382,8 @@ such as at the top of a page, where the drawing takes the whole frame. */
11369
11382
  "onhelix-before-activate"?: ((
11370
11383
  e: HelixGraphHelixBeforeActivateElementEvent,
11371
11384
  ) => void) | undefined;
11385
+ /** 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. */
11386
+ "onhelix-graph-filter"?: ((e: HelixGraphHelixGraphFilterElementEvent) => void) | undefined;
11372
11387
  /** 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. */
11373
11388
  "onhelix-graph-layout"?: ((e: HelixGraphHelixGraphLayoutElementEvent) => void) | undefined;
11374
11389
  /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
@@ -11585,6 +11600,13 @@ shows every note. The list holds what the drawing shows. */
11585
11600
  /** The graph's name, read by screen readers, such as "Research notes".
11586
11601
  Required. */
11587
11602
  "prop:label"?: (HelixGraph["label"]) | undefined;
11603
+ /** Names the groups over the drawing, each a button in its color that shows
11604
+ or hides its notes. Drawn where the notes have two groups or more. */
11605
+ "prop:legend"?: (HelixGraph["legend"]) | undefined;
11606
+ /** The legend's name, read by screen readers. */
11607
+ "attr:legend-label"?: (HelixGraph["legendLabel"]) | undefined;
11608
+ /** The legend's name, read by screen readers. */
11609
+ "prop:legendLabel"?: (HelixGraph["legendLabel"]) | undefined;
11588
11610
  /** How a note linked both to and from the selected one is described, with `{note}`. */
11589
11611
  "attr:linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
11590
11612
  /** How a note linked both to and from the selected one is described, with `{note}`. */
@@ -11617,6 +11639,8 @@ such as at the top of a page, where the drawing takes the whole frame. */
11617
11639
  "attr:selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
11618
11640
  /** How the selected note is described in the list. */
11619
11641
  "prop:selectedLabel"?: (HelixGraph["selectedLabel"]) | undefined;
11642
+ /** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
11643
+ "prop:hiddenGroups"?: (HelixGraph["hiddenGroups"]) | undefined;
11620
11644
  /** The links between notes, each from `source` to `target`. A property, never an attribute. */
11621
11645
  "prop:links"?: (HelixGraph["links"]) | undefined;
11622
11646
  /** The notes. A property, never an attribute. */
@@ -11627,6 +11651,8 @@ such as at the top of a page, where the drawing takes the whole frame. */
11627
11651
  "on:helix-before-activate"?: ((
11628
11652
  e: HelixGraphHelixBeforeActivateElementEvent,
11629
11653
  ) => void) | undefined;
11654
+ /** 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. */
11655
+ "on:helix-graph-filter"?: ((e: HelixGraphHelixGraphFilterElementEvent) => void) | undefined;
11630
11656
  /** 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. */
11631
11657
  "on:helix-graph-layout"?: ((e: HelixGraphHelixGraphLayoutElementEvent) => void) | undefined;
11632
11658
  /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
@@ -32033,6 +32059,7 @@ export type CustomElements = {
32033
32059
  * - `tag`: One chosen option.
32034
32060
  * - `tag-dismiss`: The remove button, when `dismissible`.
32035
32061
  * - `tag-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
32062
+ * - `tag-label`: The label, trimmed to its capitals and baseline.
32036
32063
  * - `tag-start`: The category before the label.
32037
32064
  * - `tags`: The row of chosen options, when `multiple` is set.
32038
32065
  *
@@ -33030,6 +33057,7 @@ export type CustomElements = {
33030
33057
  * - `date`: One held date, as a tag, in `multiple`.
33031
33058
  * - `date-dismiss`: The remove button, when `dismissible`.
33032
33059
  * - `date-dismiss-mark`: The icon on the remove button, shown when no icon is slotted.
33060
+ * - `date-label`: The label, trimmed to its capitals and baseline.
33033
33061
  * - `date-start`: The category before the label.
33034
33062
  * - `feedback`: The error message under the field.
33035
33063
  * - `field`: The box that holds the text and the trigger.
@@ -34617,6 +34645,7 @@ export type CustomElements = {
34617
34645
  * - `kind`: A file's type.
34618
34646
  * - `kind-dismiss`: The remove button, when `dismissible`.
34619
34647
  * - `kind-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
34648
+ * - `kind-label`: The label, trimmed to its capitals and baseline.
34620
34649
  * - `kind-start`: The category before the label.
34621
34650
  * - `label`: The label above the field.
34622
34651
  * - `list`: The chosen files.
@@ -34626,6 +34655,7 @@ export type CustomElements = {
34626
34655
  * - `size`: A file's size.
34627
34656
  * - `size-dismiss`: The remove button, when `dismissible`.
34628
34657
  * - `size-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
34658
+ * - `size-label`: The label, trimmed to its capitals and baseline.
34629
34659
  * - `size-start`: The category before the label.
34630
34660
  * - `trigger`: The label that opens the picker.
34631
34661
  *
@@ -35608,6 +35638,9 @@ export type CustomElements = {
35608
35638
  * shows every note. The list holds what the drawing shows.
35609
35639
  * - `label`: The graph's name, read by screen readers, such as "Research notes".
35610
35640
  * Required.
35641
+ * - `legend`: Names the groups over the drawing, each a button in its color that shows
35642
+ * or hides its notes. Drawn where the notes have two groups or more.
35643
+ * - `legend-label`/`legendLabel`: The legend's name, read by screen readers.
35611
35644
  * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
35612
35645
  * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
35613
35646
  * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
@@ -35617,6 +35650,7 @@ export type CustomElements = {
35617
35650
  * - `notes-label`/`notesLabel`: The list's name, read by screen readers, and the name of the button that opens it with `no-panel`.
35618
35651
  * - `search-label`/`searchLabel`: The search field's name.
35619
35652
  * - `selected-label`/`selectedLabel`: How the selected note is described in the list.
35653
+ * - `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)
35620
35654
  * - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
35621
35655
  * - `nodes`: The notes. A property, never an attribute. (property only)
35622
35656
  * - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
@@ -35647,6 +35681,7 @@ export type CustomElements = {
35647
35681
  *
35648
35682
  * - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
35649
35683
  * - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
35684
+ * - `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.
35650
35685
  * - `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.
35651
35686
  * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
35652
35687
  * - `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.
@@ -35722,6 +35757,10 @@ export type CustomElements = {
35722
35757
  * - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
35723
35758
  * - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
35724
35759
  * - `header`: The strip above the graph.
35760
+ * - `legend`: The groups over the drawing, with `legend`, each a button that shows or hides its notes.
35761
+ * - `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.
35762
+ * - `legend-item-hidden`: A group in the legend whose notes are hidden.
35763
+ * - `legend-swatch`: The mark in a group's color, before its name.
35725
35764
  * - `list`: The list of notes, which draws only the rows in view.
35726
35765
  * - `live`: What screen readers hear when a search changes how many notes there are.
35727
35766
  * - `note`: One note in the list.
@@ -45967,6 +46006,7 @@ export type CustomElements = {
45967
46006
  *
45968
46007
  * - `dismiss`: The remove button, when `dismissible`.
45969
46008
  * - `dismiss-mark`: The icon on the remove button.
46009
+ * - `label`: The label, which the styled tag trims to its capitals and baseline so the letters sit at the middle in any font.
45970
46010
  * - `start`: The category before the label.
45971
46011
  *
45972
46012
  * ## CSS States
@@ -46616,6 +46656,7 @@ export type CustomElements = {
46616
46656
  * - `time`: One held time, as a tag, in `multiple`.
46617
46657
  * - `time-dismiss`: The remove button, when `dismissible`.
46618
46658
  * - `time-dismiss-mark`: The default icon on the remove button, shown when none is slotted.
46659
+ * - `time-label`: The label, trimmed to its capitals and baseline.
46619
46660
  * - `time-start`: The category before the label.
46620
46661
  * - `trigger`: The control that opens the list.
46621
46662
  * - `trigger-icon`: The icon on the button that opens the clock.
@@ -54260,6 +54301,7 @@ export type CustomElementsSolidJs = {
54260
54301
  * - `tag`: One chosen option.
54261
54302
  * - `tag-dismiss`: The remove button, when `dismissible`.
54262
54303
  * - `tag-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
54304
+ * - `tag-label`: The label, trimmed to its capitals and baseline.
54263
54305
  * - `tag-start`: The category before the label.
54264
54306
  * - `tags`: The row of chosen options, when `multiple` is set.
54265
54307
  *
@@ -55269,6 +55311,7 @@ export type CustomElementsSolidJs = {
55269
55311
  * - `date`: One held date, as a tag, in `multiple`.
55270
55312
  * - `date-dismiss`: The remove button, when `dismissible`.
55271
55313
  * - `date-dismiss-mark`: The icon on the remove button, shown when no icon is slotted.
55314
+ * - `date-label`: The label, trimmed to its capitals and baseline.
55272
55315
  * - `date-start`: The category before the label.
55273
55316
  * - `feedback`: The error message under the field.
55274
55317
  * - `field`: The box that holds the text and the trigger.
@@ -56889,6 +56932,7 @@ export type CustomElementsSolidJs = {
56889
56932
  * - `kind`: A file's type.
56890
56933
  * - `kind-dismiss`: The remove button, when `dismissible`.
56891
56934
  * - `kind-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
56935
+ * - `kind-label`: The label, trimmed to its capitals and baseline.
56892
56936
  * - `kind-start`: The category before the label.
56893
56937
  * - `label`: The label above the field.
56894
56938
  * - `list`: The chosen files.
@@ -56898,6 +56942,7 @@ export type CustomElementsSolidJs = {
56898
56942
  * - `size`: A file's size.
56899
56943
  * - `size-dismiss`: The remove button, when `dismissible`.
56900
56944
  * - `size-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
56945
+ * - `size-label`: The label, trimmed to its capitals and baseline.
56901
56946
  * - `size-start`: The category before the label.
56902
56947
  * - `trigger`: The label that opens the picker.
56903
56948
  *
@@ -57903,6 +57948,9 @@ export type CustomElementsSolidJs = {
57903
57948
  * shows every note. The list holds what the drawing shows.
57904
57949
  * - `label`: The graph's name, read by screen readers, such as "Research notes".
57905
57950
  * Required.
57951
+ * - `legend`: Names the groups over the drawing, each a button in its color that shows
57952
+ * or hides its notes. Drawn where the notes have two groups or more.
57953
+ * - `legend-label`/`legendLabel`: The legend's name, read by screen readers.
57906
57954
  * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
57907
57955
  * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
57908
57956
  * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
@@ -57912,6 +57960,7 @@ export type CustomElementsSolidJs = {
57912
57960
  * - `notes-label`/`notesLabel`: The list's name, read by screen readers, and the name of the button that opens it with `no-panel`.
57913
57961
  * - `search-label`/`searchLabel`: The search field's name.
57914
57962
  * - `selected-label`/`selectedLabel`: How the selected note is described in the list.
57963
+ * - `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)
57915
57964
  * - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
57916
57965
  * - `nodes`: The notes. A property, never an attribute. (property only)
57917
57966
  * - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
@@ -57942,6 +57991,7 @@ export type CustomElementsSolidJs = {
57942
57991
  *
57943
57992
  * - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
57944
57993
  * - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
57994
+ * - `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.
57945
57995
  * - `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.
57946
57996
  * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
57947
57997
  * - `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.
@@ -58017,6 +58067,10 @@ export type CustomElementsSolidJs = {
58017
58067
  * - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
58018
58068
  * - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
58019
58069
  * - `header`: The strip above the graph.
58070
+ * - `legend`: The groups over the drawing, with `legend`, each a button that shows or hides its notes.
58071
+ * - `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.
58072
+ * - `legend-item-hidden`: A group in the legend whose notes are hidden.
58073
+ * - `legend-swatch`: The mark in a group's color, before its name.
58020
58074
  * - `list`: The list of notes, which draws only the rows in view.
58021
58075
  * - `live`: What screen readers hear when a search changes how many notes there are.
58022
58076
  * - `note`: One note in the list.
@@ -68507,6 +68561,7 @@ export type CustomElementsSolidJs = {
68507
68561
  *
68508
68562
  * - `dismiss`: The remove button, when `dismissible`.
68509
68563
  * - `dismiss-mark`: The icon on the remove button.
68564
+ * - `label`: The label, which the styled tag trims to its capitals and baseline so the letters sit at the middle in any font.
68510
68565
  * - `start`: The category before the label.
68511
68566
  *
68512
68567
  * ## CSS States
@@ -69163,6 +69218,7 @@ export type CustomElementsSolidJs = {
69163
69218
  * - `time`: One held time, as a tag, in `multiple`.
69164
69219
  * - `time-dismiss`: The remove button, when `dismissible`.
69165
69220
  * - `time-dismiss-mark`: The default icon on the remove button, shown when none is slotted.
69221
+ * - `time-label`: The label, trimmed to its capitals and baseline.
69166
69222
  * - `time-start`: The category before the label.
69167
69223
  * - `trigger`: The control that opens the list.
69168
69224
  * - `trigger-icon`: The icon on the button that opens the clock.
package/types/vue.d.ts CHANGED
@@ -188,6 +188,7 @@ import type {
188
188
  HelixFacetEvent,
189
189
  HelixActivateEvent,
190
190
  HelixBeforeActivateEvent,
191
+ HelixGraphFilterEvent,
191
192
  HelixGraphLayoutEvent,
192
193
  HelixGraphPanEvent,
193
194
  HelixGraphPartChangeEvent,
@@ -5703,6 +5704,9 @@ export type HelixGraphHelixActivateElementEvent =
5703
5704
  /** `helix-before-activate` event type */
5704
5705
  export type HelixGraphHelixBeforeActivateElementEvent =
5705
5706
  HelixGraphElementEvent<HelixBeforeActivateEvent>;
5707
+ /** `helix-graph-filter` event type */
5708
+ export type HelixGraphHelixGraphFilterElementEvent =
5709
+ HelixGraphElementEvent<HelixGraphFilterEvent>;
5706
5710
  /** `helix-graph-layout` event type */
5707
5711
  export type HelixGraphHelixGraphLayoutElementEvent =
5708
5712
  HelixGraphElementEvent<HelixGraphLayoutEvent>;
@@ -5922,6 +5926,13 @@ shows every note. The list holds what the drawing shows. */
5922
5926
  /** The graph's name, read by screen readers, such as "Research notes".
5923
5927
  Required. */
5924
5928
  label?: (HelixGraph["label"]) | undefined;
5929
+ /** Names the groups over the drawing, each a button in its color that shows
5930
+ or hides its notes. Drawn where the notes have two groups or more. */
5931
+ legend?: (HelixGraph["legend"]) | undefined;
5932
+ /** The legend's name, read by screen readers. */
5933
+ "legend-label"?: (HelixGraph["legendLabel"]) | undefined;
5934
+ /** The legend's name, read by screen readers. */
5935
+ legendLabel?: (HelixGraph["legendLabel"]) | undefined;
5925
5936
  /** How a note linked both to and from the selected one is described, with `{note}`. */
5926
5937
  "linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
5927
5938
  /** How a note linked both to and from the selected one is described, with `{note}`. */
@@ -5954,6 +5965,8 @@ such as at the top of a page, where the drawing takes the whole frame. */
5954
5965
  "selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
5955
5966
  /** How the selected note is described in the list. */
5956
5967
  selectedLabel?: (HelixGraph["selectedLabel"]) | undefined;
5968
+ /** The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. */
5969
+ hiddenGroups?: (HelixGraph["hiddenGroups"]) | undefined;
5957
5970
  /** The links between notes, each from `source` to `target`. A property, never an attribute. */
5958
5971
  links?: (HelixGraph["links"]) | undefined;
5959
5972
  /** The notes. A property, never an attribute. */
@@ -5965,6 +5978,8 @@ export type HelixGraphVueEvents = {
5965
5978
  "helix-activate": HelixGraphHelixActivateElementEvent;
5966
5979
  /** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
5967
5980
  "helix-before-activate": HelixGraphHelixBeforeActivateElementEvent;
5981
+ /** 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. */
5982
+ "helix-graph-filter": HelixGraphHelixGraphFilterElementEvent;
5968
5983
  /** 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. */
5969
5984
  "helix-graph-layout": HelixGraphHelixGraphLayoutElementEvent;
5970
5985
  /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */