@fusion.dev/helix-headless 0.115.0 → 0.117.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 +2347 -0
- package/dist/element-events.generated.js +7 -0
- package/dist/graph/index.d.ts +3 -0
- package/dist/graph/index.js +2 -0
- package/dist/graph/root/graph-model.d.ts +63 -0
- package/dist/graph/root/graph-model.js +75 -0
- package/dist/graph/root/graph-root.d.ts +189 -0
- package/dist/graph/root/graph-root.js +321 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/map/root/map-root.d.ts +78 -0
- package/dist/map/root/map-root.js +137 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +1000 -0
- package/types/svelte.d.ts +1 -0
- package/types/vue.d.ts +265 -2
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,13 @@ import type {
|
|
|
193
194
|
HelixReorderEvent,
|
|
194
195
|
HelixSortEvent,
|
|
195
196
|
HelixFacetEvent,
|
|
196
|
-
HelixResizeEvent,
|
|
197
|
-
HelixShortcutEvent,
|
|
198
197
|
HelixActivateEvent,
|
|
199
198
|
HelixBeforeActivateEvent,
|
|
199
|
+
HelixGraphPanEvent,
|
|
200
|
+
HelixGraphReadyEvent,
|
|
201
|
+
HelixGraphZoomEvent,
|
|
202
|
+
HelixResizeEvent,
|
|
203
|
+
HelixShortcutEvent,
|
|
200
204
|
HelixMapPartChangeEvent,
|
|
201
205
|
HelixMapClusterEvent,
|
|
202
206
|
HelixMapPanEvent,
|
|
@@ -4747,6 +4751,224 @@ Empty is the runtime's own. */
|
|
|
4747
4751
|
|
|
4748
4752
|
export type HelixHeadlessFormatDateVueEvents = {};
|
|
4749
4753
|
|
|
4754
|
+
/** `HelixHeadlessGraph` component event */
|
|
4755
|
+
export type HelixHeadlessGraphElementEvent<E = Event> = TypedEvent<
|
|
4756
|
+
HelixHeadlessGraph,
|
|
4757
|
+
E
|
|
4758
|
+
>;
|
|
4759
|
+
/** `helix-activate` event type */
|
|
4760
|
+
export type HelixHeadlessGraphHelixActivateElementEvent =
|
|
4761
|
+
HelixHeadlessGraphElementEvent<HelixActivateEvent>;
|
|
4762
|
+
/** `helix-before-activate` event type */
|
|
4763
|
+
export type HelixHeadlessGraphHelixBeforeActivateElementEvent =
|
|
4764
|
+
HelixHeadlessGraphElementEvent<HelixBeforeActivateEvent>;
|
|
4765
|
+
/** `helix-graph-pan` event type */
|
|
4766
|
+
export type HelixHeadlessGraphHelixGraphPanElementEvent =
|
|
4767
|
+
HelixHeadlessGraphElementEvent<HelixGraphPanEvent>;
|
|
4768
|
+
/** `helix-graph-ready` event type */
|
|
4769
|
+
export type HelixHeadlessGraphHelixGraphReadyElementEvent =
|
|
4770
|
+
HelixHeadlessGraphElementEvent<HelixGraphReadyEvent>;
|
|
4771
|
+
/** `helix-graph-zoom` event type */
|
|
4772
|
+
export type HelixHeadlessGraphHelixGraphZoomElementEvent =
|
|
4773
|
+
HelixHeadlessGraphElementEvent<HelixGraphZoomEvent>;
|
|
4774
|
+
|
|
4775
|
+
export type HelixHeadlessGraphVueProps = {
|
|
4776
|
+
/** What the list says of a note's count, with `{count}`. */
|
|
4777
|
+
"count-label"?: (HelixHeadlessGraph["countLabel"]) | undefined;
|
|
4778
|
+
/** What the list says of a note's count, with `{count}`. */
|
|
4779
|
+
countLabel?: (HelixHeadlessGraph["countLabel"]) | undefined;
|
|
4780
|
+
/** How many links from the selected note to show, for its local graph. Unset
|
|
4781
|
+
shows every note. The list holds what the drawing shows. */
|
|
4782
|
+
depth?: (HelixHeadlessGraph["depth"]) | undefined;
|
|
4783
|
+
/** The graph's name, read by screen readers, such as "Research notes".
|
|
4784
|
+
Required. */
|
|
4785
|
+
label?: (HelixHeadlessGraph["label"]) | undefined;
|
|
4786
|
+
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
4787
|
+
"linked-both-label"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
|
|
4788
|
+
/** How a note linked both to and from the selected one is described, with `{note}`. */
|
|
4789
|
+
linkedBothLabel?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
|
|
4790
|
+
/** How a note the selected one links to is described, with `{note}`, the selected note's name. */
|
|
4791
|
+
"linked-from-label"?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
|
|
4792
|
+
/** How a note the selected one links to is described, with `{note}`, the selected note's name. */
|
|
4793
|
+
linkedFromLabel?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
|
|
4794
|
+
/** How a note that links to the selected one is described, with `{note}`. */
|
|
4795
|
+
"links-to-label"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
|
|
4796
|
+
/** How a note that links to the selected one is described, with `{note}`. */
|
|
4797
|
+
linksToLabel?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
|
|
4798
|
+
/** The list's name, read by screen readers. */
|
|
4799
|
+
"notes-label"?: (HelixHeadlessGraph["notesLabel"]) | undefined;
|
|
4800
|
+
/** The list's name, read by screen readers. */
|
|
4801
|
+
notesLabel?: (HelixHeadlessGraph["notesLabel"]) | undefined;
|
|
4802
|
+
/** The search field's name. */
|
|
4803
|
+
"search-label"?: (HelixHeadlessGraph["searchLabel"]) | undefined;
|
|
4804
|
+
/** The search field's name. */
|
|
4805
|
+
searchLabel?: (HelixHeadlessGraph["searchLabel"]) | undefined;
|
|
4806
|
+
/** How the selected note is described in the list. */
|
|
4807
|
+
"selected-label"?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
|
|
4808
|
+
/** How the selected note is described in the list. */
|
|
4809
|
+
selectedLabel?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
|
|
4810
|
+
/** Which controls to show, as a list such as `pan zoom fullscreen`, or
|
|
4811
|
+
`none`. A family can add words of its own.
|
|
4812
|
+
|
|
4813
|
+
**A list rather than a switch, because the overlap is not symmetric.** A
|
|
4814
|
+
surface a consumer brings often has zoom controls of its own and almost
|
|
4815
|
+
never has pan buttons, so a single switch would make them choose between
|
|
4816
|
+
a duplicate and nothing.
|
|
4817
|
+
|
|
4818
|
+
`none` draws none of them, which is the right answer where what was
|
|
4819
|
+
slotted already has controls a reader can find: what this argues for is
|
|
4820
|
+
that *a* findable control exists, never that it is ours. The methods stay
|
|
4821
|
+
public either way, so a consumer drawing their own chrome can still drive
|
|
4822
|
+
the surface.
|
|
4823
|
+
|
|
4824
|
+
Absent is whatever the family rests at, which is this library's rule that
|
|
4825
|
+
a resting value is an attribute's absence: zoom, the compass and
|
|
4826
|
+
fullscreen for a map, whose pan buttons a page asks for, and zoom and
|
|
4827
|
+
fullscreen for a board, which a reader drags and whose pad took a third
|
|
4828
|
+
of the frame. The
|
|
4829
|
+
stylesheet lays the cluster out by which buttons are in it rather than by
|
|
4830
|
+
this attribute, so the two defaults need no rule each. */
|
|
4831
|
+
controls?: (HelixHeadlessGraph["controls"]) | undefined;
|
|
4832
|
+
/** The name of the group of controls, read by screen readers.
|
|
4833
|
+
|
|
4834
|
+
Absent is the family's own name for it, "Map controls" or "Board
|
|
4835
|
+
controls", which names what the controls drive rather than the
|
|
4836
|
+
mechanism. Written here to say it in another language, which every other
|
|
4837
|
+
string this surface speaks already allowed and this one did not. */
|
|
4838
|
+
"controls-label"?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
|
|
4839
|
+
/** The name of the group of controls, read by screen readers.
|
|
4840
|
+
|
|
4841
|
+
Absent is the family's own name for it, "Map controls" or "Board
|
|
4842
|
+
controls", which names what the controls drive rather than the
|
|
4843
|
+
mechanism. Written here to say it in another language, which every other
|
|
4844
|
+
string this surface speaks already allowed and this one did not. */
|
|
4845
|
+
controlsLabel?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
|
|
4846
|
+
/** Which corner the controls sit in.
|
|
4847
|
+
|
|
4848
|
+
**Configurable because there is no safe default**, which is a collision
|
|
4849
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
4850
|
+
in any corner, and every library that draws some made this a setting for
|
|
4851
|
+
the same reason.
|
|
4852
|
+
|
|
4853
|
+
Logical corners rather than left and right, so a right-to-left page moves
|
|
4854
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
4855
|
+
resting value being an attribute's absence: a default that reflected
|
|
4856
|
+
would write an attribute onto every host that no server sent. */
|
|
4857
|
+
"controls-placement"?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
|
|
4858
|
+
/** Which corner the controls sit in.
|
|
4859
|
+
|
|
4860
|
+
**Configurable because there is no safe default**, which is a collision
|
|
4861
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
4862
|
+
in any corner, and every library that draws some made this a setting for
|
|
4863
|
+
the same reason.
|
|
4864
|
+
|
|
4865
|
+
Logical corners rather than left and right, so a right-to-left page moves
|
|
4866
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
4867
|
+
resting value being an attribute's absence: a default that reflected
|
|
4868
|
+
would write an attribute onto every host that no server sent. */
|
|
4869
|
+
controlsPlacement?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
|
|
4870
|
+
/** The fullscreen button's label. */
|
|
4871
|
+
"fullscreen-label"?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
|
|
4872
|
+
/** The fullscreen button's label. */
|
|
4873
|
+
fullscreenLabel?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
|
|
4874
|
+
/** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
|
|
4875
|
+
|
|
4876
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
4877
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
4878
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
4879
|
+
drives. */
|
|
4880
|
+
"idle-delay"?: (HelixHeadlessGraph["idleDelay"] | `${number}`) | undefined;
|
|
4881
|
+
/** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
|
|
4882
|
+
|
|
4883
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
4884
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
4885
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
4886
|
+
drives. */
|
|
4887
|
+
idleDelay?: (HelixHeadlessGraph["idleDelay"]) | undefined;
|
|
4888
|
+
/** The pan down button's label.
|
|
4889
|
+
|
|
4890
|
+
**A label for each way rather than one with the way filled in**, which is
|
|
4891
|
+
what this was: `Pan {way}` filled in with `left`, so a page that said it
|
|
4892
|
+
in French read out "Déplacer left". The word for a direction is as much
|
|
4893
|
+
the translator's as the word for panning, and a language can put it
|
|
4894
|
+
anywhere in the phrase. */
|
|
4895
|
+
"pan-down-label"?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
|
|
4896
|
+
/** The pan down button's label.
|
|
4897
|
+
|
|
4898
|
+
**A label for each way rather than one with the way filled in**, which is
|
|
4899
|
+
what this was: `Pan {way}` filled in with `left`, so a page that said it
|
|
4900
|
+
in French read out "Déplacer left". The word for a direction is as much
|
|
4901
|
+
the translator's as the word for panning, and a language can put it
|
|
4902
|
+
anywhere in the phrase. */
|
|
4903
|
+
panDownLabel?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
|
|
4904
|
+
/** The pan left button's label. */
|
|
4905
|
+
"pan-left-label"?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
|
|
4906
|
+
/** The pan left button's label. */
|
|
4907
|
+
panLeftLabel?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
|
|
4908
|
+
/** The pan right button's label. */
|
|
4909
|
+
"pan-right-label"?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
|
|
4910
|
+
/** The pan right button's label. */
|
|
4911
|
+
panRightLabel?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
|
|
4912
|
+
/** How far one press pans the view, as a fraction of its size.
|
|
4913
|
+
|
|
4914
|
+
A fraction rather than a distance, because this surface does not know the
|
|
4915
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
4916
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
4917
|
+
"pan-step"?: (HelixHeadlessGraph["panStep"] | `${number}`) | undefined;
|
|
4918
|
+
/** How far one press pans the view, as a fraction of its size.
|
|
4919
|
+
|
|
4920
|
+
A fraction rather than a distance, because this surface does not know the
|
|
4921
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
4922
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
4923
|
+
panStep?: (HelixHeadlessGraph["panStep"]) | undefined;
|
|
4924
|
+
/** The pan up button's label. */
|
|
4925
|
+
"pan-up-label"?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
|
|
4926
|
+
/** The pan up button's label. */
|
|
4927
|
+
panUpLabel?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
|
|
4928
|
+
/** The zoom in button's label. */
|
|
4929
|
+
"zoom-in-label"?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
|
|
4930
|
+
/** The zoom in button's label. */
|
|
4931
|
+
zoomInLabel?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
|
|
4932
|
+
/** The zoom out button's label. */
|
|
4933
|
+
"zoom-out-label"?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
|
|
4934
|
+
/** The zoom out button's label. */
|
|
4935
|
+
zoomOutLabel?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
|
|
4936
|
+
/** The `value` of the current item.
|
|
4937
|
+
|
|
4938
|
+
Not `option.active`, which is the option the keyboard is on: that is a
|
|
4939
|
+
different question from which one is chosen.
|
|
4940
|
+
|
|
4941
|
+
Writing always applies, so `<helix-tabs active="one">` starts on that
|
|
4942
|
+
tab, and `default-active` is how markup says where to start without
|
|
4943
|
+
naming the current one. */
|
|
4944
|
+
active?: (HelixHeadlessGraph["active"]) | undefined;
|
|
4945
|
+
/** The `value` of the item declared current in markup.
|
|
4946
|
+
|
|
4947
|
+
Ignored once `active` is written. */
|
|
4948
|
+
"default-active"?: (HelixHeadlessGraph["defaultActive"]) | undefined;
|
|
4949
|
+
/** The `value` of the item declared current in markup.
|
|
4950
|
+
|
|
4951
|
+
Ignored once `active` is written. */
|
|
4952
|
+
defaultActive?: (HelixHeadlessGraph["defaultActive"]) | undefined;
|
|
4953
|
+
/** The links between notes, each from `source` to `target`. A property, never an attribute. */
|
|
4954
|
+
links?: (HelixHeadlessGraph["links"]) | undefined;
|
|
4955
|
+
/** The notes. A property, never an attribute. */
|
|
4956
|
+
nodes?: (HelixHeadlessGraph["nodes"]) | undefined;
|
|
4957
|
+
};
|
|
4958
|
+
|
|
4959
|
+
export type HelixHeadlessGraphVueEvents = {
|
|
4960
|
+
/** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
|
|
4961
|
+
"helix-activate": HelixHeadlessGraphHelixActivateElementEvent;
|
|
4962
|
+
/** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
|
|
4963
|
+
"helix-before-activate": HelixHeadlessGraphHelixBeforeActivateElementEvent;
|
|
4964
|
+
/** A pan button or arrow key was pressed. Move the drawing. */
|
|
4965
|
+
"helix-graph-pan": HelixHeadlessGraphHelixGraphPanElementEvent;
|
|
4966
|
+
/** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
|
|
4967
|
+
"helix-graph-ready": HelixHeadlessGraphHelixGraphReadyElementEvent;
|
|
4968
|
+
/** A zoom button or key was pressed. Zoom the drawing. */
|
|
4969
|
+
"helix-graph-zoom": HelixHeadlessGraphHelixGraphZoomElementEvent;
|
|
4970
|
+
};
|
|
4971
|
+
|
|
4750
4972
|
/** `HelixHeadlessHeatmap` component event */
|
|
4751
4973
|
export type HelixHeadlessHeatmapElementEvent<E = Event> = TypedEvent<
|
|
4752
4974
|
HelixHeadlessHeatmap,
|
|
@@ -6198,6 +6420,12 @@ export type HelixHeadlessMapHelixMapZoomElementEvent =
|
|
|
6198
6420
|
HelixHeadlessMapElementEvent<HelixMapZoomEvent>;
|
|
6199
6421
|
|
|
6200
6422
|
export type HelixHeadlessMapVueProps = {
|
|
6423
|
+
/** The hint shown when a map waiting to be pressed is scrolled or swiped
|
|
6424
|
+
over, with `gestures="activate"`. */
|
|
6425
|
+
"activate-hint-label"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
|
|
6426
|
+
/** The hint shown when a map waiting to be pressed is scrolled or swiped
|
|
6427
|
+
over, with `gestures="activate"`. */
|
|
6428
|
+
activateHintLabel?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
|
|
6201
6429
|
/** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
|
|
6202
6430
|
current, and the Face north button's needle turns with it. */
|
|
6203
6431
|
bearing?: (HelixHeadlessMap["bearing"]) | undefined;
|
|
@@ -6212,6 +6440,19 @@ the map zooms in, and pressing one zooms in to its places. */
|
|
|
6212
6440
|
"flat-label"?: (HelixHeadlessMap["flatLabel"]) | undefined;
|
|
6213
6441
|
/** What screen readers hear when the map is tilted back to looking straight down. */
|
|
6214
6442
|
flatLabel?: (HelixHeadlessMap["flatLabel"]) | undefined;
|
|
6443
|
+
/** Which gestures the map takes from the page.
|
|
6444
|
+
|
|
6445
|
+
- `always`, which unset is: the wheel zooms the map and one finger pans
|
|
6446
|
+
it, for a map that is the page, such as a full-screen view.
|
|
6447
|
+
- `cooperative`: the wheel and one finger scroll the page, and the map
|
|
6448
|
+
takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
|
|
6449
|
+
when a gesture passes to the page. Best for a map embedded in a page.
|
|
6450
|
+
- `activate`: the map takes nothing until it is pressed, and gives it
|
|
6451
|
+
back on Escape, when the pointer leaves it, or on a press elsewhere.
|
|
6452
|
+
|
|
6453
|
+
The keyboard and the frame's buttons work in every mode. The renderer is
|
|
6454
|
+
told through the connector, so MapLibre and Leaflet behave alike. */
|
|
6455
|
+
gestures?: (HelixHeadlessMap["gestures"]) | undefined;
|
|
6215
6456
|
/** The Hybrid map type's name. */
|
|
6216
6457
|
"hybrid-label"?: (HelixHeadlessMap["hybridLabel"]) | undefined;
|
|
6217
6458
|
/** The Hybrid map type's name. */
|
|
@@ -6293,6 +6534,22 @@ top of the map faces, clockwise from north. */
|
|
|
6293
6534
|
/** What screen readers hear when the map is turned. `{degrees}` is the way the
|
|
6294
6535
|
top of the map faces, clockwise from north. */
|
|
6295
6536
|
turnedLabel?: (HelixHeadlessMap["turnedLabel"]) | undefined;
|
|
6537
|
+
/** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
|
|
6538
|
+
"two-finger-hint-label"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
|
|
6539
|
+
/** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
|
|
6540
|
+
twoFingerHintLabel?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
|
|
6541
|
+
/** The line shown while a map with `gestures="activate"` has the gestures. */
|
|
6542
|
+
"using-label"?: (HelixHeadlessMap["usingLabel"]) | undefined;
|
|
6543
|
+
/** The line shown while a map with `gestures="activate"` has the gestures. */
|
|
6544
|
+
usingLabel?: (HelixHeadlessMap["usingLabel"]) | undefined;
|
|
6545
|
+
/** The hint shown when the wheel scrolls past a map with
|
|
6546
|
+
`gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
|
|
6547
|
+
elsewhere, as the renderer reads it. */
|
|
6548
|
+
"wheel-hint-label"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
|
|
6549
|
+
/** The hint shown when the wheel scrolls past a map with
|
|
6550
|
+
`gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
|
|
6551
|
+
elsewhere, as the renderer reads it. */
|
|
6552
|
+
wheelHintLabel?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
|
|
6296
6553
|
/** What screen readers hear after a zoom. `{level}` is the zoom level. */
|
|
6297
6554
|
"zoomed-label"?: (HelixHeadlessMap["zoomedLabel"]) | undefined;
|
|
6298
6555
|
/** What screen readers hear after a zoom. `{level}` is the zoom level. */
|
|
@@ -12070,6 +12327,12 @@ export interface WcToolkitVueGlobalComponents {
|
|
|
12070
12327
|
HelixHeadlessFormatDateVueProps,
|
|
12071
12328
|
HelixHeadlessFormatDateVueEvents
|
|
12072
12329
|
>;
|
|
12330
|
+
/** 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, draw 'nodes' and 'links' in it, and answer the frame's pan and zoom events by moving the drawing. 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. */
|
|
12331
|
+
"helix-headless-graph": DefineCustomElement<
|
|
12332
|
+
HelixHeadlessGraph,
|
|
12333
|
+
HelixHeadlessGraphVueProps,
|
|
12334
|
+
HelixHeadlessGraphVueEvents
|
|
12335
|
+
>;
|
|
12073
12336
|
/** 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-*)'. */
|
|
12074
12337
|
"helix-headless-heatmap": DefineCustomElement<
|
|
12075
12338
|
HelixHeadlessHeatmap,
|