@fusion.dev/helix 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/types/svelte.d.ts CHANGED
@@ -62,6 +62,7 @@ declare module 'svelte/elements' {
62
62
  'helix-filter-input': CustomElements['helix-filter-input']
63
63
  'helix-flex': CustomElements['helix-flex']
64
64
  'helix-format-date': CustomElements['helix-format-date']
65
+ 'helix-graph': CustomElements['helix-graph']
65
66
  'helix-grid': CustomElements['helix-grid']
66
67
  'helix-heatmap': CustomElements['helix-heatmap']
67
68
  'helix-icon-button': CustomElements['helix-icon-button']
package/types/vue.d.ts CHANGED
@@ -52,6 +52,7 @@ import type {
52
52
  HelixFilterInput,
53
53
  HelixFlex,
54
54
  HelixFormatDate,
55
+ HelixGraph,
55
56
  HelixGrid,
56
57
  HelixHeatmap,
57
58
  HelixIconButton,
@@ -185,10 +186,13 @@ import type {
185
186
  HelixReorderEvent,
186
187
  HelixSortEvent,
187
188
  HelixFacetEvent,
188
- HelixResizeEvent,
189
- HelixShortcutEvent,
190
189
  HelixActivateEvent,
191
190
  HelixBeforeActivateEvent,
191
+ HelixGraphPanEvent,
192
+ HelixGraphReadyEvent,
193
+ HelixGraphZoomEvent,
194
+ HelixResizeEvent,
195
+ HelixShortcutEvent,
192
196
  HelixMapPartChangeEvent,
193
197
  HelixMapClusterEvent,
194
198
  HelixMapPanEvent,
@@ -5642,6 +5646,221 @@ Empty is the runtime's own. */
5642
5646
 
5643
5647
  export type HelixFormatDateVueEvents = {};
5644
5648
 
5649
+ /** `HelixGraph` component event */
5650
+ export type HelixGraphElementEvent<E = Event> = TypedEvent<HelixGraph, E>;
5651
+ /** `helix-activate` event type */
5652
+ export type HelixGraphHelixActivateElementEvent =
5653
+ HelixGraphElementEvent<HelixActivateEvent>;
5654
+ /** `helix-before-activate` event type */
5655
+ export type HelixGraphHelixBeforeActivateElementEvent =
5656
+ HelixGraphElementEvent<HelixBeforeActivateEvent>;
5657
+ /** `helix-graph-pan` event type */
5658
+ export type HelixGraphHelixGraphPanElementEvent =
5659
+ HelixGraphElementEvent<HelixGraphPanEvent>;
5660
+ /** `helix-graph-ready` event type */
5661
+ export type HelixGraphHelixGraphReadyElementEvent =
5662
+ HelixGraphElementEvent<HelixGraphReadyEvent>;
5663
+ /** `helix-graph-zoom` event type */
5664
+ export type HelixGraphHelixGraphZoomElementEvent =
5665
+ HelixGraphElementEvent<HelixGraphZoomEvent>;
5666
+
5667
+ export type HelixGraphVueProps = {
5668
+ /** Which controls to show, as a list such as `pan zoom fullscreen`, or
5669
+ `none`. A family can add words of its own.
5670
+
5671
+ **A list rather than a switch, because the overlap is not symmetric.** A
5672
+ surface a consumer brings often has zoom controls of its own and almost
5673
+ never has pan buttons, so a single switch would make them choose between
5674
+ a duplicate and nothing.
5675
+
5676
+ `none` draws none of them, which is the right answer where what was
5677
+ slotted already has controls a reader can find: what this argues for is
5678
+ that *a* findable control exists, never that it is ours. The methods stay
5679
+ public either way, so a consumer drawing their own chrome can still drive
5680
+ the surface.
5681
+
5682
+ Absent is whatever the family rests at, which is this library's rule that
5683
+ a resting value is an attribute's absence: zoom, the compass and
5684
+ fullscreen for a map, whose pan buttons a page asks for, and zoom and
5685
+ fullscreen for a board, which a reader drags and whose pad took a third
5686
+ of the frame. The
5687
+ stylesheet lays the cluster out by which buttons are in it rather than by
5688
+ this attribute, so the two defaults need no rule each. */
5689
+ controls?: (HelixGraph["controls"]) | undefined;
5690
+ /** The name of the group of controls, read by screen readers.
5691
+
5692
+ Absent is the family's own name for it, "Map controls" or "Board
5693
+ controls", which names what the controls drive rather than the
5694
+ mechanism. Written here to say it in another language, which every other
5695
+ string this surface speaks already allowed and this one did not. */
5696
+ "controls-label"?: (HelixGraph["controlsLabel"]) | undefined;
5697
+ /** The name of the group of controls, read by screen readers.
5698
+
5699
+ Absent is the family's own name for it, "Map controls" or "Board
5700
+ controls", which names what the controls drive rather than the
5701
+ mechanism. Written here to say it in another language, which every other
5702
+ string this surface speaks already allowed and this one did not. */
5703
+ controlsLabel?: (HelixGraph["controlsLabel"]) | undefined;
5704
+ /** Which corner the controls sit in.
5705
+
5706
+ **Configurable because there is no safe default**, which is a collision
5707
+ rather than a taste: whatever a consumer slots may put its own controls
5708
+ in any corner, and every library that draws some made this a setting for
5709
+ the same reason.
5710
+
5711
+ Logical corners rather than left and right, so a right-to-left page moves
5712
+ them without a consumer writing a second rule. Absent is the top end, a
5713
+ resting value being an attribute's absence: a default that reflected
5714
+ would write an attribute onto every host that no server sent. */
5715
+ "controls-placement"?: (HelixGraph["controlsPlacement"]) | undefined;
5716
+ /** Which corner the controls sit in.
5717
+
5718
+ **Configurable because there is no safe default**, which is a collision
5719
+ rather than a taste: whatever a consumer slots may put its own controls
5720
+ in any corner, and every library that draws some made this a setting for
5721
+ the same reason.
5722
+
5723
+ Logical corners rather than left and right, so a right-to-left page moves
5724
+ them without a consumer writing a second rule. Absent is the top end, a
5725
+ resting value being an attribute's absence: a default that reflected
5726
+ would write an attribute onto every host that no server sent. */
5727
+ controlsPlacement?: (HelixGraph["controlsPlacement"]) | undefined;
5728
+ /** The fullscreen button's label. */
5729
+ "fullscreen-label"?: (HelixGraph["fullscreenLabel"]) | undefined;
5730
+ /** The fullscreen button's label. */
5731
+ fullscreenLabel?: (HelixGraph["fullscreenLabel"]) | undefined;
5732
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
5733
+
5734
+ Zero keeps it up, which is the default: these controls are how a keyboard
5735
+ reader operates the surface, and chrome that hid itself by default would
5736
+ be the component undoing its own argument. Set it for a display nobody
5737
+ drives. */
5738
+ "idle-delay"?: (HelixGraph["idleDelay"] | `${number}`) | undefined;
5739
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
5740
+
5741
+ Zero keeps it up, which is the default: these controls are how a keyboard
5742
+ reader operates the surface, and chrome that hid itself by default would
5743
+ be the component undoing its own argument. Set it for a display nobody
5744
+ drives. */
5745
+ idleDelay?: (HelixGraph["idleDelay"]) | undefined;
5746
+ /** The pan down button's label.
5747
+
5748
+ **A label for each way rather than one with the way filled in**, which is
5749
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
5750
+ in French read out "Déplacer left". The word for a direction is as much
5751
+ the translator's as the word for panning, and a language can put it
5752
+ anywhere in the phrase. */
5753
+ "pan-down-label"?: (HelixGraph["panDownLabel"]) | undefined;
5754
+ /** The pan down button's label.
5755
+
5756
+ **A label for each way rather than one with the way filled in**, which is
5757
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
5758
+ in French read out "Déplacer left". The word for a direction is as much
5759
+ the translator's as the word for panning, and a language can put it
5760
+ anywhere in the phrase. */
5761
+ panDownLabel?: (HelixGraph["panDownLabel"]) | undefined;
5762
+ /** The pan left button's label. */
5763
+ "pan-left-label"?: (HelixGraph["panLeftLabel"]) | undefined;
5764
+ /** The pan left button's label. */
5765
+ panLeftLabel?: (HelixGraph["panLeftLabel"]) | undefined;
5766
+ /** The pan right button's label. */
5767
+ "pan-right-label"?: (HelixGraph["panRightLabel"]) | undefined;
5768
+ /** The pan right button's label. */
5769
+ panRightLabel?: (HelixGraph["panRightLabel"]) | undefined;
5770
+ /** How far one press pans the view, as a fraction of its size.
5771
+
5772
+ A fraction rather than a distance, because this surface does not know the
5773
+ scale of what is inside it: a quarter of the viewport is the same gesture
5774
+ at any zoom, and a consumer who wants their own units multiplies by them. */
5775
+ "pan-step"?: (HelixGraph["panStep"] | `${number}`) | undefined;
5776
+ /** How far one press pans the view, as a fraction of its size.
5777
+
5778
+ A fraction rather than a distance, because this surface does not know the
5779
+ scale of what is inside it: a quarter of the viewport is the same gesture
5780
+ at any zoom, and a consumer who wants their own units multiplies by them. */
5781
+ panStep?: (HelixGraph["panStep"]) | undefined;
5782
+ /** The pan up button's label. */
5783
+ "pan-up-label"?: (HelixGraph["panUpLabel"]) | undefined;
5784
+ /** The pan up button's label. */
5785
+ panUpLabel?: (HelixGraph["panUpLabel"]) | undefined;
5786
+ /** The zoom in button's label. */
5787
+ "zoom-in-label"?: (HelixGraph["zoomInLabel"]) | undefined;
5788
+ /** The zoom in button's label. */
5789
+ zoomInLabel?: (HelixGraph["zoomInLabel"]) | undefined;
5790
+ /** The zoom out button's label. */
5791
+ "zoom-out-label"?: (HelixGraph["zoomOutLabel"]) | undefined;
5792
+ /** The zoom out button's label. */
5793
+ zoomOutLabel?: (HelixGraph["zoomOutLabel"]) | undefined;
5794
+ /** The `value` of the current item.
5795
+
5796
+ Not `option.active`, which is the option the keyboard is on: that is a
5797
+ different question from which one is chosen.
5798
+
5799
+ Writing always applies, so `<helix-tabs active="one">` starts on that
5800
+ tab, and `default-active` is how markup says where to start without
5801
+ naming the current one. */
5802
+ active?: (HelixGraph["active"]) | undefined;
5803
+ /** The `value` of the item declared current in markup.
5804
+
5805
+ Ignored once `active` is written. */
5806
+ "default-active"?: (HelixGraph["defaultActive"]) | undefined;
5807
+ /** The `value` of the item declared current in markup.
5808
+
5809
+ Ignored once `active` is written. */
5810
+ defaultActive?: (HelixGraph["defaultActive"]) | undefined;
5811
+ /** What the list says of a note's count, with `{count}`. */
5812
+ "count-label"?: (HelixGraph["countLabel"]) | undefined;
5813
+ /** What the list says of a note's count, with `{count}`. */
5814
+ countLabel?: (HelixGraph["countLabel"]) | undefined;
5815
+ /** How many links from the selected note to show, for its local graph. Unset
5816
+ shows every note. The list holds what the drawing shows. */
5817
+ depth?: (HelixGraph["depth"]) | undefined;
5818
+ /** The graph's name, read by screen readers, such as "Research notes".
5819
+ Required. */
5820
+ label?: (HelixGraph["label"]) | undefined;
5821
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
5822
+ "linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
5823
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
5824
+ linkedBothLabel?: (HelixGraph["linkedBothLabel"]) | undefined;
5825
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
5826
+ "linked-from-label"?: (HelixGraph["linkedFromLabel"]) | undefined;
5827
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
5828
+ linkedFromLabel?: (HelixGraph["linkedFromLabel"]) | undefined;
5829
+ /** How a note that links to the selected one is described, with `{note}`. */
5830
+ "links-to-label"?: (HelixGraph["linksToLabel"]) | undefined;
5831
+ /** How a note that links to the selected one is described, with `{note}`. */
5832
+ linksToLabel?: (HelixGraph["linksToLabel"]) | undefined;
5833
+ /** The list's name, read by screen readers. */
5834
+ "notes-label"?: (HelixGraph["notesLabel"]) | undefined;
5835
+ /** The list's name, read by screen readers. */
5836
+ notesLabel?: (HelixGraph["notesLabel"]) | undefined;
5837
+ /** The search field's name. */
5838
+ "search-label"?: (HelixGraph["searchLabel"]) | undefined;
5839
+ /** The search field's name. */
5840
+ searchLabel?: (HelixGraph["searchLabel"]) | undefined;
5841
+ /** How the selected note is described in the list. */
5842
+ "selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
5843
+ /** How the selected note is described in the list. */
5844
+ selectedLabel?: (HelixGraph["selectedLabel"]) | undefined;
5845
+ /** The links between notes, each from `source` to `target`. A property, never an attribute. */
5846
+ links?: (HelixGraph["links"]) | undefined;
5847
+ /** The notes. A property, never an attribute. */
5848
+ nodes?: (HelixGraph["nodes"]) | undefined;
5849
+ };
5850
+
5851
+ export type HelixGraphVueEvents = {
5852
+ /** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
5853
+ "helix-activate": HelixGraphHelixActivateElementEvent;
5854
+ /** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
5855
+ "helix-before-activate": HelixGraphHelixBeforeActivateElementEvent;
5856
+ /** A pan button or arrow key was pressed. Move the drawing. */
5857
+ "helix-graph-pan": HelixGraphHelixGraphPanElementEvent;
5858
+ /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
5859
+ "helix-graph-ready": HelixGraphHelixGraphReadyElementEvent;
5860
+ /** A zoom button or key was pressed. Zoom the drawing. */
5861
+ "helix-graph-zoom": HelixGraphHelixGraphZoomElementEvent;
5862
+ };
5863
+
5645
5864
  export type HelixGridVueProps = {
5646
5865
  /** How each cell aligns within its row. Sets `align-items`.
5647
5866
 
@@ -7466,6 +7685,12 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
7466
7685
  "zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
7467
7686
  /** The zoom out button's label. */
7468
7687
  zoomOutLabel?: (HelixMap["zoomOutLabel"]) | undefined;
7688
+ /** The hint shown when a map waiting to be pressed is scrolled or swiped
7689
+ over, with `gestures="activate"`. */
7690
+ "activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
7691
+ /** The hint shown when a map waiting to be pressed is scrolled or swiped
7692
+ over, with `gestures="activate"`. */
7693
+ activateHintLabel?: (HelixMap["activateHintLabel"]) | undefined;
7469
7694
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
7470
7695
  current, and the Face north button's needle turns with it. */
7471
7696
  bearing?: (HelixMap["bearing"]) | undefined;
@@ -7480,6 +7705,19 @@ the map zooms in, and pressing one zooms in to its places. */
7480
7705
  "flat-label"?: (HelixMap["flatLabel"]) | undefined;
7481
7706
  /** What screen readers hear when the map is tilted back to looking straight down. */
7482
7707
  flatLabel?: (HelixMap["flatLabel"]) | undefined;
7708
+ /** Which gestures the map takes from the page.
7709
+
7710
+ - `always`, which unset is: the wheel zooms the map and one finger pans
7711
+ it, for a map that is the page, such as a full-screen view.
7712
+ - `cooperative`: the wheel and one finger scroll the page, and the map
7713
+ takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
7714
+ when a gesture passes to the page. Best for a map embedded in a page.
7715
+ - `activate`: the map takes nothing until it is pressed, and gives it
7716
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
7717
+
7718
+ The keyboard and the frame's buttons work in every mode. The renderer is
7719
+ told through the connector, so MapLibre and Leaflet behave alike. */
7720
+ gestures?: (HelixMap["gestures"]) | undefined;
7483
7721
  /** The Hybrid map type's name. */
7484
7722
  "hybrid-label"?: (HelixMap["hybridLabel"]) | undefined;
7485
7723
  /** The Hybrid map type's name. */
@@ -7561,6 +7799,22 @@ top of the map faces, clockwise from north. */
7561
7799
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
7562
7800
  top of the map faces, clockwise from north. */
7563
7801
  turnedLabel?: (HelixMap["turnedLabel"]) | undefined;
7802
+ /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
7803
+ "two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
7804
+ /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
7805
+ twoFingerHintLabel?: (HelixMap["twoFingerHintLabel"]) | undefined;
7806
+ /** The line shown while a map with `gestures="activate"` has the gestures. */
7807
+ "using-label"?: (HelixMap["usingLabel"]) | undefined;
7808
+ /** The line shown while a map with `gestures="activate"` has the gestures. */
7809
+ usingLabel?: (HelixMap["usingLabel"]) | undefined;
7810
+ /** The hint shown when the wheel scrolls past a map with
7811
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
7812
+ elsewhere, as the renderer reads it. */
7813
+ "wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
7814
+ /** The hint shown when the wheel scrolls past a map with
7815
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
7816
+ elsewhere, as the renderer reads it. */
7817
+ wheelHintLabel?: (HelixMap["wheelHintLabel"]) | undefined;
7564
7818
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
7565
7819
  "zoomed-label"?: (HelixMap["zoomedLabel"]) | undefined;
7566
7820
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
@@ -13930,6 +14184,14 @@ export type CustomCssProperties = {
13930
14184
  "--filter-input-shadow"?: (string) | undefined;
13931
14185
  /** The height of the empty field. The field grows from this height. */
13932
14186
  "--filter-input-size"?: (string) | undefined;
14187
+ /** The color behind the drawing while it loads. */
14188
+ "--graph-background-color"?: (string) | undefined;
14189
+ /** The frame's height, as a length. */
14190
+ "--graph-block-size"?: (string) | undefined;
14191
+ /** The frame's border color. */
14192
+ "--graph-border-color"?: (string) | undefined;
14193
+ /** The list's width beside the drawing. */
14194
+ "--graph-panel-size"?: (string) | undefined;
13933
14195
  /** An explicit track list. It overrides `min` and `columns`. Use it for tracks of unequal widths, which neither attribute can set. */
13934
14196
  "--grid-columns"?: (string) | undefined;
13935
14197
  /** How tall a cell is. One row of tall, narrow cells looks like a status page. */
@@ -14944,6 +15206,12 @@ export interface WcToolkitVueGlobalComponents {
14944
15206
  HelixFormatDateVueProps,
14945
15207
  HelixFormatDateVueEvents
14946
15208
  >;
15209
+ /** The styled frame: the drawing with its zoom and fullscreen buttons, and the list of notes beside it, which moves below the drawing where the frame is narrower than 40rem. The selected note leads the list on a surface of its own, and the notes linked to it are named by how they link. */
15210
+ "helix-graph": DefineCustomElement<
15211
+ HelixGraph,
15212
+ HelixGraphVueProps,
15213
+ HelixGraphVueEvents
15214
+ >;
14947
15215
  /** Set columns in one of two ways: - 'columns' sets a fixed count. - 'min' fits as many equal columns as there is room for at that width, so the layout responds with no breakpoints to maintain. If you set both, 'min' wins. The grid is presentation only, so there is no headless tier. */
14948
15216
  "helix-grid": DefineCustomElement<
14949
15217
  HelixGrid,