@fusion.dev/helix-headless 0.103.1 → 0.103.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +254 -80
- package/dist/map/root/map-root.d.ts +22 -118
- package/dist/map/root/map-root.js +8 -137
- package/package.json +5 -5
- package/types/jsx.d.ts +232 -230
- package/types/vue.d.ts +67 -68
package/types/jsx.d.ts
CHANGED
|
@@ -9396,56 +9396,61 @@ export type HelixHeadlessMapHelixMapZoomElementEvent =
|
|
|
9396
9396
|
HelixHeadlessMapElementEvent<HelixMapZoomEvent>;
|
|
9397
9397
|
|
|
9398
9398
|
export type HelixHeadlessMapProps = {
|
|
9399
|
-
/**
|
|
9400
|
-
|
|
9401
|
-
|
|
9402
|
-
|
|
9403
|
-
|
|
9404
|
-
|
|
9405
|
-
|
|
9406
|
-
|
|
9407
|
-
|
|
9408
|
-
|
|
9409
|
-
|
|
9410
|
-
|
|
9411
|
-
|
|
9412
|
-
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
|
|
9399
|
+
/** Accessible name for the map, which is the one thing a consumer must write.
|
|
9400
|
+
|
|
9401
|
+
There is no sensible default. "Map" names the widget rather than the place,
|
|
9402
|
+
and a reader meeting three of them on a page learns nothing from hearing the
|
|
9403
|
+
same word three times.
|
|
9404
|
+
|
|
9405
|
+
**The region is a tab stop**, so the keys are reachable however the controls
|
|
9406
|
+
are configured: the listener is on the region, and without a stop of its own
|
|
9407
|
+
a frame at `controls="none"` around a map with nothing focusable in it had
|
|
9408
|
+
arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
9409
|
+
rather than spelling them into the name, which would otherwise be read out
|
|
9410
|
+
at every encounter. */
|
|
9411
|
+
label?: (HelixHeadlessMap["label"]) | undefined;
|
|
9412
|
+
/** Which of the controls this surface draws, as a list of what to keep.
|
|
9413
|
+
|
|
9414
|
+
**A list rather than a switch, because the overlap is not symmetric.** A
|
|
9415
|
+
surface a consumer brings often has zoom controls of its own and almost
|
|
9416
|
+
never has pan buttons, so a single switch would make them choose between
|
|
9417
|
+
a duplicate and nothing.
|
|
9418
|
+
|
|
9419
|
+
`none` draws none of them, which is the right answer where what was
|
|
9420
|
+
slotted already has controls a reader can find: what this argues for is
|
|
9421
|
+
that *a* findable control exists, never that it is ours. The methods stay
|
|
9422
|
+
public either way, so a consumer drawing their own chrome can still drive
|
|
9423
|
+
the surface.
|
|
9424
|
+
|
|
9425
|
+
Absent is all three, which is this library's rule that a resting value is
|
|
9426
|
+
an attribute's absence, and it is what the stylesheet asks about: the
|
|
9427
|
+
layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
9428
|
+
rather than the bare negation, or a surface that named no list at all
|
|
9429
|
+
would be laid out as though it had dropped everything. */
|
|
9419
9430
|
controls?: (HelixHeadlessMap["controls"]) | undefined;
|
|
9420
9431
|
/** Which corner the controls sit in.
|
|
9421
9432
|
|
|
9422
|
-
**Configurable because there is no safe default**,
|
|
9423
|
-
rather than a taste:
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
libraries made it a setting too.
|
|
9433
|
+
**Configurable because there is no safe default**, which is a collision
|
|
9434
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
9435
|
+
in any corner, and every library that draws some made this a setting for
|
|
9436
|
+
the same reason.
|
|
9427
9437
|
|
|
9428
9438
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
9429
|
-
them without a consumer writing a second rule.
|
|
9430
|
-
|
|
9431
|
-
|
|
9432
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
9433
|
-
onto every host that no server sent and nobody asked for. */
|
|
9439
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
9440
|
+
resting value being an attribute's absence: a default that reflected
|
|
9441
|
+
would write an attribute onto every host that no server sent. */
|
|
9434
9442
|
"controls-placement"?: (HelixHeadlessMap["controlsPlacement"]) | undefined;
|
|
9435
9443
|
/** Which corner the controls sit in.
|
|
9436
9444
|
|
|
9437
|
-
**Configurable because there is no safe default**,
|
|
9438
|
-
rather than a taste:
|
|
9439
|
-
|
|
9440
|
-
|
|
9441
|
-
libraries made it a setting too.
|
|
9445
|
+
**Configurable because there is no safe default**, which is a collision
|
|
9446
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
9447
|
+
in any corner, and every library that draws some made this a setting for
|
|
9448
|
+
the same reason.
|
|
9442
9449
|
|
|
9443
9450
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
9444
|
-
them without a consumer writing a second rule.
|
|
9445
|
-
|
|
9446
|
-
|
|
9447
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
9448
|
-
onto every host that no server sent and nobody asked for. */
|
|
9451
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
9452
|
+
resting value being an attribute's absence: a default that reflected
|
|
9453
|
+
would write an attribute onto every host that no server sent. */
|
|
9449
9454
|
controlsPlacement?: (HelixHeadlessMap["controlsPlacement"]) | undefined;
|
|
9450
9455
|
/** What the control that fills the screen is called. */
|
|
9451
9456
|
"fullscreen-label"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
|
|
@@ -9453,47 +9458,41 @@ onto every host that no server sent and nobody asked for. */
|
|
|
9453
9458
|
fullscreenLabel?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
|
|
9454
9459
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
9455
9460
|
|
|
9456
|
-
Zero keeps it up, which is the default:
|
|
9457
|
-
reader operates
|
|
9458
|
-
component undoing its own argument. Set it for a display
|
|
9461
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
9462
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
9463
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
9464
|
+
drives. */
|
|
9459
9465
|
"idle-delay"?: (HelixHeadlessMap["idleDelay"] | `${number}`) | undefined;
|
|
9460
9466
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
9461
9467
|
|
|
9462
|
-
Zero keeps it up, which is the default:
|
|
9463
|
-
reader operates
|
|
9464
|
-
component undoing its own argument. Set it for a display
|
|
9468
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
9469
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
9470
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
9471
|
+
drives. */
|
|
9465
9472
|
idleDelay?: (HelixHeadlessMap["idleDelay"]) | undefined;
|
|
9466
|
-
/**
|
|
9467
|
-
|
|
9468
|
-
There is no sensible default. "Map" names the widget rather than the place,
|
|
9469
|
-
and a reader meeting three of them on a page learns nothing from hearing the
|
|
9470
|
-
same word three times. */
|
|
9471
|
-
label?: (HelixHeadlessMap["label"]) | undefined;
|
|
9472
|
-
/** What the controls are called, for a page not in English. */
|
|
9473
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
9473
9474
|
"pan-label"?: (HelixHeadlessMap["panLabel"]) | undefined;
|
|
9474
|
-
/** What
|
|
9475
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
9475
9476
|
panLabel?: (HelixHeadlessMap["panLabel"]) | undefined;
|
|
9476
|
-
/** How far one press moves the
|
|
9477
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
9477
9478
|
|
|
9478
|
-
A fraction rather than a distance, because this
|
|
9479
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9480
|
-
|
|
9481
|
-
multiply by their own. */
|
|
9479
|
+
A fraction rather than a distance, because this surface does not know the
|
|
9480
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9481
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
9482
9482
|
"pan-step"?: (HelixHeadlessMap["panStep"] | `${number}`) | undefined;
|
|
9483
|
-
/** How far one press moves the
|
|
9483
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
9484
9484
|
|
|
9485
|
-
A fraction rather than a distance, because this
|
|
9486
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9487
|
-
|
|
9488
|
-
multiply by their own. */
|
|
9485
|
+
A fraction rather than a distance, because this surface does not know the
|
|
9486
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9487
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
9489
9488
|
panStep?: (HelixHeadlessMap["panStep"]) | undefined;
|
|
9490
|
-
/** What the
|
|
9489
|
+
/** What the control that zooms in is called. */
|
|
9491
9490
|
"zoom-in-label"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
|
|
9492
|
-
/** What the
|
|
9491
|
+
/** What the control that zooms in is called. */
|
|
9493
9492
|
zoomInLabel?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
|
|
9494
|
-
/** What the
|
|
9493
|
+
/** What the control that zooms out is called. */
|
|
9495
9494
|
"zoom-out-label"?: (HelixHeadlessMap["zoomOutLabel"]) | undefined;
|
|
9496
|
-
/** What the
|
|
9495
|
+
/** What the control that zooms out is called. */
|
|
9497
9496
|
zoomOutLabel?: (HelixHeadlessMap["zoomOutLabel"]) | undefined;
|
|
9498
9497
|
|
|
9499
9498
|
/** The reader asked the map to move. Answer it against your own map. */
|
|
@@ -9503,56 +9502,61 @@ multiply by their own. */
|
|
|
9503
9502
|
};
|
|
9504
9503
|
|
|
9505
9504
|
export type HelixHeadlessMapSolidJsProps = {
|
|
9506
|
-
/**
|
|
9507
|
-
|
|
9508
|
-
|
|
9509
|
-
|
|
9510
|
-
|
|
9511
|
-
|
|
9512
|
-
|
|
9513
|
-
|
|
9514
|
-
|
|
9515
|
-
|
|
9516
|
-
|
|
9517
|
-
|
|
9518
|
-
|
|
9519
|
-
|
|
9520
|
-
|
|
9521
|
-
|
|
9522
|
-
|
|
9523
|
-
|
|
9524
|
-
|
|
9525
|
-
|
|
9505
|
+
/** Accessible name for the map, which is the one thing a consumer must write.
|
|
9506
|
+
|
|
9507
|
+
There is no sensible default. "Map" names the widget rather than the place,
|
|
9508
|
+
and a reader meeting three of them on a page learns nothing from hearing the
|
|
9509
|
+
same word three times.
|
|
9510
|
+
|
|
9511
|
+
**The region is a tab stop**, so the keys are reachable however the controls
|
|
9512
|
+
are configured: the listener is on the region, and without a stop of its own
|
|
9513
|
+
a frame at `controls="none"` around a map with nothing focusable in it had
|
|
9514
|
+
arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
9515
|
+
rather than spelling them into the name, which would otherwise be read out
|
|
9516
|
+
at every encounter. */
|
|
9517
|
+
"prop:label"?: (HelixHeadlessMap["label"]) | undefined;
|
|
9518
|
+
/** Which of the controls this surface draws, as a list of what to keep.
|
|
9519
|
+
|
|
9520
|
+
**A list rather than a switch, because the overlap is not symmetric.** A
|
|
9521
|
+
surface a consumer brings often has zoom controls of its own and almost
|
|
9522
|
+
never has pan buttons, so a single switch would make them choose between
|
|
9523
|
+
a duplicate and nothing.
|
|
9524
|
+
|
|
9525
|
+
`none` draws none of them, which is the right answer where what was
|
|
9526
|
+
slotted already has controls a reader can find: what this argues for is
|
|
9527
|
+
that *a* findable control exists, never that it is ours. The methods stay
|
|
9528
|
+
public either way, so a consumer drawing their own chrome can still drive
|
|
9529
|
+
the surface.
|
|
9530
|
+
|
|
9531
|
+
Absent is all three, which is this library's rule that a resting value is
|
|
9532
|
+
an attribute's absence, and it is what the stylesheet asks about: the
|
|
9533
|
+
layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
9534
|
+
rather than the bare negation, or a surface that named no list at all
|
|
9535
|
+
would be laid out as though it had dropped everything. */
|
|
9526
9536
|
"prop:controls"?: (HelixHeadlessMap["controls"]) | undefined;
|
|
9527
9537
|
/** Which corner the controls sit in.
|
|
9528
9538
|
|
|
9529
|
-
**Configurable because there is no safe default**,
|
|
9530
|
-
rather than a taste:
|
|
9531
|
-
|
|
9532
|
-
|
|
9533
|
-
libraries made it a setting too.
|
|
9539
|
+
**Configurable because there is no safe default**, which is a collision
|
|
9540
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
9541
|
+
in any corner, and every library that draws some made this a setting for
|
|
9542
|
+
the same reason.
|
|
9534
9543
|
|
|
9535
9544
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
9536
|
-
them without a consumer writing a second rule.
|
|
9537
|
-
|
|
9538
|
-
|
|
9539
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
9540
|
-
onto every host that no server sent and nobody asked for. */
|
|
9545
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
9546
|
+
resting value being an attribute's absence: a default that reflected
|
|
9547
|
+
would write an attribute onto every host that no server sent. */
|
|
9541
9548
|
"attr:controls-placement"?: (HelixHeadlessMap["controlsPlacement"]) | undefined;
|
|
9542
9549
|
/** Which corner the controls sit in.
|
|
9543
9550
|
|
|
9544
|
-
**Configurable because there is no safe default**,
|
|
9545
|
-
rather than a taste:
|
|
9546
|
-
|
|
9547
|
-
|
|
9548
|
-
libraries made it a setting too.
|
|
9551
|
+
**Configurable because there is no safe default**, which is a collision
|
|
9552
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
9553
|
+
in any corner, and every library that draws some made this a setting for
|
|
9554
|
+
the same reason.
|
|
9549
9555
|
|
|
9550
9556
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
9551
|
-
them without a consumer writing a second rule.
|
|
9552
|
-
|
|
9553
|
-
|
|
9554
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
9555
|
-
onto every host that no server sent and nobody asked for. */
|
|
9557
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
9558
|
+
resting value being an attribute's absence: a default that reflected
|
|
9559
|
+
would write an attribute onto every host that no server sent. */
|
|
9556
9560
|
"prop:controlsPlacement"?: (HelixHeadlessMap["controlsPlacement"]) | undefined;
|
|
9557
9561
|
/** What the control that fills the screen is called. */
|
|
9558
9562
|
"attr:fullscreen-label"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
|
|
@@ -9560,47 +9564,41 @@ onto every host that no server sent and nobody asked for. */
|
|
|
9560
9564
|
"prop:fullscreenLabel"?: (HelixHeadlessMap["fullscreenLabel"]) | undefined;
|
|
9561
9565
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
9562
9566
|
|
|
9563
|
-
Zero keeps it up, which is the default:
|
|
9564
|
-
reader operates
|
|
9565
|
-
component undoing its own argument. Set it for a display
|
|
9567
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
9568
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
9569
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
9570
|
+
drives. */
|
|
9566
9571
|
"attr:idle-delay"?: (HelixHeadlessMap["idleDelay"] | `${number}`) | undefined;
|
|
9567
9572
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
9568
9573
|
|
|
9569
|
-
Zero keeps it up, which is the default:
|
|
9570
|
-
reader operates
|
|
9571
|
-
component undoing its own argument. Set it for a display
|
|
9574
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
9575
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
9576
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
9577
|
+
drives. */
|
|
9572
9578
|
"prop:idleDelay"?: (HelixHeadlessMap["idleDelay"]) | undefined;
|
|
9573
|
-
/**
|
|
9574
|
-
|
|
9575
|
-
There is no sensible default. "Map" names the widget rather than the place,
|
|
9576
|
-
and a reader meeting three of them on a page learns nothing from hearing the
|
|
9577
|
-
same word three times. */
|
|
9578
|
-
"prop:label"?: (HelixHeadlessMap["label"]) | undefined;
|
|
9579
|
-
/** What the controls are called, for a page not in English. */
|
|
9579
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
9580
9580
|
"attr:pan-label"?: (HelixHeadlessMap["panLabel"]) | undefined;
|
|
9581
|
-
/** What
|
|
9581
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
9582
9582
|
"prop:panLabel"?: (HelixHeadlessMap["panLabel"]) | undefined;
|
|
9583
|
-
/** How far one press moves the
|
|
9583
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
9584
9584
|
|
|
9585
|
-
A fraction rather than a distance, because this
|
|
9586
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9587
|
-
|
|
9588
|
-
multiply by their own. */
|
|
9585
|
+
A fraction rather than a distance, because this surface does not know the
|
|
9586
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9587
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
9589
9588
|
"attr:pan-step"?: (HelixHeadlessMap["panStep"] | `${number}`) | undefined;
|
|
9590
|
-
/** How far one press moves the
|
|
9589
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
9591
9590
|
|
|
9592
|
-
A fraction rather than a distance, because this
|
|
9593
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9594
|
-
|
|
9595
|
-
multiply by their own. */
|
|
9591
|
+
A fraction rather than a distance, because this surface does not know the
|
|
9592
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
9593
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
9596
9594
|
"prop:panStep"?: (HelixHeadlessMap["panStep"]) | undefined;
|
|
9597
|
-
/** What the
|
|
9595
|
+
/** What the control that zooms in is called. */
|
|
9598
9596
|
"attr:zoom-in-label"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
|
|
9599
|
-
/** What the
|
|
9597
|
+
/** What the control that zooms in is called. */
|
|
9600
9598
|
"prop:zoomInLabel"?: (HelixHeadlessMap["zoomInLabel"]) | undefined;
|
|
9601
|
-
/** What the
|
|
9599
|
+
/** What the control that zooms out is called. */
|
|
9602
9600
|
"attr:zoom-out-label"?: (HelixHeadlessMap["zoomOutLabel"]) | undefined;
|
|
9603
|
-
/** What the
|
|
9601
|
+
/** What the control that zooms out is called. */
|
|
9604
9602
|
"prop:zoomOutLabel"?: (HelixHeadlessMap["zoomOutLabel"]) | undefined;
|
|
9605
9603
|
/** The reader asked the map to move. Answer it against your own map. */
|
|
9606
9604
|
"on:helix-map-pan"?: ((e: HelixHeadlessMapHelixMapPanElementEvent) => void) | undefined;
|
|
@@ -27616,60 +27614,62 @@ export type CustomElements = {
|
|
|
27616
27614
|
*
|
|
27617
27615
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
27618
27616
|
*
|
|
27619
|
-
* - `
|
|
27620
|
-
*
|
|
27621
|
-
* **A list rather than a switch, because the overlap is not symmetric.**
|
|
27622
|
-
* Every map library draws zoom controls and none of them draws pan buttons:
|
|
27623
|
-
* MapLibre's navigation control is zoom and a compass, Leaflet's is zoom,
|
|
27624
|
-
* Google's is zoom. So a consumer slotting one of those has our zoom twice
|
|
27625
|
-
* over and our pan pad not at all, and a single switch would make them choose
|
|
27626
|
-
* between a duplicate and nothing.
|
|
27617
|
+
* - `label`: Accessible name for the map, which is the one thing a consumer must write.
|
|
27627
27618
|
*
|
|
27628
|
-
*
|
|
27629
|
-
*
|
|
27630
|
-
*
|
|
27631
|
-
* either way, so a consumer drawing their own chrome can still drive the
|
|
27632
|
-
* frame.
|
|
27619
|
+
* There is no sensible default. "Map" names the widget rather than the place,
|
|
27620
|
+
* and a reader meeting three of them on a page learns nothing from hearing the
|
|
27621
|
+
* same word three times.
|
|
27633
27622
|
*
|
|
27634
|
-
*
|
|
27635
|
-
*
|
|
27636
|
-
*
|
|
27637
|
-
*
|
|
27638
|
-
*
|
|
27623
|
+
* **The region is a tab stop**, so the keys are reachable however the controls
|
|
27624
|
+
* are configured: the listener is on the region, and without a stop of its own
|
|
27625
|
+
* a frame at `controls="none"` around a map with nothing focusable in it had
|
|
27626
|
+
* arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
27627
|
+
* rather than spelling them into the name, which would otherwise be read out
|
|
27628
|
+
* at every encounter.
|
|
27629
|
+
* - `controls`: Which of the controls this surface draws, as a list of what to keep.
|
|
27630
|
+
*
|
|
27631
|
+
* **A list rather than a switch, because the overlap is not symmetric.** A
|
|
27632
|
+
* surface a consumer brings often has zoom controls of its own and almost
|
|
27633
|
+
* never has pan buttons, so a single switch would make them choose between
|
|
27634
|
+
* a duplicate and nothing.
|
|
27635
|
+
*
|
|
27636
|
+
* `none` draws none of them, which is the right answer where what was
|
|
27637
|
+
* slotted already has controls a reader can find: what this argues for is
|
|
27638
|
+
* that *a* findable control exists, never that it is ours. The methods stay
|
|
27639
|
+
* public either way, so a consumer drawing their own chrome can still drive
|
|
27640
|
+
* the surface.
|
|
27641
|
+
*
|
|
27642
|
+
* Absent is all three, which is this library's rule that a resting value is
|
|
27643
|
+
* an attribute's absence, and it is what the stylesheet asks about: the
|
|
27644
|
+
* layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
27645
|
+
* rather than the bare negation, or a surface that named no list at all
|
|
27646
|
+
* would be laid out as though it had dropped everything.
|
|
27639
27647
|
* - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
|
|
27640
27648
|
*
|
|
27641
|
-
* **Configurable because there is no safe default**,
|
|
27642
|
-
* rather than a taste:
|
|
27643
|
-
*
|
|
27644
|
-
*
|
|
27645
|
-
* libraries made it a setting too.
|
|
27649
|
+
* **Configurable because there is no safe default**, which is a collision
|
|
27650
|
+
* rather than a taste: whatever a consumer slots may put its own controls
|
|
27651
|
+
* in any corner, and every library that draws some made this a setting for
|
|
27652
|
+
* the same reason.
|
|
27646
27653
|
*
|
|
27647
27654
|
* Logical corners rather than left and right, so a right-to-left page moves
|
|
27648
|
-
* them without a consumer writing a second rule.
|
|
27649
|
-
*
|
|
27650
|
-
*
|
|
27651
|
-
* an attribute's absence: a default that reflected would write an attribute
|
|
27652
|
-
* onto every host that no server sent and nobody asked for.
|
|
27655
|
+
* them without a consumer writing a second rule. Absent is the top end, a
|
|
27656
|
+
* resting value being an attribute's absence: a default that reflected
|
|
27657
|
+
* would write an attribute onto every host that no server sent.
|
|
27653
27658
|
* - `fullscreen-label`/`fullscreenLabel`: What the control that fills the screen is called.
|
|
27654
27659
|
* - `idle-delay`/`idleDelay`: How long the reader may be still before the chrome hides, in milliseconds.
|
|
27655
27660
|
*
|
|
27656
|
-
* Zero keeps it up, which is the default:
|
|
27657
|
-
* reader operates
|
|
27658
|
-
* component undoing its own argument. Set it for a display
|
|
27659
|
-
*
|
|
27660
|
-
*
|
|
27661
|
-
*
|
|
27662
|
-
* and a reader meeting three of them on a page learns nothing from hearing the
|
|
27663
|
-
* same word three times.
|
|
27664
|
-
* - `pan-label`/`panLabel`: What the controls are called, for a page not in English.
|
|
27665
|
-
* - `pan-step`/`panStep`: How far one press moves the map, as a fraction of what is on screen.
|
|
27661
|
+
* Zero keeps it up, which is the default: these controls are how a keyboard
|
|
27662
|
+
* reader operates the surface, and chrome that hid itself by default would
|
|
27663
|
+
* be the component undoing its own argument. Set it for a display nobody
|
|
27664
|
+
* drives.
|
|
27665
|
+
* - `pan-label`/`panLabel`: What one pan control is called, with `{way}` filled in.
|
|
27666
|
+
* - `pan-step`/`panStep`: How far one press moves the view, as a fraction of what is on screen.
|
|
27666
27667
|
*
|
|
27667
|
-
* A fraction rather than a distance, because this
|
|
27668
|
-
* scale of what is inside it: a quarter of the viewport is the same gesture
|
|
27669
|
-
*
|
|
27670
|
-
*
|
|
27671
|
-
* - `zoom-
|
|
27672
|
-
* - `zoom-out-label`/`zoomOutLabel`: What the zoom control that goes the other way is called.
|
|
27668
|
+
* A fraction rather than a distance, because this surface does not know the
|
|
27669
|
+
* scale of what is inside it: a quarter of the viewport is the same gesture
|
|
27670
|
+
* at any zoom, and a consumer who wants their own units multiplies by them.
|
|
27671
|
+
* - `zoom-in-label`/`zoomInLabel`: What the control that zooms in is called.
|
|
27672
|
+
* - `zoom-out-label`/`zoomOutLabel`: What the control that zooms out is called.
|
|
27673
27673
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
27674
27674
|
*
|
|
27675
27675
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -27711,9 +27711,9 @@ export type CustomElements = {
|
|
|
27711
27711
|
*
|
|
27712
27712
|
* Methods that can be called to access component functionality.
|
|
27713
27713
|
*
|
|
27714
|
-
* - `
|
|
27715
|
-
* - `
|
|
27716
|
-
* - `
|
|
27714
|
+
* - `pan(to: ViewportWay) => void`: Asks for the view to move, which the consumer answers.
|
|
27715
|
+
* - `zoom(by: number) => void`: Asks for the view to zoom, `1` in and `-1` out.
|
|
27716
|
+
* - `toggleFullscreen() => void`: Fills the screen with the surface, or comes back.
|
|
27717
27717
|
*
|
|
27718
27718
|
* ## CSS Parts
|
|
27719
27719
|
*
|
|
@@ -46121,60 +46121,62 @@ export type CustomElementsSolidJs = {
|
|
|
46121
46121
|
*
|
|
46122
46122
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
46123
46123
|
*
|
|
46124
|
-
* - `
|
|
46125
|
-
*
|
|
46126
|
-
* **A list rather than a switch, because the overlap is not symmetric.**
|
|
46127
|
-
* Every map library draws zoom controls and none of them draws pan buttons:
|
|
46128
|
-
* MapLibre's navigation control is zoom and a compass, Leaflet's is zoom,
|
|
46129
|
-
* Google's is zoom. So a consumer slotting one of those has our zoom twice
|
|
46130
|
-
* over and our pan pad not at all, and a single switch would make them choose
|
|
46131
|
-
* between a duplicate and nothing.
|
|
46124
|
+
* - `label`: Accessible name for the map, which is the one thing a consumer must write.
|
|
46132
46125
|
*
|
|
46133
|
-
*
|
|
46134
|
-
*
|
|
46135
|
-
*
|
|
46136
|
-
* either way, so a consumer drawing their own chrome can still drive the
|
|
46137
|
-
* frame.
|
|
46126
|
+
* There is no sensible default. "Map" names the widget rather than the place,
|
|
46127
|
+
* and a reader meeting three of them on a page learns nothing from hearing the
|
|
46128
|
+
* same word three times.
|
|
46138
46129
|
*
|
|
46139
|
-
*
|
|
46140
|
-
*
|
|
46141
|
-
*
|
|
46142
|
-
*
|
|
46143
|
-
*
|
|
46130
|
+
* **The region is a tab stop**, so the keys are reachable however the controls
|
|
46131
|
+
* are configured: the listener is on the region, and without a stop of its own
|
|
46132
|
+
* a frame at `controls="none"` around a map with nothing focusable in it had
|
|
46133
|
+
* arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
46134
|
+
* rather than spelling them into the name, which would otherwise be read out
|
|
46135
|
+
* at every encounter.
|
|
46136
|
+
* - `controls`: Which of the controls this surface draws, as a list of what to keep.
|
|
46137
|
+
*
|
|
46138
|
+
* **A list rather than a switch, because the overlap is not symmetric.** A
|
|
46139
|
+
* surface a consumer brings often has zoom controls of its own and almost
|
|
46140
|
+
* never has pan buttons, so a single switch would make them choose between
|
|
46141
|
+
* a duplicate and nothing.
|
|
46142
|
+
*
|
|
46143
|
+
* `none` draws none of them, which is the right answer where what was
|
|
46144
|
+
* slotted already has controls a reader can find: what this argues for is
|
|
46145
|
+
* that *a* findable control exists, never that it is ours. The methods stay
|
|
46146
|
+
* public either way, so a consumer drawing their own chrome can still drive
|
|
46147
|
+
* the surface.
|
|
46148
|
+
*
|
|
46149
|
+
* Absent is all three, which is this library's rule that a resting value is
|
|
46150
|
+
* an attribute's absence, and it is what the stylesheet asks about: the
|
|
46151
|
+
* layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
46152
|
+
* rather than the bare negation, or a surface that named no list at all
|
|
46153
|
+
* would be laid out as though it had dropped everything.
|
|
46144
46154
|
* - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
|
|
46145
46155
|
*
|
|
46146
|
-
* **Configurable because there is no safe default**,
|
|
46147
|
-
* rather than a taste:
|
|
46148
|
-
*
|
|
46149
|
-
*
|
|
46150
|
-
* libraries made it a setting too.
|
|
46156
|
+
* **Configurable because there is no safe default**, which is a collision
|
|
46157
|
+
* rather than a taste: whatever a consumer slots may put its own controls
|
|
46158
|
+
* in any corner, and every library that draws some made this a setting for
|
|
46159
|
+
* the same reason.
|
|
46151
46160
|
*
|
|
46152
46161
|
* Logical corners rather than left and right, so a right-to-left page moves
|
|
46153
|
-
* them without a consumer writing a second rule.
|
|
46154
|
-
*
|
|
46155
|
-
*
|
|
46156
|
-
* an attribute's absence: a default that reflected would write an attribute
|
|
46157
|
-
* onto every host that no server sent and nobody asked for.
|
|
46162
|
+
* them without a consumer writing a second rule. Absent is the top end, a
|
|
46163
|
+
* resting value being an attribute's absence: a default that reflected
|
|
46164
|
+
* would write an attribute onto every host that no server sent.
|
|
46158
46165
|
* - `fullscreen-label`/`fullscreenLabel`: What the control that fills the screen is called.
|
|
46159
46166
|
* - `idle-delay`/`idleDelay`: How long the reader may be still before the chrome hides, in milliseconds.
|
|
46160
46167
|
*
|
|
46161
|
-
* Zero keeps it up, which is the default:
|
|
46162
|
-
* reader operates
|
|
46163
|
-
* component undoing its own argument. Set it for a display
|
|
46164
|
-
*
|
|
46165
|
-
*
|
|
46166
|
-
*
|
|
46167
|
-
* and a reader meeting three of them on a page learns nothing from hearing the
|
|
46168
|
-
* same word three times.
|
|
46169
|
-
* - `pan-label`/`panLabel`: What the controls are called, for a page not in English.
|
|
46170
|
-
* - `pan-step`/`panStep`: How far one press moves the map, as a fraction of what is on screen.
|
|
46168
|
+
* Zero keeps it up, which is the default: these controls are how a keyboard
|
|
46169
|
+
* reader operates the surface, and chrome that hid itself by default would
|
|
46170
|
+
* be the component undoing its own argument. Set it for a display nobody
|
|
46171
|
+
* drives.
|
|
46172
|
+
* - `pan-label`/`panLabel`: What one pan control is called, with `{way}` filled in.
|
|
46173
|
+
* - `pan-step`/`panStep`: How far one press moves the view, as a fraction of what is on screen.
|
|
46171
46174
|
*
|
|
46172
|
-
* A fraction rather than a distance, because this
|
|
46173
|
-
* scale of what is inside it: a quarter of the viewport is the same gesture
|
|
46174
|
-
*
|
|
46175
|
-
*
|
|
46176
|
-
* - `zoom-
|
|
46177
|
-
* - `zoom-out-label`/`zoomOutLabel`: What the zoom control that goes the other way is called.
|
|
46175
|
+
* A fraction rather than a distance, because this surface does not know the
|
|
46176
|
+
* scale of what is inside it: a quarter of the viewport is the same gesture
|
|
46177
|
+
* at any zoom, and a consumer who wants their own units multiplies by them.
|
|
46178
|
+
* - `zoom-in-label`/`zoomInLabel`: What the control that zooms in is called.
|
|
46179
|
+
* - `zoom-out-label`/`zoomOutLabel`: What the control that zooms out is called.
|
|
46178
46180
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
46179
46181
|
*
|
|
46180
46182
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -46216,9 +46218,9 @@ export type CustomElementsSolidJs = {
|
|
|
46216
46218
|
*
|
|
46217
46219
|
* Methods that can be called to access component functionality.
|
|
46218
46220
|
*
|
|
46219
|
-
* - `
|
|
46220
|
-
* - `
|
|
46221
|
-
* - `
|
|
46221
|
+
* - `pan(to: ViewportWay) => void`: Asks for the view to move, which the consumer answers.
|
|
46222
|
+
* - `zoom(by: number) => void`: Asks for the view to zoom, `1` in and `-1` out.
|
|
46223
|
+
* - `toggleFullscreen() => void`: Fills the screen with the surface, or comes back.
|
|
46222
46224
|
*
|
|
46223
46225
|
* ## CSS Parts
|
|
46224
46226
|
*
|