@fusion.dev/helix 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 +265 -205
- package/package.json +6 -6
- package/types/jsx.d.ts +220 -218
- package/types/vue.d.ts +67 -68
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix",
|
|
3
3
|
"description": "Styled component tier. Extends the headless tier with token-driven presentation.",
|
|
4
|
-
"version": "0.103.
|
|
4
|
+
"version": "0.103.3",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -47,13 +47,13 @@
|
|
|
47
47
|
},
|
|
48
48
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@fusion.dev/helix-core": "0.103.
|
|
51
|
-
"@fusion.dev/helix-headless": "0.103.
|
|
52
|
-
"@fusion.dev/helix-styles": "0.103.
|
|
50
|
+
"@fusion.dev/helix-core": "0.103.3",
|
|
51
|
+
"@fusion.dev/helix-headless": "0.103.3",
|
|
52
|
+
"@fusion.dev/helix-styles": "0.103.3"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@fusion.dev/helix-cem": "0.103.
|
|
56
|
-
"@fusion.dev/helix-testing": "0.103.
|
|
55
|
+
"@fusion.dev/helix-cem": "0.103.3",
|
|
56
|
+
"@fusion.dev/helix-testing": "0.103.3",
|
|
57
57
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
58
58
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
59
59
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -11510,56 +11510,48 @@ export type HelixMapHelixMapZoomElementEvent =
|
|
|
11510
11510
|
HelixMapElementEvent<HelixMapZoomEvent>;
|
|
11511
11511
|
|
|
11512
11512
|
export type HelixMapProps = {
|
|
11513
|
-
/** Which of the controls this
|
|
11514
|
-
|
|
11515
|
-
**A list rather than a switch, because the overlap is not symmetric.**
|
|
11516
|
-
|
|
11517
|
-
|
|
11518
|
-
|
|
11519
|
-
|
|
11520
|
-
|
|
11521
|
-
|
|
11522
|
-
|
|
11523
|
-
|
|
11524
|
-
|
|
11525
|
-
|
|
11526
|
-
|
|
11527
|
-
|
|
11528
|
-
|
|
11529
|
-
|
|
11530
|
-
|
|
11531
|
-
the bare negation, or a frame that named no list at all would be laid out as
|
|
11532
|
-
though it had dropped everything. */
|
|
11513
|
+
/** Which of the controls this surface draws, as a list of what to keep.
|
|
11514
|
+
|
|
11515
|
+
**A list rather than a switch, because the overlap is not symmetric.** A
|
|
11516
|
+
surface a consumer brings often has zoom controls of its own and almost
|
|
11517
|
+
never has pan buttons, so a single switch would make them choose between
|
|
11518
|
+
a duplicate and nothing.
|
|
11519
|
+
|
|
11520
|
+
`none` draws none of them, which is the right answer where what was
|
|
11521
|
+
slotted already has controls a reader can find: what this argues for is
|
|
11522
|
+
that *a* findable control exists, never that it is ours. The methods stay
|
|
11523
|
+
public either way, so a consumer drawing their own chrome can still drive
|
|
11524
|
+
the surface.
|
|
11525
|
+
|
|
11526
|
+
Absent is all three, which is this library's rule that a resting value is
|
|
11527
|
+
an attribute's absence, and it is what the stylesheet asks about: the
|
|
11528
|
+
layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
11529
|
+
rather than the bare negation, or a surface that named no list at all
|
|
11530
|
+
would be laid out as though it had dropped everything. */
|
|
11533
11531
|
controls?: (HelixMap["controls"]) | undefined;
|
|
11534
11532
|
/** Which corner the controls sit in.
|
|
11535
11533
|
|
|
11536
|
-
**Configurable because there is no safe default**,
|
|
11537
|
-
rather than a taste:
|
|
11538
|
-
|
|
11539
|
-
|
|
11540
|
-
libraries made it a setting too.
|
|
11534
|
+
**Configurable because there is no safe default**, which is a collision
|
|
11535
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
11536
|
+
in any corner, and every library that draws some made this a setting for
|
|
11537
|
+
the same reason.
|
|
11541
11538
|
|
|
11542
11539
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
11543
|
-
them without a consumer writing a second rule.
|
|
11544
|
-
|
|
11545
|
-
|
|
11546
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
11547
|
-
onto every host that no server sent and nobody asked for. */
|
|
11540
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
11541
|
+
resting value being an attribute's absence: a default that reflected
|
|
11542
|
+
would write an attribute onto every host that no server sent. */
|
|
11548
11543
|
"controls-placement"?: (HelixMap["controlsPlacement"]) | undefined;
|
|
11549
11544
|
/** Which corner the controls sit in.
|
|
11550
11545
|
|
|
11551
|
-
**Configurable because there is no safe default**,
|
|
11552
|
-
rather than a taste:
|
|
11553
|
-
|
|
11554
|
-
|
|
11555
|
-
libraries made it a setting too.
|
|
11546
|
+
**Configurable because there is no safe default**, which is a collision
|
|
11547
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
11548
|
+
in any corner, and every library that draws some made this a setting for
|
|
11549
|
+
the same reason.
|
|
11556
11550
|
|
|
11557
11551
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
11558
|
-
them without a consumer writing a second rule.
|
|
11559
|
-
|
|
11560
|
-
|
|
11561
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
11562
|
-
onto every host that no server sent and nobody asked for. */
|
|
11552
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
11553
|
+
resting value being an attribute's absence: a default that reflected
|
|
11554
|
+
would write an attribute onto every host that no server sent. */
|
|
11563
11555
|
controlsPlacement?: (HelixMap["controlsPlacement"]) | undefined;
|
|
11564
11556
|
/** What the control that fills the screen is called. */
|
|
11565
11557
|
"fullscreen-label"?: (HelixMap["fullscreenLabel"]) | undefined;
|
|
@@ -11567,48 +11559,55 @@ onto every host that no server sent and nobody asked for. */
|
|
|
11567
11559
|
fullscreenLabel?: (HelixMap["fullscreenLabel"]) | undefined;
|
|
11568
11560
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
11569
11561
|
|
|
11570
|
-
Zero keeps it up, which is the default:
|
|
11571
|
-
reader operates
|
|
11572
|
-
component undoing its own argument. Set it for a display
|
|
11562
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
11563
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
11564
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
11565
|
+
drives. */
|
|
11573
11566
|
"idle-delay"?: (HelixMap["idleDelay"] | `${number}`) | undefined;
|
|
11574
11567
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
11575
11568
|
|
|
11576
|
-
Zero keeps it up, which is the default:
|
|
11577
|
-
reader operates
|
|
11578
|
-
component undoing its own argument. Set it for a display
|
|
11569
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
11570
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
11571
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
11572
|
+
drives. */
|
|
11579
11573
|
idleDelay?: (HelixMap["idleDelay"]) | undefined;
|
|
11580
|
-
/**
|
|
11581
|
-
|
|
11582
|
-
There is no sensible default. "Map" names the widget rather than the place,
|
|
11583
|
-
and a reader meeting three of them on a page learns nothing from hearing the
|
|
11584
|
-
same word three times. */
|
|
11585
|
-
label?: (HelixMap["label"]) | undefined;
|
|
11586
|
-
/** What the controls are called, for a page not in English. */
|
|
11574
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
11587
11575
|
"pan-label"?: (HelixMap["panLabel"]) | undefined;
|
|
11588
|
-
/** What
|
|
11576
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
11589
11577
|
panLabel?: (HelixMap["panLabel"]) | undefined;
|
|
11590
|
-
/** How far one press moves the
|
|
11578
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
11591
11579
|
|
|
11592
|
-
A fraction rather than a distance, because this
|
|
11593
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11594
|
-
|
|
11595
|
-
multiply by their own. */
|
|
11580
|
+
A fraction rather than a distance, because this surface does not know the
|
|
11581
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11582
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
11596
11583
|
"pan-step"?: (HelixMap["panStep"] | `${number}`) | undefined;
|
|
11597
|
-
/** How far one press moves the
|
|
11584
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
11598
11585
|
|
|
11599
|
-
A fraction rather than a distance, because this
|
|
11600
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11601
|
-
|
|
11602
|
-
multiply by their own. */
|
|
11586
|
+
A fraction rather than a distance, because this surface does not know the
|
|
11587
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11588
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
11603
11589
|
panStep?: (HelixMap["panStep"]) | undefined;
|
|
11604
|
-
/** What the
|
|
11590
|
+
/** What the control that zooms in is called. */
|
|
11605
11591
|
"zoom-in-label"?: (HelixMap["zoomInLabel"]) | undefined;
|
|
11606
|
-
/** What the
|
|
11592
|
+
/** What the control that zooms in is called. */
|
|
11607
11593
|
zoomInLabel?: (HelixMap["zoomInLabel"]) | undefined;
|
|
11608
|
-
/** What the
|
|
11594
|
+
/** What the control that zooms out is called. */
|
|
11609
11595
|
"zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
|
|
11610
|
-
/** What the
|
|
11596
|
+
/** What the control that zooms out is called. */
|
|
11611
11597
|
zoomOutLabel?: (HelixMap["zoomOutLabel"]) | undefined;
|
|
11598
|
+
/** Accessible name for the map, which is the one thing a consumer must write.
|
|
11599
|
+
|
|
11600
|
+
There is no sensible default. "Map" names the widget rather than the place,
|
|
11601
|
+
and a reader meeting three of them on a page learns nothing from hearing the
|
|
11602
|
+
same word three times.
|
|
11603
|
+
|
|
11604
|
+
**The region is a tab stop**, so the keys are reachable however the controls
|
|
11605
|
+
are configured: the listener is on the region, and without a stop of its own
|
|
11606
|
+
a frame at `controls="none"` around a map with nothing focusable in it had
|
|
11607
|
+
arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
11608
|
+
rather than spelling them into the name, which would otherwise be read out
|
|
11609
|
+
at every encounter. */
|
|
11610
|
+
label?: (HelixMap["label"]) | undefined;
|
|
11612
11611
|
|
|
11613
11612
|
/** The reader asked the map to move. Answer it against your own map. */
|
|
11614
11613
|
"onhelix-map-pan"?: ((e: HelixMapHelixMapPanElementEvent) => void) | undefined;
|
|
@@ -11617,56 +11616,48 @@ multiply by their own. */
|
|
|
11617
11616
|
};
|
|
11618
11617
|
|
|
11619
11618
|
export type HelixMapSolidJsProps = {
|
|
11620
|
-
/** Which of the controls this
|
|
11621
|
-
|
|
11622
|
-
**A list rather than a switch, because the overlap is not symmetric.**
|
|
11623
|
-
|
|
11624
|
-
|
|
11625
|
-
|
|
11626
|
-
|
|
11627
|
-
|
|
11628
|
-
|
|
11629
|
-
|
|
11630
|
-
|
|
11631
|
-
|
|
11632
|
-
|
|
11633
|
-
|
|
11634
|
-
|
|
11635
|
-
|
|
11636
|
-
|
|
11637
|
-
|
|
11638
|
-
the bare negation, or a frame that named no list at all would be laid out as
|
|
11639
|
-
though it had dropped everything. */
|
|
11619
|
+
/** Which of the controls this surface draws, as a list of what to keep.
|
|
11620
|
+
|
|
11621
|
+
**A list rather than a switch, because the overlap is not symmetric.** A
|
|
11622
|
+
surface a consumer brings often has zoom controls of its own and almost
|
|
11623
|
+
never has pan buttons, so a single switch would make them choose between
|
|
11624
|
+
a duplicate and nothing.
|
|
11625
|
+
|
|
11626
|
+
`none` draws none of them, which is the right answer where what was
|
|
11627
|
+
slotted already has controls a reader can find: what this argues for is
|
|
11628
|
+
that *a* findable control exists, never that it is ours. The methods stay
|
|
11629
|
+
public either way, so a consumer drawing their own chrome can still drive
|
|
11630
|
+
the surface.
|
|
11631
|
+
|
|
11632
|
+
Absent is all three, which is this library's rule that a resting value is
|
|
11633
|
+
an attribute's absence, and it is what the stylesheet asks about: the
|
|
11634
|
+
layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
11635
|
+
rather than the bare negation, or a surface that named no list at all
|
|
11636
|
+
would be laid out as though it had dropped everything. */
|
|
11640
11637
|
"prop:controls"?: (HelixMap["controls"]) | undefined;
|
|
11641
11638
|
/** Which corner the controls sit in.
|
|
11642
11639
|
|
|
11643
|
-
**Configurable because there is no safe default**,
|
|
11644
|
-
rather than a taste:
|
|
11645
|
-
|
|
11646
|
-
|
|
11647
|
-
libraries made it a setting too.
|
|
11640
|
+
**Configurable because there is no safe default**, which is a collision
|
|
11641
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
11642
|
+
in any corner, and every library that draws some made this a setting for
|
|
11643
|
+
the same reason.
|
|
11648
11644
|
|
|
11649
11645
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
11650
|
-
them without a consumer writing a second rule.
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
11654
|
-
onto every host that no server sent and nobody asked for. */
|
|
11646
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
11647
|
+
resting value being an attribute's absence: a default that reflected
|
|
11648
|
+
would write an attribute onto every host that no server sent. */
|
|
11655
11649
|
"attr:controls-placement"?: (HelixMap["controlsPlacement"]) | undefined;
|
|
11656
11650
|
/** Which corner the controls sit in.
|
|
11657
11651
|
|
|
11658
|
-
**Configurable because there is no safe default**,
|
|
11659
|
-
rather than a taste:
|
|
11660
|
-
|
|
11661
|
-
|
|
11662
|
-
libraries made it a setting too.
|
|
11652
|
+
**Configurable because there is no safe default**, which is a collision
|
|
11653
|
+
rather than a taste: whatever a consumer slots may put its own controls
|
|
11654
|
+
in any corner, and every library that draws some made this a setting for
|
|
11655
|
+
the same reason.
|
|
11663
11656
|
|
|
11664
11657
|
Logical corners rather than left and right, so a right-to-left page moves
|
|
11665
|
-
them without a consumer writing a second rule.
|
|
11666
|
-
|
|
11667
|
-
|
|
11668
|
-
an attribute's absence: a default that reflected would write an attribute
|
|
11669
|
-
onto every host that no server sent and nobody asked for. */
|
|
11658
|
+
them without a consumer writing a second rule. Absent is the top end, a
|
|
11659
|
+
resting value being an attribute's absence: a default that reflected
|
|
11660
|
+
would write an attribute onto every host that no server sent. */
|
|
11670
11661
|
"prop:controlsPlacement"?: (HelixMap["controlsPlacement"]) | undefined;
|
|
11671
11662
|
/** What the control that fills the screen is called. */
|
|
11672
11663
|
"attr:fullscreen-label"?: (HelixMap["fullscreenLabel"]) | undefined;
|
|
@@ -11674,48 +11665,55 @@ onto every host that no server sent and nobody asked for. */
|
|
|
11674
11665
|
"prop:fullscreenLabel"?: (HelixMap["fullscreenLabel"]) | undefined;
|
|
11675
11666
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
11676
11667
|
|
|
11677
|
-
Zero keeps it up, which is the default:
|
|
11678
|
-
reader operates
|
|
11679
|
-
component undoing its own argument. Set it for a display
|
|
11668
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
11669
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
11670
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
11671
|
+
drives. */
|
|
11680
11672
|
"attr:idle-delay"?: (HelixMap["idleDelay"] | `${number}`) | undefined;
|
|
11681
11673
|
/** How long the reader may be still before the chrome hides, in milliseconds.
|
|
11682
11674
|
|
|
11683
|
-
Zero keeps it up, which is the default:
|
|
11684
|
-
reader operates
|
|
11685
|
-
component undoing its own argument. Set it for a display
|
|
11675
|
+
Zero keeps it up, which is the default: these controls are how a keyboard
|
|
11676
|
+
reader operates the surface, and chrome that hid itself by default would
|
|
11677
|
+
be the component undoing its own argument. Set it for a display nobody
|
|
11678
|
+
drives. */
|
|
11686
11679
|
"prop:idleDelay"?: (HelixMap["idleDelay"]) | undefined;
|
|
11687
|
-
/**
|
|
11688
|
-
|
|
11689
|
-
There is no sensible default. "Map" names the widget rather than the place,
|
|
11690
|
-
and a reader meeting three of them on a page learns nothing from hearing the
|
|
11691
|
-
same word three times. */
|
|
11692
|
-
"prop:label"?: (HelixMap["label"]) | undefined;
|
|
11693
|
-
/** What the controls are called, for a page not in English. */
|
|
11680
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
11694
11681
|
"attr:pan-label"?: (HelixMap["panLabel"]) | undefined;
|
|
11695
|
-
/** What
|
|
11682
|
+
/** What one pan control is called, with `{way}` filled in. */
|
|
11696
11683
|
"prop:panLabel"?: (HelixMap["panLabel"]) | undefined;
|
|
11697
|
-
/** How far one press moves the
|
|
11684
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
11698
11685
|
|
|
11699
|
-
A fraction rather than a distance, because this
|
|
11700
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11701
|
-
|
|
11702
|
-
multiply by their own. */
|
|
11686
|
+
A fraction rather than a distance, because this surface does not know the
|
|
11687
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11688
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
11703
11689
|
"attr:pan-step"?: (HelixMap["panStep"] | `${number}`) | undefined;
|
|
11704
|
-
/** How far one press moves the
|
|
11690
|
+
/** How far one press moves the view, as a fraction of what is on screen.
|
|
11705
11691
|
|
|
11706
|
-
A fraction rather than a distance, because this
|
|
11707
|
-
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11708
|
-
|
|
11709
|
-
multiply by their own. */
|
|
11692
|
+
A fraction rather than a distance, because this surface does not know the
|
|
11693
|
+
scale of what is inside it: a quarter of the viewport is the same gesture
|
|
11694
|
+
at any zoom, and a consumer who wants their own units multiplies by them. */
|
|
11710
11695
|
"prop:panStep"?: (HelixMap["panStep"]) | undefined;
|
|
11711
|
-
/** What the
|
|
11696
|
+
/** What the control that zooms in is called. */
|
|
11712
11697
|
"attr:zoom-in-label"?: (HelixMap["zoomInLabel"]) | undefined;
|
|
11713
|
-
/** What the
|
|
11698
|
+
/** What the control that zooms in is called. */
|
|
11714
11699
|
"prop:zoomInLabel"?: (HelixMap["zoomInLabel"]) | undefined;
|
|
11715
|
-
/** What the
|
|
11700
|
+
/** What the control that zooms out is called. */
|
|
11716
11701
|
"attr:zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
|
|
11717
|
-
/** What the
|
|
11702
|
+
/** What the control that zooms out is called. */
|
|
11718
11703
|
"prop:zoomOutLabel"?: (HelixMap["zoomOutLabel"]) | undefined;
|
|
11704
|
+
/** Accessible name for the map, which is the one thing a consumer must write.
|
|
11705
|
+
|
|
11706
|
+
There is no sensible default. "Map" names the widget rather than the place,
|
|
11707
|
+
and a reader meeting three of them on a page learns nothing from hearing the
|
|
11708
|
+
same word three times.
|
|
11709
|
+
|
|
11710
|
+
**The region is a tab stop**, so the keys are reachable however the controls
|
|
11711
|
+
are configured: the listener is on the region, and without a stop of its own
|
|
11712
|
+
a frame at `controls="none"` around a map with nothing focusable in it had
|
|
11713
|
+
arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
11714
|
+
rather than spelling them into the name, which would otherwise be read out
|
|
11715
|
+
at every encounter. */
|
|
11716
|
+
"prop:label"?: (HelixMap["label"]) | undefined;
|
|
11719
11717
|
/** The reader asked the map to move. Answer it against your own map. */
|
|
11720
11718
|
"on:helix-map-pan"?: ((e: HelixMapHelixMapPanElementEvent) => void) | undefined;
|
|
11721
11719
|
/** The reader asked the map to zoom, by a direction rather than to a level. */
|
|
@@ -31873,60 +31871,62 @@ export type CustomElements = {
|
|
|
31873
31871
|
*
|
|
31874
31872
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
31875
31873
|
*
|
|
31876
|
-
* - `controls`: Which of the controls this
|
|
31874
|
+
* - `controls`: Which of the controls this surface draws, as a list of what to keep.
|
|
31877
31875
|
*
|
|
31878
|
-
* **A list rather than a switch, because the overlap is not symmetric.**
|
|
31879
|
-
*
|
|
31880
|
-
*
|
|
31881
|
-
*
|
|
31882
|
-
* over and our pan pad not at all, and a single switch would make them choose
|
|
31883
|
-
* between a duplicate and nothing.
|
|
31876
|
+
* **A list rather than a switch, because the overlap is not symmetric.** A
|
|
31877
|
+
* surface a consumer brings often has zoom controls of its own and almost
|
|
31878
|
+
* never has pan buttons, so a single switch would make them choose between
|
|
31879
|
+
* a duplicate and nothing.
|
|
31884
31880
|
*
|
|
31885
|
-
* `none` draws none of them, which is the right answer where
|
|
31886
|
-
* already has controls a reader can find: what this
|
|
31887
|
-
* *a* findable control exists, never that it is ours. The methods stay
|
|
31888
|
-
* either way, so a consumer drawing their own chrome can still drive
|
|
31889
|
-
*
|
|
31881
|
+
* `none` draws none of them, which is the right answer where what was
|
|
31882
|
+
* slotted already has controls a reader can find: what this argues for is
|
|
31883
|
+
* that *a* findable control exists, never that it is ours. The methods stay
|
|
31884
|
+
* public either way, so a consumer drawing their own chrome can still drive
|
|
31885
|
+
* the surface.
|
|
31890
31886
|
*
|
|
31891
|
-
* Absent is all three, which is this library's rule that a resting value is
|
|
31892
|
-
* attribute's absence, and it is what the stylesheet asks about: the
|
|
31893
|
-
* rules are written against `[controls]:not([controls~="zoom"])`
|
|
31894
|
-
* the bare negation, or a
|
|
31895
|
-
* though it had dropped everything.
|
|
31887
|
+
* Absent is all three, which is this library's rule that a resting value is
|
|
31888
|
+
* an attribute's absence, and it is what the stylesheet asks about: the
|
|
31889
|
+
* layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
31890
|
+
* rather than the bare negation, or a surface that named no list at all
|
|
31891
|
+
* would be laid out as though it had dropped everything.
|
|
31896
31892
|
* - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
|
|
31897
31893
|
*
|
|
31898
|
-
* **Configurable because there is no safe default**,
|
|
31899
|
-
* rather than a taste:
|
|
31900
|
-
*
|
|
31901
|
-
*
|
|
31902
|
-
* libraries made it a setting too.
|
|
31894
|
+
* **Configurable because there is no safe default**, which is a collision
|
|
31895
|
+
* rather than a taste: whatever a consumer slots may put its own controls
|
|
31896
|
+
* in any corner, and every library that draws some made this a setting for
|
|
31897
|
+
* the same reason.
|
|
31903
31898
|
*
|
|
31904
31899
|
* Logical corners rather than left and right, so a right-to-left page moves
|
|
31905
|
-
* them without a consumer writing a second rule.
|
|
31906
|
-
*
|
|
31907
|
-
*
|
|
31908
|
-
* an attribute's absence: a default that reflected would write an attribute
|
|
31909
|
-
* onto every host that no server sent and nobody asked for.
|
|
31900
|
+
* them without a consumer writing a second rule. Absent is the top end, a
|
|
31901
|
+
* resting value being an attribute's absence: a default that reflected
|
|
31902
|
+
* would write an attribute onto every host that no server sent.
|
|
31910
31903
|
* - `fullscreen-label`/`fullscreenLabel`: What the control that fills the screen is called.
|
|
31911
31904
|
* - `idle-delay`/`idleDelay`: How long the reader may be still before the chrome hides, in milliseconds.
|
|
31912
31905
|
*
|
|
31913
|
-
* Zero keeps it up, which is the default:
|
|
31914
|
-
* reader operates
|
|
31915
|
-
* component undoing its own argument. Set it for a display
|
|
31906
|
+
* Zero keeps it up, which is the default: these controls are how a keyboard
|
|
31907
|
+
* reader operates the surface, and chrome that hid itself by default would
|
|
31908
|
+
* be the component undoing its own argument. Set it for a display nobody
|
|
31909
|
+
* drives.
|
|
31910
|
+
* - `pan-label`/`panLabel`: What one pan control is called, with `{way}` filled in.
|
|
31911
|
+
* - `pan-step`/`panStep`: How far one press moves the view, as a fraction of what is on screen.
|
|
31912
|
+
*
|
|
31913
|
+
* A fraction rather than a distance, because this surface does not know the
|
|
31914
|
+
* scale of what is inside it: a quarter of the viewport is the same gesture
|
|
31915
|
+
* at any zoom, and a consumer who wants their own units multiplies by them.
|
|
31916
|
+
* - `zoom-in-label`/`zoomInLabel`: What the control that zooms in is called.
|
|
31917
|
+
* - `zoom-out-label`/`zoomOutLabel`: What the control that zooms out is called.
|
|
31916
31918
|
* - `label`: Accessible name for the map, which is the one thing a consumer must write.
|
|
31917
31919
|
*
|
|
31918
31920
|
* There is no sensible default. "Map" names the widget rather than the place,
|
|
31919
31921
|
* and a reader meeting three of them on a page learns nothing from hearing the
|
|
31920
31922
|
* same word three times.
|
|
31921
|
-
* - `pan-label`/`panLabel`: What the controls are called, for a page not in English.
|
|
31922
|
-
* - `pan-step`/`panStep`: How far one press moves the map, as a fraction of what is on screen.
|
|
31923
31923
|
*
|
|
31924
|
-
*
|
|
31925
|
-
*
|
|
31926
|
-
*
|
|
31927
|
-
*
|
|
31928
|
-
*
|
|
31929
|
-
*
|
|
31924
|
+
* **The region is a tab stop**, so the keys are reachable however the controls
|
|
31925
|
+
* are configured: the listener is on the region, and without a stop of its own
|
|
31926
|
+
* a frame at `controls="none"` around a map with nothing focusable in it had
|
|
31927
|
+
* arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
31928
|
+
* rather than spelling them into the name, which would otherwise be read out
|
|
31929
|
+
* at every encounter.
|
|
31930
31930
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
31931
31931
|
*
|
|
31932
31932
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -31968,9 +31968,9 @@ export type CustomElements = {
|
|
|
31968
31968
|
*
|
|
31969
31969
|
* Methods that can be called to access component functionality.
|
|
31970
31970
|
*
|
|
31971
|
-
* - `
|
|
31972
|
-
* - `
|
|
31973
|
-
* - `
|
|
31971
|
+
* - `pan(to: ViewportWay) => void`: Asks for the view to move, which the consumer answers.
|
|
31972
|
+
* - `zoom(by: number) => void`: Asks for the view to zoom, `1` in and `-1` out.
|
|
31973
|
+
* - `toggleFullscreen() => void`: Fills the screen with the surface, or comes back.
|
|
31974
31974
|
*
|
|
31975
31975
|
* ## CSS Custom Properties
|
|
31976
31976
|
*
|
|
@@ -52109,60 +52109,62 @@ export type CustomElementsSolidJs = {
|
|
|
52109
52109
|
*
|
|
52110
52110
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
52111
52111
|
*
|
|
52112
|
-
* - `controls`: Which of the controls this
|
|
52112
|
+
* - `controls`: Which of the controls this surface draws, as a list of what to keep.
|
|
52113
52113
|
*
|
|
52114
|
-
* **A list rather than a switch, because the overlap is not symmetric.**
|
|
52115
|
-
*
|
|
52116
|
-
*
|
|
52117
|
-
*
|
|
52118
|
-
* over and our pan pad not at all, and a single switch would make them choose
|
|
52119
|
-
* between a duplicate and nothing.
|
|
52114
|
+
* **A list rather than a switch, because the overlap is not symmetric.** A
|
|
52115
|
+
* surface a consumer brings often has zoom controls of its own and almost
|
|
52116
|
+
* never has pan buttons, so a single switch would make them choose between
|
|
52117
|
+
* a duplicate and nothing.
|
|
52120
52118
|
*
|
|
52121
|
-
* `none` draws none of them, which is the right answer where
|
|
52122
|
-
* already has controls a reader can find: what this
|
|
52123
|
-
* *a* findable control exists, never that it is ours. The methods stay
|
|
52124
|
-
* either way, so a consumer drawing their own chrome can still drive
|
|
52125
|
-
*
|
|
52119
|
+
* `none` draws none of them, which is the right answer where what was
|
|
52120
|
+
* slotted already has controls a reader can find: what this argues for is
|
|
52121
|
+
* that *a* findable control exists, never that it is ours. The methods stay
|
|
52122
|
+
* public either way, so a consumer drawing their own chrome can still drive
|
|
52123
|
+
* the surface.
|
|
52126
52124
|
*
|
|
52127
|
-
* Absent is all three, which is this library's rule that a resting value is
|
|
52128
|
-
* attribute's absence, and it is what the stylesheet asks about: the
|
|
52129
|
-
* rules are written against `[controls]:not([controls~="zoom"])`
|
|
52130
|
-
* the bare negation, or a
|
|
52131
|
-
* though it had dropped everything.
|
|
52125
|
+
* Absent is all three, which is this library's rule that a resting value is
|
|
52126
|
+
* an attribute's absence, and it is what the stylesheet asks about: the
|
|
52127
|
+
* layout rules are written against `[controls]:not([controls~="zoom"])`
|
|
52128
|
+
* rather than the bare negation, or a surface that named no list at all
|
|
52129
|
+
* would be laid out as though it had dropped everything.
|
|
52132
52130
|
* - `controls-placement`/`controlsPlacement`: Which corner the controls sit in.
|
|
52133
52131
|
*
|
|
52134
|
-
* **Configurable because there is no safe default**,
|
|
52135
|
-
* rather than a taste:
|
|
52136
|
-
*
|
|
52137
|
-
*
|
|
52138
|
-
* libraries made it a setting too.
|
|
52132
|
+
* **Configurable because there is no safe default**, which is a collision
|
|
52133
|
+
* rather than a taste: whatever a consumer slots may put its own controls
|
|
52134
|
+
* in any corner, and every library that draws some made this a setting for
|
|
52135
|
+
* the same reason.
|
|
52139
52136
|
*
|
|
52140
52137
|
* Logical corners rather than left and right, so a right-to-left page moves
|
|
52141
|
-
* them without a consumer writing a second rule.
|
|
52142
|
-
*
|
|
52143
|
-
*
|
|
52144
|
-
* an attribute's absence: a default that reflected would write an attribute
|
|
52145
|
-
* onto every host that no server sent and nobody asked for.
|
|
52138
|
+
* them without a consumer writing a second rule. Absent is the top end, a
|
|
52139
|
+
* resting value being an attribute's absence: a default that reflected
|
|
52140
|
+
* would write an attribute onto every host that no server sent.
|
|
52146
52141
|
* - `fullscreen-label`/`fullscreenLabel`: What the control that fills the screen is called.
|
|
52147
52142
|
* - `idle-delay`/`idleDelay`: How long the reader may be still before the chrome hides, in milliseconds.
|
|
52148
52143
|
*
|
|
52149
|
-
* Zero keeps it up, which is the default:
|
|
52150
|
-
* reader operates
|
|
52151
|
-
* component undoing its own argument. Set it for a display
|
|
52144
|
+
* Zero keeps it up, which is the default: these controls are how a keyboard
|
|
52145
|
+
* reader operates the surface, and chrome that hid itself by default would
|
|
52146
|
+
* be the component undoing its own argument. Set it for a display nobody
|
|
52147
|
+
* drives.
|
|
52148
|
+
* - `pan-label`/`panLabel`: What one pan control is called, with `{way}` filled in.
|
|
52149
|
+
* - `pan-step`/`panStep`: How far one press moves the view, as a fraction of what is on screen.
|
|
52150
|
+
*
|
|
52151
|
+
* A fraction rather than a distance, because this surface does not know the
|
|
52152
|
+
* scale of what is inside it: a quarter of the viewport is the same gesture
|
|
52153
|
+
* at any zoom, and a consumer who wants their own units multiplies by them.
|
|
52154
|
+
* - `zoom-in-label`/`zoomInLabel`: What the control that zooms in is called.
|
|
52155
|
+
* - `zoom-out-label`/`zoomOutLabel`: What the control that zooms out is called.
|
|
52152
52156
|
* - `label`: Accessible name for the map, which is the one thing a consumer must write.
|
|
52153
52157
|
*
|
|
52154
52158
|
* There is no sensible default. "Map" names the widget rather than the place,
|
|
52155
52159
|
* and a reader meeting three of them on a page learns nothing from hearing the
|
|
52156
52160
|
* same word three times.
|
|
52157
|
-
* - `pan-label`/`panLabel`: What the controls are called, for a page not in English.
|
|
52158
|
-
* - `pan-step`/`panStep`: How far one press moves the map, as a fraction of what is on screen.
|
|
52159
52161
|
*
|
|
52160
|
-
*
|
|
52161
|
-
*
|
|
52162
|
-
*
|
|
52163
|
-
*
|
|
52164
|
-
*
|
|
52165
|
-
*
|
|
52162
|
+
* **The region is a tab stop**, so the keys are reachable however the controls
|
|
52163
|
+
* are configured: the listener is on the region, and without a stop of its own
|
|
52164
|
+
* a frame at `controls="none"` around a map with nothing focusable in it had
|
|
52165
|
+
* arrow keys no reader could ever press. `aria-keyshortcuts` says which keys
|
|
52166
|
+
* rather than spelling them into the name, which would otherwise be read out
|
|
52167
|
+
* at every encounter.
|
|
52166
52168
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
52167
52169
|
*
|
|
52168
52170
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -52204,9 +52206,9 @@ export type CustomElementsSolidJs = {
|
|
|
52204
52206
|
*
|
|
52205
52207
|
* Methods that can be called to access component functionality.
|
|
52206
52208
|
*
|
|
52207
|
-
* - `
|
|
52208
|
-
* - `
|
|
52209
|
-
* - `
|
|
52209
|
+
* - `pan(to: ViewportWay) => void`: Asks for the view to move, which the consumer answers.
|
|
52210
|
+
* - `zoom(by: number) => void`: Asks for the view to zoom, `1` in and `-1` out.
|
|
52211
|
+
* - `toggleFullscreen() => void`: Fills the screen with the surface, or comes back.
|
|
52210
52212
|
*
|
|
52211
52213
|
* ## CSS Custom Properties
|
|
52212
52214
|
*
|