@fusion.dev/helix-headless 0.116.0 → 0.118.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/types/svelte.d.ts CHANGED
@@ -60,6 +60,7 @@ declare module 'svelte/elements' {
60
60
  'helix-headless-filter-operator': CustomElements['helix-headless-filter-operator']
61
61
  'helix-headless-filter-input': CustomElements['helix-headless-filter-input']
62
62
  'helix-headless-format-date': CustomElements['helix-headless-format-date']
63
+ 'helix-headless-graph': CustomElements['helix-headless-graph']
63
64
  'helix-headless-heatmap': CustomElements['helix-headless-heatmap']
64
65
  'helix-headless-icon-button': CustomElements['helix-headless-icon-button']
65
66
  'helix-headless-icon': CustomElements['helix-headless-icon']
package/types/vue.d.ts CHANGED
@@ -63,6 +63,7 @@ import type {
63
63
  HelixHeadlessFilterOperator,
64
64
  HelixHeadlessFilterInput,
65
65
  HelixHeadlessFormatDate,
66
+ HelixHeadlessGraph,
66
67
  HelixHeadlessHeatmap,
67
68
  HelixHeadlessIconButton,
68
69
  HelixHeadlessIcon,
@@ -193,10 +194,15 @@ import type {
193
194
  HelixReorderEvent,
194
195
  HelixSortEvent,
195
196
  HelixFacetEvent,
196
- HelixResizeEvent,
197
- HelixShortcutEvent,
198
197
  HelixActivateEvent,
199
198
  HelixBeforeActivateEvent,
199
+ HelixGraphLayoutEvent,
200
+ HelixGraphPanEvent,
201
+ HelixGraphPartChangeEvent,
202
+ HelixGraphReadyEvent,
203
+ HelixGraphZoomEvent,
204
+ HelixResizeEvent,
205
+ HelixShortcutEvent,
200
206
  HelixMapPartChangeEvent,
201
207
  HelixMapClusterEvent,
202
208
  HelixMapPanEvent,
@@ -1265,6 +1271,12 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
1265
1271
  see the board is told by the color; this is how a reader who cannot is
1266
1272
  told the same. A tone left out is not read. */
1267
1273
  toneLabels?: (HelixHeadlessCanvas["toneLabels"]) | undefined;
1274
+ /** The hint shown when a surface waiting to be pressed is scrolled or
1275
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
1276
+ "activate-hint-label"?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
1277
+ /** The hint shown when a surface waiting to be pressed is scrolled or
1278
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
1279
+ activateHintLabel?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
1268
1280
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
1269
1281
  `none`. A family can add words of its own.
1270
1282
 
@@ -1329,6 +1341,26 @@ would write an attribute onto every host that no server sent. */
1329
1341
  "fullscreen-label"?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
1330
1342
  /** The fullscreen button's label. */
1331
1343
  fullscreenLabel?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
1344
+ /** Which gestures the surface takes from the page.
1345
+
1346
+ - `always`: the surface takes the wheel and one finger, for a surface
1347
+ that is the page, such as a full-screen view. A map rests here.
1348
+ - Unset is the family's own: `always` for a map, and for a board, a
1349
+ drag and a pinch, with the plain wheel left to the page until the
1350
+ board fills the screen.
1351
+ - `cooperative`: the wheel and one finger scroll the page, and the
1352
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
1353
+ says so when a gesture passes to the page. Best for a surface embedded
1354
+ in a page.
1355
+ - `activate`: the surface takes nothing until it is pressed, and gives it
1356
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
1357
+
1358
+ The keyboard and the frame's buttons work in every mode.
1359
+
1360
+ **Unreflected and without a default**, because a default that reflected
1361
+ would write an attribute onto every host that no server sent, and the
1362
+ hydration that followed would disagree with it. */
1363
+ gestures?: (HelixHeadlessCanvas["gestures"]) | undefined;
1332
1364
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
1333
1365
 
1334
1366
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -1383,6 +1415,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
1383
1415
  "pan-up-label"?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
1384
1416
  /** The pan up button's label. */
1385
1417
  panUpLabel?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
1418
+ /** The hint shown when one finger swipes over a surface with
1419
+ `gestures="cooperative"`. Absent is the family's own. */
1420
+ "two-finger-hint-label"?: (HelixHeadlessCanvas["twoFingerHintLabel"]) | undefined;
1421
+ /** The hint shown when one finger swipes over a surface with
1422
+ `gestures="cooperative"`. Absent is the family's own. */
1423
+ twoFingerHintLabel?: (HelixHeadlessCanvas["twoFingerHintLabel"]) | undefined;
1424
+ /** The line shown while a surface with `gestures="activate"` has the
1425
+ gestures. Absent is the family's own. */
1426
+ "using-label"?: (HelixHeadlessCanvas["usingLabel"]) | undefined;
1427
+ /** The line shown while a surface with `gestures="activate"` has the
1428
+ gestures. Absent is the family's own. */
1429
+ usingLabel?: (HelixHeadlessCanvas["usingLabel"]) | undefined;
1430
+ /** The hint shown when the wheel scrolls past a surface with
1431
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
1432
+ elsewhere. Absent is the family's own. */
1433
+ "wheel-hint-label"?: (HelixHeadlessCanvas["wheelHintLabel"]) | undefined;
1434
+ /** The hint shown when the wheel scrolls past a surface with
1435
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
1436
+ elsewhere. Absent is the family's own. */
1437
+ wheelHintLabel?: (HelixHeadlessCanvas["wheelHintLabel"]) | undefined;
1386
1438
  /** The zoom in button's label. */
1387
1439
  "zoom-in-label"?: (HelixHeadlessCanvas["zoomInLabel"]) | undefined;
1388
1440
  /** The zoom in button's label. */
@@ -4747,6 +4799,280 @@ Empty is the runtime's own. */
4747
4799
 
4748
4800
  export type HelixHeadlessFormatDateVueEvents = {};
4749
4801
 
4802
+ /** `HelixHeadlessGraph` component event */
4803
+ export type HelixHeadlessGraphElementEvent<E = Event> = TypedEvent<
4804
+ HelixHeadlessGraph,
4805
+ E
4806
+ >;
4807
+ /** `helix-activate` event type */
4808
+ export type HelixHeadlessGraphHelixActivateElementEvent =
4809
+ HelixHeadlessGraphElementEvent<HelixActivateEvent>;
4810
+ /** `helix-before-activate` event type */
4811
+ export type HelixHeadlessGraphHelixBeforeActivateElementEvent =
4812
+ HelixHeadlessGraphElementEvent<HelixBeforeActivateEvent>;
4813
+ /** `helix-graph-layout` event type */
4814
+ export type HelixHeadlessGraphHelixGraphLayoutElementEvent =
4815
+ HelixHeadlessGraphElementEvent<HelixGraphLayoutEvent>;
4816
+ /** `helix-graph-pan` event type */
4817
+ export type HelixHeadlessGraphHelixGraphPanElementEvent =
4818
+ HelixHeadlessGraphElementEvent<HelixGraphPanEvent>;
4819
+ /** `helix-graph-part-change` event type */
4820
+ export type HelixHeadlessGraphHelixGraphPartChangeElementEvent =
4821
+ HelixHeadlessGraphElementEvent<HelixGraphPartChangeEvent>;
4822
+ /** `helix-graph-ready` event type */
4823
+ export type HelixHeadlessGraphHelixGraphReadyElementEvent =
4824
+ HelixHeadlessGraphElementEvent<HelixGraphReadyEvent>;
4825
+ /** `helix-graph-zoom` event type */
4826
+ export type HelixHeadlessGraphHelixGraphZoomElementEvent =
4827
+ HelixHeadlessGraphElementEvent<HelixGraphZoomEvent>;
4828
+
4829
+ export type HelixHeadlessGraphVueProps = {
4830
+ /** What the list says of a note's count, with `{count}`. */
4831
+ "count-label"?: (HelixHeadlessGraph["countLabel"]) | undefined;
4832
+ /** What the list says of a note's count, with `{count}`. */
4833
+ countLabel?: (HelixHeadlessGraph["countLabel"]) | undefined;
4834
+ /** How many links from the selected note to show, for its local graph. Unset
4835
+ shows every note. The list holds what the drawing shows. */
4836
+ depth?: (HelixHeadlessGraph["depth"]) | undefined;
4837
+ /** The graph's name, read by screen readers, such as "Research notes".
4838
+ Required. */
4839
+ label?: (HelixHeadlessGraph["label"]) | undefined;
4840
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
4841
+ "linked-both-label"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
4842
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
4843
+ linkedBothLabel?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
4844
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
4845
+ "linked-from-label"?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
4846
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
4847
+ linkedFromLabel?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
4848
+ /** How a note that links to the selected one is described, with `{note}`. */
4849
+ "links-to-label"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
4850
+ /** How a note that links to the selected one is described, with `{note}`. */
4851
+ linksToLabel?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
4852
+ /** The list's name, read by screen readers. */
4853
+ "notes-label"?: (HelixHeadlessGraph["notesLabel"]) | undefined;
4854
+ /** The list's name, read by screen readers. */
4855
+ notesLabel?: (HelixHeadlessGraph["notesLabel"]) | undefined;
4856
+ /** The search field's name. */
4857
+ "search-label"?: (HelixHeadlessGraph["searchLabel"]) | undefined;
4858
+ /** The search field's name. */
4859
+ searchLabel?: (HelixHeadlessGraph["searchLabel"]) | undefined;
4860
+ /** How the selected note is described in the list. */
4861
+ "selected-label"?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
4862
+ /** How the selected note is described in the list. */
4863
+ selectedLabel?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
4864
+ /** The hint shown when a surface waiting to be pressed is scrolled or
4865
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
4866
+ "activate-hint-label"?: (HelixHeadlessGraph["activateHintLabel"]) | undefined;
4867
+ /** The hint shown when a surface waiting to be pressed is scrolled or
4868
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
4869
+ activateHintLabel?: (HelixHeadlessGraph["activateHintLabel"]) | undefined;
4870
+ /** Which controls to show, as a list such as `pan zoom fullscreen`, or
4871
+ `none`. A family can add words of its own.
4872
+
4873
+ **A list rather than a switch, because the overlap is not symmetric.** A
4874
+ surface a consumer brings often has zoom controls of its own and almost
4875
+ never has pan buttons, so a single switch would make them choose between
4876
+ a duplicate and nothing.
4877
+
4878
+ `none` draws none of them, which is the right answer where what was
4879
+ slotted already has controls a reader can find: what this argues for is
4880
+ that *a* findable control exists, never that it is ours. The methods stay
4881
+ public either way, so a consumer drawing their own chrome can still drive
4882
+ the surface.
4883
+
4884
+ Absent is whatever the family rests at, which is this library's rule that
4885
+ a resting value is an attribute's absence: zoom, the compass and
4886
+ fullscreen for a map, whose pan buttons a page asks for, and zoom and
4887
+ fullscreen for a board, which a reader drags and whose pad took a third
4888
+ of the frame. The
4889
+ stylesheet lays the cluster out by which buttons are in it rather than by
4890
+ this attribute, so the two defaults need no rule each. */
4891
+ controls?: (HelixHeadlessGraph["controls"]) | undefined;
4892
+ /** The name of the group of controls, read by screen readers.
4893
+
4894
+ Absent is the family's own name for it, "Map controls" or "Board
4895
+ controls", which names what the controls drive rather than the
4896
+ mechanism. Written here to say it in another language, which every other
4897
+ string this surface speaks already allowed and this one did not. */
4898
+ "controls-label"?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
4899
+ /** The name of the group of controls, read by screen readers.
4900
+
4901
+ Absent is the family's own name for it, "Map controls" or "Board
4902
+ controls", which names what the controls drive rather than the
4903
+ mechanism. Written here to say it in another language, which every other
4904
+ string this surface speaks already allowed and this one did not. */
4905
+ controlsLabel?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
4906
+ /** Which corner the controls sit in.
4907
+
4908
+ **Configurable because there is no safe default**, which is a collision
4909
+ rather than a taste: whatever a consumer slots may put its own controls
4910
+ in any corner, and every library that draws some made this a setting for
4911
+ the same reason.
4912
+
4913
+ Logical corners rather than left and right, so a right-to-left page moves
4914
+ them without a consumer writing a second rule. Absent is the top end, a
4915
+ resting value being an attribute's absence: a default that reflected
4916
+ would write an attribute onto every host that no server sent. */
4917
+ "controls-placement"?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
4918
+ /** Which corner the controls sit in.
4919
+
4920
+ **Configurable because there is no safe default**, which is a collision
4921
+ rather than a taste: whatever a consumer slots may put its own controls
4922
+ in any corner, and every library that draws some made this a setting for
4923
+ the same reason.
4924
+
4925
+ Logical corners rather than left and right, so a right-to-left page moves
4926
+ them without a consumer writing a second rule. Absent is the top end, a
4927
+ resting value being an attribute's absence: a default that reflected
4928
+ would write an attribute onto every host that no server sent. */
4929
+ controlsPlacement?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
4930
+ /** The fullscreen button's label. */
4931
+ "fullscreen-label"?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
4932
+ /** The fullscreen button's label. */
4933
+ fullscreenLabel?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
4934
+ /** Which gestures the surface takes from the page.
4935
+
4936
+ - `always`: the surface takes the wheel and one finger, for a surface
4937
+ that is the page, such as a full-screen view. A map rests here.
4938
+ - Unset is the family's own: `always` for a map, and for a board, a
4939
+ drag and a pinch, with the plain wheel left to the page until the
4940
+ board fills the screen.
4941
+ - `cooperative`: the wheel and one finger scroll the page, and the
4942
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
4943
+ says so when a gesture passes to the page. Best for a surface embedded
4944
+ in a page.
4945
+ - `activate`: the surface takes nothing until it is pressed, and gives it
4946
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
4947
+
4948
+ The keyboard and the frame's buttons work in every mode.
4949
+
4950
+ **Unreflected and without a default**, because a default that reflected
4951
+ would write an attribute onto every host that no server sent, and the
4952
+ hydration that followed would disagree with it. */
4953
+ gestures?: (HelixHeadlessGraph["gestures"]) | undefined;
4954
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
4955
+
4956
+ Zero keeps it up, which is the default: these controls are how a keyboard
4957
+ reader operates the surface, and chrome that hid itself by default would
4958
+ be the component undoing its own argument. Set it for a display nobody
4959
+ drives. */
4960
+ "idle-delay"?: (HelixHeadlessGraph["idleDelay"] | `${number}`) | undefined;
4961
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
4962
+
4963
+ Zero keeps it up, which is the default: these controls are how a keyboard
4964
+ reader operates the surface, and chrome that hid itself by default would
4965
+ be the component undoing its own argument. Set it for a display nobody
4966
+ drives. */
4967
+ idleDelay?: (HelixHeadlessGraph["idleDelay"]) | undefined;
4968
+ /** The pan down button's label.
4969
+
4970
+ **A label for each way rather than one with the way filled in**, which is
4971
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
4972
+ in French read out "Déplacer left". The word for a direction is as much
4973
+ the translator's as the word for panning, and a language can put it
4974
+ anywhere in the phrase. */
4975
+ "pan-down-label"?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
4976
+ /** The pan down button's label.
4977
+
4978
+ **A label for each way rather than one with the way filled in**, which is
4979
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
4980
+ in French read out "Déplacer left". The word for a direction is as much
4981
+ the translator's as the word for panning, and a language can put it
4982
+ anywhere in the phrase. */
4983
+ panDownLabel?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
4984
+ /** The pan left button's label. */
4985
+ "pan-left-label"?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
4986
+ /** The pan left button's label. */
4987
+ panLeftLabel?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
4988
+ /** The pan right button's label. */
4989
+ "pan-right-label"?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
4990
+ /** The pan right button's label. */
4991
+ panRightLabel?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
4992
+ /** How far one press pans the view, as a fraction of its size.
4993
+
4994
+ A fraction rather than a distance, because this surface does not know the
4995
+ scale of what is inside it: a quarter of the viewport is the same gesture
4996
+ at any zoom, and a consumer who wants their own units multiplies by them. */
4997
+ "pan-step"?: (HelixHeadlessGraph["panStep"] | `${number}`) | undefined;
4998
+ /** How far one press pans the view, as a fraction of its size.
4999
+
5000
+ A fraction rather than a distance, because this surface does not know the
5001
+ scale of what is inside it: a quarter of the viewport is the same gesture
5002
+ at any zoom, and a consumer who wants their own units multiplies by them. */
5003
+ panStep?: (HelixHeadlessGraph["panStep"]) | undefined;
5004
+ /** The pan up button's label. */
5005
+ "pan-up-label"?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
5006
+ /** The pan up button's label. */
5007
+ panUpLabel?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
5008
+ /** The hint shown when one finger swipes over a surface with
5009
+ `gestures="cooperative"`. Absent is the family's own. */
5010
+ "two-finger-hint-label"?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
5011
+ /** The hint shown when one finger swipes over a surface with
5012
+ `gestures="cooperative"`. Absent is the family's own. */
5013
+ twoFingerHintLabel?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
5014
+ /** The line shown while a surface with `gestures="activate"` has the
5015
+ gestures. Absent is the family's own. */
5016
+ "using-label"?: (HelixHeadlessGraph["usingLabel"]) | undefined;
5017
+ /** The line shown while a surface with `gestures="activate"` has the
5018
+ gestures. Absent is the family's own. */
5019
+ usingLabel?: (HelixHeadlessGraph["usingLabel"]) | undefined;
5020
+ /** The hint shown when the wheel scrolls past a surface with
5021
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
5022
+ elsewhere. Absent is the family's own. */
5023
+ "wheel-hint-label"?: (HelixHeadlessGraph["wheelHintLabel"]) | undefined;
5024
+ /** The hint shown when the wheel scrolls past a surface with
5025
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
5026
+ elsewhere. Absent is the family's own. */
5027
+ wheelHintLabel?: (HelixHeadlessGraph["wheelHintLabel"]) | undefined;
5028
+ /** The zoom in button's label. */
5029
+ "zoom-in-label"?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
5030
+ /** The zoom in button's label. */
5031
+ zoomInLabel?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
5032
+ /** The zoom out button's label. */
5033
+ "zoom-out-label"?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
5034
+ /** The zoom out button's label. */
5035
+ zoomOutLabel?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
5036
+ /** The `value` of the current item.
5037
+
5038
+ Not `option.active`, which is the option the keyboard is on: that is a
5039
+ different question from which one is chosen.
5040
+
5041
+ Writing always applies, so `<helix-tabs active="one">` starts on that
5042
+ tab, and `default-active` is how markup says where to start without
5043
+ naming the current one. */
5044
+ active?: (HelixHeadlessGraph["active"]) | undefined;
5045
+ /** The `value` of the item declared current in markup.
5046
+
5047
+ Ignored once `active` is written. */
5048
+ "default-active"?: (HelixHeadlessGraph["defaultActive"]) | undefined;
5049
+ /** The `value` of the item declared current in markup.
5050
+
5051
+ Ignored once `active` is written. */
5052
+ defaultActive?: (HelixHeadlessGraph["defaultActive"]) | undefined;
5053
+ /** The links between notes, each from `source` to `target`. A property, never an attribute. */
5054
+ links?: (HelixHeadlessGraph["links"]) | undefined;
5055
+ /** The notes. A property, never an attribute. */
5056
+ nodes?: (HelixHeadlessGraph["nodes"]) | undefined;
5057
+ };
5058
+
5059
+ export type HelixHeadlessGraphVueEvents = {
5060
+ /** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
5061
+ "helix-activate": HelixHeadlessGraphHelixActivateElementEvent;
5062
+ /** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
5063
+ "helix-before-activate": HelixHeadlessGraphHelixBeforeActivateElementEvent;
5064
+ /** 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`. */
5065
+ "helix-graph-layout": HelixHeadlessGraphHelixGraphLayoutElementEvent;
5066
+ /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
5067
+ "helix-graph-pan": HelixHeadlessGraphHelixGraphPanElementEvent;
5068
+ /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
5069
+ "helix-graph-part-change": HelixHeadlessGraphHelixGraphPartChangeElementEvent;
5070
+ /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
5071
+ "helix-graph-ready": HelixHeadlessGraphHelixGraphReadyElementEvent;
5072
+ /** A zoom button or key was pressed. `connectGraph` zooms the drawing. */
5073
+ "helix-graph-zoom": HelixHeadlessGraphHelixGraphZoomElementEvent;
5074
+ };
5075
+
4750
5076
  /** `HelixHeadlessHeatmap` component event */
4751
5077
  export type HelixHeadlessHeatmapElementEvent<E = Event> = TypedEvent<
4752
5078
  HelixHeadlessHeatmap,
@@ -6198,12 +6524,6 @@ export type HelixHeadlessMapHelixMapZoomElementEvent =
6198
6524
  HelixHeadlessMapElementEvent<HelixMapZoomEvent>;
6199
6525
 
6200
6526
  export type HelixHeadlessMapVueProps = {
6201
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
6202
- over, with `gestures="activate"`. */
6203
- "activate-hint-label"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
6204
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
6205
- over, with `gestures="activate"`. */
6206
- activateHintLabel?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
6207
6527
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
6208
6528
  current, and the Face north button's needle turns with it. */
6209
6529
  bearing?: (HelixHeadlessMap["bearing"]) | undefined;
@@ -6218,19 +6538,6 @@ the map zooms in, and pressing one zooms in to its places. */
6218
6538
  "flat-label"?: (HelixHeadlessMap["flatLabel"]) | undefined;
6219
6539
  /** What screen readers hear when the map is tilted back to looking straight down. */
6220
6540
  flatLabel?: (HelixHeadlessMap["flatLabel"]) | undefined;
6221
- /** Which gestures the map takes from the page.
6222
-
6223
- - `always`, which unset is: the wheel zooms the map and one finger pans
6224
- it, for a map that is the page, such as a full-screen view.
6225
- - `cooperative`: the wheel and one finger scroll the page, and the map
6226
- takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
6227
- when a gesture passes to the page. Best for a map embedded in a page.
6228
- - `activate`: the map takes nothing until it is pressed, and gives it
6229
- back on Escape, when the pointer leaves it, or on a press elsewhere.
6230
-
6231
- The keyboard and the frame's buttons work in every mode. The renderer is
6232
- told through the connector, so MapLibre and Leaflet behave alike. */
6233
- gestures?: (HelixHeadlessMap["gestures"]) | undefined;
6234
6541
  /** The Hybrid map type's name. */
6235
6542
  "hybrid-label"?: (HelixHeadlessMap["hybridLabel"]) | undefined;
6236
6543
  /** The Hybrid map type's name. */
@@ -6312,22 +6619,6 @@ top of the map faces, clockwise from north. */
6312
6619
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
6313
6620
  top of the map faces, clockwise from north. */
6314
6621
  turnedLabel?: (HelixHeadlessMap["turnedLabel"]) | undefined;
6315
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
6316
- "two-finger-hint-label"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
6317
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
6318
- twoFingerHintLabel?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
6319
- /** The line shown while a map with `gestures="activate"` has the gestures. */
6320
- "using-label"?: (HelixHeadlessMap["usingLabel"]) | undefined;
6321
- /** The line shown while a map with `gestures="activate"` has the gestures. */
6322
- usingLabel?: (HelixHeadlessMap["usingLabel"]) | undefined;
6323
- /** The hint shown when the wheel scrolls past a map with
6324
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
6325
- elsewhere, as the renderer reads it. */
6326
- "wheel-hint-label"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
6327
- /** The hint shown when the wheel scrolls past a map with
6328
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
6329
- elsewhere, as the renderer reads it. */
6330
- wheelHintLabel?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
6331
6622
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
6332
6623
  "zoomed-label"?: (HelixHeadlessMap["zoomedLabel"]) | undefined;
6333
6624
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
@@ -6338,6 +6629,12 @@ current, and the map says it after a zoom. */
6338
6629
  /** How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
6339
6630
  current, and the map says it after a zoom. */
6340
6631
  zoomLevel?: (HelixHeadlessMap["zoomLevel"]) | undefined;
6632
+ /** The hint shown when a surface waiting to be pressed is scrolled or
6633
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
6634
+ "activate-hint-label"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
6635
+ /** The hint shown when a surface waiting to be pressed is scrolled or
6636
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
6637
+ activateHintLabel?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
6341
6638
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
6342
6639
  `none`. A family can add words of its own.
6343
6640
 
@@ -6402,6 +6699,26 @@ would write an attribute onto every host that no server sent. */
6402
6699
  "fullscreen-label"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
6403
6700
  /** The fullscreen button's label. */
6404
6701
  fullscreenLabel?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
6702
+ /** Which gestures the surface takes from the page.
6703
+
6704
+ - `always`: the surface takes the wheel and one finger, for a surface
6705
+ that is the page, such as a full-screen view. A map rests here.
6706
+ - Unset is the family's own: `always` for a map, and for a board, a
6707
+ drag and a pinch, with the plain wheel left to the page until the
6708
+ board fills the screen.
6709
+ - `cooperative`: the wheel and one finger scroll the page, and the
6710
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
6711
+ says so when a gesture passes to the page. Best for a surface embedded
6712
+ in a page.
6713
+ - `activate`: the surface takes nothing until it is pressed, and gives it
6714
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
6715
+
6716
+ The keyboard and the frame's buttons work in every mode.
6717
+
6718
+ **Unreflected and without a default**, because a default that reflected
6719
+ would write an attribute onto every host that no server sent, and the
6720
+ hydration that followed would disagree with it. */
6721
+ gestures?: (HelixHeadlessMap["gestures"]) | undefined;
6405
6722
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
6406
6723
 
6407
6724
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -6456,6 +6773,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
6456
6773
  "pan-up-label"?: (HelixHeadlessMap["panUpLabel"]) | undefined;
6457
6774
  /** The pan up button's label. */
6458
6775
  panUpLabel?: (HelixHeadlessMap["panUpLabel"]) | undefined;
6776
+ /** The hint shown when one finger swipes over a surface with
6777
+ `gestures="cooperative"`. Absent is the family's own. */
6778
+ "two-finger-hint-label"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
6779
+ /** The hint shown when one finger swipes over a surface with
6780
+ `gestures="cooperative"`. Absent is the family's own. */
6781
+ twoFingerHintLabel?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
6782
+ /** The line shown while a surface with `gestures="activate"` has the
6783
+ gestures. Absent is the family's own. */
6784
+ "using-label"?: (HelixHeadlessMap["usingLabel"]) | undefined;
6785
+ /** The line shown while a surface with `gestures="activate"` has the
6786
+ gestures. Absent is the family's own. */
6787
+ usingLabel?: (HelixHeadlessMap["usingLabel"]) | undefined;
6788
+ /** The hint shown when the wheel scrolls past a surface with
6789
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
6790
+ elsewhere. Absent is the family's own. */
6791
+ "wheel-hint-label"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
6792
+ /** The hint shown when the wheel scrolls past a surface with
6793
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
6794
+ elsewhere. Absent is the family's own. */
6795
+ wheelHintLabel?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
6459
6796
  /** The zoom in button's label. */
6460
6797
  "zoom-in-label"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
6461
6798
  /** The zoom in button's label. */
@@ -12105,6 +12442,12 @@ export interface WcToolkitVueGlobalComponents {
12105
12442
  HelixHeadlessFormatDateVueProps,
12106
12443
  HelixHeadlessFormatDateVueEvents
12107
12444
  >;
12445
+ /** 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. */
12446
+ "helix-headless-graph": DefineCustomElement<
12447
+ HelixHeadlessGraph,
12448
+ HelixHeadlessGraphVueProps,
12449
+ HelixHeadlessGraphVueEvents
12450
+ >;
12108
12451
  /** A grid of cells, each colored by a tone. 'rows="1"' makes a status strip, and 'rows="7"' makes a contribution graph. GitHub's contribution graph uses five discrete levels, which a set of tones covers. Color in a heatmap is per cell. In every other Helix chart, color is per series, so ninety differently colored cells would need ninety series. **The data is a real '<table>' named by 'for'**, as in every Helix chart, and the table is the accessible representation. Hide it with 'data-hidden-visually', and screen readers still read it. A cell takes its tone from its own 'data-tone', or from 'thresholds' and 'tones' applied to its value. 'data-tone' wins, so when you already know a day was degraded, you can set the tone directly. **The headless tier does not resolve tone names.** A tone named 'success' writes '--heatmap-tone: var(--heatmap-tone-success)', and the styled tier or your own stylesheet defines that property. The headless tier does not use 'var(--helix-color-*)'. */
12109
12452
  "helix-headless-heatmap": DefineCustomElement<
12110
12453
  HelixHeadlessHeatmap,