@fusion.dev/helix-headless 0.116.0 → 0.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/jsx.d.ts CHANGED
@@ -36,6 +36,11 @@ import type {
36
36
  HelixFacetEvent,
37
37
  HelixFilterEvent,
38
38
  HelixFormElement,
39
+ HelixGraphLayoutEvent,
40
+ HelixGraphPanEvent,
41
+ HelixGraphPartChangeEvent,
42
+ HelixGraphReadyEvent,
43
+ HelixGraphZoomEvent,
39
44
  HelixHeadlessAccordion,
40
45
  HelixHeadlessAccordionItem,
41
46
  HelixHeadlessAnnouncement,
@@ -87,6 +92,7 @@ import type {
87
92
  HelixHeadlessFilterMenu,
88
93
  HelixHeadlessFilterOperator,
89
94
  HelixHeadlessFormatDate,
95
+ HelixHeadlessGraph,
90
96
  HelixHeadlessHeatmap,
91
97
  HelixHeadlessIcon,
92
98
  HelixHeadlessIconButton,
@@ -2261,6 +2267,12 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
2261
2267
  see the board is told by the color; this is how a reader who cannot is
2262
2268
  told the same. A tone left out is not read. */
2263
2269
  toneLabels?: (HelixHeadlessCanvas["toneLabels"]) | undefined;
2270
+ /** The hint shown when a surface waiting to be pressed is scrolled or
2271
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
2272
+ "activate-hint-label"?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
2273
+ /** The hint shown when a surface waiting to be pressed is scrolled or
2274
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
2275
+ activateHintLabel?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
2264
2276
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
2265
2277
  `none`. A family can add words of its own.
2266
2278
 
@@ -2325,6 +2337,26 @@ would write an attribute onto every host that no server sent. */
2325
2337
  "fullscreen-label"?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
2326
2338
  /** The fullscreen button's label. */
2327
2339
  fullscreenLabel?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
2340
+ /** Which gestures the surface takes from the page.
2341
+
2342
+ - `always`: the surface takes the wheel and one finger, for a surface
2343
+ that is the page, such as a full-screen view. A map rests here.
2344
+ - Unset is the family's own: `always` for a map, and for a board, a
2345
+ drag and a pinch, with the plain wheel left to the page until the
2346
+ board fills the screen.
2347
+ - `cooperative`: the wheel and one finger scroll the page, and the
2348
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
2349
+ says so when a gesture passes to the page. Best for a surface embedded
2350
+ in a page.
2351
+ - `activate`: the surface takes nothing until it is pressed, and gives it
2352
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
2353
+
2354
+ The keyboard and the frame's buttons work in every mode.
2355
+
2356
+ **Unreflected and without a default**, because a default that reflected
2357
+ would write an attribute onto every host that no server sent, and the
2358
+ hydration that followed would disagree with it. */
2359
+ gestures?: (HelixHeadlessCanvas["gestures"]) | undefined;
2328
2360
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
2329
2361
 
2330
2362
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -2379,6 +2411,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
2379
2411
  "pan-up-label"?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
2380
2412
  /** The pan up button's label. */
2381
2413
  panUpLabel?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
2414
+ /** The hint shown when one finger swipes over a surface with
2415
+ `gestures="cooperative"`. Absent is the family's own. */
2416
+ "two-finger-hint-label"?: (HelixHeadlessCanvas["twoFingerHintLabel"]) | undefined;
2417
+ /** The hint shown when one finger swipes over a surface with
2418
+ `gestures="cooperative"`. Absent is the family's own. */
2419
+ twoFingerHintLabel?: (HelixHeadlessCanvas["twoFingerHintLabel"]) | undefined;
2420
+ /** The line shown while a surface with `gestures="activate"` has the
2421
+ gestures. Absent is the family's own. */
2422
+ "using-label"?: (HelixHeadlessCanvas["usingLabel"]) | undefined;
2423
+ /** The line shown while a surface with `gestures="activate"` has the
2424
+ gestures. Absent is the family's own. */
2425
+ usingLabel?: (HelixHeadlessCanvas["usingLabel"]) | undefined;
2426
+ /** The hint shown when the wheel scrolls past a surface with
2427
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2428
+ elsewhere. Absent is the family's own. */
2429
+ "wheel-hint-label"?: (HelixHeadlessCanvas["wheelHintLabel"]) | undefined;
2430
+ /** The hint shown when the wheel scrolls past a surface with
2431
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2432
+ elsewhere. Absent is the family's own. */
2433
+ wheelHintLabel?: (HelixHeadlessCanvas["wheelHintLabel"]) | undefined;
2382
2434
  /** The zoom in button's label. */
2383
2435
  "zoom-in-label"?: (HelixHeadlessCanvas["zoomInLabel"]) | undefined;
2384
2436
  /** The zoom in button's label. */
@@ -2579,6 +2631,12 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
2579
2631
  see the board is told by the color; this is how a reader who cannot is
2580
2632
  told the same. A tone left out is not read. */
2581
2633
  "prop:toneLabels"?: (HelixHeadlessCanvas["toneLabels"]) | undefined;
2634
+ /** The hint shown when a surface waiting to be pressed is scrolled or
2635
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
2636
+ "attr:activate-hint-label"?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
2637
+ /** The hint shown when a surface waiting to be pressed is scrolled or
2638
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
2639
+ "prop:activateHintLabel"?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
2582
2640
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
2583
2641
  `none`. A family can add words of its own.
2584
2642
 
@@ -2643,6 +2701,26 @@ would write an attribute onto every host that no server sent. */
2643
2701
  "attr:fullscreen-label"?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
2644
2702
  /** The fullscreen button's label. */
2645
2703
  "prop:fullscreenLabel"?: (HelixHeadlessCanvas["fullscreenLabel"]) | undefined;
2704
+ /** Which gestures the surface takes from the page.
2705
+
2706
+ - `always`: the surface takes the wheel and one finger, for a surface
2707
+ that is the page, such as a full-screen view. A map rests here.
2708
+ - Unset is the family's own: `always` for a map, and for a board, a
2709
+ drag and a pinch, with the plain wheel left to the page until the
2710
+ board fills the screen.
2711
+ - `cooperative`: the wheel and one finger scroll the page, and the
2712
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
2713
+ says so when a gesture passes to the page. Best for a surface embedded
2714
+ in a page.
2715
+ - `activate`: the surface takes nothing until it is pressed, and gives it
2716
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
2717
+
2718
+ The keyboard and the frame's buttons work in every mode.
2719
+
2720
+ **Unreflected and without a default**, because a default that reflected
2721
+ would write an attribute onto every host that no server sent, and the
2722
+ hydration that followed would disagree with it. */
2723
+ "prop:gestures"?: (HelixHeadlessCanvas["gestures"]) | undefined;
2646
2724
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
2647
2725
 
2648
2726
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -2697,6 +2775,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
2697
2775
  "attr:pan-up-label"?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
2698
2776
  /** The pan up button's label. */
2699
2777
  "prop:panUpLabel"?: (HelixHeadlessCanvas["panUpLabel"]) | undefined;
2778
+ /** The hint shown when one finger swipes over a surface with
2779
+ `gestures="cooperative"`. Absent is the family's own. */
2780
+ "attr:two-finger-hint-label"?: (HelixHeadlessCanvas["twoFingerHintLabel"]) | undefined;
2781
+ /** The hint shown when one finger swipes over a surface with
2782
+ `gestures="cooperative"`. Absent is the family's own. */
2783
+ "prop:twoFingerHintLabel"?: (HelixHeadlessCanvas["twoFingerHintLabel"]) | undefined;
2784
+ /** The line shown while a surface with `gestures="activate"` has the
2785
+ gestures. Absent is the family's own. */
2786
+ "attr:using-label"?: (HelixHeadlessCanvas["usingLabel"]) | undefined;
2787
+ /** The line shown while a surface with `gestures="activate"` has the
2788
+ gestures. Absent is the family's own. */
2789
+ "prop:usingLabel"?: (HelixHeadlessCanvas["usingLabel"]) | undefined;
2790
+ /** The hint shown when the wheel scrolls past a surface with
2791
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2792
+ elsewhere. Absent is the family's own. */
2793
+ "attr:wheel-hint-label"?: (HelixHeadlessCanvas["wheelHintLabel"]) | undefined;
2794
+ /** The hint shown when the wheel scrolls past a surface with
2795
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
2796
+ elsewhere. Absent is the family's own. */
2797
+ "prop:wheelHintLabel"?: (HelixHeadlessCanvas["wheelHintLabel"]) | undefined;
2700
2798
  /** The zoom in button's label. */
2701
2799
  "attr:zoom-in-label"?: (HelixHeadlessCanvas["zoomInLabel"]) | undefined;
2702
2800
  /** The zoom in button's label. */
@@ -9265,6 +9363,553 @@ Empty is the runtime's own. */
9265
9363
  textContent?: (string | number) | undefined;
9266
9364
  };
9267
9365
 
9366
+ /** `HelixHeadlessGraph` component event */
9367
+ export type HelixHeadlessGraphElementEvent<E = Event> = TypedEvent<
9368
+ HelixHeadlessGraph,
9369
+ E
9370
+ >;
9371
+ /** `helix-activate` event type */
9372
+ export type HelixHeadlessGraphHelixActivateElementEvent =
9373
+ HelixHeadlessGraphElementEvent<HelixActivateEvent>;
9374
+ /** `helix-before-activate` event type */
9375
+ export type HelixHeadlessGraphHelixBeforeActivateElementEvent =
9376
+ HelixHeadlessGraphElementEvent<HelixBeforeActivateEvent>;
9377
+ /** `helix-graph-layout` event type */
9378
+ export type HelixHeadlessGraphHelixGraphLayoutElementEvent =
9379
+ HelixHeadlessGraphElementEvent<HelixGraphLayoutEvent>;
9380
+ /** `helix-graph-pan` event type */
9381
+ export type HelixHeadlessGraphHelixGraphPanElementEvent =
9382
+ HelixHeadlessGraphElementEvent<HelixGraphPanEvent>;
9383
+ /** `helix-graph-part-change` event type */
9384
+ export type HelixHeadlessGraphHelixGraphPartChangeElementEvent =
9385
+ HelixHeadlessGraphElementEvent<HelixGraphPartChangeEvent>;
9386
+ /** `helix-graph-ready` event type */
9387
+ export type HelixHeadlessGraphHelixGraphReadyElementEvent =
9388
+ HelixHeadlessGraphElementEvent<HelixGraphReadyEvent>;
9389
+ /** `helix-graph-zoom` event type */
9390
+ export type HelixHeadlessGraphHelixGraphZoomElementEvent =
9391
+ HelixHeadlessGraphElementEvent<HelixGraphZoomEvent>;
9392
+
9393
+ export type HelixHeadlessGraphProps = {
9394
+ /** What the list says of a note's count, with `{count}`. */
9395
+ "count-label"?: (HelixHeadlessGraph["countLabel"]) | undefined;
9396
+ /** What the list says of a note's count, with `{count}`. */
9397
+ countLabel?: (HelixHeadlessGraph["countLabel"]) | undefined;
9398
+ /** How many links from the selected note to show, for its local graph. Unset
9399
+ shows every note. The list holds what the drawing shows. */
9400
+ depth?: (HelixHeadlessGraph["depth"]) | undefined;
9401
+ /** The graph's name, read by screen readers, such as "Research notes".
9402
+ Required. */
9403
+ label?: (HelixHeadlessGraph["label"]) | undefined;
9404
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
9405
+ "linked-both-label"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
9406
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
9407
+ linkedBothLabel?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
9408
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
9409
+ "linked-from-label"?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
9410
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
9411
+ linkedFromLabel?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
9412
+ /** How a note that links to the selected one is described, with `{note}`. */
9413
+ "links-to-label"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
9414
+ /** How a note that links to the selected one is described, with `{note}`. */
9415
+ linksToLabel?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
9416
+ /** The list's name, read by screen readers. */
9417
+ "notes-label"?: (HelixHeadlessGraph["notesLabel"]) | undefined;
9418
+ /** The list's name, read by screen readers. */
9419
+ notesLabel?: (HelixHeadlessGraph["notesLabel"]) | undefined;
9420
+ /** The search field's name. */
9421
+ "search-label"?: (HelixHeadlessGraph["searchLabel"]) | undefined;
9422
+ /** The search field's name. */
9423
+ searchLabel?: (HelixHeadlessGraph["searchLabel"]) | undefined;
9424
+ /** How the selected note is described in the list. */
9425
+ "selected-label"?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
9426
+ /** How the selected note is described in the list. */
9427
+ selectedLabel?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
9428
+ /** The hint shown when a surface waiting to be pressed is scrolled or
9429
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
9430
+ "activate-hint-label"?: (HelixHeadlessGraph["activateHintLabel"]) | undefined;
9431
+ /** The hint shown when a surface waiting to be pressed is scrolled or
9432
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
9433
+ activateHintLabel?: (HelixHeadlessGraph["activateHintLabel"]) | undefined;
9434
+ /** Which controls to show, as a list such as `pan zoom fullscreen`, or
9435
+ `none`. A family can add words of its own.
9436
+
9437
+ **A list rather than a switch, because the overlap is not symmetric.** A
9438
+ surface a consumer brings often has zoom controls of its own and almost
9439
+ never has pan buttons, so a single switch would make them choose between
9440
+ a duplicate and nothing.
9441
+
9442
+ `none` draws none of them, which is the right answer where what was
9443
+ slotted already has controls a reader can find: what this argues for is
9444
+ that *a* findable control exists, never that it is ours. The methods stay
9445
+ public either way, so a consumer drawing their own chrome can still drive
9446
+ the surface.
9447
+
9448
+ Absent is whatever the family rests at, which is this library's rule that
9449
+ a resting value is an attribute's absence: zoom, the compass and
9450
+ fullscreen for a map, whose pan buttons a page asks for, and zoom and
9451
+ fullscreen for a board, which a reader drags and whose pad took a third
9452
+ of the frame. The
9453
+ stylesheet lays the cluster out by which buttons are in it rather than by
9454
+ this attribute, so the two defaults need no rule each. */
9455
+ controls?: (HelixHeadlessGraph["controls"]) | undefined;
9456
+ /** The name of the group of controls, read by screen readers.
9457
+
9458
+ Absent is the family's own name for it, "Map controls" or "Board
9459
+ controls", which names what the controls drive rather than the
9460
+ mechanism. Written here to say it in another language, which every other
9461
+ string this surface speaks already allowed and this one did not. */
9462
+ "controls-label"?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
9463
+ /** The name of the group of controls, read by screen readers.
9464
+
9465
+ Absent is the family's own name for it, "Map controls" or "Board
9466
+ controls", which names what the controls drive rather than the
9467
+ mechanism. Written here to say it in another language, which every other
9468
+ string this surface speaks already allowed and this one did not. */
9469
+ controlsLabel?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
9470
+ /** Which corner the controls sit in.
9471
+
9472
+ **Configurable because there is no safe default**, which is a collision
9473
+ rather than a taste: whatever a consumer slots may put its own controls
9474
+ in any corner, and every library that draws some made this a setting for
9475
+ the same reason.
9476
+
9477
+ Logical corners rather than left and right, so a right-to-left page moves
9478
+ them without a consumer writing a second rule. Absent is the top end, a
9479
+ resting value being an attribute's absence: a default that reflected
9480
+ would write an attribute onto every host that no server sent. */
9481
+ "controls-placement"?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
9482
+ /** Which corner the controls sit in.
9483
+
9484
+ **Configurable because there is no safe default**, which is a collision
9485
+ rather than a taste: whatever a consumer slots may put its own controls
9486
+ in any corner, and every library that draws some made this a setting for
9487
+ the same reason.
9488
+
9489
+ Logical corners rather than left and right, so a right-to-left page moves
9490
+ them without a consumer writing a second rule. Absent is the top end, a
9491
+ resting value being an attribute's absence: a default that reflected
9492
+ would write an attribute onto every host that no server sent. */
9493
+ controlsPlacement?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
9494
+ /** The fullscreen button's label. */
9495
+ "fullscreen-label"?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
9496
+ /** The fullscreen button's label. */
9497
+ fullscreenLabel?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
9498
+ /** Which gestures the surface takes from the page.
9499
+
9500
+ - `always`: the surface takes the wheel and one finger, for a surface
9501
+ that is the page, such as a full-screen view. A map rests here.
9502
+ - Unset is the family's own: `always` for a map, and for a board, a
9503
+ drag and a pinch, with the plain wheel left to the page until the
9504
+ board fills the screen.
9505
+ - `cooperative`: the wheel and one finger scroll the page, and the
9506
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
9507
+ says so when a gesture passes to the page. Best for a surface embedded
9508
+ in a page.
9509
+ - `activate`: the surface takes nothing until it is pressed, and gives it
9510
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
9511
+
9512
+ The keyboard and the frame's buttons work in every mode.
9513
+
9514
+ **Unreflected and without a default**, because a default that reflected
9515
+ would write an attribute onto every host that no server sent, and the
9516
+ hydration that followed would disagree with it. */
9517
+ gestures?: (HelixHeadlessGraph["gestures"]) | undefined;
9518
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
9519
+
9520
+ Zero keeps it up, which is the default: these controls are how a keyboard
9521
+ reader operates the surface, and chrome that hid itself by default would
9522
+ be the component undoing its own argument. Set it for a display nobody
9523
+ drives. */
9524
+ "idle-delay"?: (HelixHeadlessGraph["idleDelay"] | `${number}`) | undefined;
9525
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
9526
+
9527
+ Zero keeps it up, which is the default: these controls are how a keyboard
9528
+ reader operates the surface, and chrome that hid itself by default would
9529
+ be the component undoing its own argument. Set it for a display nobody
9530
+ drives. */
9531
+ idleDelay?: (HelixHeadlessGraph["idleDelay"]) | undefined;
9532
+ /** The pan down button's label.
9533
+
9534
+ **A label for each way rather than one with the way filled in**, which is
9535
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
9536
+ in French read out "Déplacer left". The word for a direction is as much
9537
+ the translator's as the word for panning, and a language can put it
9538
+ anywhere in the phrase. */
9539
+ "pan-down-label"?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
9540
+ /** The pan down button's label.
9541
+
9542
+ **A label for each way rather than one with the way filled in**, which is
9543
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
9544
+ in French read out "Déplacer left". The word for a direction is as much
9545
+ the translator's as the word for panning, and a language can put it
9546
+ anywhere in the phrase. */
9547
+ panDownLabel?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
9548
+ /** The pan left button's label. */
9549
+ "pan-left-label"?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
9550
+ /** The pan left button's label. */
9551
+ panLeftLabel?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
9552
+ /** The pan right button's label. */
9553
+ "pan-right-label"?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
9554
+ /** The pan right button's label. */
9555
+ panRightLabel?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
9556
+ /** How far one press pans the view, as a fraction of its size.
9557
+
9558
+ A fraction rather than a distance, because this surface does not know the
9559
+ scale of what is inside it: a quarter of the viewport is the same gesture
9560
+ at any zoom, and a consumer who wants their own units multiplies by them. */
9561
+ "pan-step"?: (HelixHeadlessGraph["panStep"] | `${number}`) | undefined;
9562
+ /** How far one press pans the view, as a fraction of its size.
9563
+
9564
+ A fraction rather than a distance, because this surface does not know the
9565
+ scale of what is inside it: a quarter of the viewport is the same gesture
9566
+ at any zoom, and a consumer who wants their own units multiplies by them. */
9567
+ panStep?: (HelixHeadlessGraph["panStep"]) | undefined;
9568
+ /** The pan up button's label. */
9569
+ "pan-up-label"?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
9570
+ /** The pan up button's label. */
9571
+ panUpLabel?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
9572
+ /** The hint shown when one finger swipes over a surface with
9573
+ `gestures="cooperative"`. Absent is the family's own. */
9574
+ "two-finger-hint-label"?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
9575
+ /** The hint shown when one finger swipes over a surface with
9576
+ `gestures="cooperative"`. Absent is the family's own. */
9577
+ twoFingerHintLabel?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
9578
+ /** The line shown while a surface with `gestures="activate"` has the
9579
+ gestures. Absent is the family's own. */
9580
+ "using-label"?: (HelixHeadlessGraph["usingLabel"]) | undefined;
9581
+ /** The line shown while a surface with `gestures="activate"` has the
9582
+ gestures. Absent is the family's own. */
9583
+ usingLabel?: (HelixHeadlessGraph["usingLabel"]) | undefined;
9584
+ /** The hint shown when the wheel scrolls past a surface with
9585
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
9586
+ elsewhere. Absent is the family's own. */
9587
+ "wheel-hint-label"?: (HelixHeadlessGraph["wheelHintLabel"]) | undefined;
9588
+ /** The hint shown when the wheel scrolls past a surface with
9589
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
9590
+ elsewhere. Absent is the family's own. */
9591
+ wheelHintLabel?: (HelixHeadlessGraph["wheelHintLabel"]) | undefined;
9592
+ /** The zoom in button's label. */
9593
+ "zoom-in-label"?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
9594
+ /** The zoom in button's label. */
9595
+ zoomInLabel?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
9596
+ /** The zoom out button's label. */
9597
+ "zoom-out-label"?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
9598
+ /** The zoom out button's label. */
9599
+ zoomOutLabel?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
9600
+ /** The `value` of the current item.
9601
+
9602
+ Not `option.active`, which is the option the keyboard is on: that is a
9603
+ different question from which one is chosen.
9604
+
9605
+ Writing always applies, so `<helix-tabs active="one">` starts on that
9606
+ tab, and `default-active` is how markup says where to start without
9607
+ naming the current one. */
9608
+ active?: (HelixHeadlessGraph["active"]) | undefined;
9609
+ /** The `value` of the item declared current in markup.
9610
+
9611
+ Ignored once `active` is written. */
9612
+ "default-active"?: (HelixHeadlessGraph["defaultActive"]) | undefined;
9613
+ /** The `value` of the item declared current in markup.
9614
+
9615
+ Ignored once `active` is written. */
9616
+ defaultActive?: (HelixHeadlessGraph["defaultActive"]) | undefined;
9617
+ /** The links between notes, each from `source` to `target`. A property, never an attribute. */
9618
+ links?: (HelixHeadlessGraph["links"]) | undefined;
9619
+ /** The notes. A property, never an attribute. */
9620
+ nodes?: (HelixHeadlessGraph["nodes"]) | undefined;
9621
+
9622
+ /** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
9623
+ "onhelix-activate"?: ((e: HelixHeadlessGraphHelixActivateElementEvent) => void) | undefined;
9624
+ /** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
9625
+ "onhelix-before-activate"?: ((
9626
+ e: HelixHeadlessGraphHelixBeforeActivateElementEvent,
9627
+ ) => void) | undefined;
9628
+ /** 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`. */
9629
+ "onhelix-graph-layout"?: ((
9630
+ e: HelixHeadlessGraphHelixGraphLayoutElementEvent,
9631
+ ) => void) | undefined;
9632
+ /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
9633
+ "onhelix-graph-pan"?: ((
9634
+ e: HelixHeadlessGraphHelixGraphPanElementEvent,
9635
+ ) => void) | undefined;
9636
+ /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
9637
+ "onhelix-graph-part-change"?: ((
9638
+ e: HelixHeadlessGraphHelixGraphPartChangeElementEvent,
9639
+ ) => void) | undefined;
9640
+ /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
9641
+ "onhelix-graph-ready"?: ((
9642
+ e: HelixHeadlessGraphHelixGraphReadyElementEvent,
9643
+ ) => void) | undefined;
9644
+ /** A zoom button or key was pressed. `connectGraph` zooms the drawing. */
9645
+ "onhelix-graph-zoom"?: ((
9646
+ e: HelixHeadlessGraphHelixGraphZoomElementEvent,
9647
+ ) => void) | undefined;
9648
+ };
9649
+
9650
+ export type HelixHeadlessGraphSolidJsProps = {
9651
+ /** What the list says of a note's count, with `{count}`. */
9652
+ "attr:count-label"?: (HelixHeadlessGraph["countLabel"]) | undefined;
9653
+ /** What the list says of a note's count, with `{count}`. */
9654
+ "prop:countLabel"?: (HelixHeadlessGraph["countLabel"]) | undefined;
9655
+ /** How many links from the selected note to show, for its local graph. Unset
9656
+ shows every note. The list holds what the drawing shows. */
9657
+ "prop:depth"?: (HelixHeadlessGraph["depth"]) | undefined;
9658
+ /** The graph's name, read by screen readers, such as "Research notes".
9659
+ Required. */
9660
+ "prop:label"?: (HelixHeadlessGraph["label"]) | undefined;
9661
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
9662
+ "attr:linked-both-label"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
9663
+ /** How a note linked both to and from the selected one is described, with `{note}`. */
9664
+ "prop:linkedBothLabel"?: (HelixHeadlessGraph["linkedBothLabel"]) | undefined;
9665
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
9666
+ "attr:linked-from-label"?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
9667
+ /** How a note the selected one links to is described, with `{note}`, the selected note's name. */
9668
+ "prop:linkedFromLabel"?: (HelixHeadlessGraph["linkedFromLabel"]) | undefined;
9669
+ /** How a note that links to the selected one is described, with `{note}`. */
9670
+ "attr:links-to-label"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
9671
+ /** How a note that links to the selected one is described, with `{note}`. */
9672
+ "prop:linksToLabel"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
9673
+ /** The list's name, read by screen readers. */
9674
+ "attr:notes-label"?: (HelixHeadlessGraph["notesLabel"]) | undefined;
9675
+ /** The list's name, read by screen readers. */
9676
+ "prop:notesLabel"?: (HelixHeadlessGraph["notesLabel"]) | undefined;
9677
+ /** The search field's name. */
9678
+ "attr:search-label"?: (HelixHeadlessGraph["searchLabel"]) | undefined;
9679
+ /** The search field's name. */
9680
+ "prop:searchLabel"?: (HelixHeadlessGraph["searchLabel"]) | undefined;
9681
+ /** How the selected note is described in the list. */
9682
+ "attr:selected-label"?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
9683
+ /** How the selected note is described in the list. */
9684
+ "prop:selectedLabel"?: (HelixHeadlessGraph["selectedLabel"]) | undefined;
9685
+ /** The hint shown when a surface waiting to be pressed is scrolled or
9686
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
9687
+ "attr:activate-hint-label"?: (HelixHeadlessGraph["activateHintLabel"]) | undefined;
9688
+ /** The hint shown when a surface waiting to be pressed is scrolled or
9689
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
9690
+ "prop:activateHintLabel"?: (HelixHeadlessGraph["activateHintLabel"]) | undefined;
9691
+ /** Which controls to show, as a list such as `pan zoom fullscreen`, or
9692
+ `none`. A family can add words of its own.
9693
+
9694
+ **A list rather than a switch, because the overlap is not symmetric.** A
9695
+ surface a consumer brings often has zoom controls of its own and almost
9696
+ never has pan buttons, so a single switch would make them choose between
9697
+ a duplicate and nothing.
9698
+
9699
+ `none` draws none of them, which is the right answer where what was
9700
+ slotted already has controls a reader can find: what this argues for is
9701
+ that *a* findable control exists, never that it is ours. The methods stay
9702
+ public either way, so a consumer drawing their own chrome can still drive
9703
+ the surface.
9704
+
9705
+ Absent is whatever the family rests at, which is this library's rule that
9706
+ a resting value is an attribute's absence: zoom, the compass and
9707
+ fullscreen for a map, whose pan buttons a page asks for, and zoom and
9708
+ fullscreen for a board, which a reader drags and whose pad took a third
9709
+ of the frame. The
9710
+ stylesheet lays the cluster out by which buttons are in it rather than by
9711
+ this attribute, so the two defaults need no rule each. */
9712
+ "prop:controls"?: (HelixHeadlessGraph["controls"]) | undefined;
9713
+ /** The name of the group of controls, read by screen readers.
9714
+
9715
+ Absent is the family's own name for it, "Map controls" or "Board
9716
+ controls", which names what the controls drive rather than the
9717
+ mechanism. Written here to say it in another language, which every other
9718
+ string this surface speaks already allowed and this one did not. */
9719
+ "attr:controls-label"?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
9720
+ /** The name of the group of controls, read by screen readers.
9721
+
9722
+ Absent is the family's own name for it, "Map controls" or "Board
9723
+ controls", which names what the controls drive rather than the
9724
+ mechanism. Written here to say it in another language, which every other
9725
+ string this surface speaks already allowed and this one did not. */
9726
+ "prop:controlsLabel"?: (HelixHeadlessGraph["controlsLabel"]) | undefined;
9727
+ /** Which corner the controls sit in.
9728
+
9729
+ **Configurable because there is no safe default**, which is a collision
9730
+ rather than a taste: whatever a consumer slots may put its own controls
9731
+ in any corner, and every library that draws some made this a setting for
9732
+ the same reason.
9733
+
9734
+ Logical corners rather than left and right, so a right-to-left page moves
9735
+ them without a consumer writing a second rule. Absent is the top end, a
9736
+ resting value being an attribute's absence: a default that reflected
9737
+ would write an attribute onto every host that no server sent. */
9738
+ "attr:controls-placement"?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
9739
+ /** Which corner the controls sit in.
9740
+
9741
+ **Configurable because there is no safe default**, which is a collision
9742
+ rather than a taste: whatever a consumer slots may put its own controls
9743
+ in any corner, and every library that draws some made this a setting for
9744
+ the same reason.
9745
+
9746
+ Logical corners rather than left and right, so a right-to-left page moves
9747
+ them without a consumer writing a second rule. Absent is the top end, a
9748
+ resting value being an attribute's absence: a default that reflected
9749
+ would write an attribute onto every host that no server sent. */
9750
+ "prop:controlsPlacement"?: (HelixHeadlessGraph["controlsPlacement"]) | undefined;
9751
+ /** The fullscreen button's label. */
9752
+ "attr:fullscreen-label"?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
9753
+ /** The fullscreen button's label. */
9754
+ "prop:fullscreenLabel"?: (HelixHeadlessGraph["fullscreenLabel"]) | undefined;
9755
+ /** Which gestures the surface takes from the page.
9756
+
9757
+ - `always`: the surface takes the wheel and one finger, for a surface
9758
+ that is the page, such as a full-screen view. A map rests here.
9759
+ - Unset is the family's own: `always` for a map, and for a board, a
9760
+ drag and a pinch, with the plain wheel left to the page until the
9761
+ board fills the screen.
9762
+ - `cooperative`: the wheel and one finger scroll the page, and the
9763
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
9764
+ says so when a gesture passes to the page. Best for a surface embedded
9765
+ in a page.
9766
+ - `activate`: the surface takes nothing until it is pressed, and gives it
9767
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
9768
+
9769
+ The keyboard and the frame's buttons work in every mode.
9770
+
9771
+ **Unreflected and without a default**, because a default that reflected
9772
+ would write an attribute onto every host that no server sent, and the
9773
+ hydration that followed would disagree with it. */
9774
+ "prop:gestures"?: (HelixHeadlessGraph["gestures"]) | undefined;
9775
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
9776
+
9777
+ Zero keeps it up, which is the default: these controls are how a keyboard
9778
+ reader operates the surface, and chrome that hid itself by default would
9779
+ be the component undoing its own argument. Set it for a display nobody
9780
+ drives. */
9781
+ "attr:idle-delay"?: (HelixHeadlessGraph["idleDelay"] | `${number}`) | undefined;
9782
+ /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
9783
+
9784
+ Zero keeps it up, which is the default: these controls are how a keyboard
9785
+ reader operates the surface, and chrome that hid itself by default would
9786
+ be the component undoing its own argument. Set it for a display nobody
9787
+ drives. */
9788
+ "prop:idleDelay"?: (HelixHeadlessGraph["idleDelay"]) | undefined;
9789
+ /** The pan down button's label.
9790
+
9791
+ **A label for each way rather than one with the way filled in**, which is
9792
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
9793
+ in French read out "Déplacer left". The word for a direction is as much
9794
+ the translator's as the word for panning, and a language can put it
9795
+ anywhere in the phrase. */
9796
+ "attr:pan-down-label"?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
9797
+ /** The pan down button's label.
9798
+
9799
+ **A label for each way rather than one with the way filled in**, which is
9800
+ what this was: `Pan {way}` filled in with `left`, so a page that said it
9801
+ in French read out "Déplacer left". The word for a direction is as much
9802
+ the translator's as the word for panning, and a language can put it
9803
+ anywhere in the phrase. */
9804
+ "prop:panDownLabel"?: (HelixHeadlessGraph["panDownLabel"]) | undefined;
9805
+ /** The pan left button's label. */
9806
+ "attr:pan-left-label"?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
9807
+ /** The pan left button's label. */
9808
+ "prop:panLeftLabel"?: (HelixHeadlessGraph["panLeftLabel"]) | undefined;
9809
+ /** The pan right button's label. */
9810
+ "attr:pan-right-label"?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
9811
+ /** The pan right button's label. */
9812
+ "prop:panRightLabel"?: (HelixHeadlessGraph["panRightLabel"]) | undefined;
9813
+ /** How far one press pans the view, as a fraction of its size.
9814
+
9815
+ A fraction rather than a distance, because this surface does not know the
9816
+ scale of what is inside it: a quarter of the viewport is the same gesture
9817
+ at any zoom, and a consumer who wants their own units multiplies by them. */
9818
+ "attr:pan-step"?: (HelixHeadlessGraph["panStep"] | `${number}`) | undefined;
9819
+ /** How far one press pans the view, as a fraction of its size.
9820
+
9821
+ A fraction rather than a distance, because this surface does not know the
9822
+ scale of what is inside it: a quarter of the viewport is the same gesture
9823
+ at any zoom, and a consumer who wants their own units multiplies by them. */
9824
+ "prop:panStep"?: (HelixHeadlessGraph["panStep"]) | undefined;
9825
+ /** The pan up button's label. */
9826
+ "attr:pan-up-label"?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
9827
+ /** The pan up button's label. */
9828
+ "prop:panUpLabel"?: (HelixHeadlessGraph["panUpLabel"]) | undefined;
9829
+ /** The hint shown when one finger swipes over a surface with
9830
+ `gestures="cooperative"`. Absent is the family's own. */
9831
+ "attr:two-finger-hint-label"?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
9832
+ /** The hint shown when one finger swipes over a surface with
9833
+ `gestures="cooperative"`. Absent is the family's own. */
9834
+ "prop:twoFingerHintLabel"?: (HelixHeadlessGraph["twoFingerHintLabel"]) | undefined;
9835
+ /** The line shown while a surface with `gestures="activate"` has the
9836
+ gestures. Absent is the family's own. */
9837
+ "attr:using-label"?: (HelixHeadlessGraph["usingLabel"]) | undefined;
9838
+ /** The line shown while a surface with `gestures="activate"` has the
9839
+ gestures. Absent is the family's own. */
9840
+ "prop:usingLabel"?: (HelixHeadlessGraph["usingLabel"]) | undefined;
9841
+ /** The hint shown when the wheel scrolls past a surface with
9842
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
9843
+ elsewhere. Absent is the family's own. */
9844
+ "attr:wheel-hint-label"?: (HelixHeadlessGraph["wheelHintLabel"]) | undefined;
9845
+ /** The hint shown when the wheel scrolls past a surface with
9846
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
9847
+ elsewhere. Absent is the family's own. */
9848
+ "prop:wheelHintLabel"?: (HelixHeadlessGraph["wheelHintLabel"]) | undefined;
9849
+ /** The zoom in button's label. */
9850
+ "attr:zoom-in-label"?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
9851
+ /** The zoom in button's label. */
9852
+ "prop:zoomInLabel"?: (HelixHeadlessGraph["zoomInLabel"]) | undefined;
9853
+ /** The zoom out button's label. */
9854
+ "attr:zoom-out-label"?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
9855
+ /** The zoom out button's label. */
9856
+ "prop:zoomOutLabel"?: (HelixHeadlessGraph["zoomOutLabel"]) | undefined;
9857
+ /** The `value` of the current item.
9858
+
9859
+ Not `option.active`, which is the option the keyboard is on: that is a
9860
+ different question from which one is chosen.
9861
+
9862
+ Writing always applies, so `<helix-tabs active="one">` starts on that
9863
+ tab, and `default-active` is how markup says where to start without
9864
+ naming the current one. */
9865
+ "prop:active"?: (HelixHeadlessGraph["active"]) | undefined;
9866
+ /** The `value` of the item declared current in markup.
9867
+
9868
+ Ignored once `active` is written. */
9869
+ "attr:default-active"?: (HelixHeadlessGraph["defaultActive"]) | undefined;
9870
+ /** The `value` of the item declared current in markup.
9871
+
9872
+ Ignored once `active` is written. */
9873
+ "prop:defaultActive"?: (HelixHeadlessGraph["defaultActive"]) | undefined;
9874
+ /** The links between notes, each from `source` to `target`. A property, never an attribute. */
9875
+ "prop:links"?: (HelixHeadlessGraph["links"]) | undefined;
9876
+ /** The notes. A property, never an attribute. */
9877
+ "prop:nodes"?: (HelixHeadlessGraph["nodes"]) | undefined;
9878
+ /** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
9879
+ "on:helix-activate"?: ((
9880
+ e: HelixHeadlessGraphHelixActivateElementEvent,
9881
+ ) => void) | undefined;
9882
+ /** A note is about to be selected. Cancelable: cancel it to keep the selection in your own state. */
9883
+ "on:helix-before-activate"?: ((
9884
+ e: HelixHeadlessGraphHelixBeforeActivateElementEvent,
9885
+ ) => void) | undefined;
9886
+ /** 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`. */
9887
+ "on:helix-graph-layout"?: ((
9888
+ e: HelixHeadlessGraphHelixGraphLayoutElementEvent,
9889
+ ) => void) | undefined;
9890
+ /** A pan button or arrow key was pressed. `connectGraph` moves the drawing. */
9891
+ "on:helix-graph-pan"?: ((
9892
+ e: HelixHeadlessGraphHelixGraphPanElementEvent,
9893
+ ) => void) | undefined;
9894
+ /** The notes, the links, the selection, the depth or the gestures changed. Used by `connectGraph`; pages do not need to listen for it. */
9895
+ "on:helix-graph-part-change"?: ((
9896
+ e: HelixHeadlessGraphHelixGraphPartChangeElementEvent,
9897
+ ) => void) | undefined;
9898
+ /** The graph has been drawn whole, laid out and settled. Sent each time `drawn()` says it is drawn after it was not. */
9899
+ "on:helix-graph-ready"?: ((
9900
+ e: HelixHeadlessGraphHelixGraphReadyElementEvent,
9901
+ ) => void) | undefined;
9902
+ /** A zoom button or key was pressed. `connectGraph` zooms the drawing. */
9903
+ "on:helix-graph-zoom"?: ((
9904
+ e: HelixHeadlessGraphHelixGraphZoomElementEvent,
9905
+ ) => void) | undefined;
9906
+
9907
+ /** Set the innerHTML of the element */
9908
+ innerHTML?: (string) | undefined;
9909
+ /** Set the textContent of the element */
9910
+ textContent?: (string | number) | undefined;
9911
+ };
9912
+
9268
9913
  /** `HelixHeadlessHeatmap` component event */
9269
9914
  export type HelixHeadlessHeatmapElementEvent<E = Event> = TypedEvent<
9270
9915
  HelixHeadlessHeatmap,
@@ -12068,12 +12713,6 @@ export type HelixHeadlessMapHelixMapZoomElementEvent =
12068
12713
  HelixHeadlessMapElementEvent<HelixMapZoomEvent>;
12069
12714
 
12070
12715
  export type HelixHeadlessMapProps = {
12071
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
12072
- over, with `gestures="activate"`. */
12073
- "activate-hint-label"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
12074
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
12075
- over, with `gestures="activate"`. */
12076
- activateHintLabel?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
12077
12716
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
12078
12717
  current, and the Face north button's needle turns with it. */
12079
12718
  bearing?: (HelixHeadlessMap["bearing"]) | undefined;
@@ -12088,19 +12727,6 @@ the map zooms in, and pressing one zooms in to its places. */
12088
12727
  "flat-label"?: (HelixHeadlessMap["flatLabel"]) | undefined;
12089
12728
  /** What screen readers hear when the map is tilted back to looking straight down. */
12090
12729
  flatLabel?: (HelixHeadlessMap["flatLabel"]) | undefined;
12091
- /** Which gestures the map takes from the page.
12092
-
12093
- - `always`, which unset is: the wheel zooms the map and one finger pans
12094
- it, for a map that is the page, such as a full-screen view.
12095
- - `cooperative`: the wheel and one finger scroll the page, and the map
12096
- takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
12097
- when a gesture passes to the page. Best for a map embedded in a page.
12098
- - `activate`: the map takes nothing until it is pressed, and gives it
12099
- back on Escape, when the pointer leaves it, or on a press elsewhere.
12100
-
12101
- The keyboard and the frame's buttons work in every mode. The renderer is
12102
- told through the connector, so MapLibre and Leaflet behave alike. */
12103
- gestures?: (HelixHeadlessMap["gestures"]) | undefined;
12104
12730
  /** The Hybrid map type's name. */
12105
12731
  "hybrid-label"?: (HelixHeadlessMap["hybridLabel"]) | undefined;
12106
12732
  /** The Hybrid map type's name. */
@@ -12182,22 +12808,6 @@ top of the map faces, clockwise from north. */
12182
12808
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
12183
12809
  top of the map faces, clockwise from north. */
12184
12810
  turnedLabel?: (HelixHeadlessMap["turnedLabel"]) | undefined;
12185
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
12186
- "two-finger-hint-label"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
12187
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
12188
- twoFingerHintLabel?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
12189
- /** The line shown while a map with `gestures="activate"` has the gestures. */
12190
- "using-label"?: (HelixHeadlessMap["usingLabel"]) | undefined;
12191
- /** The line shown while a map with `gestures="activate"` has the gestures. */
12192
- usingLabel?: (HelixHeadlessMap["usingLabel"]) | undefined;
12193
- /** The hint shown when the wheel scrolls past a map with
12194
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
12195
- elsewhere, as the renderer reads it. */
12196
- "wheel-hint-label"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
12197
- /** The hint shown when the wheel scrolls past a map with
12198
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
12199
- elsewhere, as the renderer reads it. */
12200
- wheelHintLabel?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
12201
12811
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
12202
12812
  "zoomed-label"?: (HelixHeadlessMap["zoomedLabel"]) | undefined;
12203
12813
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
@@ -12208,6 +12818,12 @@ current, and the map says it after a zoom. */
12208
12818
  /** How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
12209
12819
  current, and the map says it after a zoom. */
12210
12820
  zoomLevel?: (HelixHeadlessMap["zoomLevel"]) | undefined;
12821
+ /** The hint shown when a surface waiting to be pressed is scrolled or
12822
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
12823
+ "activate-hint-label"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
12824
+ /** The hint shown when a surface waiting to be pressed is scrolled or
12825
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
12826
+ activateHintLabel?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
12211
12827
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
12212
12828
  `none`. A family can add words of its own.
12213
12829
 
@@ -12272,6 +12888,26 @@ would write an attribute onto every host that no server sent. */
12272
12888
  "fullscreen-label"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
12273
12889
  /** The fullscreen button's label. */
12274
12890
  fullscreenLabel?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
12891
+ /** Which gestures the surface takes from the page.
12892
+
12893
+ - `always`: the surface takes the wheel and one finger, for a surface
12894
+ that is the page, such as a full-screen view. A map rests here.
12895
+ - Unset is the family's own: `always` for a map, and for a board, a
12896
+ drag and a pinch, with the plain wheel left to the page until the
12897
+ board fills the screen.
12898
+ - `cooperative`: the wheel and one finger scroll the page, and the
12899
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
12900
+ says so when a gesture passes to the page. Best for a surface embedded
12901
+ in a page.
12902
+ - `activate`: the surface takes nothing until it is pressed, and gives it
12903
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
12904
+
12905
+ The keyboard and the frame's buttons work in every mode.
12906
+
12907
+ **Unreflected and without a default**, because a default that reflected
12908
+ would write an attribute onto every host that no server sent, and the
12909
+ hydration that followed would disagree with it. */
12910
+ gestures?: (HelixHeadlessMap["gestures"]) | undefined;
12275
12911
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
12276
12912
 
12277
12913
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -12326,6 +12962,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
12326
12962
  "pan-up-label"?: (HelixHeadlessMap["panUpLabel"]) | undefined;
12327
12963
  /** The pan up button's label. */
12328
12964
  panUpLabel?: (HelixHeadlessMap["panUpLabel"]) | undefined;
12965
+ /** The hint shown when one finger swipes over a surface with
12966
+ `gestures="cooperative"`. Absent is the family's own. */
12967
+ "two-finger-hint-label"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
12968
+ /** The hint shown when one finger swipes over a surface with
12969
+ `gestures="cooperative"`. Absent is the family's own. */
12970
+ twoFingerHintLabel?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
12971
+ /** The line shown while a surface with `gestures="activate"` has the
12972
+ gestures. Absent is the family's own. */
12973
+ "using-label"?: (HelixHeadlessMap["usingLabel"]) | undefined;
12974
+ /** The line shown while a surface with `gestures="activate"` has the
12975
+ gestures. Absent is the family's own. */
12976
+ usingLabel?: (HelixHeadlessMap["usingLabel"]) | undefined;
12977
+ /** The hint shown when the wheel scrolls past a surface with
12978
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
12979
+ elsewhere. Absent is the family's own. */
12980
+ "wheel-hint-label"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
12981
+ /** The hint shown when the wheel scrolls past a surface with
12982
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
12983
+ elsewhere. Absent is the family's own. */
12984
+ wheelHintLabel?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
12329
12985
  /** The zoom in button's label. */
12330
12986
  "zoom-in-label"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
12331
12987
  /** The zoom in button's label. */
@@ -12360,12 +13016,6 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
12360
13016
  };
12361
13017
 
12362
13018
  export type HelixHeadlessMapSolidJsProps = {
12363
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
12364
- over, with `gestures="activate"`. */
12365
- "attr:activate-hint-label"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
12366
- /** The hint shown when a map waiting to be pressed is scrolled or swiped
12367
- over, with `gestures="activate"`. */
12368
- "prop:activateHintLabel"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
12369
13019
  /** The map's rotation, in degrees clockwise from north. `connectMap` keeps it
12370
13020
  current, and the Face north button's needle turns with it. */
12371
13021
  "prop:bearing"?: (HelixHeadlessMap["bearing"]) | undefined;
@@ -12380,19 +13030,6 @@ the map zooms in, and pressing one zooms in to its places. */
12380
13030
  "attr:flat-label"?: (HelixHeadlessMap["flatLabel"]) | undefined;
12381
13031
  /** What screen readers hear when the map is tilted back to looking straight down. */
12382
13032
  "prop:flatLabel"?: (HelixHeadlessMap["flatLabel"]) | undefined;
12383
- /** Which gestures the map takes from the page.
12384
-
12385
- - `always`, which unset is: the wheel zooms the map and one finger pans
12386
- it, for a map that is the page, such as a full-screen view.
12387
- - `cooperative`: the wheel and one finger scroll the page, and the map
12388
- takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
12389
- when a gesture passes to the page. Best for a map embedded in a page.
12390
- - `activate`: the map takes nothing until it is pressed, and gives it
12391
- back on Escape, when the pointer leaves it, or on a press elsewhere.
12392
-
12393
- The keyboard and the frame's buttons work in every mode. The renderer is
12394
- told through the connector, so MapLibre and Leaflet behave alike. */
12395
- "prop:gestures"?: (HelixHeadlessMap["gestures"]) | undefined;
12396
13033
  /** The Hybrid map type's name. */
12397
13034
  "attr:hybrid-label"?: (HelixHeadlessMap["hybridLabel"]) | undefined;
12398
13035
  /** The Hybrid map type's name. */
@@ -12474,22 +13111,6 @@ top of the map faces, clockwise from north. */
12474
13111
  /** What screen readers hear when the map is turned. `{degrees}` is the way the
12475
13112
  top of the map faces, clockwise from north. */
12476
13113
  "prop:turnedLabel"?: (HelixHeadlessMap["turnedLabel"]) | undefined;
12477
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
12478
- "attr:two-finger-hint-label"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
12479
- /** The hint shown when one finger swipes over a map with `gestures="cooperative"`. */
12480
- "prop:twoFingerHintLabel"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
12481
- /** The line shown while a map with `gestures="activate"` has the gestures. */
12482
- "attr:using-label"?: (HelixHeadlessMap["usingLabel"]) | undefined;
12483
- /** The line shown while a map with `gestures="activate"` has the gestures. */
12484
- "prop:usingLabel"?: (HelixHeadlessMap["usingLabel"]) | undefined;
12485
- /** The hint shown when the wheel scrolls past a map with
12486
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
12487
- elsewhere, as the renderer reads it. */
12488
- "attr:wheel-hint-label"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
12489
- /** The hint shown when the wheel scrolls past a map with
12490
- `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
12491
- elsewhere, as the renderer reads it. */
12492
- "prop:wheelHintLabel"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
12493
13114
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
12494
13115
  "attr:zoomed-label"?: (HelixHeadlessMap["zoomedLabel"]) | undefined;
12495
13116
  /** What screen readers hear after a zoom. `{level}` is the zoom level. */
@@ -12500,6 +13121,12 @@ current, and the map says it after a zoom. */
12500
13121
  /** How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
12501
13122
  current, and the map says it after a zoom. */
12502
13123
  "prop:zoomLevel"?: (HelixHeadlessMap["zoomLevel"]) | undefined;
13124
+ /** The hint shown when a surface waiting to be pressed is scrolled or
13125
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
13126
+ "attr:activate-hint-label"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
13127
+ /** The hint shown when a surface waiting to be pressed is scrolled or
13128
+ swiped over, with `gestures="activate"`. Absent is the family's own. */
13129
+ "prop:activateHintLabel"?: (HelixHeadlessMap["activateHintLabel"]) | undefined;
12503
13130
  /** Which controls to show, as a list such as `pan zoom fullscreen`, or
12504
13131
  `none`. A family can add words of its own.
12505
13132
 
@@ -12564,6 +13191,26 @@ would write an attribute onto every host that no server sent. */
12564
13191
  "attr:fullscreen-label"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
12565
13192
  /** The fullscreen button's label. */
12566
13193
  "prop:fullscreenLabel"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
13194
+ /** Which gestures the surface takes from the page.
13195
+
13196
+ - `always`: the surface takes the wheel and one finger, for a surface
13197
+ that is the page, such as a full-screen view. A map rests here.
13198
+ - Unset is the family's own: `always` for a map, and for a board, a
13199
+ drag and a pinch, with the plain wheel left to the page until the
13200
+ board fills the screen.
13201
+ - `cooperative`: the wheel and one finger scroll the page, and the
13202
+ surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
13203
+ says so when a gesture passes to the page. Best for a surface embedded
13204
+ in a page.
13205
+ - `activate`: the surface takes nothing until it is pressed, and gives it
13206
+ back on Escape, when the pointer leaves it, or on a press elsewhere.
13207
+
13208
+ The keyboard and the frame's buttons work in every mode.
13209
+
13210
+ **Unreflected and without a default**, because a default that reflected
13211
+ would write an attribute onto every host that no server sent, and the
13212
+ hydration that followed would disagree with it. */
13213
+ "prop:gestures"?: (HelixHeadlessMap["gestures"]) | undefined;
12567
13214
  /** How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
12568
13215
 
12569
13216
  Zero keeps it up, which is the default: these controls are how a keyboard
@@ -12618,6 +13265,26 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
12618
13265
  "attr:pan-up-label"?: (HelixHeadlessMap["panUpLabel"]) | undefined;
12619
13266
  /** The pan up button's label. */
12620
13267
  "prop:panUpLabel"?: (HelixHeadlessMap["panUpLabel"]) | undefined;
13268
+ /** The hint shown when one finger swipes over a surface with
13269
+ `gestures="cooperative"`. Absent is the family's own. */
13270
+ "attr:two-finger-hint-label"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
13271
+ /** The hint shown when one finger swipes over a surface with
13272
+ `gestures="cooperative"`. Absent is the family's own. */
13273
+ "prop:twoFingerHintLabel"?: (HelixHeadlessMap["twoFingerHintLabel"]) | undefined;
13274
+ /** The line shown while a surface with `gestures="activate"` has the
13275
+ gestures. Absent is the family's own. */
13276
+ "attr:using-label"?: (HelixHeadlessMap["usingLabel"]) | undefined;
13277
+ /** The line shown while a surface with `gestures="activate"` has the
13278
+ gestures. Absent is the family's own. */
13279
+ "prop:usingLabel"?: (HelixHeadlessMap["usingLabel"]) | undefined;
13280
+ /** The hint shown when the wheel scrolls past a surface with
13281
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
13282
+ elsewhere. Absent is the family's own. */
13283
+ "attr:wheel-hint-label"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
13284
+ /** The hint shown when the wheel scrolls past a surface with
13285
+ `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
13286
+ elsewhere. Absent is the family's own. */
13287
+ "prop:wheelHintLabel"?: (HelixHeadlessMap["wheelHintLabel"]) | undefined;
12621
13288
  /** The zoom in button's label. */
12622
13289
  "attr:zoom-in-label"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
12623
13290
  /** The zoom in button's label. */
@@ -24816,6 +25483,8 @@ export type CustomElements = {
24816
25483
  * red is "blocked" on one board and "urgent" on the next. A reader who can
24817
25484
  * see the board is told by the color; this is how a reader who cannot is
24818
25485
  * told the same. A tone left out is not read.
25486
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
25487
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
24819
25488
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
24820
25489
  * `none`. A family can add words of its own.
24821
25490
  *
@@ -24855,6 +25524,25 @@ export type CustomElements = {
24855
25524
  * resting value being an attribute's absence: a default that reflected
24856
25525
  * would write an attribute onto every host that no server sent.
24857
25526
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
25527
+ * - `gestures`: Which gestures the surface takes from the page.
25528
+ *
25529
+ * - `always`: the surface takes the wheel and one finger, for a surface
25530
+ * that is the page, such as a full-screen view. A map rests here.
25531
+ * - Unset is the family's own: `always` for a map, and for a board, a
25532
+ * drag and a pinch, with the plain wheel left to the page until the
25533
+ * board fills the screen.
25534
+ * - `cooperative`: the wheel and one finger scroll the page, and the
25535
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
25536
+ * says so when a gesture passes to the page. Best for a surface embedded
25537
+ * in a page.
25538
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
25539
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
25540
+ *
25541
+ * The keyboard and the frame's buttons work in every mode.
25542
+ *
25543
+ * **Unreflected and without a default**, because a default that reflected
25544
+ * would write an attribute onto every host that no server sent, and the
25545
+ * hydration that followed would disagree with it.
24858
25546
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
24859
25547
  *
24860
25548
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -24876,6 +25564,13 @@ export type CustomElements = {
24876
25564
  * scale of what is inside it: a quarter of the viewport is the same gesture
24877
25565
  * at any zoom, and a consumer who wants their own units multiplies by them.
24878
25566
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
25567
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
25568
+ * `gestures="cooperative"`. Absent is the family's own.
25569
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
25570
+ * gestures. Absent is the family's own.
25571
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
25572
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
25573
+ * elsewhere. Absent is the family's own.
24879
25574
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
24880
25575
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
24881
25576
  * - `view`: The board's current view: the document's point at the middle of the view,
@@ -24992,6 +25687,8 @@ export type CustomElements = {
24992
25687
  * - `edges`: The layer the connectors are drawn in.
24993
25688
  * - `footer`: The strip below the board.
24994
25689
  * - `fullscreen`: The button that makes the board fill the screen.
25690
+ * - `gesture-hint`: Words over the board for a moment when it lets a gesture pass to the page, such as how to zoom it.
25691
+ * - `gesture-status`: The line shown while a board with `gestures="activate"` has the gestures.
24995
25692
  * - `header`: The strip above the board.
24996
25693
  * - `label`: The label on a connector.
24997
25694
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
@@ -25017,6 +25714,8 @@ export type CustomElements = {
25017
25714
  * - `holding`: An item picked up with a click follows the pointer until the next press puts it down.
25018
25715
  * - `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.
25019
25716
  * - `pressing`: While a press on the board, its cards or its connections is under way.
25717
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a board with `gestures="activate"` waits to be pressed.
25718
+ * - `using`: A board with `gestures="activate"` has been pressed and has the gestures.
25020
25719
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
25021
25720
  */
25022
25721
  "helix-headless-canvas": Partial<
@@ -30518,6 +31217,267 @@ export type CustomElements = {
30518
31217
  BaseEvents<HelixHeadlessFormatDate>
30519
31218
  >;
30520
31219
 
31220
+ /**
31221
+ * Helix draws no graph. A force layout of thousands of notes is physics and
31222
+ * WebGL, which a renderer such as Sigma.js does. Put the renderer's box in the
31223
+ * frame, and `connectGraph` from `@fusion.dev/helix-graph` draws `nodes` and
31224
+ * `links` in it and keeps it in step with the frame.
31225
+ *
31226
+ * What the frame adds is what a drawing of a graph cannot do: a list of every
31227
+ * note beside it, which is the graph for a screen reader and a quick way to
31228
+ * find a note for anyone. The selected note comes first, then the notes it
31229
+ * links to and from, then every other note, and the search field narrows it.
31230
+ * Selecting a note in the list or in the drawing is the same selection.
31231
+ *
31232
+ * Set `depth` to show the local graph: only the notes within that many links
31233
+ * of the selected one.
31234
+ *
31235
+ * `nodes` and `links` are properties, never markup: a graph of ten thousand
31236
+ * notes as ten thousand elements would cost what the renderer exists to save.
31237
+ * The list draws only the rows in view.
31238
+ *
31239
+ * The list scrolls on this tier. It carries `data-scroller`, and `core` ships
31240
+ * `[data-scroller] { overflow: auto }` into every shadow root. You still need
31241
+ * to set a block size on the list, or it grows to hold every row.
31242
+ *
31243
+ * ## Attributes & Properties
31244
+ *
31245
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
31246
+ *
31247
+ * - `count-label`/`countLabel`: What the list says of a note's count, with `{count}`.
31248
+ * - `depth`: How many links from the selected note to show, for its local graph. Unset
31249
+ * shows every note. The list holds what the drawing shows.
31250
+ * - `label`: The graph's name, read by screen readers, such as "Research notes".
31251
+ * Required.
31252
+ * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
31253
+ * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
31254
+ * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
31255
+ * - `notes-label`/`notesLabel`: The list's name, read by screen readers.
31256
+ * - `search-label`/`searchLabel`: The search field's name.
31257
+ * - `selected-label`/`selectedLabel`: How the selected note is described in the list.
31258
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
31259
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
31260
+ * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
31261
+ * `none`. A family can add words of its own.
31262
+ *
31263
+ * **A list rather than a switch, because the overlap is not symmetric.** A
31264
+ * surface a consumer brings often has zoom controls of its own and almost
31265
+ * never has pan buttons, so a single switch would make them choose between
31266
+ * a duplicate and nothing.
31267
+ *
31268
+ * `none` draws none of them, which is the right answer where what was
31269
+ * slotted already has controls a reader can find: what this argues for is
31270
+ * that *a* findable control exists, never that it is ours. The methods stay
31271
+ * public either way, so a consumer drawing their own chrome can still drive
31272
+ * the surface.
31273
+ *
31274
+ * Absent is whatever the family rests at, which is this library's rule that
31275
+ * a resting value is an attribute's absence: zoom, the compass and
31276
+ * fullscreen for a map, whose pan buttons a page asks for, and zoom and
31277
+ * fullscreen for a board, which a reader drags and whose pad took a third
31278
+ * of the frame. The
31279
+ * stylesheet lays the cluster out by which buttons are in it rather than by
31280
+ * this attribute, so the two defaults need no rule each.
31281
+ * - `controls-label`/`controlsLabel`: The name of the group of controls, read by screen readers.
31282
+ *
31283
+ * Absent is the family's own name for it, "Map controls" or "Board
31284
+ * controls", which names what the controls drive rather than the
31285
+ * mechanism. Written here to say it in another language, which every other
31286
+ * string this surface speaks already allowed and this one did not.
31287
+ * - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
31288
+ *
31289
+ * **Configurable because there is no safe default**, which is a collision
31290
+ * rather than a taste: whatever a consumer slots may put its own controls
31291
+ * in any corner, and every library that draws some made this a setting for
31292
+ * the same reason.
31293
+ *
31294
+ * Logical corners rather than left and right, so a right-to-left page moves
31295
+ * them without a consumer writing a second rule. Absent is the top end, a
31296
+ * resting value being an attribute's absence: a default that reflected
31297
+ * would write an attribute onto every host that no server sent.
31298
+ * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
31299
+ * - `gestures`: Which gestures the surface takes from the page.
31300
+ *
31301
+ * - `always`: the surface takes the wheel and one finger, for a surface
31302
+ * that is the page, such as a full-screen view. A map rests here.
31303
+ * - Unset is the family's own: `always` for a map, and for a board, a
31304
+ * drag and a pinch, with the plain wheel left to the page until the
31305
+ * board fills the screen.
31306
+ * - `cooperative`: the wheel and one finger scroll the page, and the
31307
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
31308
+ * says so when a gesture passes to the page. Best for a surface embedded
31309
+ * in a page.
31310
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
31311
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
31312
+ *
31313
+ * The keyboard and the frame's buttons work in every mode.
31314
+ *
31315
+ * **Unreflected and without a default**, because a default that reflected
31316
+ * would write an attribute onto every host that no server sent, and the
31317
+ * hydration that followed would disagree with it.
31318
+ * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
31319
+ *
31320
+ * Zero keeps it up, which is the default: these controls are how a keyboard
31321
+ * reader operates the surface, and chrome that hid itself by default would
31322
+ * be the component undoing its own argument. Set it for a display nobody
31323
+ * drives.
31324
+ * - `pan-down-label`/`panDownLabel`: The pan down button's label.
31325
+ *
31326
+ * **A label for each way rather than one with the way filled in**, which is
31327
+ * what this was: `Pan {way}` filled in with `left`, so a page that said it
31328
+ * in French read out "Déplacer left". The word for a direction is as much
31329
+ * the translator's as the word for panning, and a language can put it
31330
+ * anywhere in the phrase.
31331
+ * - `pan-left-label`/`panLeftLabel`: The pan left button's label.
31332
+ * - `pan-right-label`/`panRightLabel`: The pan right button's label.
31333
+ * - `pan-step`/`panStep`: How far one press pans the view, as a fraction of its size.
31334
+ *
31335
+ * A fraction rather than a distance, because this surface does not know the
31336
+ * scale of what is inside it: a quarter of the viewport is the same gesture
31337
+ * at any zoom, and a consumer who wants their own units multiplies by them.
31338
+ * - `pan-up-label`/`panUpLabel`: The pan up button's label.
31339
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
31340
+ * `gestures="cooperative"`. Absent is the family's own.
31341
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
31342
+ * gestures. Absent is the family's own.
31343
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
31344
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
31345
+ * elsewhere. Absent is the family's own.
31346
+ * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
31347
+ * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
31348
+ * - `active`: The `value` of the current item.
31349
+ *
31350
+ * Not `option.active`, which is the option the keyboard is on: that is a
31351
+ * different question from which one is chosen.
31352
+ *
31353
+ * Writing always applies, so `<helix-tabs active="one">` starts on that
31354
+ * tab, and `default-active` is how markup says where to start without
31355
+ * naming the current one.
31356
+ * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
31357
+ *
31358
+ * Ignored once `active` is written.
31359
+ * - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
31360
+ * - `nodes`: The notes. A property, never an attribute. (property only)
31361
+ * - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
31362
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
31363
+ *
31364
+ * **Named `whenSettled` because `settled` is taken four times over**, by
31365
+ * Image, Splitter and both color controls, none of them about transitions. A
31366
+ * base class takes the name every subclass then cannot use.
31367
+ *
31368
+ * **The state it reports cannot be watched, which is why this exists.** A
31369
+ * custom state is deliberately not in the DOM, so there is no
31370
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
31371
+ * instead.
31372
+ *
31373
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
31374
+ * the suppression is still active in. That is the distinction `readyToMove`
31375
+ * in `@fusion.dev/helix-testing` is written around.
31376
+ *
31377
+ * It never resolves where `requestAnimationFrame` never fires, which is a
31378
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
31379
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
31380
+ * browser harness's awaits it alone: a browser always runs the frame, and a
31381
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
31382
+ *
31383
+ * ## Events
31384
+ *
31385
+ * Events that will be emitted by the component.
31386
+ *
31387
+ * - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
31388
+ * - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
31389
+ * - `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`.
31390
+ * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
31391
+ * - `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.
31392
+ * - `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.
31393
+ * - `helix-graph-zoom`: A zoom button or key was pressed. `connectGraph` zooms the drawing.
31394
+ *
31395
+ * ## Slots
31396
+ *
31397
+ * Areas where markup can be added to the component.
31398
+ *
31399
+ * - `(default)`: The renderer's box, which the drawing is made in.
31400
+ * - `filter-icon`: The icon in the search field. Defaults to a magnifying glass.
31401
+ * - `footer`: Content below the graph.
31402
+ * - `header`: Content above the graph.
31403
+ *
31404
+ * ## Methods
31405
+ *
31406
+ * Methods that can be called to access component functionality.
31407
+ *
31408
+ * - `drawn(whole = true) => void`: Says the graph has been drawn whole, or with `false`, that it no longer
31409
+ * is. Called by `connectGraph` once its layout has settled; a page drawing
31410
+ * its own graph calls it when that graph is finished. The first call after
31411
+ * the graph was not drawn sends `helix-graph-ready` and turns on
31412
+ * `:state(ready)`.
31413
+ * - `laidOut(positions: Record<string, { x: number; y: number }>) => void`: Says where a layout put each note, by its `id`: sends
31414
+ * `helix-graph-layout` for the page to keep. Called by `connectGraph` once
31415
+ * its layout has settled; a page laying out its own graph calls it the same
31416
+ * way.
31417
+ * - `pan(to: ViewportWay) => void`: Pans the view one step in a direction.
31418
+ * - `zoom(by: number) => void`: Zooms the view one step: `1` zooms in and `-1` zooms out.
31419
+ * - `toggleFullscreen() => void`: Turns fullscreen on or off.
31420
+ * - `requestActive(next: string) => boolean`: Requests a new current item, and returns whether the change was applied.
31421
+ *
31422
+ * Announces before it acts, so `preventDefault()` on the `helix-before-activate` is
31423
+ * a refusal and nothing moves. Unlike a native control, nothing has moved
31424
+ * by the time this runs, so refusing is simply not writing: there is
31425
+ * nothing to put back. Nobody refusing means the set updates itself,
31426
+ * whether or not a consumer declared `active`, a declared property being a
31427
+ * seed and a correction.
31428
+ *
31429
+ * ## CSS Parts
31430
+ *
31431
+ * Custom selectors for styling elements within the component.
31432
+ *
31433
+ * - `after`: The room the notes after those drawn would take, so the list scrolls its whole length.
31434
+ * - `before`: The room the notes before those drawn would take.
31435
+ * - `body`: The drawing beside the list, or above it where the frame is narrow.
31436
+ * - `controls`: The group the pan and zoom buttons sit in.
31437
+ * - `count`: How many notes the list holds, which a search narrows, at the end of the search bar.
31438
+ * - `filter-icon`: The icon beside the search field.
31439
+ * - `filter-mark`: The default icon beside the search field, shown when none is slotted.
31440
+ * - `footer`: The strip below the graph.
31441
+ * - `fullscreen`: The button that makes the graph fill the screen.
31442
+ * - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
31443
+ * - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
31444
+ * - `header`: The strip above the graph.
31445
+ * - `list`: The list of notes, which draws only the rows in view.
31446
+ * - `live`: What screen readers hear when a search changes how many notes there are.
31447
+ * - `note`: One note in the list.
31448
+ * - `note-cursor`: The note the keyboard is on in the list.
31449
+ * - `note-linked`: A note linked to or from the selected one.
31450
+ * - `note-name`: A note's name in the list.
31451
+ * - `note-relation`: How a note stands to the selected one, such as "Linked from Alpha".
31452
+ * - `note-selected`: The selected note, first in the list.
31453
+ * - `pan-down`: The button that moves the graph down.
31454
+ * - `pan-end`: The button that moves the graph toward the end of a line of text: right in English.
31455
+ * - `pan-start`: The button that moves the graph toward the start of a line of text: left in English.
31456
+ * - `pan-up`: The button that moves the graph up.
31457
+ * - `panel`: The search field and the list, beside the drawing or below it.
31458
+ * - `region`: The frame: the drawing, its controls and the list.
31459
+ * - `search`: The bar holding the icon, the search field and the count.
31460
+ * - `search-field`: The field that finds a note by its name.
31461
+ * - `stage`: The drawing and its controls.
31462
+ * - `viewport`: The box the renderer draws in.
31463
+ * - `zoom-in`: The zoom in button.
31464
+ * - `zoom-out`: The zoom out button.
31465
+ *
31466
+ * ## CSS States
31467
+ *
31468
+ * These can be used to apply styling when a component is in a given state.
31469
+ *
31470
+ * - `fullscreen`: The graph fills the screen.
31471
+ * - `idle`: The user has been still long enough for the header and footer to fade.
31472
+ * - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
31473
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
31474
+ * - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
31475
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
31476
+ */
31477
+ "helix-headless-graph": Partial<
31478
+ HelixHeadlessGraphProps & BaseProps<HelixHeadlessGraph> & BaseEvents<HelixHeadlessGraph>
31479
+ >;
31480
+
30521
31481
  /**
30522
31482
  * A grid of cells, each colored by a tone. `rows="1"` makes a status strip, and
30523
31483
  * `rows="7"` makes a contribution graph. GitHub's contribution graph uses five
@@ -33211,26 +34171,12 @@ export type CustomElements = {
33211
34171
  *
33212
34172
  * Component attributes and properties that can be applied to the element or by using JavaScript.
33213
34173
  *
33214
- * - `activate-hint-label`/`activateHintLabel`: The hint shown when a map waiting to be pressed is scrolled or swiped
33215
- * over, with `gestures="activate"`.
33216
34174
  * - `bearing`: The map's rotation, in degrees clockwise from north. `connectMap` keeps it
33217
34175
  * current, and the Face north button's needle turns with it.
33218
34176
  * - `cluster`: Combines markers that would overlap into one count. Counts split apart as
33219
34177
  * the map zooms in, and pressing one zooms in to its places.
33220
34178
  * - `face-north-label`/`faceNorthLabel`: The Face north button's label.
33221
34179
  * - `flat-label`/`flatLabel`: What screen readers hear when the map is tilted back to looking straight down.
33222
- * - `gestures`: Which gestures the map takes from the page.
33223
- *
33224
- * - `always`, which unset is: the wheel zooms the map and one finger pans
33225
- * it, for a map that is the page, such as a full-screen view.
33226
- * - `cooperative`: the wheel and one finger scroll the page, and the map
33227
- * takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
33228
- * when a gesture passes to the page. Best for a map embedded in a page.
33229
- * - `activate`: the map takes nothing until it is pressed, and gives it
33230
- * back on Escape, when the pointer leaves it, or on a press elsewhere.
33231
- *
33232
- * The keyboard and the frame's buttons work in every mode. The renderer is
33233
- * told through the connector, so MapLibre and Leaflet behave alike.
33234
34180
  * - `hybrid-label`/`hybridLabel`: The Hybrid map type's name.
33235
34181
  * - `label`: The map's name, read by screen readers. Name the place, such as "Delivery
33236
34182
  * area", so that several maps on one page can be told apart. Required.
@@ -33257,14 +34203,11 @@ export type CustomElements = {
33257
34203
  * - `tilt-label`/`tiltLabel`: The 3D button's label.
33258
34204
  * - `turned-label`/`turnedLabel`: What screen readers hear when the map is turned. `{degrees}` is the way the
33259
34205
  * top of the map faces, clockwise from north.
33260
- * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a map with `gestures="cooperative"`.
33261
- * - `using-label`/`usingLabel`: The line shown while a map with `gestures="activate"` has the gestures.
33262
- * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a map with
33263
- * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
33264
- * elsewhere, as the renderer reads it.
33265
34206
  * - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom. `{level}` is the zoom level.
33266
34207
  * - `zoom-level`/`zoomLevel`: How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
33267
34208
  * current, and the map says it after a zoom.
34209
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
34210
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
33268
34211
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
33269
34212
  * `none`. A family can add words of its own.
33270
34213
  *
@@ -33304,6 +34247,25 @@ export type CustomElements = {
33304
34247
  * resting value being an attribute's absence: a default that reflected
33305
34248
  * would write an attribute onto every host that no server sent.
33306
34249
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
34250
+ * - `gestures`: Which gestures the surface takes from the page.
34251
+ *
34252
+ * - `always`: the surface takes the wheel and one finger, for a surface
34253
+ * that is the page, such as a full-screen view. A map rests here.
34254
+ * - Unset is the family's own: `always` for a map, and for a board, a
34255
+ * drag and a pinch, with the plain wheel left to the page until the
34256
+ * board fills the screen.
34257
+ * - `cooperative`: the wheel and one finger scroll the page, and the
34258
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
34259
+ * says so when a gesture passes to the page. Best for a surface embedded
34260
+ * in a page.
34261
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
34262
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
34263
+ *
34264
+ * The keyboard and the frame's buttons work in every mode.
34265
+ *
34266
+ * **Unreflected and without a default**, because a default that reflected
34267
+ * would write an attribute onto every host that no server sent, and the
34268
+ * hydration that followed would disagree with it.
33307
34269
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
33308
34270
  *
33309
34271
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -33325,6 +34287,13 @@ export type CustomElements = {
33325
34287
  * scale of what is inside it: a quarter of the viewport is the same gesture
33326
34288
  * at any zoom, and a consumer who wants their own units multiplies by them.
33327
34289
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
34290
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
34291
+ * `gestures="cooperative"`. Absent is the family's own.
34292
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
34293
+ * gestures. Absent is the family's own.
34294
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
34295
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
34296
+ * elsewhere. Absent is the family's own.
33328
34297
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
33329
34298
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
33330
34299
  * - `ready`: Whether the map has been drawn whole, which `drawn()` says. For a page that
@@ -33458,6 +34427,7 @@ export type CustomElements = {
33458
34427
  * - `fullscreen`: The map fills the screen.
33459
34428
  * - `idle`: The user has been still long enough for the header and footer to fade.
33460
34429
  * - `ready`: The map has been drawn whole, after `helix-map-ready`.
34430
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a map with `gestures="activate"` waits to be pressed.
33461
34431
  * - `using`: A map with `gestures="activate"` has been pressed and has the gestures.
33462
34432
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
33463
34433
  */
@@ -44813,6 +45783,8 @@ export type CustomElementsSolidJs = {
44813
45783
  * red is "blocked" on one board and "urgent" on the next. A reader who can
44814
45784
  * see the board is told by the color; this is how a reader who cannot is
44815
45785
  * told the same. A tone left out is not read.
45786
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
45787
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
44816
45788
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
44817
45789
  * `none`. A family can add words of its own.
44818
45790
  *
@@ -44852,6 +45824,25 @@ export type CustomElementsSolidJs = {
44852
45824
  * resting value being an attribute's absence: a default that reflected
44853
45825
  * would write an attribute onto every host that no server sent.
44854
45826
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
45827
+ * - `gestures`: Which gestures the surface takes from the page.
45828
+ *
45829
+ * - `always`: the surface takes the wheel and one finger, for a surface
45830
+ * that is the page, such as a full-screen view. A map rests here.
45831
+ * - Unset is the family's own: `always` for a map, and for a board, a
45832
+ * drag and a pinch, with the plain wheel left to the page until the
45833
+ * board fills the screen.
45834
+ * - `cooperative`: the wheel and one finger scroll the page, and the
45835
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
45836
+ * says so when a gesture passes to the page. Best for a surface embedded
45837
+ * in a page.
45838
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
45839
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
45840
+ *
45841
+ * The keyboard and the frame's buttons work in every mode.
45842
+ *
45843
+ * **Unreflected and without a default**, because a default that reflected
45844
+ * would write an attribute onto every host that no server sent, and the
45845
+ * hydration that followed would disagree with it.
44855
45846
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
44856
45847
  *
44857
45848
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -44873,6 +45864,13 @@ export type CustomElementsSolidJs = {
44873
45864
  * scale of what is inside it: a quarter of the viewport is the same gesture
44874
45865
  * at any zoom, and a consumer who wants their own units multiplies by them.
44875
45866
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
45867
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
45868
+ * `gestures="cooperative"`. Absent is the family's own.
45869
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
45870
+ * gestures. Absent is the family's own.
45871
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
45872
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
45873
+ * elsewhere. Absent is the family's own.
44876
45874
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
44877
45875
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
44878
45876
  * - `view`: The board's current view: the document's point at the middle of the view,
@@ -44989,6 +45987,8 @@ export type CustomElementsSolidJs = {
44989
45987
  * - `edges`: The layer the connectors are drawn in.
44990
45988
  * - `footer`: The strip below the board.
44991
45989
  * - `fullscreen`: The button that makes the board fill the screen.
45990
+ * - `gesture-hint`: Words over the board for a moment when it lets a gesture pass to the page, such as how to zoom it.
45991
+ * - `gesture-status`: The line shown while a board with `gestures="activate"` has the gestures.
44992
45992
  * - `header`: The strip above the board.
44993
45993
  * - `label`: The label on a connector.
44994
45994
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
@@ -45014,6 +46014,8 @@ export type CustomElementsSolidJs = {
45014
46014
  * - `holding`: An item picked up with a click follows the pointer until the next press puts it down.
45015
46015
  * - `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.
45016
46016
  * - `pressing`: While a press on the board, its cards or its connections is under way.
46017
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a board with `gestures="activate"` waits to be pressed.
46018
+ * - `using`: A board with `gestures="activate"` has been pressed and has the gestures.
45017
46019
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
45018
46020
  */
45019
46021
  "helix-headless-canvas": Partial<
@@ -50583,6 +51585,270 @@ export type CustomElementsSolidJs = {
50583
51585
  BaseEvents<HelixHeadlessFormatDate>
50584
51586
  >;
50585
51587
 
51588
+ /**
51589
+ * Helix draws no graph. A force layout of thousands of notes is physics and
51590
+ * WebGL, which a renderer such as Sigma.js does. Put the renderer's box in the
51591
+ * frame, and `connectGraph` from `@fusion.dev/helix-graph` draws `nodes` and
51592
+ * `links` in it and keeps it in step with the frame.
51593
+ *
51594
+ * What the frame adds is what a drawing of a graph cannot do: a list of every
51595
+ * note beside it, which is the graph for a screen reader and a quick way to
51596
+ * find a note for anyone. The selected note comes first, then the notes it
51597
+ * links to and from, then every other note, and the search field narrows it.
51598
+ * Selecting a note in the list or in the drawing is the same selection.
51599
+ *
51600
+ * Set `depth` to show the local graph: only the notes within that many links
51601
+ * of the selected one.
51602
+ *
51603
+ * `nodes` and `links` are properties, never markup: a graph of ten thousand
51604
+ * notes as ten thousand elements would cost what the renderer exists to save.
51605
+ * The list draws only the rows in view.
51606
+ *
51607
+ * The list scrolls on this tier. It carries `data-scroller`, and `core` ships
51608
+ * `[data-scroller] { overflow: auto }` into every shadow root. You still need
51609
+ * to set a block size on the list, or it grows to hold every row.
51610
+ *
51611
+ * ## Attributes & Properties
51612
+ *
51613
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
51614
+ *
51615
+ * - `count-label`/`countLabel`: What the list says of a note's count, with `{count}`.
51616
+ * - `depth`: How many links from the selected note to show, for its local graph. Unset
51617
+ * shows every note. The list holds what the drawing shows.
51618
+ * - `label`: The graph's name, read by screen readers, such as "Research notes".
51619
+ * Required.
51620
+ * - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
51621
+ * - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
51622
+ * - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
51623
+ * - `notes-label`/`notesLabel`: The list's name, read by screen readers.
51624
+ * - `search-label`/`searchLabel`: The search field's name.
51625
+ * - `selected-label`/`selectedLabel`: How the selected note is described in the list.
51626
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
51627
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
51628
+ * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
51629
+ * `none`. A family can add words of its own.
51630
+ *
51631
+ * **A list rather than a switch, because the overlap is not symmetric.** A
51632
+ * surface a consumer brings often has zoom controls of its own and almost
51633
+ * never has pan buttons, so a single switch would make them choose between
51634
+ * a duplicate and nothing.
51635
+ *
51636
+ * `none` draws none of them, which is the right answer where what was
51637
+ * slotted already has controls a reader can find: what this argues for is
51638
+ * that *a* findable control exists, never that it is ours. The methods stay
51639
+ * public either way, so a consumer drawing their own chrome can still drive
51640
+ * the surface.
51641
+ *
51642
+ * Absent is whatever the family rests at, which is this library's rule that
51643
+ * a resting value is an attribute's absence: zoom, the compass and
51644
+ * fullscreen for a map, whose pan buttons a page asks for, and zoom and
51645
+ * fullscreen for a board, which a reader drags and whose pad took a third
51646
+ * of the frame. The
51647
+ * stylesheet lays the cluster out by which buttons are in it rather than by
51648
+ * this attribute, so the two defaults need no rule each.
51649
+ * - `controls-label`/`controlsLabel`: The name of the group of controls, read by screen readers.
51650
+ *
51651
+ * Absent is the family's own name for it, "Map controls" or "Board
51652
+ * controls", which names what the controls drive rather than the
51653
+ * mechanism. Written here to say it in another language, which every other
51654
+ * string this surface speaks already allowed and this one did not.
51655
+ * - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
51656
+ *
51657
+ * **Configurable because there is no safe default**, which is a collision
51658
+ * rather than a taste: whatever a consumer slots may put its own controls
51659
+ * in any corner, and every library that draws some made this a setting for
51660
+ * the same reason.
51661
+ *
51662
+ * Logical corners rather than left and right, so a right-to-left page moves
51663
+ * them without a consumer writing a second rule. Absent is the top end, a
51664
+ * resting value being an attribute's absence: a default that reflected
51665
+ * would write an attribute onto every host that no server sent.
51666
+ * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
51667
+ * - `gestures`: Which gestures the surface takes from the page.
51668
+ *
51669
+ * - `always`: the surface takes the wheel and one finger, for a surface
51670
+ * that is the page, such as a full-screen view. A map rests here.
51671
+ * - Unset is the family's own: `always` for a map, and for a board, a
51672
+ * drag and a pinch, with the plain wheel left to the page until the
51673
+ * board fills the screen.
51674
+ * - `cooperative`: the wheel and one finger scroll the page, and the
51675
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
51676
+ * says so when a gesture passes to the page. Best for a surface embedded
51677
+ * in a page.
51678
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
51679
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
51680
+ *
51681
+ * The keyboard and the frame's buttons work in every mode.
51682
+ *
51683
+ * **Unreflected and without a default**, because a default that reflected
51684
+ * would write an attribute onto every host that no server sent, and the
51685
+ * hydration that followed would disagree with it.
51686
+ * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
51687
+ *
51688
+ * Zero keeps it up, which is the default: these controls are how a keyboard
51689
+ * reader operates the surface, and chrome that hid itself by default would
51690
+ * be the component undoing its own argument. Set it for a display nobody
51691
+ * drives.
51692
+ * - `pan-down-label`/`panDownLabel`: The pan down button's label.
51693
+ *
51694
+ * **A label for each way rather than one with the way filled in**, which is
51695
+ * what this was: `Pan {way}` filled in with `left`, so a page that said it
51696
+ * in French read out "Déplacer left". The word for a direction is as much
51697
+ * the translator's as the word for panning, and a language can put it
51698
+ * anywhere in the phrase.
51699
+ * - `pan-left-label`/`panLeftLabel`: The pan left button's label.
51700
+ * - `pan-right-label`/`panRightLabel`: The pan right button's label.
51701
+ * - `pan-step`/`panStep`: How far one press pans the view, as a fraction of its size.
51702
+ *
51703
+ * A fraction rather than a distance, because this surface does not know the
51704
+ * scale of what is inside it: a quarter of the viewport is the same gesture
51705
+ * at any zoom, and a consumer who wants their own units multiplies by them.
51706
+ * - `pan-up-label`/`panUpLabel`: The pan up button's label.
51707
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
51708
+ * `gestures="cooperative"`. Absent is the family's own.
51709
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
51710
+ * gestures. Absent is the family's own.
51711
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
51712
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
51713
+ * elsewhere. Absent is the family's own.
51714
+ * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
51715
+ * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
51716
+ * - `active`: The `value` of the current item.
51717
+ *
51718
+ * Not `option.active`, which is the option the keyboard is on: that is a
51719
+ * different question from which one is chosen.
51720
+ *
51721
+ * Writing always applies, so `<helix-tabs active="one">` starts on that
51722
+ * tab, and `default-active` is how markup says where to start without
51723
+ * naming the current one.
51724
+ * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
51725
+ *
51726
+ * Ignored once `active` is written.
51727
+ * - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
51728
+ * - `nodes`: The notes. A property, never an attribute. (property only)
51729
+ * - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
51730
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
51731
+ *
51732
+ * **Named `whenSettled` because `settled` is taken four times over**, by
51733
+ * Image, Splitter and both color controls, none of them about transitions. A
51734
+ * base class takes the name every subclass then cannot use.
51735
+ *
51736
+ * **The state it reports cannot be watched, which is why this exists.** A
51737
+ * custom state is deliberately not in the DOM, so there is no
51738
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
51739
+ * instead.
51740
+ *
51741
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
51742
+ * the suppression is still active in. That is the distinction `readyToMove`
51743
+ * in `@fusion.dev/helix-testing` is written around.
51744
+ *
51745
+ * It never resolves where `requestAnimationFrame` never fires, which is a
51746
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
51747
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
51748
+ * browser harness's awaits it alone: a browser always runs the frame, and a
51749
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
51750
+ *
51751
+ * ## Events
51752
+ *
51753
+ * Events that will be emitted by the component.
51754
+ *
51755
+ * - `helix-activate`: A note was selected, in the list or in the drawing. The detail's `value` is its `id`.
51756
+ * - `helix-before-activate`: A note is about to be selected. Cancelable: cancel it to keep the selection in your own state.
51757
+ * - `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`.
51758
+ * - `helix-graph-pan`: A pan button or arrow key was pressed. `connectGraph` moves the drawing.
51759
+ * - `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.
51760
+ * - `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.
51761
+ * - `helix-graph-zoom`: A zoom button or key was pressed. `connectGraph` zooms the drawing.
51762
+ *
51763
+ * ## Slots
51764
+ *
51765
+ * Areas where markup can be added to the component.
51766
+ *
51767
+ * - `(default)`: The renderer's box, which the drawing is made in.
51768
+ * - `filter-icon`: The icon in the search field. Defaults to a magnifying glass.
51769
+ * - `footer`: Content below the graph.
51770
+ * - `header`: Content above the graph.
51771
+ *
51772
+ * ## Methods
51773
+ *
51774
+ * Methods that can be called to access component functionality.
51775
+ *
51776
+ * - `drawn(whole = true) => void`: Says the graph has been drawn whole, or with `false`, that it no longer
51777
+ * is. Called by `connectGraph` once its layout has settled; a page drawing
51778
+ * its own graph calls it when that graph is finished. The first call after
51779
+ * the graph was not drawn sends `helix-graph-ready` and turns on
51780
+ * `:state(ready)`.
51781
+ * - `laidOut(positions: Record<string, { x: number; y: number }>) => void`: Says where a layout put each note, by its `id`: sends
51782
+ * `helix-graph-layout` for the page to keep. Called by `connectGraph` once
51783
+ * its layout has settled; a page laying out its own graph calls it the same
51784
+ * way.
51785
+ * - `pan(to: ViewportWay) => void`: Pans the view one step in a direction.
51786
+ * - `zoom(by: number) => void`: Zooms the view one step: `1` zooms in and `-1` zooms out.
51787
+ * - `toggleFullscreen() => void`: Turns fullscreen on or off.
51788
+ * - `requestActive(next: string) => boolean`: Requests a new current item, and returns whether the change was applied.
51789
+ *
51790
+ * Announces before it acts, so `preventDefault()` on the `helix-before-activate` is
51791
+ * a refusal and nothing moves. Unlike a native control, nothing has moved
51792
+ * by the time this runs, so refusing is simply not writing: there is
51793
+ * nothing to put back. Nobody refusing means the set updates itself,
51794
+ * whether or not a consumer declared `active`, a declared property being a
51795
+ * seed and a correction.
51796
+ *
51797
+ * ## CSS Parts
51798
+ *
51799
+ * Custom selectors for styling elements within the component.
51800
+ *
51801
+ * - `after`: The room the notes after those drawn would take, so the list scrolls its whole length.
51802
+ * - `before`: The room the notes before those drawn would take.
51803
+ * - `body`: The drawing beside the list, or above it where the frame is narrow.
51804
+ * - `controls`: The group the pan and zoom buttons sit in.
51805
+ * - `count`: How many notes the list holds, which a search narrows, at the end of the search bar.
51806
+ * - `filter-icon`: The icon beside the search field.
51807
+ * - `filter-mark`: The default icon beside the search field, shown when none is slotted.
51808
+ * - `footer`: The strip below the graph.
51809
+ * - `fullscreen`: The button that makes the graph fill the screen.
51810
+ * - `gesture-hint`: Words over the graph for a moment when it lets a gesture pass to the page, such as how to zoom it.
51811
+ * - `gesture-status`: The line shown while a graph with `gestures="activate"` has the gestures.
51812
+ * - `header`: The strip above the graph.
51813
+ * - `list`: The list of notes, which draws only the rows in view.
51814
+ * - `live`: What screen readers hear when a search changes how many notes there are.
51815
+ * - `note`: One note in the list.
51816
+ * - `note-cursor`: The note the keyboard is on in the list.
51817
+ * - `note-linked`: A note linked to or from the selected one.
51818
+ * - `note-name`: A note's name in the list.
51819
+ * - `note-relation`: How a note stands to the selected one, such as "Linked from Alpha".
51820
+ * - `note-selected`: The selected note, first in the list.
51821
+ * - `pan-down`: The button that moves the graph down.
51822
+ * - `pan-end`: The button that moves the graph toward the end of a line of text: right in English.
51823
+ * - `pan-start`: The button that moves the graph toward the start of a line of text: left in English.
51824
+ * - `pan-up`: The button that moves the graph up.
51825
+ * - `panel`: The search field and the list, beside the drawing or below it.
51826
+ * - `region`: The frame: the drawing, its controls and the list.
51827
+ * - `search`: The bar holding the icon, the search field and the count.
51828
+ * - `search-field`: The field that finds a note by its name.
51829
+ * - `stage`: The drawing and its controls.
51830
+ * - `viewport`: The box the renderer draws in.
51831
+ * - `zoom-in`: The zoom in button.
51832
+ * - `zoom-out`: The zoom out button.
51833
+ *
51834
+ * ## CSS States
51835
+ *
51836
+ * These can be used to apply styling when a component is in a given state.
51837
+ *
51838
+ * - `fullscreen`: The graph fills the screen.
51839
+ * - `idle`: The user has been still long enough for the header and footer to fade.
51840
+ * - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
51841
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
51842
+ * - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
51843
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
51844
+ */
51845
+ "helix-headless-graph": Partial<
51846
+ HelixHeadlessGraphProps &
51847
+ HelixHeadlessGraphSolidJsProps &
51848
+ BaseProps<HelixHeadlessGraph> &
51849
+ BaseEvents<HelixHeadlessGraph>
51850
+ >;
51851
+
50586
51852
  /**
50587
51853
  * A grid of cells, each colored by a tone. `rows="1"` makes a status strip, and
50588
51854
  * `rows="7"` makes a contribution graph. GitHub's contribution graph uses five
@@ -53330,26 +54596,12 @@ export type CustomElementsSolidJs = {
53330
54596
  *
53331
54597
  * Component attributes and properties that can be applied to the element or by using JavaScript.
53332
54598
  *
53333
- * - `activate-hint-label`/`activateHintLabel`: The hint shown when a map waiting to be pressed is scrolled or swiped
53334
- * over, with `gestures="activate"`.
53335
54599
  * - `bearing`: The map's rotation, in degrees clockwise from north. `connectMap` keeps it
53336
54600
  * current, and the Face north button's needle turns with it.
53337
54601
  * - `cluster`: Combines markers that would overlap into one count. Counts split apart as
53338
54602
  * the map zooms in, and pressing one zooms in to its places.
53339
54603
  * - `face-north-label`/`faceNorthLabel`: The Face north button's label.
53340
54604
  * - `flat-label`/`flatLabel`: What screen readers hear when the map is tilted back to looking straight down.
53341
- * - `gestures`: Which gestures the map takes from the page.
53342
- *
53343
- * - `always`, which unset is: the wheel zooms the map and one finger pans
53344
- * it, for a map that is the page, such as a full-screen view.
53345
- * - `cooperative`: the wheel and one finger scroll the page, and the map
53346
- * takes Ctrl or ⌘ with the wheel, and two fingers. The frame says so
53347
- * when a gesture passes to the page. Best for a map embedded in a page.
53348
- * - `activate`: the map takes nothing until it is pressed, and gives it
53349
- * back on Escape, when the pointer leaves it, or on a press elsewhere.
53350
- *
53351
- * The keyboard and the frame's buttons work in every mode. The renderer is
53352
- * told through the connector, so MapLibre and Leaflet behave alike.
53353
54605
  * - `hybrid-label`/`hybridLabel`: The Hybrid map type's name.
53354
54606
  * - `label`: The map's name, read by screen readers. Name the place, such as "Delivery
53355
54607
  * area", so that several maps on one page can be told apart. Required.
@@ -53376,14 +54628,11 @@ export type CustomElementsSolidJs = {
53376
54628
  * - `tilt-label`/`tiltLabel`: The 3D button's label.
53377
54629
  * - `turned-label`/`turnedLabel`: What screen readers hear when the map is turned. `{degrees}` is the way the
53378
54630
  * top of the map faces, clockwise from north.
53379
- * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a map with `gestures="cooperative"`.
53380
- * - `using-label`/`usingLabel`: The line shown while a map with `gestures="activate"` has the gestures.
53381
- * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a map with
53382
- * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
53383
- * elsewhere, as the renderer reads it.
53384
54631
  * - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom. `{level}` is the zoom level.
53385
54632
  * - `zoom-level`/`zoomLevel`: How far the map is zoomed, in its renderer's levels. `connectMap` keeps it
53386
54633
  * current, and the map says it after a zoom.
54634
+ * - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
54635
+ * swiped over, with `gestures="activate"`. Absent is the family's own.
53387
54636
  * - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
53388
54637
  * `none`. A family can add words of its own.
53389
54638
  *
@@ -53423,6 +54672,25 @@ export type CustomElementsSolidJs = {
53423
54672
  * resting value being an attribute's absence: a default that reflected
53424
54673
  * would write an attribute onto every host that no server sent.
53425
54674
  * - `fullscreen-label`/`fullscreenLabel`: The fullscreen button's label.
54675
+ * - `gestures`: Which gestures the surface takes from the page.
54676
+ *
54677
+ * - `always`: the surface takes the wheel and one finger, for a surface
54678
+ * that is the page, such as a full-screen view. A map rests here.
54679
+ * - Unset is the family's own: `always` for a map, and for a board, a
54680
+ * drag and a pinch, with the plain wheel left to the page until the
54681
+ * board fills the screen.
54682
+ * - `cooperative`: the wheel and one finger scroll the page, and the
54683
+ * surface takes Ctrl or ⌘ with the wheel, and two fingers. The frame
54684
+ * says so when a gesture passes to the page. Best for a surface embedded
54685
+ * in a page.
54686
+ * - `activate`: the surface takes nothing until it is pressed, and gives it
54687
+ * back on Escape, when the pointer leaves it, or on a press elsewhere.
54688
+ *
54689
+ * The keyboard and the frame's buttons work in every mode.
54690
+ *
54691
+ * **Unreflected and without a default**, because a default that reflected
54692
+ * would write an attribute onto every host that no server sent, and the
54693
+ * hydration that followed would disagree with it.
53426
54694
  * - `idle-delay`/`idleDelay`: How long, in milliseconds, before the header and footer hide when the user is inactive. `0` keeps them visible.
53427
54695
  *
53428
54696
  * Zero keeps it up, which is the default: these controls are how a keyboard
@@ -53444,6 +54712,13 @@ export type CustomElementsSolidJs = {
53444
54712
  * scale of what is inside it: a quarter of the viewport is the same gesture
53445
54713
  * at any zoom, and a consumer who wants their own units multiplies by them.
53446
54714
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
54715
+ * - `two-finger-hint-label`/`twoFingerHintLabel`: The hint shown when one finger swipes over a surface with
54716
+ * `gestures="cooperative"`. Absent is the family's own.
54717
+ * - `using-label`/`usingLabel`: The line shown while a surface with `gestures="activate"` has the
54718
+ * gestures. Absent is the family's own.
54719
+ * - `wheel-hint-label`/`wheelHintLabel`: The hint shown when the wheel scrolls past a surface with
54720
+ * `gestures="cooperative"`, with `{key}`, which is ⌘ on a Mac and Ctrl
54721
+ * elsewhere. Absent is the family's own.
53447
54722
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
53448
54723
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
53449
54724
  * - `ready`: Whether the map has been drawn whole, which `drawn()` says. For a page that
@@ -53577,6 +54852,7 @@ export type CustomElementsSolidJs = {
53577
54852
  * - `fullscreen`: The map fills the screen.
53578
54853
  * - `idle`: The user has been still long enough for the header and footer to fade.
53579
54854
  * - `ready`: The map has been drawn whole, after `helix-map-ready`.
54855
+ * - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a map with `gestures="activate"` waits to be pressed.
53580
54856
  * - `using`: A map with `gestures="activate"` has been pressed and has the gestures.
53581
54857
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
53582
54858
  */