@fusion.dev/helix 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/jsx.d.ts CHANGED
@@ -82,6 +82,12 @@ import type {
82
82
  HelixFlex,
83
83
  HelixFormElement,
84
84
  HelixFormatDate,
85
+ HelixGraph,
86
+ HelixGraphLayoutEvent,
87
+ HelixGraphPanEvent,
88
+ HelixGraphPartChangeEvent,
89
+ HelixGraphReadyEvent,
90
+ HelixGraphZoomEvent,
85
91
  HelixGrid,
86
92
  HelixHeadlessFilterField,
87
93
  HelixHeadlessSplitter,
@@ -2921,6 +2927,12 @@ Absent is no ruling, a resting value being an attribute's absence. */
2921
2927
  Framed is where it rests. Plain is for a board that fills a panel or an
2922
2928
  app's working area, where the container is already the frame. */
2923
2929
  separation?: (HelixCanvas["separation"]) | undefined;
2930
+ /** The hint shown when a surface waiting to be pressed is scrolled or
2931
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
2932
+ "activate-hint-label"?: (HelixCanvas["activateHintLabel"]) | undefined;
2933
+ /** The hint shown when a surface waiting to be pressed is scrolled or
2934
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
2935
+ activateHintLabel?: (HelixCanvas["activateHintLabel"]) | undefined;
2924
2936
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
2925
2937
  `none`. A family can add words of its own.
2926
2938
 
@@ -2985,6 +2997,26 @@ would write an attribute onto every host that no server sent. */
2985
2997
  "fullscreen-label"?: (HelixCanvas["fullscreenLabel"]) | undefined;
2986
2998
  /** The fullscreen button's label. */
2987
2999
  fullscreenLabel?: (HelixCanvas["fullscreenLabel"]) | undefined;
3000
+ /** Which gestures the surface takes from the page.
3001
+
3002
+ - `always`: the surface takes the wheel and one finger, for a surface
3003
+ that is the page, such as a full-screen view. A map rests here.
3004
+ - Unset is the family's own: `always` for a map, and for a board, a
3005
+ drag and a pinch, with the plain wheel left to the page until the
3006
+ board fills the screen.
3007
+ - `cooperative`: the wheel and one finger scroll the page, and the
3008
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
3009
+ says so when a gesture passes to the page. Best for a surface embedded
3010
+ in a page.
3011
+ - `activate`: the surface takes nothing until it is pressed, and gives it
3012
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
3013
+
3014
+ The keyboard and the frame's buttons work in every mode.
3015
+
3016
+ **Unreflected and without a default**, because a default that reflected
3017
+ would write an attribute onto every host that no server sent, and the
3018
+ hydration that followed would disagree with it. */
3019
+ gestures?: (HelixCanvas["gestures"]) | undefined;
2988
3020
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
2989
3021
 
2990
3022
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -3039,6 +3071,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
3039
3071
  "pan-up-label"?: (HelixCanvas["panUpLabel"]) | undefined;
3040
3072
  /** The pan up button's label. */
3041
3073
  panUpLabel?: (HelixCanvas["panUpLabel"]) | undefined;
3074
+ /** The hint shown when one finger swipes over a surface with
3075
+ `gestures="cooperative"`. Absent is the family's own. */
3076
+ "two-finger-hint-label"?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
3077
+ /** The hint shown when one finger swipes over a surface with
3078
+ `gestures="cooperative"`. Absent is the family's own. */
3079
+ twoFingerHintLabel?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
3080
+ /** The line shown while a surface with `gestures="activate"` has the
3081
+ gestures. Absent is the family's own. */
3082
+ "using-label"?: (HelixCanvas["usingLabel"]) | undefined;
3083
+ /** The line shown while a surface with `gestures="activate"` has the
3084
+ gestures. Absent is the family's own. */
3085
+ usingLabel?: (HelixCanvas["usingLabel"]) | undefined;
3086
+ /** The hint shown when the wheel scrolls past a surface with
3087
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
3088
+ elsewhere. Absent is the family's own. */
3089
+ "wheel-hint-label"?: (HelixCanvas["wheelHintLabel"]) | undefined;
3090
+ /** The hint shown when the wheel scrolls past a surface with
3091
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
3092
+ elsewhere. Absent is the family's own. */
3093
+ wheelHintLabel?: (HelixCanvas["wheelHintLabel"]) | undefined;
3042
3094
  /** The zoom in button's label. */
3043
3095
  "zoom-in-label"?: (HelixCanvas["zoomInLabel"]) | undefined;
3044
3096
  /** The zoom in button's label. */
@@ -3247,6 +3299,12 @@ Absent is no ruling, a resting value being an attribute's absence. */
3247
3299
  Framed is where it rests. Plain is for a board that fills a panel or an
3248
3300
  app's working area, where the container is already the frame. */
3249
3301
  "prop:separation"?: (HelixCanvas["separation"]) | undefined;
3302
+ /** The hint shown when a surface waiting to be pressed is scrolled or
3303
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
3304
+ "attr:activate-hint-label"?: (HelixCanvas["activateHintLabel"]) | undefined;
3305
+ /** The hint shown when a surface waiting to be pressed is scrolled or
3306
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
3307
+ "prop:activateHintLabel"?: (HelixCanvas["activateHintLabel"]) | undefined;
3250
3308
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
3251
3309
  `none`. A family can add words of its own.
3252
3310
 
@@ -3311,6 +3369,26 @@ would write an attribute onto every host that no server sent. */
3311
3369
  "attr:fullscreen-label"?: (HelixCanvas["fullscreenLabel"]) | undefined;
3312
3370
  /** The fullscreen button's label. */
3313
3371
  "prop:fullscreenLabel"?: (HelixCanvas["fullscreenLabel"]) | undefined;
3372
+ /** Which gestures the surface takes from the page.
3373
+
3374
+ - `always`: the surface takes the wheel and one finger, for a surface
3375
+ that is the page, such as a full-screen view. A map rests here.
3376
+ - Unset is the family's own: `always` for a map, and for a board, a
3377
+ drag and a pinch, with the plain wheel left to the page until the
3378
+ board fills the screen.
3379
+ - `cooperative`: the wheel and one finger scroll the page, and the
3380
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
3381
+ says so when a gesture passes to the page. Best for a surface embedded
3382
+ in a page.
3383
+ - `activate`: the surface takes nothing until it is pressed, and gives it
3384
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
3385
+
3386
+ The keyboard and the frame's buttons work in every mode.
3387
+
3388
+ **Unreflected and without a default**, because a default that reflected
3389
+ would write an attribute onto every host that no server sent, and the
3390
+ hydration that followed would disagree with it. */
3391
+ "prop:gestures"?: (HelixCanvas["gestures"]) | undefined;
3314
3392
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
3315
3393
 
3316
3394
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -3365,6 +3443,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
3365
3443
  "attr:pan-up-label"?: (HelixCanvas["panUpLabel"]) | undefined;
3366
3444
  /** The pan up button's label. */
3367
3445
  "prop:panUpLabel"?: (HelixCanvas["panUpLabel"]) | undefined;
3446
+ /** The hint shown when one finger swipes over a surface with
3447
+ `gestures="cooperative"`. Absent is the family's own. */
3448
+ "attr:two-finger-hint-label"?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
3449
+ /** The hint shown when one finger swipes over a surface with
3450
+ `gestures="cooperative"`. Absent is the family's own. */
3451
+ "prop:twoFingerHintLabel"?: (HelixCanvas["twoFingerHintLabel"]) | undefined;
3452
+ /** The line shown while a surface with `gestures="activate"` has the
3453
+ gestures. Absent is the family's own. */
3454
+ "attr:using-label"?: (HelixCanvas["usingLabel"]) | undefined;
3455
+ /** The line shown while a surface with `gestures="activate"` has the
3456
+ gestures. Absent is the family's own. */
3457
+ "prop:usingLabel"?: (HelixCanvas["usingLabel"]) | undefined;
3458
+ /** The hint shown when the wheel scrolls past a surface with
3459
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
3460
+ elsewhere. Absent is the family's own. */
3461
+ "attr:wheel-hint-label"?: (HelixCanvas["wheelHintLabel"]) | undefined;
3462
+ /** The hint shown when the wheel scrolls past a surface with
3463
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
3464
+ elsewhere. Absent is the family's own. */
3465
+ "prop:wheelHintLabel"?: (HelixCanvas["wheelHintLabel"]) | undefined;
3368
3466
  /** The zoom in button's label. */
3369
3467
  "attr:zoom-in-label"?: (HelixCanvas["zoomInLabel"]) | undefined;
3370
3468
  /** The zoom in button's label. */
@@ -11000,6 +11098,532 @@ Empty is the runtime's own. */
11000
11098
  textContent?: (string | number) | undefined;
11001
11099
  };
11002
11100
 
