@fusion.dev/helix-headless 0.110.0 → 0.110.2
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 +61 -22
- package/dist/color-picker/root/color-picker-root.js +4 -0
- package/dist/map/area/map-area.d.ts +5 -2
- package/dist/map/area/map-area.js +1 -0
- package/dist/map/marker/map-marker.d.ts +2 -0
- package/dist/map/marker/map-marker.js +9 -0
- package/dist/map/points/map-points.d.ts +5 -2
- package/dist/map/points/map-points.js +1 -0
- package/dist/map/position/map-position.d.ts +2 -2
- package/dist/map/position/map-position.js +1 -0
- package/dist/map/raster/map-raster.d.ts +6 -2
- package/dist/map/raster/map-raster.js +7 -0
- package/dist/map/root/map-root.d.ts +24 -2
- package/dist/map/root/map-root.js +15 -12
- package/dist/map/route/map-route.d.ts +5 -2
- package/dist/map/route/map-route.js +1 -0
- package/dist/time-picker/root/time-picker-root.js +2 -0
- package/package.json +5 -5
- package/types/jsx.d.ts +42 -24
- package/types/vue.d.ts +9 -5
package/custom-elements.json
CHANGED
|
@@ -62374,9 +62374,10 @@
|
|
|
62374
62374
|
"kind": "field",
|
|
62375
62375
|
"name": "label",
|
|
62376
62376
|
"type": {
|
|
62377
|
-
"text": "string
|
|
62377
|
+
"text": "string"
|
|
62378
62378
|
},
|
|
62379
|
-
"
|
|
62379
|
+
"default": "'Area'",
|
|
62380
|
+
"description": "The area's name, used in the frame's list and its tile in the layers\nmenu. Defaults to \"Area\", so neither is ever a control with no name.",
|
|
62380
62381
|
"attribute": "label"
|
|
62381
62382
|
},
|
|
62382
62383
|
{
|
|
@@ -62743,9 +62744,10 @@
|
|
|
62743
62744
|
{
|
|
62744
62745
|
"name": "label",
|
|
62745
62746
|
"type": {
|
|
62746
|
-
"text": "string
|
|
62747
|
+
"text": "string"
|
|
62747
62748
|
},
|
|
62748
|
-
"
|
|
62749
|
+
"default": "'Area'",
|
|
62750
|
+
"description": "The area's name, used in the frame's list and its tile in the layers\nmenu. Defaults to \"Area\", so neither is ever a control with no name.",
|
|
62749
62751
|
"fieldName": "label"
|
|
62750
62752
|
},
|
|
62751
62753
|
{
|
|
@@ -64529,6 +64531,16 @@
|
|
|
64529
64531
|
"description": "The word added after a passed place's name. Defaults to \"passed\".",
|
|
64530
64532
|
"attribute": "passed-label"
|
|
64531
64533
|
},
|
|
64534
|
+
{
|
|
64535
|
+
"kind": "field",
|
|
64536
|
+
"name": "handingOver",
|
|
64537
|
+
"type": {
|
|
64538
|
+
"text": "boolean"
|
|
64539
|
+
},
|
|
64540
|
+
"privacy": "private",
|
|
64541
|
+
"default": "false",
|
|
64542
|
+
"description": "Whether focus is on this marker as it is gathered, and so has to move on."
|
|
64543
|
+
},
|
|
64532
64544
|
{
|
|
64533
64545
|
"kind": "method",
|
|
64534
64546
|
"name": "extent",
|
|
@@ -65133,9 +65145,10 @@
|
|
|
65133
65145
|
"kind": "field",
|
|
65134
65146
|
"name": "label",
|
|
65135
65147
|
"type": {
|
|
65136
|
-
"text": "string
|
|
65148
|
+
"text": "string"
|
|
65137
65149
|
},
|
|
65138
|
-
"
|
|
65150
|
+
"default": "'Places'",
|
|
65151
|
+
"description": "The layer's name, used in the frame's list, its tile in the layers menu,\nand the group of places the keyboard walks. Defaults to \"Places\".",
|
|
65139
65152
|
"attribute": "label"
|
|
65140
65153
|
},
|
|
65141
65154
|
{
|
|
@@ -65658,9 +65671,10 @@
|
|
|
65658
65671
|
{
|
|
65659
65672
|
"name": "label",
|
|
65660
65673
|
"type": {
|
|
65661
|
-
"text": "string
|
|
65674
|
+
"text": "string"
|
|
65662
65675
|
},
|
|
65663
|
-
"
|
|
65676
|
+
"default": "'Places'",
|
|
65677
|
+
"description": "The layer's name, used in the frame's list, its tile in the layers menu,\nand the group of places the keyboard walks. Defaults to \"Places\".",
|
|
65664
65678
|
"fieldName": "label"
|
|
65665
65679
|
},
|
|
65666
65680
|
{
|
|
@@ -65827,9 +65841,10 @@
|
|
|
65827
65841
|
"kind": "field",
|
|
65828
65842
|
"name": "label",
|
|
65829
65843
|
"type": {
|
|
65830
|
-
"text": "string
|
|
65844
|
+
"text": "string"
|
|
65831
65845
|
},
|
|
65832
|
-
"
|
|
65846
|
+
"default": "'Live position'",
|
|
65847
|
+
"description": "What it is, such as \"Van 12\". Read by screen readers. Defaults to \"Live position\".",
|
|
65833
65848
|
"attribute": "label"
|
|
65834
65849
|
},
|
|
65835
65850
|
{
|
|
@@ -66258,9 +66273,10 @@
|
|
|
66258
66273
|
{
|
|
66259
66274
|
"name": "label",
|
|
66260
66275
|
"type": {
|
|
66261
|
-
"text": "string
|
|
66276
|
+
"text": "string"
|
|
66262
66277
|
},
|
|
66263
|
-
"
|
|
66278
|
+
"default": "'Live position'",
|
|
66279
|
+
"description": "What it is, such as \"Van 12\". Read by screen readers. Defaults to \"Live position\".",
|
|
66264
66280
|
"fieldName": "label"
|
|
66265
66281
|
},
|
|
66266
66282
|
{
|
|
@@ -66423,9 +66439,10 @@
|
|
|
66423
66439
|
"kind": "field",
|
|
66424
66440
|
"name": "label",
|
|
66425
66441
|
"type": {
|
|
66426
|
-
"text": "string
|
|
66442
|
+
"text": "string"
|
|
66427
66443
|
},
|
|
66428
|
-
"
|
|
66444
|
+
"default": "'Overlay'",
|
|
66445
|
+
"description": "The layer's name in the frame's list and its tile in the layers menu.\nDefaults to \"Overlay\", so neither is ever a control with no name.",
|
|
66429
66446
|
"attribute": "label"
|
|
66430
66447
|
},
|
|
66431
66448
|
{
|
|
@@ -66893,9 +66910,10 @@
|
|
|
66893
66910
|
{
|
|
66894
66911
|
"name": "label",
|
|
66895
66912
|
"type": {
|
|
66896
|
-
"text": "string
|
|
66913
|
+
"text": "string"
|
|
66897
66914
|
},
|
|
66898
|
-
"
|
|
66915
|
+
"default": "'Overlay'",
|
|
66916
|
+
"description": "The layer's name in the frame's list and its tile in the layers menu.\nDefaults to \"Overlay\", so neither is ever a control with no name.",
|
|
66899
66917
|
"fieldName": "label"
|
|
66900
66918
|
},
|
|
66901
66919
|
{
|
|
@@ -67427,7 +67445,7 @@
|
|
|
67427
67445
|
"text": "void"
|
|
67428
67446
|
}
|
|
67429
67447
|
},
|
|
67430
|
-
"description": "Says the map has moved, where a reader asked it to.\n\n**Called by whatever moves the map**, as `connectMap` does on every frame\nthe view moves. The frame's keys and buttons only ask, and nothing moves\nuntil something answers, so the frame says nothing until it is told the\nview moved: an announcement for a move that never happened is worse than\nnone. A page moving its own map in answer to `helix-map-pan` calls
|
|
67448
|
+
"description": "Says the map has moved, where a reader asked it to.\n\n**Called by whatever moves the map**, as `connectMap` does on every frame\nthe view moves. The frame's keys and buttons only ask, and nothing moves\nuntil something answers, so the frame says nothing until it is told the\nview moved: an announcement for a move that never happened is worse than\nnone. A page moving its own map in answer to `helix-map-pan` sets\n`zoomLevel`, `bearing` and `pitch` to where the map now is and then calls\nthis, since those are what is said.\n\nWhat is said waits for the view to settle, so a held key or a long\nanimation is one sentence, and it is the view's state where there is one:\nthe zoom level, the way the map faces, its tilt. A pan has no state to\nsay, so it says which way the map moved.",
|
|
67431
67449
|
"type": {
|
|
67432
67450
|
"text": "moved() => void"
|
|
67433
67451
|
}
|
|
@@ -67520,6 +67538,25 @@
|
|
|
67520
67538
|
"description": "The imagery among the layers: raster layers drawn as the ground, which the\nmap types show and hide rather than a tile of their own.",
|
|
67521
67539
|
"readonly": true
|
|
67522
67540
|
},
|
|
67541
|
+
{
|
|
67542
|
+
"kind": "method",
|
|
67543
|
+
"name": "shown",
|
|
67544
|
+
"privacy": "private",
|
|
67545
|
+
"return": {
|
|
67546
|
+
"type": {
|
|
67547
|
+
"text": "boolean"
|
|
67548
|
+
}
|
|
67549
|
+
},
|
|
67550
|
+
"parameters": [
|
|
67551
|
+
{
|
|
67552
|
+
"name": "layer",
|
|
67553
|
+
"type": {
|
|
67554
|
+
"text": "MapLayer"
|
|
67555
|
+
}
|
|
67556
|
+
}
|
|
67557
|
+
],
|
|
67558
|
+
"description": "Whether a layer is drawn: not hidden, and, for imagery of the ground, while\na map type shows imagery.\n\n**The map type decides imagery without writing onto it.** It set `hidden`\non the consumer's own `<helix-map-raster ground>`, before anyone had asked,\nwhich is an attribute their server never sent: the hydration mismatch the\narea rules record. `connectMap` asks the same question."
|
|
67559
|
+
},
|
|
67523
67560
|
{
|
|
67524
67561
|
"kind": "method",
|
|
67525
67562
|
"name": "nameOf",
|
|
@@ -67606,7 +67643,7 @@
|
|
|
67606
67643
|
"name": "keys",
|
|
67607
67644
|
"privacy": "protected",
|
|
67608
67645
|
"readonly": true,
|
|
67609
|
-
"default": "new KeyboardNavigationController(this, { items: () => this.markers.map( (marker, at): NavigableItem => ({ /* The marker itself, as a browser retargets a press from its shadow root to it, or a node inside that root, as an engine that does not retarget reports it. */ contains: (node) => node !== null && (marker.contains(node) || marker.shadowRoot?.contains(node) === true), /* Hidden inside a cluster, which the walk reaches instead. */ disabled: marker.gatheredBy !== undefined, /* The stop moves with the walk rather than waiting to hear focus arrive: a focus event from inside a marker's own shadow root is one an engine can fail to carry out to the frame, and the stop is the walk's to keep. */ focusItem: () => { this.stop = at marker.focus() }, select: () => {}, selected: false, }), ), origin: 'focus', selects: () => false, })"
|
|
67646
|
+
"default": "new KeyboardNavigationController(this, { items: () => this.markers.map( (marker, at): NavigableItem => ({ /* The marker itself, as a browser retargets a press from its shadow root to it, or a node inside that root, as an engine that does not retarget reports it. */ contains: (node) => node !== null && (marker.contains(node) || marker.shadowRoot?.contains(node) === true), /* Hidden inside a cluster, which the walk reaches instead, or with no place to stand, which a stylesheet cannot show: a walk that stopped there moved the stop to a marker nothing could focus. */ disabled: marker.gatheredBy !== undefined || !placed(marker), /* The stop moves with the walk rather than waiting to hear focus arrive: a focus event from inside a marker's own shadow root is one an engine can fail to carry out to the frame, and the stop is the walk's to keep. */ focusItem: () => { this.stop = at marker.focus() }, select: () => {}, selected: false, }), ), origin: 'focus', selects: () => false, })"
|
|
67610
67647
|
},
|
|
67611
67648
|
{
|
|
67612
67649
|
"kind": "method",
|
|
@@ -69270,9 +69307,10 @@
|
|
|
69270
69307
|
"kind": "field",
|
|
69271
69308
|
"name": "label",
|
|
69272
69309
|
"type": {
|
|
69273
|
-
"text": "string
|
|
69310
|
+
"text": "string"
|
|
69274
69311
|
},
|
|
69275
|
-
"
|
|
69312
|
+
"default": "'Route'",
|
|
69313
|
+
"description": "The route's name, used in the frame's list and its tile in the layers\nmenu. Defaults to \"Route\", so neither is ever a control with no name.",
|
|
69276
69314
|
"attribute": "label"
|
|
69277
69315
|
},
|
|
69278
69316
|
{
|
|
@@ -69648,9 +69686,10 @@
|
|
|
69648
69686
|
{
|
|
69649
69687
|
"name": "label",
|
|
69650
69688
|
"type": {
|
|
69651
|
-
"text": "string
|
|
69689
|
+
"text": "string"
|
|
69652
69690
|
},
|
|
69653
|
-
"
|
|
69691
|
+
"default": "'Route'",
|
|
69692
|
+
"description": "The route's name, used in the frame's list and its tile in the layers\nmenu. Defaults to \"Route\", so neither is ever a control with no name.",
|
|
69654
69693
|
"fieldName": "label"
|
|
69655
69694
|
},
|
|
69656
69695
|
{
|
|
@@ -175,6 +175,7 @@ let HelixHeadlessColorPicker = class HelixHeadlessColorPicker extends MixinContr
|
|
|
175
175
|
hint: channel-hint, label: channel-label, marker: channel-marker,
|
|
176
176
|
marker-label: channel-marker-label, markers: channel-markers, output: channel-output"
|
|
177
177
|
data-channel=${channel}
|
|
178
|
+
aria-invalid=${this.invalid ? 'true' : nothing}
|
|
178
179
|
label=${label}
|
|
179
180
|
max=${max}
|
|
180
181
|
min="0"
|
|
@@ -254,6 +255,7 @@ let HelixHeadlessColorPicker = class HelixHeadlessColorPicker extends MixinContr
|
|
|
254
255
|
min="0"
|
|
255
256
|
max="100"
|
|
256
257
|
aria-label=${this.saturationLabel}
|
|
258
|
+
aria-invalid=${this.invalid ? 'true' : nothing}
|
|
257
259
|
.value=${String(color.saturation)}
|
|
258
260
|
?disabled=${this.isDisabled}
|
|
259
261
|
@input=${(event) => this.takeArea('saturation', event)}
|
|
@@ -264,6 +266,7 @@ let HelixHeadlessColorPicker = class HelixHeadlessColorPicker extends MixinContr
|
|
|
264
266
|
min="0"
|
|
265
267
|
max="100"
|
|
266
268
|
aria-label=${this.brightnessLabel}
|
|
269
|
+
aria-invalid=${this.invalid ? 'true' : nothing}
|
|
267
270
|
.value=${String(color.brightness)}
|
|
268
271
|
?disabled=${this.isDisabled}
|
|
269
272
|
@input=${(event) => this.takeArea('brightness', event)}
|
|
@@ -298,6 +301,7 @@ let HelixHeadlessColorPicker = class HelixHeadlessColorPicker extends MixinContr
|
|
|
298
301
|
part="value"
|
|
299
302
|
type="text"
|
|
300
303
|
aria-label=${this.valueLabel}
|
|
304
|
+
aria-invalid=${this.invalid ? 'true' : nothing}
|
|
301
305
|
autocomplete=${this.autocomplete || nothing}
|
|
302
306
|
spellcheck="false"
|
|
303
307
|
.value=${this.value}
|
|
@@ -30,8 +30,11 @@ export declare class HelixHeadlessMapArea extends HelixElement {
|
|
|
30
30
|
readonly isMapLayer = true;
|
|
31
31
|
/** @internal Which kind of layer, which is how the connector draws it. */
|
|
32
32
|
readonly layerKind: 'area' | 'route';
|
|
33
|
-
/**
|
|
34
|
-
|
|
33
|
+
/**
|
|
34
|
+
* The area's name, used in the frame's list and its tile in the layers
|
|
35
|
+
* menu. Defaults to "Area", so neither is ever a control with no name.
|
|
36
|
+
*/
|
|
37
|
+
label: string;
|
|
35
38
|
/**
|
|
36
39
|
* The corners of the shape, in order. The last point connects back to the
|
|
37
40
|
* first.
|
|
@@ -95,6 +95,8 @@ export declare class HelixHeadlessMapMarker extends HelixElement {
|
|
|
95
95
|
passed: boolean;
|
|
96
96
|
/** The word added after a passed place's name. Defaults to "passed". */
|
|
97
97
|
passedLabel: string;
|
|
98
|
+
/** Whether focus is on this marker as it is gathered, and so has to move on. */
|
|
99
|
+
private handingOver;
|
|
98
100
|
protected willUpdate(changed: PropertyValues): void;
|
|
99
101
|
/**
|
|
100
102
|
* Tells the connector the place moved or was renamed, which moves the point
|
|
@@ -28,9 +28,14 @@ let HelixHeadlessMapMarker = class HelixHeadlessMapMarker extends HelixElement {
|
|
|
28
28
|
this.name = '';
|
|
29
29
|
this.passed = false;
|
|
30
30
|
this.passedLabel = 'passed';
|
|
31
|
+
this.handingOver = false;
|
|
31
32
|
}
|
|
32
33
|
willUpdate(changed) {
|
|
33
34
|
super.willUpdate(changed);
|
|
35
|
+
this.handingOver =
|
|
36
|
+
changed.has('gatheredBy') &&
|
|
37
|
+
this.gatheredBy !== undefined &&
|
|
38
|
+
this.getRootNode().activeElement === this;
|
|
34
39
|
this.toggleState('behind', this.behind);
|
|
35
40
|
this.toggleState('cluster', this.gathered.length > 1);
|
|
36
41
|
this.toggleState('clustered', this.gatheredBy !== undefined);
|
|
@@ -44,6 +49,10 @@ let HelixHeadlessMapMarker = class HelixHeadlessMapMarker extends HelixElement {
|
|
|
44
49
|
}
|
|
45
50
|
updated(changed) {
|
|
46
51
|
super.updated(changed);
|
|
52
|
+
if (this.handingOver) {
|
|
53
|
+
this.handingOver = false;
|
|
54
|
+
this.gatheredBy?.focus();
|
|
55
|
+
}
|
|
47
56
|
const keys = [...changed.keys()];
|
|
48
57
|
if (keys.some((key) => key === 'gathered' || key === 'gatheredBy')) {
|
|
49
58
|
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'cluster' }));
|
|
@@ -96,8 +96,11 @@ export declare class HelixHeadlessMapPoints extends HelixElement {
|
|
|
96
96
|
group?: string;
|
|
97
97
|
/** Marks this as a layer for the frame and the connector, whatever its tag. */
|
|
98
98
|
readonly isMapLayer = true;
|
|
99
|
-
/**
|
|
100
|
-
|
|
99
|
+
/**
|
|
100
|
+
* The layer's name, used in the frame's list, its tile in the layers menu,
|
|
101
|
+
* and the group of places the keyboard walks. Defaults to "Places".
|
|
102
|
+
*/
|
|
103
|
+
label: string;
|
|
101
104
|
/** @internal Which kind of layer, which is how the connector draws it. */
|
|
102
105
|
readonly layerKind: 'points';
|
|
103
106
|
/** The GeoJSON property each point is named by. Defaults to `name`. */
|
|
@@ -14,6 +14,7 @@ let HelixHeadlessMapPoints = class HelixHeadlessMapPoints extends HelixElement {
|
|
|
14
14
|
this.cluster = false;
|
|
15
15
|
this.countLabel = '{count} places';
|
|
16
16
|
this.isMapLayer = true;
|
|
17
|
+
this.label = 'Places';
|
|
17
18
|
this.layerKind = 'points';
|
|
18
19
|
this.nameKey = 'name';
|
|
19
20
|
this.walk = [];
|
|
@@ -43,8 +43,8 @@ export declare class HelixHeadlessMapPosition extends HelixElement {
|
|
|
43
43
|
heading?: number;
|
|
44
44
|
/** Marks this as a position for the connector, whatever its tag. */
|
|
45
45
|
readonly isMapPosition = true;
|
|
46
|
-
/** What it is, such as "Van 12". Read by screen readers. */
|
|
47
|
-
label
|
|
46
|
+
/** What it is, such as "Van 12". Read by screen readers. Defaults to "Live position". */
|
|
47
|
+
label: string;
|
|
48
48
|
/** Latitude, in degrees. */
|
|
49
49
|
lat?: number;
|
|
50
50
|
/** Longitude, in degrees. */
|
|
@@ -12,6 +12,7 @@ let HelixHeadlessMapPosition = class HelixHeadlessMapPosition extends HelixEleme
|
|
|
12
12
|
super(...arguments);
|
|
13
13
|
this.announceEvery = 5000;
|
|
14
14
|
this.isMapPosition = true;
|
|
15
|
+
this.label = 'Live position';
|
|
15
16
|
this.spoken = '';
|
|
16
17
|
this.spokenAt = Number.NEGATIVE_INFINITY;
|
|
17
18
|
}
|
|
@@ -54,8 +54,11 @@ export declare class HelixHeadlessMapRaster extends HelixElement {
|
|
|
54
54
|
readonly isMapLayer = true;
|
|
55
55
|
/** @internal Which kind of layer, which is how the connector draws it. */
|
|
56
56
|
readonly layerKind: 'raster';
|
|
57
|
-
/**
|
|
58
|
-
|
|
57
|
+
/**
|
|
58
|
+
* The layer's name in the frame's list and its tile in the layers menu.
|
|
59
|
+
* Defaults to "Overlay", so neither is ever a control with no name.
|
|
60
|
+
*/
|
|
61
|
+
label: string;
|
|
59
62
|
/**
|
|
60
63
|
* The deepest zoom the provider has tiles for. The map enlarges those tiles
|
|
61
64
|
* at deeper zooms, where it would otherwise ask for tiles that do not exist.
|
|
@@ -69,6 +72,7 @@ export declare class HelixHeadlessMapRaster extends HelixElement {
|
|
|
69
72
|
src?: string;
|
|
70
73
|
/** The timer that moves to the next frame while playing. */
|
|
71
74
|
private timer;
|
|
75
|
+
connectedCallback(): void;
|
|
72
76
|
disconnectedCallback(): void;
|
|
73
77
|
private stopTimer;
|
|
74
78
|
/** Starts or stops the timer when the frames, the interval, or `playing` change. */
|
|
@@ -18,9 +18,16 @@ let HelixHeadlessMapRaster = class HelixHeadlessMapRaster extends HelixElement {
|
|
|
18
18
|
this.interval = 600;
|
|
19
19
|
this.isMapLayer = true;
|
|
20
20
|
this.layerKind = 'raster';
|
|
21
|
+
this.label = 'Overlay';
|
|
21
22
|
this.opacity = 0.7;
|
|
22
23
|
this.playing = false;
|
|
23
24
|
}
|
|
25
|
+
connectedCallback() {
|
|
26
|
+
super.connectedCallback();
|
|
27
|
+
if (this.hasUpdated) {
|
|
28
|
+
this.schedule();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
24
31
|
disconnectedCallback() {
|
|
25
32
|
super.disconnectedCallback();
|
|
26
33
|
this.stopTimer();
|
|
@@ -210,8 +210,9 @@ export declare class HelixHeadlessMap extends HelixHeadlessMap_base {
|
|
|
210
210
|
* the view moves. The frame's keys and buttons only ask, and nothing moves
|
|
211
211
|
* until something answers, so the frame says nothing until it is told the
|
|
212
212
|
* view moved: an announcement for a move that never happened is worse than
|
|
213
|
-
* none. A page moving its own map in answer to `helix-map-pan`
|
|
214
|
-
*
|
|
213
|
+
* none. A page moving its own map in answer to `helix-map-pan` sets
|
|
214
|
+
* `zoomLevel`, `bearing` and `pitch` to where the map now is and then calls
|
|
215
|
+
* this, since those are what is said.
|
|
215
216
|
*
|
|
216
217
|
* What is said waits for the view to settle, so a held key or a long
|
|
217
218
|
* animation is one sentence, and it is the view's state where there is one:
|
|
@@ -242,6 +243,16 @@ export declare class HelixHeadlessMap extends HelixHeadlessMap_base {
|
|
|
242
243
|
* map types show and hide rather than a tile of their own.
|
|
243
244
|
*/
|
|
244
245
|
private get imagery();
|
|
246
|
+
/**
|
|
247
|
+
* Whether a layer is drawn: not hidden, and, for imagery of the ground, while
|
|
248
|
+
* a map type shows imagery.
|
|
249
|
+
*
|
|
250
|
+
* **The map type decides imagery without writing onto it.** It set `hidden`
|
|
251
|
+
* on the consumer's own `<helix-map-raster ground>`, before anyone had asked,
|
|
252
|
+
* which is an attribute their server never sent: the hydration mismatch the
|
|
253
|
+
* area rules record. `connectMap` asks the same question.
|
|
254
|
+
*/
|
|
255
|
+
private shown;
|
|
245
256
|
/** A map type's name on its card. */
|
|
246
257
|
private nameOf;
|
|
247
258
|
/** Shows or hides layers, which `connectMap` draws or takes off the map. */
|
|
@@ -288,6 +299,17 @@ export declare class HelixHeadlessMap extends HelixHeadlessMap_base {
|
|
|
288
299
|
private readonly handleSlotChange;
|
|
289
300
|
connectedCallback(): void;
|
|
290
301
|
disconnectedCallback(): void;
|
|
302
|
+
/**
|
|
303
|
+
* Asks for the render the hydration put off, which is the first one to know
|
|
304
|
+
* the markers and the layers.
|
|
305
|
+
*
|
|
306
|
+
* **Without it a map a server sent never drew them.** The hydrating render
|
|
307
|
+
* reads no children, and the parts' own first updates reach the frame while
|
|
308
|
+
* its update is still pending, so nothing else asked: every marker kept
|
|
309
|
+
* `tabindex="-1"` and there was no list of layers until the connector
|
|
310
|
+
* happened to write a property, and a page moving its own map never did.
|
|
311
|
+
*/
|
|
312
|
+
protected firstUpdated(changed: PropertyValues): void;
|
|
291
313
|
/**
|
|
292
314
|
* Puts the tab stop on one marker and takes it off the rest, the roving
|
|
293
315
|
* pattern the toolbar uses: every marker at `-1` is a map whose places the
|
|
@@ -35,6 +35,7 @@ const iconOf = (layer) => {
|
|
|
35
35
|
const ROTATE_STEP = 15;
|
|
36
36
|
const TILT_STEP = 10;
|
|
37
37
|
const TILTED = 50;
|
|
38
|
+
const placed = (marker) => Number.isFinite(marker.lat) && Number.isFinite(marker.lng);
|
|
38
39
|
const ASK_LAPSES = 3000;
|
|
39
40
|
const SETTLES = 400;
|
|
40
41
|
let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement) {
|
|
@@ -88,7 +89,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
88
89
|
this.keys = new KeyboardNavigationController(this, {
|
|
89
90
|
items: () => this.markers.map((marker, at) => ({
|
|
90
91
|
contains: (node) => node !== null && (marker.contains(node) || marker.shadowRoot?.contains(node) === true),
|
|
91
|
-
disabled: marker.gatheredBy !== undefined,
|
|
92
|
+
disabled: marker.gatheredBy !== undefined || !placed(marker),
|
|
92
93
|
focusItem: () => {
|
|
93
94
|
this.stop = at;
|
|
94
95
|
marker.focus();
|
|
@@ -146,7 +147,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
146
147
|
if (!asked) {
|
|
147
148
|
return;
|
|
148
149
|
}
|
|
149
|
-
const numbers = formatNumbers(this.lang);
|
|
150
|
+
const numbers = formatNumbers(this.closest('[lang]')?.getAttribute('lang') ?? '');
|
|
150
151
|
const degrees = (value) => numbers(Math.round(value));
|
|
151
152
|
const bearing = ((Math.round(this.bearing) % 360) + 360) % 360;
|
|
152
153
|
const words = {
|
|
@@ -168,7 +169,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
168
169
|
: bearing === 0
|
|
169
170
|
? this.northLabel
|
|
170
171
|
: fillTemplate(this.turnedLabel, { degrees: degrees(bearing) });
|
|
171
|
-
this.said = next !== '' && next === this.said
|
|
172
|
+
this.said = next !== '' && next === this.said ? `${next}\u00a0` : next;
|
|
172
173
|
}
|
|
173
174
|
ask(kind, side) {
|
|
174
175
|
this.asked = { at: performance.now(), kind, ...(side ? { side } : {}) };
|
|
@@ -179,6 +180,9 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
179
180
|
get imagery() {
|
|
180
181
|
return this.layers.filter((layer) => layer.layerKind === 'raster' && layer.ground === true);
|
|
181
182
|
}
|
|
183
|
+
shown(layer) {
|
|
184
|
+
return !layer.hidden && !(layer.layerKind === 'raster' && layer.ground && !this.mapType);
|
|
185
|
+
}
|
|
182
186
|
nameOf(type) {
|
|
183
187
|
return type === 'hybrid'
|
|
184
188
|
? this.hybridLabel
|
|
@@ -247,14 +251,12 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
247
251
|
this.removeEventListener('keydown', this.handleMarkerKeydown);
|
|
248
252
|
this.removeEventListener('keyup', this.handleMarkerKeyup);
|
|
249
253
|
}
|
|
254
|
+
firstUpdated(changed) {
|
|
255
|
+
super.firstUpdated(changed);
|
|
256
|
+
this.finishHydration();
|
|
257
|
+
}
|
|
250
258
|
updated(changed) {
|
|
251
259
|
super.updated(changed);
|
|
252
|
-
const photographed = this.mapType !== undefined;
|
|
253
|
-
for (const layer of this.imagery) {
|
|
254
|
-
if (layer.hidden === photographed) {
|
|
255
|
-
layer.hidden = !photographed;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
260
|
if (changed.has('mapType')) {
|
|
259
261
|
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'layer' }));
|
|
260
262
|
}
|
|
@@ -267,7 +269,8 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
267
269
|
}
|
|
268
270
|
}
|
|
269
271
|
const markers = this.markers;
|
|
270
|
-
const
|
|
272
|
+
const at = markers[Math.min(this.stop, markers.length - 1)];
|
|
273
|
+
const on = at && placed(at) ? at : (markers.find(placed) ?? at);
|
|
271
274
|
const stop = on?.gatheredBy ?? on;
|
|
272
275
|
for (const marker of markers) {
|
|
273
276
|
marker.current = marker === stop;
|
|
@@ -500,7 +503,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
500
503
|
this.toggleState('idle', this.resting);
|
|
501
504
|
}
|
|
502
505
|
renderLayers() {
|
|
503
|
-
const layers = this.layers.filter((layer) =>
|
|
506
|
+
const layers = this.layers.filter((layer) => this.shown(layer));
|
|
504
507
|
if (layers.length === 0) {
|
|
505
508
|
return nothing;
|
|
506
509
|
}
|
|
@@ -512,7 +515,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
512
515
|
return html `<div
|
|
513
516
|
part="region"
|
|
514
517
|
role="group"
|
|
515
|
-
aria-label=${this.label || 'Map'}
|
|
518
|
+
aria-label=${this.label || this.getAttribute('aria-label') || 'Map'}
|
|
516
519
|
aria-keyshortcuts=${this.keyShortcuts}
|
|
517
520
|
tabindex="0"
|
|
518
521
|
@focusin=${this.idle.stir}
|
|
@@ -49,8 +49,11 @@ export declare class HelixHeadlessMapRoute extends HelixElement {
|
|
|
49
49
|
readonly isMapLayer = true;
|
|
50
50
|
/** @internal Which kind of layer, which is how the connector draws it. */
|
|
51
51
|
readonly layerKind: 'area' | 'route';
|
|
52
|
-
/**
|
|
53
|
-
|
|
52
|
+
/**
|
|
53
|
+
* The route's name, used in the frame's list and its tile in the layers
|
|
54
|
+
* menu. Defaults to "Route", so neither is ever a control with no name.
|
|
55
|
+
*/
|
|
56
|
+
label: string;
|
|
54
57
|
/**
|
|
55
58
|
* The points the line passes through, in order. Write the attribute as
|
|
56
59
|
* `lat,lng` pairs separated by spaces, or set the property to an array of `{
|
|
@@ -202,6 +202,7 @@ let HelixHeadlessTimePicker = class HelixHeadlessTimePicker extends MixinControl
|
|
|
202
202
|
return html `<${this.tag('listbox')}
|
|
203
203
|
part="column"
|
|
204
204
|
data-column=${part}
|
|
205
|
+
aria-invalid=${this.invalid ? 'true' : nothing}
|
|
205
206
|
exportparts="empty: column-empty, feedback: column-feedback, filter-icon: column-filter-icon,
|
|
206
207
|
filter-mark: column-filter-mark, hint: column-hint, items: column-items, label: column-label,
|
|
207
208
|
live: column-live, loading: column-loading, search: column-search, search-field: column-search-field"
|
|
@@ -244,6 +245,7 @@ let HelixHeadlessTimePicker = class HelixHeadlessTimePicker extends MixinControl
|
|
|
244
245
|
renderList() {
|
|
245
246
|
return html `<${this.tag('listbox')}
|
|
246
247
|
part="list"
|
|
248
|
+
aria-invalid=${this.invalid ? 'true' : nothing}
|
|
247
249
|
exportparts="empty: list-empty, feedback: list-feedback, filter-icon: list-filter-icon,
|
|
248
250
|
filter-mark: list-filter-mark, hint: list-hint, items: list-items, label: list-label,
|
|
249
251
|
live: list-live, loading: list-loading, search: list-search, search-field: list-search-field"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix-headless",
|
|
3
3
|
"description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
|
|
4
|
-
"version": "0.110.
|
|
4
|
+
"version": "0.110.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
},
|
|
47
47
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@fusion.dev/helix-core": "0.110.
|
|
50
|
-
"@fusion.dev/helix-icons": "0.110.
|
|
49
|
+
"@fusion.dev/helix-core": "0.110.2",
|
|
50
|
+
"@fusion.dev/helix-icons": "0.110.2",
|
|
51
51
|
"uqr": "^0.1.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@fusion.dev/helix-cem": "0.110.
|
|
55
|
-
"@fusion.dev/helix-testing": "0.110.
|
|
54
|
+
"@fusion.dev/helix-cem": "0.110.2",
|
|
55
|
+
"@fusion.dev/helix-testing": "0.110.2",
|
|
56
56
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
57
57
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
58
58
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -11443,7 +11443,8 @@ export type HelixHeadlessMapAreaProps = {
|
|
|
11443
11443
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
11444
11444
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
11445
11445
|
group?: (HelixHeadlessMapArea["group"]) | undefined;
|
|
11446
|
-
/** The area's name, used in the frame's list
|
|
11446
|
+
/** The area's name, used in the frame's list and its tile in the layers
|
|
11447
|
+
menu. Defaults to "Area", so neither is ever a control with no name. */
|
|
11447
11448
|
label?: (HelixHeadlessMapArea["label"]) | undefined;
|
|
11448
11449
|
/** The corners of the shape, in order. The last point connects back to the
|
|
11449
11450
|
first. */
|
|
@@ -11462,7 +11463,8 @@ export type HelixHeadlessMapAreaSolidJsProps = {
|
|
|
11462
11463
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
11463
11464
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
11464
11465
|
"prop:group"?: (HelixHeadlessMapArea["group"]) | undefined;
|
|
11465
|
-
/** The area's name, used in the frame's list
|
|
11466
|
+
/** The area's name, used in the frame's list and its tile in the layers
|
|
11467
|
+
menu. Defaults to "Area", so neither is ever a control with no name. */
|
|
11466
11468
|
"prop:label"?: (HelixHeadlessMapArea["label"]) | undefined;
|
|
11467
11469
|
/** The corners of the shape, in order. The last point connects back to the
|
|
11468
11470
|
first. */
|
|
@@ -11738,7 +11740,8 @@ the frame's list. */
|
|
|
11738
11740
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
11739
11741
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
11740
11742
|
group?: (HelixHeadlessMapPoints["group"]) | undefined;
|
|
11741
|
-
/** The layer's name, used in the frame's list
|
|
11743
|
+
/** The layer's name, used in the frame's list, its tile in the layers menu,
|
|
11744
|
+
and the group of places the keyboard walks. Defaults to "Places". */
|
|
11742
11745
|
label?: (HelixHeadlessMapPoints["label"]) | undefined;
|
|
11743
11746
|
/** The GeoJSON property each point is named by. Defaults to `name`. */
|
|
11744
11747
|
"name-key"?: (HelixHeadlessMapPoints["nameKey"]) | undefined;
|
|
@@ -11780,7 +11783,8 @@ the frame's list. */
|
|
|
11780
11783
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
11781
11784
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
11782
11785
|
"prop:group"?: (HelixHeadlessMapPoints["group"]) | undefined;
|
|
11783
|
-
/** The layer's name, used in the frame's list
|
|
11786
|
+
/** The layer's name, used in the frame's list, its tile in the layers menu,
|
|
11787
|
+
and the group of places the keyboard walks. Defaults to "Places". */
|
|
11784
11788
|
"prop:label"?: (HelixHeadlessMapPoints["label"]) | undefined;
|
|
11785
11789
|
/** The GeoJSON property each point is named by. Defaults to `name`. */
|
|
11786
11790
|
"attr:name-key"?: (HelixHeadlessMapPoints["nameKey"]) | undefined;
|
|
@@ -11832,7 +11836,7 @@ wait is announced when the wait ends. */
|
|
|
11832
11836
|
description?: (HelixHeadlessMapPosition["description"]) | undefined;
|
|
11833
11837
|
/** The direction it faces, in degrees clockwise from north. Shows an arrow. */
|
|
11834
11838
|
heading?: (HelixHeadlessMapPosition["heading"]) | undefined;
|
|
11835
|
-
/** What it is, such as "Van 12". Read by screen readers. */
|
|
11839
|
+
/** What it is, such as "Van 12". Read by screen readers. Defaults to "Live position". */
|
|
11836
11840
|
label?: (HelixHeadlessMapPosition["label"]) | undefined;
|
|
11837
11841
|
/** Latitude, in degrees. */
|
|
11838
11842
|
lat?: (HelixHeadlessMapPosition["lat"]) | undefined;
|
|
@@ -11858,7 +11862,7 @@ wait is announced when the wait ends. */
|
|
|
11858
11862
|
"prop:description"?: (HelixHeadlessMapPosition["description"]) | undefined;
|
|
11859
11863
|
/** The direction it faces, in degrees clockwise from north. Shows an arrow. */
|
|
11860
11864
|
"prop:heading"?: (HelixHeadlessMapPosition["heading"]) | undefined;
|
|
11861
|
-
/** What it is, such as "Van 12". Read by screen readers. */
|
|
11865
|
+
/** What it is, such as "Van 12". Read by screen readers. Defaults to "Live position". */
|
|
11862
11866
|
"prop:label"?: (HelixHeadlessMapPosition["label"]) | undefined;
|
|
11863
11867
|
/** Latitude, in degrees. */
|
|
11864
11868
|
"prop:lat"?: (HelixHeadlessMapPosition["lat"]) | undefined;
|
|
@@ -11902,7 +11906,8 @@ named by the first of them, and its checkbox shows or hides them all. */
|
|
|
11902
11906
|
group?: (HelixHeadlessMapRaster["group"]) | undefined;
|
|
11903
11907
|
/** How long each frame shows while `playing`, in milliseconds. */
|
|
11904
11908
|
interval?: (HelixHeadlessMapRaster["interval"]) | undefined;
|
|
11905
|
-
/** The layer's name in the frame's list.
|
|
11909
|
+
/** The layer's name in the frame's list and its tile in the layers menu.
|
|
11910
|
+
Defaults to "Overlay", so neither is ever a control with no name. */
|
|
11906
11911
|
label?: (HelixHeadlessMapRaster["label"]) | undefined;
|
|
11907
11912
|
/** The deepest zoom the provider has tiles for. The map enlarges those tiles
|
|
11908
11913
|
at deeper zooms, where it would otherwise ask for tiles that do not exist. */
|
|
@@ -11941,7 +11946,8 @@ named by the first of them, and its checkbox shows or hides them all. */
|
|
|
11941
11946
|
"prop:group"?: (HelixHeadlessMapRaster["group"]) | undefined;
|
|
11942
11947
|
/** How long each frame shows while `playing`, in milliseconds. */
|
|
11943
11948
|
"prop:interval"?: (HelixHeadlessMapRaster["interval"]) | undefined;
|
|
11944
|
-
/** The layer's name in the frame's list.
|
|
11949
|
+
/** The layer's name in the frame's list and its tile in the layers menu.
|
|
11950
|
+
Defaults to "Overlay", so neither is ever a control with no name. */
|
|
11945
11951
|
"prop:label"?: (HelixHeadlessMapRaster["label"]) | undefined;
|
|
11946
11952
|
/** The deepest zoom the provider has tiles for. The map enlarges those tiles
|
|
11947
11953
|
at deeper zooms, where it would otherwise ask for tiles that do not exist. */
|
|
@@ -12524,7 +12530,8 @@ in the frame's list. */
|
|
|
12524
12530
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
12525
12531
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
12526
12532
|
group?: (HelixHeadlessMapRoute["group"]) | undefined;
|
|
12527
|
-
/** The route's name, used in the frame's list
|
|
12533
|
+
/** The route's name, used in the frame's list and its tile in the layers
|
|
12534
|
+
menu. Defaults to "Route", so neither is ever a control with no name. */
|
|
12528
12535
|
label?: (HelixHeadlessMapRoute["label"]) | undefined;
|
|
12529
12536
|
/** The points the line passes through, in order. Write the attribute as
|
|
12530
12537
|
`lat,lng` pairs separated by spaces, or set the property to an array of `{
|
|
@@ -12548,7 +12555,8 @@ in the frame's list. */
|
|
|
12548
12555
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
12549
12556
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
12550
12557
|
"prop:group"?: (HelixHeadlessMapRoute["group"]) | undefined;
|
|
12551
|
-
/** The route's name, used in the frame's list
|
|
12558
|
+
/** The route's name, used in the frame's list and its tile in the layers
|
|
12559
|
+
menu. Defaults to "Route", so neither is ever a control with no name. */
|
|
12552
12560
|
"prop:label"?: (HelixHeadlessMapRoute["label"]) | undefined;
|
|
12553
12561
|
/** The points the line passes through, in order. Write the attribute as
|
|
12554
12562
|
`lat,lng` pairs separated by spaces, or set the property to an array of `{
|
|
@@ -32434,7 +32442,8 @@ export type CustomElements = {
|
|
|
32434
32442
|
* - `group`: A name this layer shares with other layers, such as a route and its
|
|
32435
32443
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
32436
32444
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
32437
|
-
* - `label`: The area's name, used in the frame's list
|
|
32445
|
+
* - `label`: The area's name, used in the frame's list and its tile in the layers
|
|
32446
|
+
* menu. Defaults to "Area", so neither is ever a control with no name.
|
|
32438
32447
|
* - `points`: The corners of the shape, in order. The last point connects back to the
|
|
32439
32448
|
* first.
|
|
32440
32449
|
* - `isMapLayer`: Marks this as a layer for the frame and the connector, whatever its tag. (property only) (readonly)
|
|
@@ -32778,7 +32787,8 @@ export type CustomElements = {
|
|
|
32778
32787
|
* - `group`: A name this layer shares with other layers, such as a route and its
|
|
32779
32788
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
32780
32789
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
32781
|
-
* - `label`: The layer's name, used in the frame's list
|
|
32790
|
+
* - `label`: The layer's name, used in the frame's list, its tile in the layers menu,
|
|
32791
|
+
* and the group of places the keyboard walks. Defaults to "Places".
|
|
32782
32792
|
* - `name-key`/`nameKey`: The GeoJSON property each point is named by. Defaults to `name`.
|
|
32783
32793
|
* - `src`: A GeoJSON file of points to load. Ignored when `data` is set.
|
|
32784
32794
|
* - `data`: The points, as a GeoJSON collection or a list of `{ lat, lng, label, id }`
|
|
@@ -32851,7 +32861,7 @@ export type CustomElements = {
|
|
|
32851
32861
|
* wait is announced when the wait ends.
|
|
32852
32862
|
* - `description`: What screen readers announce when it changes, such as "Two stops away".
|
|
32853
32863
|
* - `heading`: The direction it faces, in degrees clockwise from north. Shows an arrow.
|
|
32854
|
-
* - `label`: What it is, such as "Van 12". Read by screen readers.
|
|
32864
|
+
* - `label`: What it is, such as "Van 12". Read by screen readers. Defaults to "Live position".
|
|
32855
32865
|
* - `lat`: Latitude, in degrees.
|
|
32856
32866
|
* - `lng`: Longitude, in degrees.
|
|
32857
32867
|
* - `isMapPosition`: Marks this as a position for the connector, whatever its tag. (property only) (readonly)
|
|
@@ -32937,7 +32947,8 @@ export type CustomElements = {
|
|
|
32937
32947
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
32938
32948
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
32939
32949
|
* - `interval`: How long each frame shows while `playing`, in milliseconds.
|
|
32940
|
-
* - `label`: The layer's name in the frame's list.
|
|
32950
|
+
* - `label`: The layer's name in the frame's list and its tile in the layers menu.
|
|
32951
|
+
* Defaults to "Overlay", so neither is ever a control with no name.
|
|
32941
32952
|
* - `max-zoom`/`maxZoom`: The deepest zoom the provider has tiles for. The map enlarges those tiles
|
|
32942
32953
|
* at deeper zooms, where it would otherwise ask for tiles that do not exist.
|
|
32943
32954
|
* - `opacity`: How opaque the tiles are, from `0` to `1`.
|
|
@@ -33176,8 +33187,9 @@ export type CustomElements = {
|
|
|
33176
33187
|
* the view moves. The frame's keys and buttons only ask, and nothing moves
|
|
33177
33188
|
* until something answers, so the frame says nothing until it is told the
|
|
33178
33189
|
* view moved: an announcement for a move that never happened is worse than
|
|
33179
|
-
* none. A page moving its own map in answer to `helix-map-pan`
|
|
33180
|
-
*
|
|
33190
|
+
* none. A page moving its own map in answer to `helix-map-pan` sets
|
|
33191
|
+
* `zoomLevel`, `bearing` and `pitch` to where the map now is and then calls
|
|
33192
|
+
* this, since those are what is said.
|
|
33181
33193
|
*
|
|
33182
33194
|
* What is said waits for the view to settle, so a held key or a long
|
|
33183
33195
|
* animation is one sentence, and it is the view's state where there is one:
|
|
@@ -33260,7 +33272,8 @@ export type CustomElements = {
|
|
|
33260
33272
|
* - `group`: A name this layer shares with other layers, such as a route and its
|
|
33261
33273
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
33262
33274
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
33263
|
-
* - `label`: The route's name, used in the frame's list
|
|
33275
|
+
* - `label`: The route's name, used in the frame's list and its tile in the layers
|
|
33276
|
+
* menu. Defaults to "Route", so neither is ever a control with no name.
|
|
33264
33277
|
* - `points`: The points the line passes through, in order. Write the attribute as
|
|
33265
33278
|
* `lat,lng` pairs separated by spaces, or set the property to an array of `{
|
|
33266
33279
|
* lat, lng }`.
|
|
@@ -52468,7 +52481,8 @@ export type CustomElementsSolidJs = {
|
|
|
52468
52481
|
* - `group`: A name this layer shares with other layers, such as a route and its
|
|
52469
52482
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
52470
52483
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
52471
|
-
* - `label`: The area's name, used in the frame's list
|
|
52484
|
+
* - `label`: The area's name, used in the frame's list and its tile in the layers
|
|
52485
|
+
* menu. Defaults to "Area", so neither is ever a control with no name.
|
|
52472
52486
|
* - `points`: The corners of the shape, in order. The last point connects back to the
|
|
52473
52487
|
* first.
|
|
52474
52488
|
* - `isMapLayer`: Marks this as a layer for the frame and the connector, whatever its tag. (property only) (readonly)
|
|
@@ -52821,7 +52835,8 @@ export type CustomElementsSolidJs = {
|
|
|
52821
52835
|
* - `group`: A name this layer shares with other layers, such as a route and its
|
|
52822
52836
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
52823
52837
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
52824
|
-
* - `label`: The layer's name, used in the frame's list
|
|
52838
|
+
* - `label`: The layer's name, used in the frame's list, its tile in the layers menu,
|
|
52839
|
+
* and the group of places the keyboard walks. Defaults to "Places".
|
|
52825
52840
|
* - `name-key`/`nameKey`: The GeoJSON property each point is named by. Defaults to `name`.
|
|
52826
52841
|
* - `src`: A GeoJSON file of points to load. Ignored when `data` is set.
|
|
52827
52842
|
* - `data`: The points, as a GeoJSON collection or a list of `{ lat, lng, label, id }`
|
|
@@ -52897,7 +52912,7 @@ export type CustomElementsSolidJs = {
|
|
|
52897
52912
|
* wait is announced when the wait ends.
|
|
52898
52913
|
* - `description`: What screen readers announce when it changes, such as "Two stops away".
|
|
52899
52914
|
* - `heading`: The direction it faces, in degrees clockwise from north. Shows an arrow.
|
|
52900
|
-
* - `label`: What it is, such as "Van 12". Read by screen readers.
|
|
52915
|
+
* - `label`: What it is, such as "Van 12". Read by screen readers. Defaults to "Live position".
|
|
52901
52916
|
* - `lat`: Latitude, in degrees.
|
|
52902
52917
|
* - `lng`: Longitude, in degrees.
|
|
52903
52918
|
* - `isMapPosition`: Marks this as a position for the connector, whatever its tag. (property only) (readonly)
|
|
@@ -52984,7 +52999,8 @@ export type CustomElementsSolidJs = {
|
|
|
52984
52999
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
52985
53000
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
52986
53001
|
* - `interval`: How long each frame shows while `playing`, in milliseconds.
|
|
52987
|
-
* - `label`: The layer's name in the frame's list.
|
|
53002
|
+
* - `label`: The layer's name in the frame's list and its tile in the layers menu.
|
|
53003
|
+
* Defaults to "Overlay", so neither is ever a control with no name.
|
|
52988
53004
|
* - `max-zoom`/`maxZoom`: The deepest zoom the provider has tiles for. The map enlarges those tiles
|
|
52989
53005
|
* at deeper zooms, where it would otherwise ask for tiles that do not exist.
|
|
52990
53006
|
* - `opacity`: How opaque the tiles are, from `0` to `1`.
|
|
@@ -53226,8 +53242,9 @@ export type CustomElementsSolidJs = {
|
|
|
53226
53242
|
* the view moves. The frame's keys and buttons only ask, and nothing moves
|
|
53227
53243
|
* until something answers, so the frame says nothing until it is told the
|
|
53228
53244
|
* view moved: an announcement for a move that never happened is worse than
|
|
53229
|
-
* none. A page moving its own map in answer to `helix-map-pan`
|
|
53230
|
-
*
|
|
53245
|
+
* none. A page moving its own map in answer to `helix-map-pan` sets
|
|
53246
|
+
* `zoomLevel`, `bearing` and `pitch` to where the map now is and then calls
|
|
53247
|
+
* this, since those are what is said.
|
|
53231
53248
|
*
|
|
53232
53249
|
* What is said waits for the view to settle, so a held key or a long
|
|
53233
53250
|
* animation is one sentence, and it is the view's state where there is one:
|
|
@@ -53313,7 +53330,8 @@ export type CustomElementsSolidJs = {
|
|
|
53313
53330
|
* - `group`: A name this layer shares with other layers, such as a route and its
|
|
53314
53331
|
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
53315
53332
|
* named by the first of them, and its checkbox shows or hides them all.
|
|
53316
|
-
* - `label`: The route's name, used in the frame's list
|
|
53333
|
+
* - `label`: The route's name, used in the frame's list and its tile in the layers
|
|
53334
|
+
* menu. Defaults to "Route", so neither is ever a control with no name.
|
|
53317
53335
|
* - `points`: The points the line passes through, in order. Write the attribute as
|
|
53318
53336
|
* `lat,lng` pairs separated by spaces, or set the property to an array of `{
|
|
53319
53337
|
* lat, lng }`.
|
package/types/vue.d.ts
CHANGED
|
@@ -5859,7 +5859,8 @@ export type HelixHeadlessMapAreaVueProps = {
|
|
|
5859
5859
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
5860
5860
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
5861
5861
|
group?: (HelixHeadlessMapArea["group"]) | undefined;
|
|
5862
|
-
/** The area's name, used in the frame's list
|
|
5862
|
+
/** The area's name, used in the frame's list and its tile in the layers
|
|
5863
|
+
menu. Defaults to "Area", so neither is ever a control with no name. */
|
|
5863
5864
|
label?: (HelixHeadlessMapArea["label"]) | undefined;
|
|
5864
5865
|
/** The corners of the shape, in order. The last point connects back to the
|
|
5865
5866
|
first. */
|
|
@@ -6026,7 +6027,8 @@ the frame's list. */
|
|
|
6026
6027
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
6027
6028
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
6028
6029
|
group?: (HelixHeadlessMapPoints["group"]) | undefined;
|
|
6029
|
-
/** The layer's name, used in the frame's list
|
|
6030
|
+
/** The layer's name, used in the frame's list, its tile in the layers menu,
|
|
6031
|
+
and the group of places the keyboard walks. Defaults to "Places". */
|
|
6030
6032
|
label?: (HelixHeadlessMapPoints["label"]) | undefined;
|
|
6031
6033
|
/** The GeoJSON property each point is named by. Defaults to `name`. */
|
|
6032
6034
|
"name-key"?: (HelixHeadlessMapPoints["nameKey"]) | undefined;
|
|
@@ -6070,7 +6072,7 @@ wait is announced when the wait ends. */
|
|
|
6070
6072
|
description?: (HelixHeadlessMapPosition["description"]) | undefined;
|
|
6071
6073
|
/** The direction it faces, in degrees clockwise from north. Shows an arrow. */
|
|
6072
6074
|
heading?: (HelixHeadlessMapPosition["heading"]) | undefined;
|
|
6073
|
-
/** What it is, such as "Van 12". Read by screen readers. */
|
|
6075
|
+
/** What it is, such as "Van 12". Read by screen readers. Defaults to "Live position". */
|
|
6074
6076
|
label?: (HelixHeadlessMapPosition["label"]) | undefined;
|
|
6075
6077
|
/** Latitude, in degrees. */
|
|
6076
6078
|
lat?: (HelixHeadlessMapPosition["lat"]) | undefined;
|
|
@@ -6110,7 +6112,8 @@ named by the first of them, and its checkbox shows or hides them all. */
|
|
|
6110
6112
|
group?: (HelixHeadlessMapRaster["group"]) | undefined;
|
|
6111
6113
|
/** How long each frame shows while `playing`, in milliseconds. */
|
|
6112
6114
|
interval?: (HelixHeadlessMapRaster["interval"]) | undefined;
|
|
6113
|
-
/** The layer's name in the frame's list.
|
|
6115
|
+
/** The layer's name in the frame's list and its tile in the layers menu.
|
|
6116
|
+
Defaults to "Overlay", so neither is ever a control with no name. */
|
|
6114
6117
|
label?: (HelixHeadlessMapRaster["label"]) | undefined;
|
|
6115
6118
|
/** The deepest zoom the provider has tiles for. The map enlarges those tiles
|
|
6116
6119
|
at deeper zooms, where it would otherwise ask for tiles that do not exist. */
|
|
@@ -6426,7 +6429,8 @@ in the frame's list. */
|
|
|
6426
6429
|
dotted legs. The layers menu shows layers in the same group as one entry,
|
|
6427
6430
|
named by the first of them, and its checkbox shows or hides them all. */
|
|
6428
6431
|
group?: (HelixHeadlessMapRoute["group"]) | undefined;
|
|
6429
|
-
/** The route's name, used in the frame's list
|
|
6432
|
+
/** The route's name, used in the frame's list and its tile in the layers
|
|
6433
|
+
menu. Defaults to "Route", so neither is ever a control with no name. */
|
|
6430
6434
|
label?: (HelixHeadlessMapRoute["label"]) | undefined;
|
|
6431
6435
|
/** The points the line passes through, in order. Write the attribute as
|
|
6432
6436
|
`lat,lng` pairs separated by spaces, or set the property to an array of `{
|