11101
+ /** `HelixGraph` component event */
11102
+ export type HelixGraphElementEvent<E = Event> = TypedEvent<HelixGraph, E>;
11103
+ /** `helix-activate` event type */
11104
+ export type HelixGraphHelixActivateElementEvent =
11105
+ HelixGraphElementEvent<HelixActivateEvent>;
11106
+ /** `helix-before-activate` event type */
11107
+ export type HelixGraphHelixBeforeActivateElementEvent =
11108
+ HelixGraphElementEvent<HelixBeforeActivateEvent>;
11109
+ /** `helix-graph-layout` event type */
11110
+ export type HelixGraphHelixGraphLayoutElementEvent =
11111
+ HelixGraphElementEvent<HelixGraphLayoutEvent>;
11112
+ /** `helix-graph-pan` event type */
11113
+ export type HelixGraphHelixGraphPanElementEvent =
11114
+ HelixGraphElementEvent<HelixGraphPanEvent>;
11115
+ /** `helix-graph-part-change` event type */
11116
+ export type HelixGraphHelixGraphPartChangeElementEvent =
11117
+ HelixGraphElementEvent<HelixGraphPartChangeEvent>;
11118
+ /** `helix-graph-ready` event type */
11119
+ export type HelixGraphHelixGraphReadyElementEvent =
11120
+ HelixGraphElementEvent<HelixGraphReadyEvent>;
11121
+ /** `helix-graph-zoom` event type */
11122
+ export type HelixGraphHelixGraphZoomElementEvent =
11123
+ HelixGraphElementEvent<HelixGraphZoomEvent>;
11124
+
11125
+ export type HelixGraphProps = {
11126
+ /** The hint shown when a surface waiting to be pressed is scrolled or
11127
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
11128
+ "activate-hint-label"?: (HelixGraph["activateHintLabel"]) | undefined;
11129
+ /** The hint shown when a surface waiting to be pressed is scrolled or
11130
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
11131
+ activateHintLabel?: (HelixGraph["activateHintLabel"]) | undefined;
11132
+ /** Which controls to show, as a list such as `pan zoom fullscreen`, or
11133
+ `none`. A family can add words of its own.
11134
+
11135
+ **A list rather than a switch, because the overlap is not symmetric.** A
11136
+ surface a consumer brings often has zoom controls of its own and almost
11137
+ never has pan buttons, so a single switch would make them choose between
11138
+ a duplicate and nothing.
11139
+
11140
+ `none` draws none of them, which is the right answer where what was
11141
+ slotted already has controls a reader can find: what this argues for is
11142
+ that *a* findable control exists, never that it is ours. The methods stay
11143
+ public either way, so a consumer drawing their own chrome can still drive
11144
+ the surface.
11145
+
11146
+ Absent is whatever the family rests at, which is this library's rule that
11147
+ a resting value is an attribute's absence: zoom, the compass and
11148
+ fullscreen for a map, whose pan buttons a page asks for, and zoom and
11149
+ fullscreen for a board, which a reader drags and whose pad took a third
11150
+ of the frame. The
11151
+ stylesheet lays the cluster out by which buttons are in it rather than by
11152
+ this attribute, so the two defaults need no rule each. */
11153
+ controls?: (HelixGraph["controls"]) | undefined;
11154
+ /** The name of the group of controls, read by screen readers.
11155
+
11156
+ Absent is the family's own name for it, "Map controls" or "Board
11157
+ controls", which names what the controls drive rather than the
11158
+ mechanism. Written here to say it in another language, which every other
11159
+ string this surface speaks already allowed and this one did not. */
11160
+ "controls-label"?: (HelixGraph["controlsLabel"]) | undefined;
11161
+ /** The name of the group of controls, read by screen readers.
11162
+
11163
+ Absent is the family's own name for it, "Map controls" or "Board
11164
+ controls", which names what the controls drive rather than the
11165
+ mechanism. Written here to say it in another language, which every other
11166
+ string this surface speaks already allowed and this one did not. */
11167
+ controlsLabel?: (HelixGraph["controlsLabel"]) | undefined;
11168
+ /** Which corner the controls sit in.
11169
+
11170
+ **Configurable because there is no safe default**, which is a collision
11171
+ rather than a taste: whatever a consumer slots may put its own controls
11172
+ in any corner, and every library that draws some made this a setting for
11173
+ the same reason.
11174
+
11175
+ Logical corners rather than left and right, so a right-to-left page moves
11176
+ them without a consumer writing a second rule. Absent is the top end, a
11177
+ resting value being an attribute's absence: a default that reflected
11178
+ would write an attribute onto every host that no server sent. */
11179
+ "controls-placement"?: (HelixGraph["controlsPlacement"]) | undefined;
11180
+ /** Which corner the controls sit in.
11181
+
11182
+ **Configurable because there is no safe default**, which is a collision
11183
+ rather than a taste: whatever a consumer slots may put its own controls
11184
+ in any corner, and every library that draws some made this a setting for
11185
+ the same reason.
11186
+
11187
+ Logical corners rather than left and right, so a right-to-left page moves
11188
+ them without a consumer writing a second rule. Absent is the top end, a
11189
+ resting value being an attribute's absence: a default that reflected
11190
+ would write an attribute onto every host that no server sent. */
11191
+ controlsPlacement?: (HelixGraph["controlsPlacement"]) | undefined;
11192
+ /** The fullscreen button's label. */
11193
+ "fullscreen-label"?: (HelixGraph["fullscreenLabel"]) | undefined;
11194
+ /** The fullscreen button's label. */
11195
+ fullscreenLabel?: (HelixGraph["fullscreenLabel"]) | undefined;
11196
+ /** Which gestures the surface takes from the page.
11197
+
11198
+ - `always`: the surface takes the wheel and one finger, for a surface
11199
+ that is the page, such as a full-screen view. A map rests here.
11200
+ - Unset is the family's own: `always` for a map, and for a board, a
11201
+ drag and a pinch, with the plain wheel left to the page until the
11202
+ board fills the screen.
11203
+ - `cooperative`: the wheel and one finger scroll the page, and the
11204
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
11205
+ says so when a gesture passes to the page. Best for a surface embedded
11206
+ in a page.
11207
+ - `activate`: the surface takes nothing until it is pressed, and gives it
11208
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
11209
+
11210
+ The keyboard and the frame's buttons work in every mode.
11211
+
11212
+ **Unreflected and without a default**, because a default that reflected
11213
+ would write an attribute onto every host that no server sent, and the
11214
+ hydration that followed would disagree with it. */
11215
+ gestures?: (HelixGraph["gestures"]) | undefined;
11216
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
11217
+
11218
+ Zero keeps it up, which is the default: these controls are how a keyboard
11219
+ reader operates the surface, and chrome that hid itself by default would
11220
+ be the component undoing its own argument. Set it for a display nobody
11221
+ drives. */
11222
+ "idle-delay"?: (HelixGraph["idleDelay"] | `${number}`) | undefined;
11223
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
11224
+
11225
+ Zero keeps it up, which is the default: these controls are how a keyboard
11226
+ reader operates the surface, and chrome that hid itself by default would
11227
+ be the component undoing its own argument. Set it for a display nobody
11228
+ drives. */
11229
+ idleDelay?: (HelixGraph["idleDelay"]) | undefined;
11230
+ /** The pan down button's label.
11231
+
11232
+ **A label for each way rather than one with the way filled in**, which is
11233
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
11234
+ in French read out "Déplacer left". The word for a direction is as much
11235
+ the translator's as the word for panning, and a language can put it
11236
+ anywhere in the phrase. */
11237
+ "pan-down-label"?: (HelixGraph["panDownLabel"]) | undefined;
11238
+ /** The pan down button's label.
11239
+
11240
+ **A label for each way rather than one with the way filled in**, which is
11241
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
11242
+ in French read out "Déplacer left". The word for a direction is as much
11243
+ the translator's as the word for panning, and a language can put it
11244
+ anywhere in the phrase. */
11245
+ panDownLabel?: (HelixGraph["panDownLabel"]) | undefined;
11246
+ /** The pan left button's label. */
11247
+ "pan-left-label"?: (HelixGraph["panLeftLabel"]) | undefined;
11248
+ /** The pan left button's label. */
11249
+ panLeftLabel?: (HelixGraph["panLeftLabel"]) | undefined;
11250
+ /** The pan right button's label. */
11251
+ "pan-right-label"?: (HelixGraph["panRightLabel"]) | undefined;
11252
+ /** The pan right button's label. */
11253
+ panRightLabel?: (HelixGraph["panRightLabel"]) | undefined;
11254
+ /** How far one press pans the view, as a fraction of its size.
11255
+
11256
+ A fraction rather than a distance, because this surface does not know the
11257
+ scale of what is inside it: a quarter of the viewport is the same gesture
11258
+ at any zoom, and a consumer who wants their own units multiplies by them. */
11259
+ "pan-step"?: (HelixGraph["panStep"] | `${number}`) | undefined;
11260
+ /** How far one press pans the view, as a fraction of its size.
11261
+
11262
+ A fraction rather than a distance, because this surface does not know the
11263
+ scale of what is inside it: a quarter of the viewport is the same gesture
11264
+ at any zoom, and a consumer who wants their own units multiplies by them. */
11265
+ panStep?: (HelixGraph["panStep"]) | undefined;
11266
+ /** The pan up button's label. */
11267
+ "pan-up-label"?: (HelixGraph["panUpLabel"]) | undefined;
11268
+ /** The pan up button's label. */
11269
+ panUpLabel?: (HelixGraph["panUpLabel"]) | undefined;
11270
+ /** The hint shown when one finger swipes over a surface with
11271
+ `gestures="cooperative"`. Absent is the family's own. */
11272
+ "two-finger-hint-label"?: (HelixGraph["twoFingerHintLabel"]) | undefined;
11273
+ /** The hint shown when one finger swipes over a surface with
11274
+ `gestures="cooperative"`. Absent is the family's own. */
11275
+ twoFingerHintLabel?: (HelixGraph["twoFingerHintLabel"]) | undefined;
11276
+ /** The line shown while a surface with `gestures="activate"` has the
11277
+ gestures. Absent is the family's own. */
11278
+ "using-label"?: (HelixGraph["usingLabel"]) | undefined;
11279
+ /** The line shown while a surface with `gestures="activate"` has the
11280
+ gestures. Absent is the family's own. */
11281
+ usingLabel?: (HelixGraph["usingLabel"]) | undefined;
11282
+ /** The hint shown when the wheel scrolls past a surface with
11283
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
11284
+ elsewhere. Absent is the family's own. */
11285
+ "wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
11286
+ /** The hint shown when the wheel scrolls past a surface with
11287
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
11288
+ elsewhere. Absent is the family's own. */
11289
+ wheelHintLabel?: (HelixGraph["wheelHintLabel"]) | undefined;
11290
+ /** The zoom in button's label. */
11291
+ "zoom-in-label"?: (HelixGraph["zoomInLabel"]) | undefined;
11292
+ /** The zoom in button's label. */
11293
+ zoomInLabel?: (HelixGraph["zoomInLabel"]) | undefined;
11294
+ /** The zoom out button's label. */
11295
+ "zoom-out-label"?: (HelixGraph["zoomOutLabel"]) | undefined;
11296
+ /** The zoom out button's label. */
11297
+ zoomOutLabel?: (HelixGraph["zoomOutLabel"]) | undefined;
11298
+ /** The `value` of the current item.
11299
+
11300
+ Not `option.active`, which is the option the keyboard is on: that is a
11301
+ different question from which one is chosen.
11302
+
11303
+ Writing always applies, so `<helix-tabs active="one">` starts on that
11304
+ tab, and `default-active` is how markup says where to start without
11305
+ naming the current one. */
11306
+ active?: (HelixGraph["active"]) | undefined;
11307
+ /** The `value` of the item declared current in markup.
11308
+
11309
+ Ignored once `active` is written. */
11310
+ "default-active"?: (HelixGraph["defaultActive"]) | undefined;
11311
+ /** The `value` of the item declared current in markup.
11312
+
11313
+ Ignored once `active` is written. */
11314
+ defaultActive?: (HelixGraph["defaultActive"]) | undefined;
11315
+ /** What the list says of a note's count, with `{count}`. */
11316
+ "count-label"?: (HelixGraph["countLabel"]) | undefined;
11317
+ /** What the list says of a note's count, with `{count}`. */
11318
+ countLabel?: (HelixGraph["countLabel"]) | undefined;
11319
+ /** How many links from the selected note to show, for its local graph. Unset
11320
+ shows every note. The list holds what the drawing shows. */
11321
+ depth?: (HelixGraph["depth"]) | undefined;
11322
+ /** The graph's name, read by screen readers, such as "Research notes".
11323
+ Required. */
11324
+ label?: (HelixGraph["label"]) | undefined;
11325
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
11326
+ "linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
11327
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
11328
+ linkedBothLabel?: (HelixGraph["linkedBothLabel"]) | undefined;
11329
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
11330
+ "linked-from-label"?: (HelixGraph["linkedFromLabel"]) | undefined;
11331
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
11332
+ linkedFromLabel?: (HelixGraph["linkedFromLabel"]) | undefined;
11333
+ /** How a note that links to the selected one is described, with `{note}`. */
11334
+ "links-to-label"?: (HelixGraph["linksToLabel"]) | undefined;
11335
+ /** How a note that links to the selected one is described, with `{note}`. */
11336
+ linksToLabel?: (HelixGraph["linksToLabel"]) | undefined;
11337
+ /** The list's name, read by screen readers. */
11338
+ "notes-label"?: (HelixGraph["notesLabel"]) | undefined;
11339
+ /** The list's name, read by screen readers. */
11340
+ notesLabel?: (HelixGraph["notesLabel"]) | undefined;
11341
+ /** The search field's name. */
11342
+ "search-label"?: (HelixGraph["searchLabel"]) | undefined;
11343
+ /** The search field's name. */
11344
+ searchLabel?: (HelixGraph["searchLabel"]) | undefined;
11345
+ /** How the selected note is described in the list. */
11346
+ "selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
11347
+ /** How the selected note is described in the list. */
11348
+ selectedLabel?: (HelixGraph["selectedLabel"]) | undefined;
11349
+ /** The links between notes, each from `source` to `target`. A property, never an attribute. */
11350
+ links?: (HelixGraph["links"]) | undefined;
11351
+ /** The notes. A property, never an attribute. */
11352
+ nodes?: (HelixGraph["nodes"]) | undefined;
11353
+
11354
+ /** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
11355
+ "onhelix-activate"?: ((e: HelixGraphHelixActivateElementEvent) => void) | undefined;
11356
+ /** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
11357
+ "onhelix-before-activate"?: ((
11358
+ e: HelixGraphHelixBeforeActivateElementEvent,
11359
+ ) => void) | undefined;
11360
+ /** 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`. */
11361
+ "onhelix-graph-layout"?: ((e: HelixGraphHelixGraphLayoutElementEvent) => void) | undefined;
11362
+ /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
11363
+ "onhelix-graph-pan"?: ((e: HelixGraphHelixGraphPanElementEvent) => void) | undefined;
11364
+ /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
11365
+ "onhelix-graph-part-change"?: ((
11366
+ e: HelixGraphHelixGraphPartChangeElementEvent,
11367
+ ) => void) | undefined;
11368
+ /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
11369
+ "onhelix-graph-ready"?: ((e: HelixGraphHelixGraphReadyElementEvent) => void) | undefined;
11370
+ /** A zoom button or key was pressed. `connectGraph` zooms the drawing. */
11371
+ "onhelix-graph-zoom"?: ((e: HelixGraphHelixGraphZoomElementEvent) => void) | undefined;
11372
+ };
11373
+
11374
+ export type HelixGraphSolidJsProps = {
11375
+ /** The hint shown when a surface waiting to be pressed is scrolled or
11376
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
11377
+ "attr:activate-hint-label"?: (HelixGraph["activateHintLabel"]) | undefined;
11378
+ /** The hint shown when a surface waiting to be pressed is scrolled or
11379
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
11380
+ "prop:activateHintLabel"?: (HelixGraph["activateHintLabel"]) | undefined;
11381
+ /** Which controls to show, as a list such as `pan zoom fullscreen`, or
11382
+ `none`. A family can add words of its own.
11383
+
11384
+ **A list rather than a switch, because the overlap is not symmetric.** A
11385
+ surface a consumer brings often has zoom controls of its own and almost
11386
+ never has pan buttons, so a single switch would make them choose between
11387
+ a duplicate and nothing.
11388
+
11389
+ `none` draws none of them, which is the right answer where what was
11390
+ slotted already has controls a reader can find: what this argues for is
11391
+ that *a* findable control exists, never that it is ours. The methods stay
11392
+ public either way, so a consumer drawing their own chrome can still drive
11393
+ the surface.
11394
+
11395
+ Absent is whatever the family rests at, which is this library's rule that
11396
+ a resting value is an attribute's absence: zoom, the compass and
11397
+ fullscreen for a map, whose pan buttons a page asks for, and zoom and
11398
+ fullscreen for a board, which a reader drags and whose pad took a third
11399
+ of the frame. The
11400
+ stylesheet lays the cluster out by which buttons are in it rather than by
11401
+ this attribute, so the two defaults need no rule each. */
11402
+ "prop:controls"?: (HelixGraph["controls"]) | undefined;
11403
+ /** The name of the group of controls, read by screen readers.
11404
+
11405
+ Absent is the family's own name for it, "Map controls" or "Board
11406
+ controls", which names what the controls drive rather than the
11407
+ mechanism. Written here to say it in another language, which every other
11408
+ string this surface speaks already allowed and this one did not. */
11409
+ "attr:controls-label"?: (HelixGraph["controlsLabel"]) | undefined;
11410
+ /** The name of the group of controls, read by screen readers.
11411
+
11412
+ Absent is the family's own name for it, "Map controls" or "Board
11413
+ controls", which names what the controls drive rather than the
11414
+ mechanism. Written here to say it in another language, which every other
11415
+ string this surface speaks already allowed and this one did not. */
11416
+ "prop:controlsLabel"?: (HelixGraph["controlsLabel"]) | undefined;
11417
+ /** Which corner the controls sit in.
11418
+
11419
+ **Configurable because there is no safe default**, which is a collision
11420
+ rather than a taste: whatever a consumer slots may put its own controls
11421
+ in any corner, and every library that draws some made this a setting for
11422
+ the same reason.
11423
+
11424
+ Logical corners rather than left and right, so a right-to-left page moves
11425
+ them without a consumer writing a second rule. Absent is the top end, a
11426
+ resting value being an attribute's absence: a default that reflected
11427
+ would write an attribute onto every host that no server sent. */
11428
+ "attr:controls-placement"?: (HelixGraph["controlsPlacement"]) | undefined;
11429
+ /** Which corner the controls sit in.
11430
+
11431
+ **Configurable because there is no safe default**, which is a collision
11432
+ rather than a taste: whatever a consumer slots may put its own controls
11433
+ in any corner, and every library that draws some made this a setting for
11434
+ the same reason.
11435
+
11436
+ Logical corners rather than left and right, so a right-to-left page moves
11437
+ them without a consumer writing a second rule. Absent is the top end, a
11438
+ resting value being an attribute's absence: a default that reflected
11439
+ would write an attribute onto every host that no server sent. */
11440
+ "prop:controlsPlacement"?: (HelixGraph["controlsPlacement"]) | undefined;
11441
+ /** The fullscreen button's label. */
11442
+ "attr:fullscreen-label"?: (HelixGraph["fullscreenLabel"]) | undefined;
11443
+ /** The fullscreen button's label. */
11444
+ "prop:fullscreenLabel"?: (HelixGraph["fullscreenLabel"]) | undefined;
11445
+ /** Which gestures the surface takes from the page.
11446
+
11447
+ - `always`: the surface takes the wheel and one finger, for a surface
11448
+ that is the page, such as a full-screen view. A map rests here.
11449
+ - Unset is the family's own: `always` for a map, and for a board, a
11450
+ drag and a pinch, with the plain wheel left to the page until the
11451
+ board fills the screen.
11452
+ - `cooperative`: the wheel and one finger scroll the page, and the
11453
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
11454
+ says so when a gesture passes to the page. Best for a surface embedded
11455
+ in a page.
11456
+ - `activate`: the surface takes nothing until it is pressed, and gives it
11457
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
11458
+
11459
+ The keyboard and the frame's buttons work in every mode.
11460
+
11461
+ **Unreflected and without a default**, because a default that reflected
11462
+ would write an attribute onto every host that no server sent, and the
11463
+ hydration that followed would disagree with it. */
11464
+ "prop:gestures"?: (HelixGraph["gestures"]) | undefined;
11465
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
11466
+
11467
+ Zero keeps it up, which is the default: these controls are how a keyboard
11468
+ reader operates the surface, and chrome that hid itself by default would
11469
+ be the component undoing its own argument. Set it for a display nobody
11470
+ drives. */
11471
+ "attr:idle-delay"?: (HelixGraph["idleDelay"] | `${number}`) | undefined;
11472
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
11473
+
11474
+ Zero keeps it up, which is the default: these controls are how a keyboard
11475
+ reader operates the surface, and chrome that hid itself by default would
11476
+ be the component undoing its own argument. Set it for a display nobody
11477
+ drives. */
11478
+ "prop:idleDelay"?: (HelixGraph["idleDelay"]) | undefined;
11479
+ /** The pan down button's label.
11480
+
11481
+ **A label for each way rather than one with the way filled in**, which is
11482
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
11483
+ in French read out "Déplacer left". The word for a direction is as much
11484
+ the translator's as the word for panning, and a language can put it
11485
+ anywhere in the phrase. */
11486
+ "attr:pan-down-label"?: (HelixGraph["panDownLabel"]) | undefined;
11487
+ /** The pan down button's label.
11488
+
11489
+ **A label for each way rather than one with the way filled in**, which is
11490
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
11491
+ in French read out "Déplacer left". The word for a direction is as much
11492
+ the translator's as the word for panning, and a language can put it
11493
+ anywhere in the phrase. */
11494
+ "prop:panDownLabel"?: (HelixGraph["panDownLabel"]) | undefined;
11495
+ /** The pan left button's label. */
11496
+ "attr:pan-left-label"?: (HelixGraph["panLeftLabel"]) | undefined;
11497
+ /** The pan left button's label. */
11498
+ "prop:panLeftLabel"?: (HelixGraph["panLeftLabel"]) | undefined;
11499
+ /** The pan right button's label. */
11500
+ "attr:pan-right-label"?: (HelixGraph["panRightLabel"]) | undefined;
11501
+ /** The pan right button's label. */
11502
+ "prop:panRightLabel"?: (HelixGraph["panRightLabel"]) | undefined;
11503
+ /** How far one press pans the view, as a fraction of its size.
11504
+
11505
+ A fraction rather than a distance, because this surface does not know the
11506
+ scale of what is inside it: a quarter of the viewport is the same gesture
11507
+ at any zoom, and a consumer who wants their own units multiplies by them. */
11508
+ "attr:pan-step"?: (HelixGraph["panStep"] | `${number}`) | undefined;
11509
+ /** How far one press pans the view, as a fraction of its size.
11510
+
11511
+ A fraction rather than a distance, because this surface does not know the
11512
+ scale of what is inside it: a quarter of the viewport is the same gesture
11513
+ at any zoom, and a consumer who wants their own units multiplies by them. */
11514
+ "prop:panStep"?: (HelixGraph["panStep"]) | undefined;
11515
+ /** The pan up button's label. */
11516
+ "attr:pan-up-label"?: (HelixGraph["panUpLabel"]) | undefined;
11517
+ /** The pan up button's label. */
11518
+ "prop:panUpLabel"?: (HelixGraph["panUpLabel"]) | undefined;
11519
+ /** The hint shown when one finger swipes over a surface with
11520
+ `gestures="cooperative"`. Absent is the family's own. */
11521
+ "attr:two-finger-hint-label"?: (HelixGraph["twoFingerHintLabel"]) | undefined;
11522
+ /** The hint shown when one finger swipes over a surface with
11523
+ `gestures="cooperative"`. Absent is the family's own. */
11524
+ "prop:twoFingerHintLabel"?: (HelixGraph["twoFingerHintLabel"]) | undefined;
11525
+ /** The line shown while a surface with `gestures="activate"` has the
11526
+ gestures. Absent is the family's own. */
11527
+ "attr:using-label"?: (HelixGraph["usingLabel"]) | undefined;
11528
+ /** The line shown while a surface with `gestures="activate"` has the
11529
+ gestures. Absent is the family's own. */
11530
+ "prop:usingLabel"?: (HelixGraph["usingLabel"]) | undefined;
11531
+ /** The hint shown when the wheel scrolls past a surface with
11532
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
11533
+ elsewhere. Absent is the family's own. */
11534
+ "attr:wheel-hint-label"?: (HelixGraph["wheelHintLabel"]) | undefined;
11535
+ /** The hint shown when the wheel scrolls past a surface with
11536
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
11537
+ elsewhere. Absent is the family's own. */
11538
+ "prop:wheelHintLabel"?: (HelixGraph["wheelHintLabel"]) | undefined;
11539
+ /** The zoom in button's label. */
11540
+ "attr:zoom-in-label"?: (HelixGraph["zoomInLabel"]) | undefined;
11541
+ /** The zoom in button's label. */
11542
+ "prop:zoomInLabel"?: (HelixGraph["zoomInLabel"]) | undefined;
11543
+ /** The zoom out button's label. */
11544
+ "attr:zoom-out-label"?: (HelixGraph["zoomOutLabel"]) | undefined;
11545
+ /** The zoom out button's label. */
11546
+ "prop:zoomOutLabel"?: (HelixGraph["zoomOutLabel"]) | undefined;
11547
+ /** The `value` of the current item.
11548
+
11549
+ Not `option.active`, which is the option the keyboard is on: that is a
11550
+ different question from which one is chosen.
11551
+
11552
+ Writing always applies, so `<helix-tabs active="one">` starts on that
11553
+ tab, and `default-active` is how markup says where to start without
11554
+ naming the current one. */
11555
+ "prop:active"?: (HelixGraph["active"]) | undefined;
11556
+ /** The `value` of the item declared current in markup.
11557
+
11558
+ Ignored once `active` is written. */
11559
+ "attr:default-active"?: (HelixGraph["defaultActive"]) | undefined;
11560
+ /** The `value` of the item declared current in markup.
11561
+
11562
+ Ignored once `active` is written. */
11563
+ "prop:defaultActive"?: (HelixGraph["defaultActive"]) | undefined;
11564
+ /** What the list says of a note's count, with `{count}`. */
11565
+ "attr:count-label"?: (HelixGraph["countLabel"]) | undefined;
11566
+ /** What the list says of a note's count, with `{count}`. */
11567
+ "prop:countLabel"?: (HelixGraph["countLabel"]) | undefined;
11568
+ /** How many links from the selected note to show, for its local graph. Unset
11569
+ shows every note. The list holds what the drawing shows. */
11570
+ "prop:depth"?: (HelixGraph["depth"]) | undefined;
11571
+ /** The graph's name, read by screen readers, such as "Research notes".
11572
+ Required. */
11573
+ "prop:label"?: (HelixGraph["label"]) | undefined;
11574
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
11575
+ "attr:linked-both-label"?: (HelixGraph["linkedBothLabel"]) | undefined;
11576
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
11577
+ "prop:linkedBothLabel"?: (HelixGraph["linkedBothLabel"]) | undefined;
11578
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
11579
+ "attr:linked-from-label"?: (HelixGraph["linkedFromLabel"]) | undefined;
11580
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
11581
+ "prop:linkedFromLabel"?: (HelixGraph["linkedFromLabel"]) | undefined;
11582
+ /** How a note that links to the selected one is described, with `{note}`. */
11583
+ "attr:links-to-label"?: (HelixGraph["linksToLabel"]) | undefined;
11584
+ /** How a note that links to the selected one is described, with `{note}`. */
11585
+ "prop:linksToLabel"?: (HelixGraph["linksToLabel"]) | undefined;
11586
+ /** The list's name, read by screen readers. */
11587
+ "attr:notes-label"?: (HelixGraph["notesLabel"]) | undefined;
11588
+ /** The list's name, read by screen readers. */
11589
+ "prop:notesLabel"?: (HelixGraph["notesLabel"]) | undefined;
11590
+ /** The search field's name. */
11591
+ "attr:search-label"?: (HelixGraph["searchLabel"]) | undefined;
11592
+ /** The search field's name. */
11593
+ "prop:searchLabel"?: (HelixGraph["searchLabel"]) | undefined;
11594
+ /** How the selected note is described in the list. */
11595
+ "attr:selected-label"?: (HelixGraph["selectedLabel"]) | undefined;
11596
+ /** How the selected note is described in the list. */
11597
+ "prop:selectedLabel"?: (HelixGraph["selectedLabel"]) | undefined;
11598
+ /** The links between notes, each from `source` to `target`. A property, never an attribute. */
11599
+ "prop:links"?: (HelixGraph["links"]) | undefined;
11600
+ /** The notes. A property, never an attribute. */
11601
+ "prop:nodes"?: (HelixGraph["nodes"]) | undefined;
11602
+ /** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
11603
+ "on:helix-activate"?: ((e: HelixGraphHelixActivateElementEvent) => void) | undefined;
11604
+ /** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
11605
+ "on:helix-before-activate"?: ((
11606
+ e: HelixGraphHelixBeforeActivateElementEvent,
11607
+ ) => void) | undefined;
11608
+ /** 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`. */
11609
+ "on:helix-graph-layout"?: ((e: HelixGraphHelixGraphLayoutElementEvent) => void) | undefined;
11610
+ /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
11611
+ "on:helix-graph-pan"?: ((e: HelixGraphHelixGraphPanElementEvent) => void) | undefined;
11612
+ /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
11613
+ "on:helix-graph-part-change"?: ((
11614
+ e: HelixGraphHelixGraphPartChangeElementEvent,
11615
+ ) => void) | undefined;
11616
+ /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
11617
+ "on:helix-graph-ready"?: ((e: HelixGraphHelixGraphReadyElementEvent) => void) | undefined;
11618
+ /** A zoom button or key was pressed. `connectGraph` zooms the drawing. */
11619
+ "on:helix-graph-zoom"?: ((e: HelixGraphHelixGraphZoomElementEvent) => void) | undefined;
11620
+
11621
+ /** Set the innerHTML of the element */
11622
+ innerHTML?: (string) | undefined;
11623
+ /** Set the textContent of the element */
11624
+ textContent?: (string | number) | undefined;
11625
+ };
11626
+
11003
11627
  export type HelixGridProps = {
11004
11628
  /** How each cell aligns within its row. Sets `align-items`.
11005
11629
 
@@ -14291,6 +14915,12 @@ the container's edge is the map's. */
14291
14915
  shows the map through a blur, `frosted` blurs more, and `transparent` has
14292
14916
  no background. Your theme sets how see-through each one is. */
14293
14917
  material?: (HelixMap["material"]) | undefined;
14918
+ /** The hint shown when a surface waiting to be pressed is scrolled or
14919
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
14920
+ "activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
14921
+ /** The hint shown when a surface waiting to be pressed is scrolled or
14922
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
14923
+ activateHintLabel?: (HelixMap["activateHintLabel"]) | undefined;
14294
14924
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
14295
14925
  `none`. A family can add words of its own.
14296
14926
 
@@ -14355,6 +14985,26 @@ would write an attribute onto every host that no server sent. */
14355
14985
  "fullscreen-label"?: (HelixMap["fullscreenLabel"]) | undefined;
14356
14986
  /** The fullscreen button's label. */
14357
14987
  fullscreenLabel?: (HelixMap["fullscreenLabel"]) | undefined;
14988
+ /** Which gestures the surface takes from the page.
14989
+
14990
+ - `always`: the surface takes the wheel and one finger, for a surface
14991
+ that is the page, such as a full-screen view. A map rests here.
14992
+ - Unset is the family's own: `always` for a map, and for a board, a
14993
+ drag and a pinch, with the plain wheel left to the page until the
14994
+ board fills the screen.
14995
+ - `cooperative`: the wheel and one finger scroll the page, and the
14996
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
14997
+ says so when a gesture passes to the page. Best for a surface embedded
14998
+ in a page.
14999
+ - `activate`: the surface takes nothing until it is pressed, and gives it
15000
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
15001
+
15002
+ The keyboard and the frame's buttons work in every mode.
15003
+
15004
+ **Unreflected and without a default**, because a default that reflected
15005
+ would write an attribute onto every host that no server sent, and the
15006
+ hydration that followed would disagree with it. */
15007
+ gestures?: (HelixMap["gestures"]) | undefined;
14358
15008
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
14359
15009
 
14360
15010
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -14409,6 +15059,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
14409
15059
  "pan-up-label"?: (HelixMap["panUpLabel"]) | undefined;
14410
15060
  /** The pan up button's label. */
14411
15061
  panUpLabel?: (HelixMap["panUpLabel"]) | undefined;
15062
+ /** The hint shown when one finger swipes over a surface with
15063
+ `gestures="cooperative"`. Absent is the family's own. */
15064
+ "two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
15065
+ /** The hint shown when one finger swipes over a surface with
15066
+ `gestures="cooperative"`. Absent is the family's own. */
15067
+ twoFingerHintLabel?: (HelixMap["twoFingerHintLabel"]) | undefined;
15068
+ /** The line shown while a surface with `gestures="activate"` has the
15069
+ gestures. Absent is the family's own. */
15070
+ "using-label"?: (HelixMap["usingLabel"]) | undefined;
15071
+ /** The line shown while a surface with `gestures="activate"` has the
15072
+ gestures. Absent is the family's own. */
15073
+ usingLabel?: (HelixMap["usingLabel"]) | undefined;
15074
+ /** The hint shown when the wheel scrolls past a surface with
15075
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
15076
+ elsewhere. Absent is the family's own. */
15077
+ "wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
15078
+ /** The hint shown when the wheel scrolls past a surface with
15079
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
15080
+ elsewhere. Absent is the family's own. */
15081
+ wheelHintLabel?: (HelixMap["wheelHintLabel"]) | undefined;
14412
15082
  /** The zoom in button's label. */
14413
15083
  "zoom-in-label"?: (HelixMap["zoomInLabel"]) | undefined;
14414
15084
  /** The zoom in button's label. */
@@ -14417,12 +15087,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
14417
15087
  "zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
14418
15088
  /** The zoom out button's label. */
14419
15089
  zoomOutLabel?: (HelixMap["zoomOutLabel"]) | undefined;
14420
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
14421
- over, with `gestures="activate"`. */
14422
- "activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
14423
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
14424
- over, with `gestures="activate"`. */
14425
- activateHintLabel?: (HelixMap["activateHintLabel"]) | undefined;
14426
15090
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
14427
15091
  current, and the Face north button's needle turns with it. */
14428
15092
  bearing?: (HelixMap["bearing"]) | undefined;
@@ -14437,19 +15101,6 @@ the map zooms in, and pressing one zooms in to its places. */
14437
15101
  "flat-label"?: (HelixMap["flatLabel"]) | undefined;
14438
15102
  /** What screen readers hear when the map is tilted back to looking straight down. */
14439
15103
  flatLabel?: (HelixMap["flatLabel"]) | undefined;
14440
- /** Which gestures the map takes from the page.
14441
-
14442
- - `always`, which unset is: the wheel zooms the map and one finger pans
14443
- it, for a map that is the page, such as a full-screen view.
14444
- - `cooperative`: the wheel and one finger scroll the page, and the map
14445
- takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
14446
- when a gesture passes to the page. Best for a map embedded in a page.
14447
- - `activate`: the map takes nothing until it is pressed, and gives it
14448
- back on Escape, when the pointer leaves it, or on a press elsewhere.
14449
-
14450
- The keyboard and the frame's buttons work in every mode. The renderer is
14451
- told through the connector, so MapLibre and Leaflet behave alike. */
14452
- gestures?: (HelixMap["gestures"]) | undefined;
14453
15104
  /** The Hybrid map type's name. */
14454
15105
  "hybrid-label"?: (HelixMap["hybridLabel"]) | undefined;
14455
15106
  /** The Hybrid map type's name. */
@@ -14531,22 +15182,6 @@ top of the map faces, clockwise from north. */
14531
15182
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
14532
15183
  top of the map faces, clockwise from north. */
14533
15184
  turnedLabel?: (HelixMap["turnedLabel"]) | undefined;
14534
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
14535
- "two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
14536
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
14537
- twoFingerHintLabel?: (HelixMap["twoFingerHintLabel"]) | undefined;
14538
- /** The line shown while a map with `gestures="activate"` has the gestures. */
14539
- "using-label"?: (HelixMap["usingLabel"]) | undefined;
14540
- /** The line shown while a map with `gestures="activate"` has the gestures. */
14541
- usingLabel?: (HelixMap["usingLabel"]) | undefined;
14542
- /** The hint shown when the wheel scrolls past a map with
14543
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
14544
- elsewhere, as the renderer reads it. */
14545
- "wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
14546
- /** The hint shown when the wheel scrolls past a map with
14547
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
14548
- elsewhere, as the renderer reads it. */
14549
- wheelHintLabel?: (HelixMap["wheelHintLabel"]) | undefined;
14550
15185
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
14551
15186
  "zoomed-label"?: (HelixMap["zoomedLabel"]) | undefined;
14552
15187
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
@@ -14600,6 +15235,12 @@ the container's edge is the map's. */
14600
15235
  shows the map through a blur, `frosted` blurs more, and `transparent` has
14601
15236
  no background. Your theme sets how see-through each one is. */
14602
15237
  "prop:material"?: (HelixMap["material"]) | undefined;
15238
+ /** The hint shown when a surface waiting to be pressed is scrolled or
15239
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
15240
+ "attr:activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
15241
+ /** The hint shown when a surface waiting to be pressed is scrolled or
15242
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
15243
+ "prop:activateHintLabel"?: (HelixMap["activateHintLabel"]) | undefined;
14603
15244
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
14604
15245
  `none`. A family can add words of its own.
14605
15246
 
@@ -14664,6 +15305,26 @@ would write an attribute onto every host that no server sent. */
14664
15305
  "attr:fullscreen-label"?: (HelixMap["fullscreenLabel"]) | undefined;
14665
15306
  /** The fullscreen button's label. */
14666
15307
  "prop:fullscreenLabel"?: (HelixMap["fullscreenLabel"]) | undefined;
15308
+ /** Which gestures the surface takes from the page.
15309
+
15310
+ - `always`: the surface takes the wheel and one finger, for a surface
15311
+ that is the page, such as a full-screen view. A map rests here.
15312
+ - Unset is the family's own: `always` for a map, and for a board, a
15313
+ drag and a pinch, with the plain wheel left to the page until the
15314
+ board fills the screen.
15315
+ - `cooperative`: the wheel and one finger scroll the page, and the
15316
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
15317
+ says so when a gesture passes to the page. Best for a surface embedded
15318
+ in a page.
15319
+ - `activate`: the surface takes nothing until it is pressed, and gives it
15320
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
15321
+
15322
+ The keyboard and the frame's buttons work in every mode.
15323
+
15324
+ **Unreflected and without a default**, because a default that reflected
15325
+ would write an attribute onto every host that no server sent, and the
15326
+ hydration that followed would disagree with it. */
15327
+ "prop:gestures"?: (HelixMap["gestures"]) | undefined;
14667
15328
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
14668
15329
 
14669
15330
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -14718,6 +15379,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
14718
15379
  "attr:pan-up-label"?: (HelixMap["panUpLabel"]) | undefined;
14719
15380
  /** The pan up button's label. */
14720
15381
  "prop:panUpLabel"?: (HelixMap["panUpLabel"]) | undefined;
15382
+ /** The hint shown when one finger swipes over a surface with
15383
+ `gestures="cooperative"`. Absent is the family's own. */
15384
+ "attr:two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
15385
+ /** The hint shown when one finger swipes over a surface with
15386
+ `gestures="cooperative"`. Absent is the family's own. */
15387
+ "prop:twoFingerHintLabel"?: (HelixMap["twoFingerHintLabel"]) | undefined;
15388
+ /** The line shown while a surface with `gestures="activate"` has the
15389
+ gestures. Absent is the family's own. */
15390
+ "attr:using-label"?: (HelixMap["usingLabel"]) | undefined;
15391
+ /** The line shown while a surface with `gestures="activate"` has the
15392
+ gestures. Absent is the family's own. */
15393
+ "prop:usingLabel"?: (HelixMap["usingLabel"]) | undefined;
15394
+ /** The hint shown when the wheel scrolls past a surface with
15395
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
15396
+ elsewhere. Absent is the family's own. */
15397
+ "attr:wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
15398
+ /** The hint shown when the wheel scrolls past a surface with
15399
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
15400
+ elsewhere. Absent is the family's own. */
15401
+ "prop:wheelHintLabel"?: (HelixMap["wheelHintLabel"]) | undefined;
14721
15402
  /** The zoom in button's label. */
14722
15403
  "attr:zoom-in-label"?: (HelixMap["zoomInLabel"]) | undefined;
14723
15404
  /** The zoom in button's label. */
@@ -14726,12 +15407,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
14726
15407
  "attr:zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
14727
15408
  /** The zoom out button's label. */
14728
15409
  "prop:zoomOutLabel"?: (HelixMap["zoomOutLabel"]) | undefined;
14729
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
14730
- over, with `gestures="activate"`. */
14731
- "attr:activate-hint-label"?: (HelixMap["activateHintLabel"]) | undefined;
14732
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
14733
- over, with `gestures="activate"`. */
14734
- "prop:activateHintLabel"?: (HelixMap["activateHintLabel"]) | undefined;
14735
15410
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
14736
15411
  current, and the Face north button's needle turns with it. */
14737
15412
  "prop:bearing"?: (HelixMap["bearing"]) | undefined;
@@ -14746,19 +15421,6 @@ the map zooms in, and pressing one zooms in to its places. */
14746
15421
  "attr:flat-label"?: (HelixMap["flatLabel"]) | undefined;
14747
15422
  /** What screen readers hear when the map is tilted back to looking straight down. */
14748
15423
  "prop:flatLabel"?: (HelixMap["flatLabel"]) | undefined;
14749
- /** Which gestures the map takes from the page.
14750
-
14751
- - `always`, which unset is: the wheel zooms the map and one finger pans
14752
- it, for a map that is the page, such as a full-screen view.
14753
- - `cooperative`: the wheel and one finger scroll the page, and the map
14754
- takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
14755
- when a gesture passes to the page. Best for a map embedded in a page.
14756
- - `activate`: the map takes nothing until it is pressed, and gives it
14757
- back on Escape, when the pointer leaves it, or on a press elsewhere.
14758
-
14759
- The keyboard and the frame's buttons work in every mode. The renderer is
14760
- told through the connector, so MapLibre and Leaflet behave alike. */
14761
- "prop:gestures"?: (HelixMap["gestures"]) | undefined;
14762
15424
  /** The Hybrid map type's name. */
14763
15425
  "attr:hybrid-label"?: (HelixMap["hybridLabel"]) | undefined;
14764
15426
  /** The Hybrid map type's name. */
@@ -14840,22 +15502,6 @@ top of the map faces, clockwise from north. */
14840
15502
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
14841
15503
  top of the map faces, clockwise from north. */
14842
15504
  "prop:turnedLabel"?: (HelixMap["turnedLabel"]) | undefined;
14843
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
14844
- "attr:two-finger-hint-label"?: (HelixMap["twoFingerHintLabel"]) | undefined;
14845
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
14846
- "prop:twoFingerHintLabel"?: (HelixMap["twoFingerHintLabel"]) | undefined;
14847
- /** The line shown while a map with `gestures="activate"` has the gestures. */
14848
- "attr:using-label"?: (HelixMap["usingLabel"]) | undefined;
14849
- /** The line shown while a map with `gestures="activate"` has the gestures. */
14850
- "prop:usingLabel"?: (HelixMap["usingLabel"]) | undefined;
14851
- /** The hint shown when the wheel scrolls past a map with
14852
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
14853
- elsewhere, as the renderer reads it. */
14854
- "attr:wheel-hint-label"?: (HelixMap["wheelHintLabel"]) | undefined;
14855
- /** The hint shown when the wheel scrolls past a map with
14856
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
14857
- elsewhere, as the renderer reads it. */
14858
- "prop:wheelHintLabel"?: (HelixMap["wheelHintLabel"]) | undefined;
14859
15505
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
14860
15506
  "attr:zoomed-label"?: (HelixMap["zoomedLabel"]) | undefined;
14861
15507
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
@@ -28742,6 +29388,8 @@ export type CustomElements = {
28742
29388
  *
28743
29389
  * Framed is where it rests. Plain is for a board that fills a panel or an
28744
29390
  * app's working area, where the container is already the frame.
29391
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
29392
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
28745
29393
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
28746
29394
  * `none`. A family can add words of its own.
28747
29395
  *
@@ -28781,6 +29429,25 @@ export type CustomElements = {
28781
29429
  * resting value being an attribute's absence: a default that reflected
28782
29430
  * would write an attribute onto every host that no server sent.
28783
29431
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
29432
+ * - `gestures`: Which gestures the surface takes from the page.
29433
+ *
29434
+ * - `always`: the surface takes the wheel and one finger, for a surface
29435
+ * that is the page, such as a full-screen view. A map rests here.
29436
+ * - Unset is the family's own: `always` for a map, and for a board, a
29437
+ * drag and a pinch, with the plain wheel left to the page until the
29438
+ * board fills the screen.
29439
+ * - `cooperative`: the wheel and one finger scroll the page, and the
29440
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
29441
+ * says so when a gesture passes to the page. Best for a surface embedded
29442
+ * in a page.
29443
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
29444
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
29445
+ *
29446
+ * The keyboard and the frame's buttons work in every mode.
29447
+ *
29448
+ * **Unreflected and without a default**, because a default that reflected
29449
+ * would write an attribute onto every host that no server sent, and the
29450
+ * hydration that followed would disagree with it.
28784
29451
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
28785
29452
  *
28786
29453
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -28802,6 +29469,13 @@ export type CustomElements = {
28802
29469
  * scale of what is inside it: a quarter of the viewport is the same gesture
28803
29470
  * at any zoom, and a consumer who wants their own units multiplies by them.
28804
29471
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
29472
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
29473
+ * `gestures="cooperative"`. Absent is the family's own.
29474
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
29475
+ * gestures. Absent is the family's own.
29476
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
29477
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
29478
+ * elsewhere. Absent is the family's own.
28805
29479
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
28806
29480
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
28807
29481
  * - `comes-from-label`/`comesFromLabel`: The text read with a card to say where its connections come from, with `{cards}`.
@@ -28990,6 +29664,8 @@ export type CustomElements = {
28990
29664
  * - `edges`: The layer the connectors are drawn in.
28991
29665
  * - `footer`: The strip below the board.
28992
29666
  * - `fullscreen`: The button that makes the board fill the screen.
29667
+ * - `gesture-hint`: Words over the board for a moment when it lets a gesture pass to the page, such as how to zoom it.
29668
+ * - `gesture-status`: The line shown while a board with `gestures="activate"` has the gestures.
28993
29669
  * - `header`: The strip above the board.
28994
29670
  * - `label`: The label on a connector.
28995
29671
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
@@ -29015,6 +29691,8 @@ export type CustomElements = {
29015
29691
  * - `holding`: An item picked up with a click follows the pointer until the next press puts it down.
29016
29692
  * - `idle`: The user has been still for `idle-delay` milliseconds. The board's own controls stay; select on it to hide chrome of your own.
29017
29693
  * - `pressing`: While a press on the board, its cards or its connections is under way.
29694
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a board with `gestures="activate"` waits to be pressed.
29695
+ * - `using`: A board with `gestures="activate"` has been pressed and has the gestures.
29018
29696
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
29019
29697
  */
29020
29698
  "helix-canvas": Partial<
@@ -34788,6 +35466,258 @@ export type CustomElements = {
34788
35466
  HelixFormatDateProps & BaseProps<HelixFormatDate> & BaseEvents<HelixFormatDate>
34789
35467
  >;
34790
35468
 
35469
+ /**
35470
+ * The styled frame: the drawing with its zoom and fullscreen buttons, and the
35471
+ * list of notes beside it, which moves below the drawing where the frame is
35472
+ * narrower than 40rem. The selected note leads the list on a surface of its
35473
+ * own, and the notes linked to it are named by how they link.
35474
+ *
35475
+ * ## Attributes & Properties
35476
+ *
35477
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
35478
+ *
35479
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
35480
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
35481
+ * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
35482
+ * `none`. A family can add words of its own.
35483
+ *
35484
+ * **A list rather than a switch, because the overlap is not symmetric.** A
35485
+ * surface a consumer brings often has zoom controls of its own and almost
35486
+ * never has pan buttons, so a single switch would make them choose between
35487
+ * a duplicate and nothing.
35488
+ *
35489
+ * `none` draws none of them, which is the right answer where what was
35490
+ * slotted already has controls a reader can find: what this argues for is
35491
+ * that *a* findable control exists, never that it is ours. The methods stay
35492
+ * public either way, so a consumer drawing their own chrome can still drive
35493
+ * the surface.
35494
+ *
35495
+ * Absent is whatever the family rests at, which is this library's rule that
35496
+ * a resting value is an attribute's absence: zoom, the compass and
35497
+ * fullscreen for a map, whose pan buttons a page asks for, and zoom and
35498
+ * fullscreen for a board, which a reader drags and whose pad took a third
35499
+ * of the frame. The
35500
+ * stylesheet lays the cluster out by which buttons are in it rather than by
35501
+ * this attribute, so the two defaults need no rule each.
35502
+ * - `controls-label`/`controlsLabel`: The name of the group of controls, read by screen readers.
35503
+ *
35504
+ * Absent is the family's own name for it, "Map controls" or "Board
35505
+ * controls", which names what the controls drive rather than the
35506
+ * mechanism. Written here to say it in another language, which every other
35507
+ * string this surface speaks already allowed and this one did not.
35508
+ * - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
35509
+ *
35510
+ * **Configurable because there is no safe default**, which is a collision
35511
+ * rather than a taste: whatever a consumer slots may put its own controls
35512
+ * in any corner, and every library that draws some made this a setting for
35513
+ * the same reason.
35514
+ *
35515
+ * Logical corners rather than left and right, so a right-to-left page moves
35516
+ * them without a consumer writing a second rule. Absent is the top end, a
35517
+ * resting value being an attribute's absence: a default that reflected
35518
+ * would write an attribute onto every host that no server sent.
35519
+ * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
35520
+ * - `gestures`: Which gestures the surface takes from the page.
35521
+ *
35522
+ * - `always`: the surface takes the wheel and one finger, for a surface
35523
+ * that is the page, such as a full-screen view. A map rests here.
35524
+ * - Unset is the family's own: `always` for a map, and for a board, a
35525
+ * drag and a pinch, with the plain wheel left to the page until the
35526
+ * board fills the screen.
35527
+ * - `cooperative`: the wheel and one finger scroll the page, and the
35528
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
35529
+ * says so when a gesture passes to the page. Best for a surface embedded
35530
+ * in a page.
35531
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
35532
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
35533
+ *
35534
+ * The keyboard and the frame's buttons work in every mode.
35535
+ *
35536
+ * **Unreflected and without a default**, because a default that reflected
35537
+ * would write an attribute onto every host that no server sent, and the
35538
+ * hydration that followed would disagree with it.
35539
+ * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
35540
+ *
35541
+ * Zero keeps it up, which is the default: these controls are how a keyboard
35542
+ * reader operates the surface, and chrome that hid itself by default would
35543
+ * be the component undoing its own argument. Set it for a display nobody
35544
+ * drives.
35545
+ * - `pan-down-label`/`panDownLabel`: The pan down button's label.
35546
+ *
35547
+ * **A label for each way rather than one with the way filled in**, which is
35548
+ * what this was: `Pan {way}` filled in with `left`, so a page that said it
35549
+ * in French read out "Déplacer left". The word for a direction is as much
35550
+ * the translator's as the word for panning, and a language can put it
35551
+ * anywhere in the phrase.
35552
+ * - `pan-left-label`/`panLeftLabel`: The pan left button's label.
35553
+ * - `pan-right-label`/`panRightLabel`: The pan right button's label.
35554
+ * - `pan-step`/`panStep`: How far one press pans the view, as a fraction of its size.
35555
+ *
35556
+ * A fraction rather than a distance, because this surface does not know the
35557
+ * scale of what is inside it: a quarter of the viewport is the same gesture
35558
+ * at any zoom, and a consumer who wants their own units multiplies by them.
35559
+ * - `pan-up-label`/`panUpLabel`: The pan up button's label.
35560
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
35561
+ * `gestures="cooperative"`. Absent is the family's own.
35562
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
35563
+ * gestures. Absent is the family's own.
35564
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
35565
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
35566
+ * elsewhere. Absent is the family's own.
35567
+ * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
35568
+ * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
35569
+ * - `active`: The `value` of the current item.
35570
+ *
35571
+ * Not `option.active`, which is the option the keyboard is on: that is a
35572
+ * different question from which one is chosen.
35573
+ *
35574
+ * Writing always applies, so `<helix-tabs active="one">` starts on that
35575
+ * tab, and `default-active` is how markup says where to start without
35576
+ * naming the current one.
35577
+ * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
35578
+ *
35579
+ * Ignored once `active` is written.
35580
+ * - `count-label`/`countLabel`: What the list says of a note's count, with `{count}`.
35581
+ * - `depth`: How many links from the selected note to show, for its local graph. Unset
35582
+ * shows every note. The list holds what the drawing shows.
35583
+ * - `label`: The graph's name, read by screen readers, such as "Research notes".
35584
+ * Required.
35585
+ * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
35586
+ * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
35587
+ * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
35588
+ * - `notes-label`/`notesLabel`: The list's name, read by screen readers.
35589
+ * - `search-label`/`searchLabel`: The search field's name.
35590
+ * - `selected-label`/`selectedLabel`: How the selected note is described in the list.
35591
+ * - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
35592
+ * - `nodes`: The notes. A property, never an attribute. (property only)
35593
+ * - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
35594
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
35595
+ *
35596
+ * **Named `whenSettled` because `settled` is taken four times over**, by
35597
+ * Image, Splitter and both color controls, none of them about transitions. A
35598
+ * base class takes the name every subclass then cannot use.
35599
+ *
35600
+ * **The state it reports cannot be watched, which is why this exists.** A
35601
+ * custom state is deliberately not in the DOM, so there is no
35602
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
35603
+ * instead.
35604
+ *
35605
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
35606
+ * the suppression is still active in. That is the distinction `readyToMove`
35607
+ * in `@fusion.dev/helix-testing` is written around.
35608
+ *
35609
+ * It never resolves where `requestAnimationFrame` never fires, which is a
35610
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
35611
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
35612
+ * browser harness's awaits it alone: a browser always runs the frame, and a
35613
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
35614
+ *
35615
+ * ## Events
35616
+ *
35617
+ * Events that will be emitted by the component.
35618
+ *
35619
+ * - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
35620
+ * - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
35621
+ * - `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`.
35622
+ * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
35623
+ * - `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.
35624
+ * - `helix-graph-ready`: The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not.
35625
+ * - `helix-graph-zoom`: A zoom button or key was pressed. `connectGraph` zooms the drawing.
35626
+ *
35627
+ * ## Slots
35628
+ *
35629
+ * Areas where markup can be added to the component.
35630
+ *
35631
+ * - `(default)`: The renderer's box, which the drawing is made in.
35632
+ * - `filter-icon`: The icon in the search field. Defaults to a magnifying glass.
35633
+ * - `footer`: Content below the graph.
35634
+ * - `header`: Content above the graph.
35635
+ *
35636
+ * ## Methods
35637
+ *
35638
+ * Methods that can be called to access component functionality.
35639
+ *
35640
+ * - `pan(to: ViewportWay) => void`: Pans the view one step in a direction.
35641
+ * - `zoom(by: number) => void`: Zooms the view one step: `1` zooms in and `-1` zooms out.
35642
+ * - `toggleFullscreen() => void`: Turns fullscreen on or off.
35643
+ * - `requestActive(next: string) => boolean`: Requests a new current item, and returns whether the change was applied.
35644
+ *
35645
+ * Announces before it acts, so `preventDefault()` on the `helix-before-activate` is
35646
+ * a refusal and nothing moves. Unlike a native control, nothing has moved
35647
+ * by the time this runs, so refusing is simply not writing: there is
35648
+ * nothing to put back. Nobody refusing means the set updates itself,
35649
+ * whether or not a consumer declared `active`, a declared property being a
35650
+ * seed and a correction.
35651
+ * - `drawn(whole = true) => void`: Says the graph has been drawn whole, or with `false`, that it no longer
35652
+ * is. Called by `connectGraph` once its layout has settled; a page drawing
35653
+ * its own graph calls it when that graph is finished. The first call after
35654
+ * the graph was not drawn sends `helix-graph-ready` and turns on
35655
+ * `:state(ready)`.
35656
+ * - `laidOut(positions: Record<string, { x: number; y: number }>) => void`: Says where a layout put each note, by its `id`: sends
35657
+ * `helix-graph-layout` for the page to keep. Called by `connectGraph` once
35658
+ * its layout has settled; a page laying out its own graph calls it the same
35659
+ * way.
35660
+ *
35661
+ * ## CSS Custom Properties
35662
+ *
35663
+ * CSS variables available for styling the component.
35664
+ *
35665
+ * - `--graph-background-color`: The color behind the drawing while it loads. (default: `undefined`)
35666
+ * - `--graph-block-size`: The frame's height, as a length. (default: `undefined`)
35667
+ * - `--graph-border-color`: The frame's border color. (default: `undefined`)
35668
+ * - `--graph-panel-size`: The list's width beside the drawing. (default: `undefined`)
35669
+ * - `--viewport-control-background-color`: The background of the zoom and fullscreen buttons. Map and Canvas use the same property. (default: `undefined`)
35670
+ *
35671
+ * ## CSS Parts
35672
+ *
35673
+ * Custom selectors for styling elements within the component.
35674
+ *
35675
+ * - `after`: The room the notes after those drawn would take, so the list scrolls its whole length.
35676
+ * - `before`: The room the notes before those drawn would take.
35677
+ * - `body`: The drawing beside the list, or above it where the frame is narrow.
35678
+ * - `controls`: The group the pan and zoom buttons sit in.
35679
+ * - `count`: How many notes the list holds, which a search narrows, at the end of the search bar.
35680
+ * - `filter-icon`: The icon beside the search field.
35681
+ * - `filter-mark`: The default icon beside the search field, shown when none is slotted.
35682
+ * - `footer`: The strip below the graph.
35683
+ * - `fullscreen`: The button that makes the graph fill the screen.
35684
+ * - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
35685
+ * - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
35686
+ * - `header`: The strip above the graph.
35687
+ * - `list`: The list of notes, which draws only the rows in view.
35688
+ * - `live`: What screen readers hear when a search changes how many notes there are.
35689
+ * - `note`: One note in the list.
35690
+ * - `note-cursor`: The note the keyboard is on in the list.
35691
+ * - `note-linked`: A note linked to or from the selected one.
35692
+ * - `note-name`: A note's name in the list.
35693
+ * - `note-relation`: How a note stands to the selected one, such as "Linked from Alpha".
35694
+ * - `note-selected`: The selected note, first in the list.
35695
+ * - `pan-down`: The button that moves the graph down.
35696
+ * - `pan-end`: The button that moves the graph toward the end of a line of text: right in English.
35697
+ * - `pan-start`: The button that moves the graph toward the start of a line of text: left in English.
35698
+ * - `pan-up`: The button that moves the graph up.
35699
+ * - `panel`: The search field and the list, beside the drawing or below it.
35700
+ * - `region`: The frame: the drawing, its controls and the list.
35701
+ * - `search`: The bar holding the icon, the search field and the count.
35702
+ * - `search-field`: The field that finds a note by its name.
35703
+ * - `stage`: The drawing and its controls.
35704
+ * - `viewport`: The box the renderer draws in.
35705
+ * - `zoom-in`: The zoom in button.
35706
+ * - `zoom-out`: The zoom out button.
35707
+ *
35708
+ * ## CSS States
35709
+ *
35710
+ * These can be used to apply styling when a component is in a given state.
35711
+ *
35712
+ * - `fullscreen`: The graph fills the screen.
35713
+ * - `idle`: The user has been still long enough for the header and footer to fade.
35714
+ * - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
35715
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
35716
+ * - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
35717
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
35718
+ */
35719
+ "helix-graph": Partial<HelixGraphProps & BaseProps<HelixGraph> & BaseEvents<HelixGraph>>;
35720
+
34791
35721
  /**
34792
35722
  * Set columns in one of two ways:
34793
35723
  *
@@ -37711,6 +38641,8 @@ export type CustomElements = {
37711
38641
  * - `material`: The background of the pan and zoom buttons. Leave unset for solid. `glass`
37712
38642
  * shows the map through a blur, `frosted` blurs more, and `transparent` has
37713
38643
  * no background. Your theme sets how see-through each one is.
38644
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
38645
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
37714
38646
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
37715
38647
  * `none`. A family can add words of its own.
37716
38648
  *
@@ -37750,6 +38682,25 @@ export type CustomElements = {
37750
38682
  * resting value being an attribute's absence: a default that reflected
37751
38683
  * would write an attribute onto every host that no server sent.
37752
38684
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
38685
+ * - `gestures`: Which gestures the surface takes from the page.
38686
+ *
38687
+ * - `always`: the surface takes the wheel and one finger, for a surface
38688
+ * that is the page, such as a full-screen view. A map rests here.
38689
+ * - Unset is the family's own: `always` for a map, and for a board, a
38690
+ * drag and a pinch, with the plain wheel left to the page until the
38691
+ * board fills the screen.
38692
+ * - `cooperative`: the wheel and one finger scroll the page, and the
38693
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
38694
+ * says so when a gesture passes to the page. Best for a surface embedded
38695
+ * in a page.
38696
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
38697
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
38698
+ *
38699
+ * The keyboard and the frame's buttons work in every mode.
38700
+ *
38701
+ * **Unreflected and without a default**, because a default that reflected
38702
+ * would write an attribute onto every host that no server sent, and the
38703
+ * hydration that followed would disagree with it.
37753
38704
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
37754
38705
  *
37755
38706
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -37771,28 +38722,21 @@ export type CustomElements = {
37771
38722
  * scale of what is inside it: a quarter of the viewport is the same gesture
37772
38723
  * at any zoom, and a consumer who wants their own units multiplies by them.
37773
38724
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
38725
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
38726
+ * `gestures="cooperative"`. Absent is the family's own.
38727
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
38728
+ * gestures. Absent is the family's own.
38729
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
38730
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
38731
+ * elsewhere. Absent is the family's own.
37774
38732
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
37775
38733
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
37776
- * - `activate-hint-label`/`activateHintLabel`: The hint shown when a map waiting to be pressed is scrolled or swiped
37777
- * over, with `gestures="activate"`.
37778
38734
  * - `bearing`: The map's rotation, in degrees clockwise from north. `connectMap` keeps it
37779
38735
  * current, and the Face north button's needle turns with it.
37780
38736
  * - `cluster`: Combines markers that would overlap into one count. Counts split apart as
37781
38737
  * the map zooms in, and pressing one zooms in to its places.
37782
38738
  * - `face-north-label`/`faceNorthLabel`: The Face north button's label.
37783
38739
  * - `flat-label`/`flatLabel`: What screen readers hear when the map is tilted back to looking straight down.
37784
- * - `gestures`: Which gestures the map takes from the page.
37785
- *
37786
- * - `always`, which unset is: the wheel zooms the map and one finger pans
37787
- * it, for a map that is the page, such as a full-screen view.
37788
- * - `cooperative`: the wheel and one finger scroll the page, and the map
37789
- * takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
37790
- * when a gesture passes to the page. Best for a map embedded in a page.
37791
- * - `activate`: the map takes nothing until it is pressed, and gives it
37792
- * back on Escape, when the pointer leaves it, or on a press elsewhere.
37793
- *
37794
- * The keyboard and the frame's buttons work in every mode. The renderer is
37795
- * told through the connector, so MapLibre and Leaflet behave alike.
37796
38740
  * - `hybrid-label`/`hybridLabel`: The Hybrid map type's name.
37797
38741
  * - `label`: The map's name, read by screen readers. Name the place, such as "Delivery
37798
38742
  * area", so that several maps on one page can be told apart. Required.
@@ -37819,11 +38763,6 @@ export type CustomElements = {
37819
38763
  * - `tilt-label`/`tiltLabel`: The 3D button's label.
37820
38764
  * - `turned-label`/`turnedLabel`: What screen readers hear when the map is turned. `{degrees}` is the way the
37821
38765
  * top of the map faces, clockwise from north.
37822
- * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a map with `gestures="cooperative"`.
37823
- * - `using-label`/`usingLabel`: The line shown while a map with `gestures="activate"` has the gestures.
37824
- * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a map with
37825
- * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
37826
- * elsewhere, as the renderer reads it.
37827
38766
  * - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom. `{level}` is the zoom level.
37828
38767
  * - `zoom-level`/`zoomLevel`: How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
37829
38768
  * current, and the map says it after a zoom.
@@ -37962,6 +38901,7 @@ export type CustomElements = {
37962
38901
  * - `fullscreen`: The map fills the screen.
37963
38902
  * - `idle`: The user has been still long enough for the header and footer to fade.
37964
38903
  * - `ready`: The map has been drawn whole, after `helix-map-ready`.
38904
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a map with `gestures="activate"` waits to be pressed.
37965
38905
  * - `using`: A map with `gestures="activate"` has been pressed and has the gestures.
37966
38906
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
37967
38907
  */
@@ -50627,6 +51567,8 @@ export type CustomElementsSolidJs = {
50627
51567
  *
50628
51568
  * Framed is where it rests. Plain is for a board that fills a panel or an
50629
51569
  * app's working area, where the container is already the frame.
51570
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
51571
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
50630
51572
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
50631
51573
  * `none`. A family can add words of its own.
50632
51574
  *
@@ -50666,6 +51608,25 @@ export type CustomElementsSolidJs = {
50666
51608
  * resting value being an attribute's absence: a default that reflected
50667
51609
  * would write an attribute onto every host that no server sent.
50668
51610
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
51611
+ * - `gestures`: Which gestures the surface takes from the page.
51612
+ *
51613
+ * - `always`: the surface takes the wheel and one finger, for a surface
51614
+ * that is the page, such as a full-screen view. A map rests here.
51615
+ * - Unset is the family's own: `always` for a map, and for a board, a
51616
+ * drag and a pinch, with the plain wheel left to the page until the
51617
+ * board fills the screen.
51618
+ * - `cooperative`: the wheel and one finger scroll the page, and the
51619
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
51620
+ * says so when a gesture passes to the page. Best for a surface embedded
51621
+ * in a page.
51622
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
51623
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
51624
+ *
51625
+ * The keyboard and the frame's buttons work in every mode.
51626
+ *
51627
+ * **Unreflected and without a default**, because a default that reflected
51628
+ * would write an attribute onto every host that no server sent, and the
51629
+ * hydration that followed would disagree with it.
50669
51630
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
50670
51631
  *
50671
51632
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -50687,6 +51648,13 @@ export type CustomElementsSolidJs = {
50687
51648
  * scale of what is inside it: a quarter of the viewport is the same gesture
50688
51649
  * at any zoom, and a consumer who wants their own units multiplies by them.
50689
51650
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
51651
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
51652
+ * `gestures="cooperative"`. Absent is the family's own.
51653
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
51654
+ * gestures. Absent is the family's own.
51655
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
51656
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
51657
+ * elsewhere. Absent is the family's own.
50690
51658
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
50691
51659
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
50692
51660
  * - `comes-from-label`/`comesFromLabel`: The text read with a card to say where its connections come from, with `{cards}`.
@@ -50875,6 +51843,8 @@ export type CustomElementsSolidJs = {
50875
51843
  * - `edges`: The layer the connectors are drawn in.
50876
51844
  * - `footer`: The strip below the board.
50877
51845
  * - `fullscreen`: The button that makes the board fill the screen.
51846
+ * - `gesture-hint`: Words over the board for a moment when it lets a gesture pass to the page, such as how to zoom it.
51847
+ * - `gesture-status`: The line shown while a board with `gestures="activate"` has the gestures.
50878
51848
  * - `header`: The strip above the board.
50879
51849
  * - `label`: The label on a connector.
50880
51850
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
@@ -50900,6 +51870,8 @@ export type CustomElementsSolidJs = {
50900
51870
  * - `holding`: An item picked up with a click follows the pointer until the next press puts it down.
50901
51871
  * - `idle`: The user has been still for `idle-delay` milliseconds. The board's own controls stay; select on it to hide chrome of your own.
50902
51872
  * - `pressing`: While a press on the board, its cards or its connections is under way.
51873
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a board with `gestures="activate"` waits to be pressed.
51874
+ * - `using`: A board with `gestures="activate"` has been pressed and has the gestures.
50903
51875
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
50904
51876
  */
50905
51877
  "helix-canvas": Partial<
@@ -56774,6 +57746,263 @@ export type CustomElementsSolidJs = {
56774
57746
  BaseEvents<HelixFormatDate>
56775
57747
  >;
56776
57748
 
57749
+ /**
57750
+ * The styled frame: the drawing with its zoom and fullscreen buttons, and the
57751
+ * list of notes beside it, which moves below the drawing where the frame is
57752
+ * narrower than 40rem. The selected note leads the list on a surface of its
57753
+ * own, and the notes linked to it are named by how they link.
57754
+ *
57755
+ * ## Attributes & Properties
57756
+ *
57757
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
57758
+ *
57759
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
57760
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
57761
+ * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
57762
+ * `none`. A family can add words of its own.
57763
+ *
57764
+ * **A list rather than a switch, because the overlap is not symmetric.** A
57765
+ * surface a consumer brings often has zoom controls of its own and almost
57766
+ * never has pan buttons, so a single switch would make them choose between
57767
+ * a duplicate and nothing.
57768
+ *
57769
+ * `none` draws none of them, which is the right answer where what was
57770
+ * slotted already has controls a reader can find: what this argues for is
57771
+ * that *a* findable control exists, never that it is ours. The methods stay
57772
+ * public either way, so a consumer drawing their own chrome can still drive
57773
+ * the surface.
57774
+ *
57775
+ * Absent is whatever the family rests at, which is this library's rule that
57776
+ * a resting value is an attribute's absence: zoom, the compass and
57777
+ * fullscreen for a map, whose pan buttons a page asks for, and zoom and
57778
+ * fullscreen for a board, which a reader drags and whose pad took a third
57779
+ * of the frame. The
57780
+ * stylesheet lays the cluster out by which buttons are in it rather than by
57781
+ * this attribute, so the two defaults need no rule each.
57782
+ * - `controls-label`/`controlsLabel`: The name of the group of controls, read by screen readers.
57783
+ *
57784
+ * Absent is the family's own name for it, "Map controls" or "Board
57785
+ * controls", which names what the controls drive rather than the
57786
+ * mechanism. Written here to say it in another language, which every other
57787
+ * string this surface speaks already allowed and this one did not.
57788
+ * - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
57789
+ *
57790
+ * **Configurable because there is no safe default**, which is a collision
57791
+ * rather than a taste: whatever a consumer slots may put its own controls
57792
+ * in any corner, and every library that draws some made this a setting for
57793
+ * the same reason.
57794
+ *
57795
+ * Logical corners rather than left and right, so a right-to-left page moves
57796
+ * them without a consumer writing a second rule. Absent is the top end, a
57797
+ * resting value being an attribute's absence: a default that reflected
57798
+ * would write an attribute onto every host that no server sent.
57799
+ * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
57800
+ * - `gestures`: Which gestures the surface takes from the page.
57801
+ *
57802
+ * - `always`: the surface takes the wheel and one finger, for a surface
57803
+ * that is the page, such as a full-screen view. A map rests here.
57804
+ * - Unset is the family's own: `always` for a map, and for a board, a
57805
+ * drag and a pinch, with the plain wheel left to the page until the
57806
+ * board fills the screen.
57807
+ * - `cooperative`: the wheel and one finger scroll the page, and the
57808
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
57809
+ * says so when a gesture passes to the page. Best for a surface embedded
57810
+ * in a page.
57811
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
57812
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
57813
+ *
57814
+ * The keyboard and the frame's buttons work in every mode.
57815
+ *
57816
+ * **Unreflected and without a default**, because a default that reflected
57817
+ * would write an attribute onto every host that no server sent, and the
57818
+ * hydration that followed would disagree with it.
57819
+ * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
57820
+ *
57821
+ * Zero keeps it up, which is the default: these controls are how a keyboard
57822
+ * reader operates the surface, and chrome that hid itself by default would
57823
+ * be the component undoing its own argument. Set it for a display nobody
57824
+ * drives.
57825
+ * - `pan-down-label`/`panDownLabel`: The pan down button's label.
57826
+ *
57827
+ * **A label for each way rather than one with the way filled in**, which is
57828
+ * what this was: `Pan {way}` filled in with `left`, so a page that said it
57829
+ * in French read out "Déplacer left". The word for a direction is as much
57830
+ * the translator's as the word for panning, and a language can put it
57831
+ * anywhere in the phrase.
57832
+ * - `pan-left-label`/`panLeftLabel`: The pan left button's label.
57833
+ * - `pan-right-label`/`panRightLabel`: The pan right button's label.
57834
+ * - `pan-step`/`panStep`: How far one press pans the view, as a fraction of its size.
57835
+ *
57836
+ * A fraction rather than a distance, because this surface does not know the
57837
+ * scale of what is inside it: a quarter of the viewport is the same gesture
57838
+ * at any zoom, and a consumer who wants their own units multiplies by them.
57839
+ * - `pan-up-label`/`panUpLabel`: The pan up button's label.
57840
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
57841
+ * `gestures="cooperative"`. Absent is the family's own.
57842
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
57843
+ * gestures. Absent is the family's own.
57844
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
57845
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
57846
+ * elsewhere. Absent is the family's own.
57847
+ * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
57848
+ * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
57849
+ * - `active`: The `value` of the current item.
57850
+ *
57851
+ * Not `option.active`, which is the option the keyboard is on: that is a
57852
+ * different question from which one is chosen.
57853
+ *
57854
+ * Writing always applies, so `<helix-tabs active="one">` starts on that
57855
+ * tab, and `default-active` is how markup says where to start without
57856
+ * naming the current one.
57857
+ * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
57858
+ *
57859
+ * Ignored once `active` is written.
57860
+ * - `count-label`/`countLabel`: What the list says of a note's count, with `{count}`.
57861
+ * - `depth`: How many links from the selected note to show, for its local graph. Unset
57862
+ * shows every note. The list holds what the drawing shows.
57863
+ * - `label`: The graph's name, read by screen readers, such as "Research notes".
57864
+ * Required.
57865
+ * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
57866
+ * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
57867
+ * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
57868
+ * - `notes-label`/`notesLabel`: The list's name, read by screen readers.
57869
+ * - `search-label`/`searchLabel`: The search field's name.
57870
+ * - `selected-label`/`selectedLabel`: How the selected note is described in the list.
57871
+ * - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
57872
+ * - `nodes`: The notes. A property, never an attribute. (property only)
57873
+ * - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
57874
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
57875
+ *
57876
+ * **Named `whenSettled` because `settled` is taken four times over**, by
57877
+ * Image, Splitter and both color controls, none of them about transitions. A
57878
+ * base class takes the name every subclass then cannot use.
57879
+ *
57880
+ * **The state it reports cannot be watched, which is why this exists.** A
57881
+ * custom state is deliberately not in the DOM, so there is no
57882
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
57883
+ * instead.
57884
+ *
57885
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
57886
+ * the suppression is still active in. That is the distinction `readyToMove`
57887
+ * in `@fusion.dev/helix-testing` is written around.
57888
+ *
57889
+ * It never resolves where `requestAnimationFrame` never fires, which is a
57890
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
57891
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
57892
+ * browser harness's awaits it alone: a browser always runs the frame, and a
57893
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
57894
+ *
57895
+ * ## Events
57896
+ *
57897
+ * Events that will be emitted by the component.
57898
+ *
57899
+ * - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
57900
+ * - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
57901
+ * - `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`.
57902
+ * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
57903
+ * - `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.
57904
+ * - `helix-graph-ready`: The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not.
57905
+ * - `helix-graph-zoom`: A zoom button or key was pressed. `connectGraph` zooms the drawing.
57906
+ *
57907
+ * ## Slots
57908
+ *
57909
+ * Areas where markup can be added to the component.
57910
+ *
57911
+ * - `(default)`: The renderer's box, which the drawing is made in.
57912
+ * - `filter-icon`: The icon in the search field. Defaults to a magnifying glass.
57913
+ * - `footer`: Content below the graph.
57914
+ * - `header`: Content above the graph.
57915
+ *
57916
+ * ## Methods
57917
+ *
57918
+ * Methods that can be called to access component functionality.
57919
+ *
57920
+ * - `pan(to: ViewportWay) => void`: Pans the view one step in a direction.
57921
+ * - `zoom(by: number) => void`: Zooms the view one step: `1` zooms in and `-1` zooms out.
57922
+ * - `toggleFullscreen() => void`: Turns fullscreen on or off.
57923
+ * - `requestActive(next: string) => boolean`: Requests a new current item, and returns whether the change was applied.
57924
+ *
57925
+ * Announces before it acts, so `preventDefault()` on the `helix-before-activate` is
57926
+ * a refusal and nothing moves. Unlike a native control, nothing has moved
57927
+ * by the time this runs, so refusing is simply not writing: there is
57928
+ * nothing to put back. Nobody refusing means the set updates itself,
57929
+ * whether or not a consumer declared `active`, a declared property being a
57930
+ * seed and a correction.
57931
+ * - `drawn(whole = true) => void`: Says the graph has been drawn whole, or with `false`, that it no longer
57932
+ * is. Called by `connectGraph` once its layout has settled; a page drawing
57933
+ * its own graph calls it when that graph is finished. The first call after
57934
+ * the graph was not drawn sends `helix-graph-ready` and turns on
57935
+ * `:state(ready)`.
57936
+ * - `laidOut(positions: Record<string, { x: number; y: number }>) => void`: Says where a layout put each note, by its `id`: sends
57937
+ * `helix-graph-layout` for the page to keep. Called by `connectGraph` once
57938
+ * its layout has settled; a page laying out its own graph calls it the same
57939
+ * way.
57940
+ *
57941
+ * ## CSS Custom Properties
57942
+ *
57943
+ * CSS variables available for styling the component.
57944
+ *
57945
+ * - `--graph-background-color`: The color behind the drawing while it loads. (default: `undefined`)
57946
+ * - `--graph-block-size`: The frame's height, as a length. (default: `undefined`)
57947
+ * - `--graph-border-color`: The frame's border color. (default: `undefined`)
57948
+ * - `--graph-panel-size`: The list's width beside the drawing. (default: `undefined`)
57949
+ * - `--viewport-control-background-color`: The background of the zoom and fullscreen buttons. Map and Canvas use the same property. (default: `undefined`)
57950
+ *
57951
+ * ## CSS Parts
57952
+ *
57953
+ * Custom selectors for styling elements within the component.
57954
+ *
57955
+ * - `after`: The room the notes after those drawn would take, so the list scrolls its whole length.
57956
+ * - `before`: The room the notes before those drawn would take.
57957
+ * - `body`: The drawing beside the list, or above it where the frame is narrow.
57958
+ * - `controls`: The group the pan and zoom buttons sit in.
57959
+ * - `count`: How many notes the list holds, which a search narrows, at the end of the search bar.
57960
+ * - `filter-icon`: The icon beside the search field.
57961
+ * - `filter-mark`: The default icon beside the search field, shown when none is slotted.
57962
+ * - `footer`: The strip below the graph.
57963
+ * - `fullscreen`: The button that makes the graph fill the screen.
57964
+ * - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
57965
+ * - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
57966
+ * - `header`: The strip above the graph.
57967
+ * - `list`: The list of notes, which draws only the rows in view.
57968
+ * - `live`: What screen readers hear when a search changes how many notes there are.
57969
+ * - `note`: One note in the list.
57970
+ * - `note-cursor`: The note the keyboard is on in the list.
57971
+ * - `note-linked`: A note linked to or from the selected one.
57972
+ * - `note-name`: A note's name in the list.
57973
+ * - `note-relation`: How a note stands to the selected one, such as "Linked from Alpha".
57974
+ * - `note-selected`: The selected note, first in the list.
57975
+ * - `pan-down`: The button that moves the graph down.
57976
+ * - `pan-end`: The button that moves the graph toward the end of a line of text: right in English.
57977
+ * - `pan-start`: The button that moves the graph toward the start of a line of text: left in English.
57978
+ * - `pan-up`: The button that moves the graph up.
57979
+ * - `panel`: The search field and the list, beside the drawing or below it.
57980
+ * - `region`: The frame: the drawing, its controls and the list.
57981
+ * - `search`: The bar holding the icon, the search field and the count.
57982
+ * - `search-field`: The field that finds a note by its name.
57983
+ * - `stage`: The drawing and its controls.
57984
+ * - `viewport`: The box the renderer draws in.
57985
+ * - `zoom-in`: The zoom in button.
57986
+ * - `zoom-out`: The zoom out button.
57987
+ *
57988
+ * ## CSS States
57989
+ *
57990
+ * These can be used to apply styling when a component is in a given state.
57991
+ *
57992
+ * - `fullscreen`: The graph fills the screen.
57993
+ * - `idle`: The user has been still long enough for the header and footer to fade.
57994
+ * - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
57995
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
57996
+ * - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
57997
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
57998
+ */
57999
+ "helix-graph": Partial<
58000
+ HelixGraphProps &
58001
+ HelixGraphSolidJsProps &
58002
+ BaseProps<HelixGraph> &
58003
+ BaseEvents<HelixGraph>
58004
+ >;
58005
+
56777
58006
  /**
56778
58007
  * Set columns in one of two ways:
56779
58008
  *
@@ -59766,6 +60995,8 @@ export type CustomElementsSolidJs = {
59766
60995
  * - `material`: The background of the pan and zoom buttons. Leave unset for solid. `glass`
59767
60996
  * shows the map through a blur, `frosted` blurs more, and `transparent` has
59768
60997
  * no background. Your theme sets how see-through each one is.
60998
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
60999
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
59769
61000
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
59770
61001
  * `none`. A family can add words of its own.
59771
61002
  *
@@ -59805,6 +61036,25 @@ export type CustomElementsSolidJs = {
59805
61036
  * resting value being an attribute's absence: a default that reflected
59806
61037
  * would write an attribute onto every host that no server sent.
59807
61038
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
61039
+ * - `gestures`: Which gestures the surface takes from the page.
61040
+ *
61041
+ * - `always`: the surface takes the wheel and one finger, for a surface
61042
+ * that is the page, such as a full-screen view. A map rests here.
61043
+ * - Unset is the family's own: `always` for a map, and for a board, a
61044
+ * drag and a pinch, with the plain wheel left to the page until the
61045
+ * board fills the screen.
61046
+ * - `cooperative`: the wheel and one finger scroll the page, and the
61047
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
61048
+ * says so when a gesture passes to the page. Best for a surface embedded
61049
+ * in a page.
61050
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
61051
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
61052
+ *
61053
+ * The keyboard and the frame's buttons work in every mode.
61054
+ *
61055
+ * **Unreflected and without a default**, because a default that reflected
61056
+ * would write an attribute onto every host that no server sent, and the
61057
+ * hydration that followed would disagree with it.
59808
61058
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
59809
61059
  *
59810
61060
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -59826,28 +61076,21 @@ export type CustomElementsSolidJs = {
59826
61076
  * scale of what is inside it: a quarter of the viewport is the same gesture
59827
61077
  * at any zoom, and a consumer who wants their own units multiplies by them.
59828
61078
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
61079
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
61080
+ * `gestures="cooperative"`. Absent is the family's own.
61081
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
61082
+ * gestures. Absent is the family's own.
61083
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
61084
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
61085
+ * elsewhere. Absent is the family's own.
59829
61086
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
59830
61087
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
59831
- * - `activate-hint-label`/`activateHintLabel`: The hint shown when a map waiting to be pressed is scrolled or swiped
59832
- * over, with `gestures="activate"`.
59833
61088
  * - `bearing`: The map's rotation, in degrees clockwise from north. `connectMap` keeps it
59834
61089
  * current, and the Face north button's needle turns with it.
59835
61090
  * - `cluster`: Combines markers that would overlap into one count. Counts split apart as
59836
61091
  * the map zooms in, and pressing one zooms in to its places.
59837
61092
  * - `face-north-label`/`faceNorthLabel`: The Face north button's label.
59838
61093
  * - `flat-label`/`flatLabel`: What screen readers hear when the map is tilted back to looking straight down.
59839
- * - `gestures`: Which gestures the map takes from the page.
59840
- *
59841
- * - `always`, which unset is: the wheel zooms the map and one finger pans
59842
- * it, for a map that is the page, such as a full-screen view.
59843
- * - `cooperative`: the wheel and one finger scroll the page, and the map
59844
- * takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
59845
- * when a gesture passes to the page. Best for a map embedded in a page.
59846
- * - `activate`: the map takes nothing until it is pressed, and gives it
59847
- * back on Escape, when the pointer leaves it, or on a press elsewhere.
59848
- *
59849
- * The keyboard and the frame's buttons work in every mode. The renderer is
59850
- * told through the connector, so MapLibre and Leaflet behave alike.
59851
61094
  * - `hybrid-label`/`hybridLabel`: The Hybrid map type's name.
59852
61095
  * - `label`: The map's name, read by screen readers. Name the place, such as "Delivery
59853
61096
  * area", so that several maps on one page can be told apart. Required.
@@ -59874,11 +61117,6 @@ export type CustomElementsSolidJs = {
59874
61117
  * - `tilt-label`/`tiltLabel`: The 3D button's label.
59875
61118
  * - `turned-label`/`turnedLabel`: What screen readers hear when the map is turned. `{degrees}` is the way the
59876
61119
  * top of the map faces, clockwise from north.
59877
- * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a map with `gestures="cooperative"`.
59878
- * - `using-label`/`usingLabel`: The line shown while a map with `gestures="activate"` has the gestures.
59879
- * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a map with
59880
- * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
59881
- * elsewhere, as the renderer reads it.
59882
61120
  * - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom. `{level}` is the zoom level.
59883
61121
  * - `zoom-level`/`zoomLevel`: How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
59884
61122
  * current, and the map says it after a zoom.
@@ -60017,6 +61255,7 @@ export type CustomElementsSolidJs = {
60017
61255
  * - `fullscreen`: The map fills the screen.
60018
61256
  * - `idle`: The user has been still long enough for the header and footer to fade.
60019
61257
  * - `ready`: The map has been drawn whole, after `helix-map-ready`.
61258
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a map with `gestures="activate"` waits to be pressed.
60020
61259
  * - `using`: A map with `gestures="activate"` has been pressed and has the gestures.
60021
61260
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
60022
61261
  */
@@ -70948,6 +72187,14 @@ export type CustomCssProperties = {
70948
72187
  "--filter-input-shadow"?: (string) | undefined;
70949
72188
  /** The height of the empty field. The field grows from this height. */
70950
72189
  "--filter-input-size"?: (string) | undefined;
72190
+ /** The color behind the drawing while it loads. */
72191
+ "--graph-background-color"?: (string) | undefined;
72192
+ /** The frame's height, as a length. */
72193
+ "--graph-block-size"?: (string) | undefined;
72194
+ /** The frame's border color. */
72195
+ "--graph-border-color"?: (string) | undefined;
72196
+ /** The list's width beside the drawing. */
72197
+ "--graph-panel-size"?: (string) | undefined;
70951
72198
  /** An explicit track list. It overrides `min` and `columns`. Use it for tracks of unequal widths, which neither attribute can set. */
70952
72199
  "--grid-columns"?: (string) | undefined;
70953
72200
  /** How tall a cell is. One row of tall, narrow cells looks like a status page. */