@fusion.dev/helix-headless 0.147.0 → 0.149.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +11222 -2332
- package/dist/accordion/item/accordion-item.d.ts +5 -2
- package/dist/accordion/item/accordion-item.js +11 -7
- package/dist/accordion/root/accordion-root.js +4 -6
- package/dist/announcement/root/announcement-root.d.ts +61 -5
- package/dist/announcement/root/announcement-root.js +126 -20
- package/dist/area-chart/root/area-chart-root.d.ts +11 -0
- package/dist/area-chart/root/area-chart-root.js +21 -9
- package/dist/avatar/group/avatar-group.d.ts +10 -2
- package/dist/avatar/group/avatar-group.js +10 -5
- package/dist/badge/count.d.ts +19 -0
- package/dist/badge/count.js +20 -0
- package/dist/badge/root/badge-root.d.ts +6 -2
- package/dist/badge/root/badge-root.js +8 -22
- package/dist/bar-chart/root/bar-chart-root.d.ts +13 -1
- package/dist/bar-chart/root/bar-chart-root.js +17 -4
- package/dist/blockquote/root/blockquote-root.d.ts +66 -8
- package/dist/blockquote/root/blockquote-root.js +85 -8
- package/dist/breadcrumbs/breadcrumb/breadcrumb.js +2 -2
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +8 -1
- package/dist/breadcrumbs/root/breadcrumbs-root.js +5 -2
- package/dist/button/root/button-root.d.ts +10 -1
- package/dist/button/root/button-root.js +3 -2
- package/dist/button-group/arrows.d.ts +14 -0
- package/dist/button-group/arrows.js +10 -0
- package/dist/button-group/root/button-group-root.d.ts +144 -3
- package/dist/button-group/root/button-group-root.js +142 -2
- package/dist/callout/root/callout-root.d.ts +16 -2
- package/dist/callout/root/callout-root.js +16 -4
- package/dist/canvas/describe.d.ts +10 -0
- package/dist/canvas/describe.js +9 -0
- package/dist/canvas/edge-pan.d.ts +61 -0
- package/dist/canvas/edge-pan.js +63 -0
- package/dist/canvas/neighbor.d.ts +17 -0
- package/dist/canvas/neighbor.js +1 -0
- package/dist/canvas/node/canvas-node.d.ts +12 -2
- package/dist/canvas/node/canvas-node.js +8 -3
- package/dist/canvas/root/canvas-document.d.ts +10 -0
- package/dist/canvas/root/canvas-document.js +1 -0
- package/dist/canvas/root/canvas-root.d.ts +168 -9
- package/dist/canvas/root/canvas-root.js +239 -69
- package/dist/canvas/snap.d.ts +42 -0
- package/dist/canvas/snap.js +32 -0
- package/dist/carousel/root/carousel-root.d.ts +9 -3
- package/dist/carousel/root/carousel-root.js +17 -10
- package/dist/chat/composer/chat-composer.d.ts +5 -0
- package/dist/chat/composer/chat-composer.js +4 -1
- package/dist/chat/message/chat-message.d.ts +9 -5
- package/dist/chat/message/chat-message.js +8 -4
- package/dist/chat/naming.js +2 -2
- package/dist/chat/root/chat-root.d.ts +40 -4
- package/dist/chat/root/chat-root.js +38 -14
- package/dist/checkbox/root/checkbox-root.d.ts +11 -0
- package/dist/checkbox/root/checkbox-root.js +8 -2
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +24 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +28 -12
- package/dist/checkbox-group/select-all.d.ts +11 -0
- package/dist/checkbox-group/select-all.js +5 -0
- package/dist/code-block/root/code-block-root.d.ts +20 -8
- package/dist/code-block/root/code-block-root.js +16 -5
- package/dist/color-input/root/color-input-root.d.ts +13 -0
- package/dist/color-input/root/color-input-root.js +18 -5
- package/dist/color-picker/root/color-picker-root.d.ts +19 -3
- package/dist/color-picker/root/color-picker-root.js +52 -24
- package/dist/color-picker/wheel.d.ts +11 -0
- package/dist/color-picker/wheel.js +9 -0
- package/dist/combobox/root/combobox-root.d.ts +106 -18
- package/dist/combobox/root/combobox-root.js +101 -26
- package/dist/command/root/command-root.d.ts +19 -9
- package/dist/command/root/command-root.js +9 -4
- package/dist/copy-button/root/copy-button-root.d.ts +5 -0
- package/dist/copy-button/root/copy-button-root.js +7 -2
- package/dist/data-table/root/data-table-root.d.ts +171 -29
- package/dist/data-table/root/data-table-root.js +284 -161
- package/dist/date-input/root/date-input-root.d.ts +32 -9
- package/dist/date-input/root/date-input-root.js +66 -44
- package/dist/date-picker/root/date-picker-root.d.ts +38 -15
- package/dist/date-picker/root/date-picker-root.js +52 -33
- package/dist/description-list/item/description-list-item.d.ts +4 -0
- package/dist/description-list/item/description-list-item.js +7 -1
- package/dist/dialog/root/dialog-root.d.ts +12 -1
- package/dist/dialog/root/dialog-root.js +11 -4
- package/dist/divider/root/divider-root.d.ts +45 -16
- package/dist/divider/root/divider-root.js +28 -4
- package/dist/donut-chart/root/donut-chart-root.d.ts +5 -0
- package/dist/donut-chart/root/donut-chart-root.js +8 -5
- package/dist/drawer/root/drawer-root.d.ts +12 -1
- package/dist/drawer/root/drawer-root.js +9 -2
- package/dist/drilldown/item/drilldown-item.js +3 -4
- package/dist/drilldown/root/drilldown-root.d.ts +5 -0
- package/dist/drilldown/root/drilldown-root.js +4 -1
- package/dist/element-events.generated.js +26 -3
- package/dist/empty/root/empty-root.d.ts +17 -3
- package/dist/empty/root/empty-root.js +29 -5
- package/dist/file-input/root/file-input-root.d.ts +18 -3
- package/dist/file-input/root/file-input-root.js +34 -18
- package/dist/file-input/status.js +2 -1
- package/dist/filter-input/chip/filter-chip.d.ts +13 -0
- package/dist/filter-input/chip/filter-chip.js +7 -3
- package/dist/filter-input/menu/filter-menu.d.ts +5 -0
- package/dist/filter-input/menu/filter-menu.js +3 -1
- package/dist/filter-input/root/filter-input-root.d.ts +20 -3
- package/dist/filter-input/root/filter-input-root.js +8 -4
- package/dist/format-date/fields.d.ts +20 -0
- package/dist/format-date/fields.js +14 -0
- package/dist/format-date/options.d.ts +2 -1
- package/dist/format-date/options.js +9 -38
- package/dist/format-date/root/format-date-root.d.ts +55 -5
- package/dist/format-date/root/format-date-root.js +29 -34
- package/dist/graph/root/graph-model.d.ts +11 -0
- package/dist/graph/root/graph-model.js +4 -0
- package/dist/graph/root/graph-root.d.ts +101 -14
- package/dist/graph/root/graph-root.js +140 -46
- package/dist/heatmap/root/heatmap-root.d.ts +37 -4
- package/dist/heatmap/root/heatmap-root.js +51 -16
- package/dist/icon-button/root/icon-button-root.d.ts +5 -0
- package/dist/icon-button/root/icon-button-root.js +1 -0
- package/dist/image/root/image-root.d.ts +11 -0
- package/dist/input/root/input-root.d.ts +5 -0
- package/dist/input/root/input-root.js +4 -1
- package/dist/kbd/root/kbd-root.js +1 -2
- package/dist/legend/root/legend-root.js +4 -17
- package/dist/lightbox/root/lightbox-root.d.ts +14 -4
- package/dist/lightbox/root/lightbox-root.js +25 -7
- package/dist/line-chart/root/line-chart-root.d.ts +5 -0
- package/dist/line-chart/root/line-chart-root.js +4 -2
- package/dist/list/item/list-item.d.ts +32 -0
- package/dist/list/item/list-item.js +34 -7
- package/dist/list/root/list-root.d.ts +87 -0
- package/dist/list/root/list-root.js +119 -23
- package/dist/listbox/reorder/index.d.ts +1 -0
- package/dist/listbox/reorder/index.js +4 -0
- package/dist/listbox/reorder/listbox-reorder.d.ts +83 -0
- package/dist/listbox/reorder/listbox-reorder.js +151 -0
- package/dist/listbox/root/listbox-root.d.ts +185 -33
- package/dist/listbox/root/listbox-root.js +166 -136
- package/dist/loader/root/loader-root.d.ts +5 -0
- package/dist/loader/root/loader-root.js +3 -1
- package/dist/map/area/map-area.d.ts +5 -0
- package/dist/map/area/map-area.js +3 -1
- package/dist/map/buildings/map-buildings.d.ts +5 -0
- package/dist/map/buildings/map-buildings.js +3 -1
- package/dist/map/contours/map-contours.d.ts +5 -0
- package/dist/map/contours/map-contours.js +3 -1
- package/dist/map/landcover/map-landcover.d.ts +5 -0
- package/dist/map/landcover/map-landcover.js +3 -1
- package/dist/map/marker/map-marker.d.ts +18 -2
- package/dist/map/marker/map-marker.js +13 -5
- package/dist/map/points/map-points.d.ts +5 -0
- package/dist/map/points/map-points.js +6 -4
- package/dist/map/position/map-position.d.ts +5 -0
- package/dist/map/position/map-position.js +3 -1
- package/dist/map/raster/map-raster.d.ts +5 -0
- package/dist/map/raster/map-raster.js +3 -1
- package/dist/map/root/map-root.d.ts +73 -16
- package/dist/map/root/map-root.js +122 -44
- package/dist/map/route/map-route.d.ts +5 -0
- package/dist/map/route/map-route.js +3 -1
- package/dist/map/terrain/map-terrain.d.ts +5 -0
- package/dist/map/terrain/map-terrain.js +3 -1
- package/dist/megamenu/root/megamenu-root.js +4 -11
- package/dist/menu/root/menu-root.d.ts +7 -2
- package/dist/menu/root/menu-root.js +3 -1
- package/dist/meter/root/meter-root.d.ts +16 -3
- package/dist/meter/root/meter-root.js +12 -5
- package/dist/navigation/root/navigation-root.d.ts +5 -0
- package/dist/navigation/root/navigation-root.js +7 -8
- package/dist/notifications/group/notification-group.d.ts +8 -1
- package/dist/notifications/group/notification-group.js +12 -6
- package/dist/notifications/notification/notification.d.ts +17 -1
- package/dist/notifications/notification/notification.js +6 -2
- package/dist/notifications/root/notifications-root.d.ts +49 -5
- package/dist/notifications/root/notifications-root.js +36 -8
- package/dist/number-input/root/number-input-root.d.ts +21 -8
- package/dist/number-input/root/number-input-root.js +26 -11
- package/dist/object-inspector/root/object-inspector-root.d.ts +56 -13
- package/dist/object-inspector/root/object-inspector-root.js +41 -30
- package/dist/outline/root/outline-root.d.ts +5 -0
- package/dist/outline/root/outline-root.js +3 -1
- package/dist/pagination/root/pagination-root.d.ts +7 -1
- package/dist/pagination/root/pagination-root.js +16 -7
- package/dist/pagination/size/pagination-size.d.ts +8 -3
- package/dist/pagination/size/pagination-size.js +5 -3
- package/dist/pagination/summary/pagination-summary.d.ts +8 -6
- package/dist/pagination/summary/pagination-summary.js +4 -9
- package/dist/pin-input/code.d.ts +23 -0
- package/dist/pin-input/code.js +21 -0
- package/dist/pin-input/root/pin-input-root.d.ts +9 -3
- package/dist/pin-input/root/pin-input-root.js +13 -23
- package/dist/popover/root/popover-root.d.ts +12 -2
- package/dist/popover/root/popover-root.js +10 -4
- package/dist/progress/root/progress-root.d.ts +7 -2
- package/dist/progress/root/progress-root.js +5 -2
- package/dist/qr-code/name.d.ts +3 -2
- package/dist/qr-code/name.js +2 -2
- package/dist/qr-code/root/qr-code-root.d.ts +26 -5
- package/dist/qr-code/root/qr-code-root.js +27 -6
- package/dist/radio/group/radio-group.d.ts +11 -0
- package/dist/radio/group/radio-group.js +8 -2
- package/dist/rating/root/rating-root.d.ts +12 -1
- package/dist/rating/root/rating-root.js +10 -3
- package/dist/scatter-chart/measures.d.ts +22 -0
- package/dist/scatter-chart/measures.js +11 -0
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +22 -8
- package/dist/scatter-chart/root/scatter-chart-root.js +25 -23
- package/dist/select/root/select-root.d.ts +67 -8
- package/dist/select/root/select-root.js +45 -11
- package/dist/skip-link/root/skip-link-root.d.ts +5 -0
- package/dist/skip-link/root/skip-link-root.js +3 -1
- package/dist/slider/root/slider-root.d.ts +7 -2
- package/dist/slider/root/slider-root.js +11 -5
- package/dist/sparkline/readings.d.ts +15 -5
- package/dist/sparkline/readings.js +3 -3
- package/dist/sparkline/root/sparkline-root.d.ts +9 -4
- package/dist/sparkline/root/sparkline-root.js +9 -3
- package/dist/speed-dial/group/speed-dial-group.d.ts +48 -0
- package/dist/speed-dial/group/speed-dial-group.js +43 -0
- package/dist/speed-dial/index.d.ts +1 -0
- package/dist/speed-dial/index.js +1 -0
- package/dist/speed-dial/item/speed-dial-item.d.ts +26 -1
- package/dist/speed-dial/item/speed-dial-item.js +41 -3
- package/dist/speed-dial/long-press.d.ts +50 -0
- package/dist/speed-dial/long-press.js +48 -0
- package/dist/speed-dial/root/speed-dial-root.d.ts +85 -1
- package/dist/speed-dial/root/speed-dial-root.js +117 -5
- package/dist/splitter/root/splitter-root.d.ts +12 -3
- package/dist/splitter/root/splitter-root.js +22 -4
- package/dist/steps/root/steps-root.d.ts +9 -2
- package/dist/steps/root/steps-root.js +6 -3
- package/dist/steps/step/step.d.ts +12 -0
- package/dist/steps/step/step.js +11 -2
- package/dist/switch/root/switch-root.d.ts +11 -0
- package/dist/switch/root/switch-root.js +8 -2
- package/dist/table/cell/table-cell.d.ts +8 -1
- package/dist/table/cell/table-cell.js +6 -2
- package/dist/table/column/table-column.d.ts +11 -4
- package/dist/table/column/table-column.js +15 -10
- package/dist/table/grid-controller.d.ts +122 -0
- package/dist/table/grid-controller.js +299 -0
- package/dist/table/root/table-root.d.ts +154 -8
- package/dist/table/root/table-root.js +197 -38
- package/dist/table/row/table-row.d.ts +55 -1
- package/dist/table/row/table-row.js +60 -7
- package/dist/tabs/root/tabs-root.d.ts +5 -0
- package/dist/tabs/root/tabs-root.js +3 -1
- package/dist/tag/group/tag-group.d.ts +5 -0
- package/dist/tag/group/tag-group.js +8 -15
- package/dist/tag/root/tag-root.d.ts +14 -1
- package/dist/tag/root/tag-root.js +11 -8
- package/dist/textarea/root/textarea-root.d.ts +5 -0
- package/dist/textarea/root/textarea-root.js +3 -1
- package/dist/time-input/root/time-input-root.d.ts +14 -7
- package/dist/time-input/root/time-input-root.js +43 -32
- package/dist/time-picker/root/time-picker-root.d.ts +16 -7
- package/dist/time-picker/root/time-picker-root.js +28 -12
- package/dist/toast/item/toast-item.d.ts +13 -3
- package/dist/toast/item/toast-item.js +2 -0
- package/dist/toast/root/toast-root.d.ts +22 -2
- package/dist/toast/root/toast-root.js +24 -17
- package/dist/toggle/group/toggle-group.js +3 -5
- package/dist/toolbar/root/toolbar-root.d.ts +36 -0
- package/dist/toolbar/root/toolbar-root.js +43 -9
- package/dist/tooltip/root/tooltip-root.d.ts +27 -17
- package/dist/tooltip/root/tooltip-root.js +1 -2
- package/dist/tour/root/tour-root.d.ts +8 -2
- package/dist/tour/root/tour-root.js +4 -2
- package/dist/tour/stop/tour-stop.d.ts +5 -0
- package/dist/tour/stop/tour-stop.js +6 -1
- package/dist/tree/grip.d.ts +5 -0
- package/dist/tree/grip.js +1 -0
- package/dist/tree/item/tree-item.d.ts +24 -0
- package/dist/tree/item/tree-item.js +27 -5
- package/dist/tree/root/tree-root.d.ts +66 -1
- package/dist/tree/root/tree-root.js +77 -5
- package/dist/trend/root/trend-root.d.ts +20 -4
- package/dist/trend/root/trend-root.js +20 -5
- package/dist/video/root/video-root.d.ts +23 -3
- package/dist/video/root/video-root.js +56 -15
- package/dist/video-playlist/menu/video-playlist-menu.d.ts +5 -0
- package/dist/video-playlist/menu/video-playlist-menu.js +3 -1
- package/dist/video-playlist/root/video-playlist-root.d.ts +5 -0
- package/dist/video-playlist/root/video-playlist-root.js +3 -1
- package/dist/virtual-list/root/virtual-list-root.d.ts +19 -3
- package/dist/virtual-list/root/virtual-list-root.js +10 -19
- package/lint.json +1 -1
- package/package.json +7 -6
- package/types/jsx.d.ts +6005 -2114
- package/types/svelte.d.ts +1 -0
- package/types/vue.d.ts +1594 -676
- package/types/words.d.ts +3280 -0
- package/dist/kbd/keys.d.ts +0 -29
- package/dist/kbd/keys.js +0 -52
- package/dist/toast/hotkey.d.ts +0 -22
- package/dist/toast/hotkey.js +0 -23
- package/dist/tooltip/focus-target.d.ts +0 -6
- package/dist/tooltip/focus-target.js +0 -9
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement,
|
|
7
|
+
import { customElement, focusItemOf, formatWords, HelixActivateEvent, HelixBeforeChangeEvent, HelixBeforeToggleEvent, HelixElement, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixToggleEvent, hostAria, KeyboardNavigationController, MixinViewport, requestChange, words, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { buildings, cloudRain, dotsNine, leaf, mountains, path, polygon, stack, target, } from '@fusion.dev/helix-icons';
|
|
9
9
|
import { html, nothing } from 'lit';
|
|
10
10
|
import { property, state } from 'lit/decorators.js';
|
|
@@ -42,9 +42,12 @@ const SETTLES = 400;
|
|
|
42
42
|
let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement) {
|
|
43
43
|
constructor() {
|
|
44
44
|
super(...arguments);
|
|
45
|
+
this.activateHintLabel = 'Press the map to use it';
|
|
45
46
|
this.bearing = 0;
|
|
46
47
|
this.cluster = false;
|
|
48
|
+
this.controlsLabel = 'Map controls';
|
|
47
49
|
this.faceNorthLabel = 'Face north';
|
|
50
|
+
this.fallbackLabel = 'Map';
|
|
48
51
|
this.flatLabel = 'Looking straight down';
|
|
49
52
|
this.hybridLabel = 'Hybrid';
|
|
50
53
|
this.label = '';
|
|
@@ -61,9 +64,12 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
61
64
|
this.rotateRightLabel = 'Rotate right';
|
|
62
65
|
this.satelliteLabel = 'Satellite';
|
|
63
66
|
this.standardLabel = 'Standard';
|
|
64
|
-
this.tiltedLabel = 'Tilted {degrees}
|
|
67
|
+
this.tiltedLabel = '{degrees, plural, one {Tilted # degree} other {Tilted # degrees}}';
|
|
65
68
|
this.tiltLabel = 'Show in 3D';
|
|
66
|
-
this.turnedLabel = 'Facing {degrees}
|
|
69
|
+
this.turnedLabel = '{degrees, plural, one {Facing # degree} other {Facing # degrees}}';
|
|
70
|
+
this.twoFingerHintLabel = 'Use two fingers to move the map';
|
|
71
|
+
this.usingLabel = 'Using the map. Press Escape to scroll the page again.';
|
|
72
|
+
this.wheelHintLabel = 'Use {key} and scroll to zoom the map';
|
|
67
73
|
this.zoomedLabel = 'Zoom level {level}';
|
|
68
74
|
this.said = '';
|
|
69
75
|
this.asked = undefined;
|
|
@@ -89,15 +95,13 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
89
95
|
};
|
|
90
96
|
this.stop = 0;
|
|
91
97
|
this.keys = new KeyboardNavigationController(this, {
|
|
92
|
-
items: () => this.markers.map((marker, at) => ({
|
|
93
|
-
contains: (node) => node !== null && (marker.contains(node) || marker.shadowRoot?.contains(node) === true),
|
|
98
|
+
items: () => this.markers.map((marker, at) => focusItemOf(marker, {
|
|
94
99
|
disabled: marker.gatheredBy !== undefined || !placed(marker),
|
|
95
|
-
|
|
100
|
+
focus: () => {
|
|
96
101
|
this.stop = at;
|
|
97
102
|
marker.focus();
|
|
98
103
|
},
|
|
99
|
-
|
|
100
|
-
selected: false,
|
|
104
|
+
owns: (node) => node !== null && (marker.contains(node) || marker.shadowRoot?.contains(node) === true),
|
|
101
105
|
})),
|
|
102
106
|
origin: 'focus',
|
|
103
107
|
selects: () => false,
|
|
@@ -105,10 +109,26 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
105
109
|
this.handleFocusIn = (event) => {
|
|
106
110
|
const marker = this.markerOf(event);
|
|
107
111
|
const at = marker ? this.markers.indexOf(marker) : -1;
|
|
112
|
+
this.focused = at === -1 ? undefined : marker;
|
|
108
113
|
if (at !== -1) {
|
|
109
114
|
this.stop = at;
|
|
110
115
|
}
|
|
111
116
|
};
|
|
117
|
+
this.handleFocusOut = (event) => {
|
|
118
|
+
const marker = this.markerOf(event);
|
|
119
|
+
if (!marker || marker !== this.focused) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (event.relatedTarget) {
|
|
123
|
+
this.focused = undefined;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
queueMicrotask(() => {
|
|
127
|
+
if (marker.isConnected && this.focused === marker) {
|
|
128
|
+
this.focused = undefined;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
};
|
|
112
132
|
this.handleClick = (event) => {
|
|
113
133
|
const marker = this.markerOf(event);
|
|
114
134
|
if (marker) {
|
|
@@ -136,6 +156,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
136
156
|
this.requestUpdate();
|
|
137
157
|
};
|
|
138
158
|
}
|
|
159
|
+
static { this.words = 'helix-map'; }
|
|
139
160
|
moved() {
|
|
140
161
|
if (!this.asked || performance.now() - this.asked.at > ASK_LAPSES) {
|
|
141
162
|
return;
|
|
@@ -162,8 +183,6 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
162
183
|
if (!asked) {
|
|
163
184
|
return;
|
|
164
185
|
}
|
|
165
|
-
const numbers = formatNumbers(this.closest('[lang]')?.getAttribute('lang') ?? '');
|
|
166
|
-
const degrees = (value) => numbers(Math.round(value));
|
|
167
186
|
const bearing = ((Math.round(this.bearing) % 360) + 360) % 360;
|
|
168
187
|
const words = {
|
|
169
188
|
down: this.movedDownLabel,
|
|
@@ -176,14 +195,14 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
176
195
|
: asked.kind === 'zoom'
|
|
177
196
|
? this.zoomLevel === undefined
|
|
178
197
|
? ''
|
|
179
|
-
:
|
|
198
|
+
: formatWords(this, 'zoomedLabel', { level: this.zoomLevel })
|
|
180
199
|
: asked.kind === 'tilt'
|
|
181
200
|
? Math.round(this.pitch) === 0
|
|
182
201
|
? this.flatLabel
|
|
183
|
-
:
|
|
202
|
+
: formatWords(this, 'tiltedLabel', { degrees: Math.round(this.pitch) })
|
|
184
203
|
: bearing === 0
|
|
185
204
|
? this.northLabel
|
|
186
|
-
:
|
|
205
|
+
: formatWords(this, 'turnedLabel', { degrees: bearing });
|
|
187
206
|
this.said = next !== '' && next === this.said ? `${next}\u00a0` : next;
|
|
188
207
|
}
|
|
189
208
|
ask(kind, side) {
|
|
@@ -267,6 +286,23 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
267
286
|
.composedPath()
|
|
268
287
|
.find((one) => one.isMapMarker === true);
|
|
269
288
|
}
|
|
289
|
+
refocus(stop) {
|
|
290
|
+
const gone = this.focused;
|
|
291
|
+
if (!gone || this.markers.includes(gone)) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
this.focused = undefined;
|
|
295
|
+
const active = document.activeElement;
|
|
296
|
+
if (active !== null && active !== document.body) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
if (stop) {
|
|
300
|
+
stop.focus();
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
this.partNamed('region')?.focus();
|
|
304
|
+
}
|
|
305
|
+
}
|
|
270
306
|
activate(marker) {
|
|
271
307
|
if (marker.gathered.length > 1) {
|
|
272
308
|
marker.dispatchEvent(new HelixMapClusterEvent({ labels: [...marker.gathered] }));
|
|
@@ -274,14 +310,6 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
274
310
|
}
|
|
275
311
|
this.dispatchEvent(new HelixActivateEvent({ value: marker.name || marker.label || '' }));
|
|
276
312
|
}
|
|
277
|
-
get restingGestureLabels() {
|
|
278
|
-
return {
|
|
279
|
-
activate: 'Press the map to use it',
|
|
280
|
-
twoFinger: 'Use two fingers to move the map',
|
|
281
|
-
using: 'Using the map. Press Escape to scroll the page again.',
|
|
282
|
-
wheel: 'Use {key} and scroll to zoom the map',
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
313
|
gesturesChanged() {
|
|
286
314
|
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'gestures' }));
|
|
287
315
|
}
|
|
@@ -290,6 +318,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
290
318
|
this.addEventListener(HelixMapPartChangeEvent.eventName, this.handlePartChange);
|
|
291
319
|
this.addEventListener('click', this.handleClick);
|
|
292
320
|
this.addEventListener('focusin', this.handleFocusIn);
|
|
321
|
+
this.addEventListener('focusout', this.handleFocusOut);
|
|
293
322
|
this.addEventListener('keydown', this.handleMarkerKeydown);
|
|
294
323
|
this.addEventListener('keyup', this.handleMarkerKeyup);
|
|
295
324
|
this.hiding = new MutationObserver(() => this.requestUpdate());
|
|
@@ -304,6 +333,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
304
333
|
this.removeEventListener(HelixMapPartChangeEvent.eventName, this.handlePartChange);
|
|
305
334
|
this.removeEventListener('click', this.handleClick);
|
|
306
335
|
this.removeEventListener('focusin', this.handleFocusIn);
|
|
336
|
+
this.removeEventListener('focusout', this.handleFocusOut);
|
|
307
337
|
this.removeEventListener('keydown', this.handleMarkerKeydown);
|
|
308
338
|
this.removeEventListener('keyup', this.handleMarkerKeyup);
|
|
309
339
|
}
|
|
@@ -331,6 +361,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
331
361
|
for (const marker of markers) {
|
|
332
362
|
marker.current = marker === stop;
|
|
333
363
|
}
|
|
364
|
+
this.refocus(stop);
|
|
334
365
|
if (changed.has('cluster')) {
|
|
335
366
|
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'place' }));
|
|
336
367
|
}
|
|
@@ -371,9 +402,11 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
371
402
|
}}
|
|
372
403
|
@keydown=${this.handleMenuKeydown}
|
|
373
404
|
>
|
|
374
|
-
<
|
|
375
|
-
|
|
376
|
-
|
|
405
|
+
<slot name="layers-icon">
|
|
406
|
+
<svg aria-hidden="true" fill="currentColor" height="16" viewBox=${stack.viewBox} width="16">
|
|
407
|
+
${unsafeSVG(stack.content)}
|
|
408
|
+
</svg>
|
|
409
|
+
</slot>
|
|
377
410
|
</button>
|
|
378
411
|
<div
|
|
379
412
|
part="layers-menu"
|
|
@@ -428,41 +461,44 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
428
461
|
</div>`;
|
|
429
462
|
}
|
|
430
463
|
renderCompass(pan, rotate) {
|
|
464
|
+
const { faceNorthLabel } = this;
|
|
431
465
|
return html `<div part="compass">
|
|
432
466
|
${rotate
|
|
433
467
|
? html `<button part="rotate-left" aria-label=${this.rotateLeftLabel} type="button" @click=${() => this.rotate(-ROTATE_STEP)}>
|
|
434
|
-
|
|
468
|
+
<slot name="rotate-left-icon">↺</slot>
|
|
435
469
|
</button>`
|
|
436
470
|
: nothing}
|
|
437
471
|
${pan
|
|
438
472
|
? html `<button part="pan-up" aria-label=${this.panLabel('up')} type="button" @click=${() => this.pan('up')}>
|
|
439
|
-
|
|
473
|
+
<slot name="pan-up-icon">${this.panGlyph('up')}</slot>
|
|
440
474
|
</button>`
|
|
441
475
|
: nothing}
|
|
442
476
|
${rotate
|
|
443
477
|
? html `<button part="rotate-right" aria-label=${this.rotateRightLabel} type="button" @click=${() => this.rotate(ROTATE_STEP)}>
|
|
444
|
-
|
|
478
|
+
<slot name="rotate-right-icon">↻</slot>
|
|
445
479
|
</button>`
|
|
446
480
|
: nothing}
|
|
447
481
|
${pan
|
|
448
482
|
? html `<button part="pan-start" aria-label=${this.panLabel('start')} type="button" @click=${() => this.pan('start')}>
|
|
449
|
-
|
|
483
|
+
<slot name="pan-start-icon">${this.panGlyph('start')}</slot>
|
|
450
484
|
</button>`
|
|
451
485
|
: nothing}
|
|
452
|
-
<button part="face-north" aria-label=${
|
|
453
|
-
<
|
|
454
|
-
<
|
|
455
|
-
|
|
456
|
-
|
|
486
|
+
<button part="face-north" aria-label=${faceNorthLabel} type="button" style=${`--map-needle-turn: ${-this.bearing}deg`} @click=${() => this.faceNorth()}>
|
|
487
|
+
<slot name="face-north-icon">
|
|
488
|
+
<svg part="needle" aria-hidden="true" viewBox="0 0 16 16">
|
|
489
|
+
<path data-end="north" d="M8 1.5 10.5 8h-5Z" />
|
|
490
|
+
<path data-end="south" d="M8 14.5 5.5 8h5Z" />
|
|
491
|
+
</svg>
|
|
492
|
+
</slot>
|
|
457
493
|
</button>
|
|
458
494
|
${pan
|
|
459
495
|
? html `<button part="pan-end" aria-label=${this.panLabel('end')} type="button" @click=${() => this.pan('end')}>
|
|
460
|
-
|
|
496
|
+
<slot name="pan-end-icon">${this.panGlyph('end')}</slot>
|
|
461
497
|
</button>`
|
|
462
498
|
: nothing}
|
|
463
499
|
${pan
|
|
464
500
|
? html `<button part="pan-down" aria-label=${this.panLabel('down')} type="button" @click=${() => this.pan('down')}>
|
|
465
|
-
|
|
501
|
+
<slot name="pan-down-icon">${this.panGlyph('down')}</slot>
|
|
466
502
|
</button>`
|
|
467
503
|
: nothing}
|
|
468
504
|
</div>`;
|
|
@@ -477,7 +513,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
477
513
|
if (!pan && !zoom && !rotate && !tilt && !fullscreen && menu === nothing) {
|
|
478
514
|
return nothing;
|
|
479
515
|
}
|
|
480
|
-
return html `<div part="controls" role="group" aria-label=${this.controlsLabel
|
|
516
|
+
return html `<div part="controls" role="group" aria-label=${this.controlsLabel}>
|
|
481
517
|
${fullscreen
|
|
482
518
|
? html `<button
|
|
483
519
|
part="fullscreen"
|
|
@@ -486,7 +522,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
486
522
|
type="button"
|
|
487
523
|
@click=${this.toggleFullscreen}
|
|
488
524
|
>
|
|
489
|
-
|
|
525
|
+
<slot name="fullscreen-icon">⤢</slot>
|
|
490
526
|
</button>`
|
|
491
527
|
: nothing}
|
|
492
528
|
${menu}
|
|
@@ -498,15 +534,15 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
498
534
|
type="button"
|
|
499
535
|
@click=${() => this.tiltTo(this.pitch > 0 ? 0 : TILTED)}
|
|
500
536
|
>
|
|
501
|
-
3D
|
|
537
|
+
<slot name="tilt-icon">3D</slot>
|
|
502
538
|
</button>`
|
|
503
539
|
: nothing}
|
|
504
540
|
${zoom
|
|
505
541
|
? html `<button part="zoom-in" aria-label=${this.zoomInLabel} type="button" @click=${() => this.zoom(1)}>
|
|
506
|
-
|
|
542
|
+
<slot name="zoom-in-icon">+</slot>
|
|
507
543
|
</button>
|
|
508
544
|
<button part="zoom-out" aria-label=${this.zoomOutLabel} type="button" @click=${() => this.zoom(-1)}>
|
|
509
|
-
|
|
545
|
+
<slot name="zoom-out-icon">−</slot>
|
|
510
546
|
</button>`
|
|
511
547
|
: nothing}
|
|
512
548
|
${this.drawsCompass ? this.renderCompass(pan, rotate) : nothing}
|
|
@@ -550,14 +586,14 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
550
586
|
this.ask('zoom');
|
|
551
587
|
return new HelixMapZoomEvent(detail);
|
|
552
588
|
}
|
|
553
|
-
get restingControlsLabel() {
|
|
554
|
-
return 'Map controls';
|
|
555
|
-
}
|
|
556
589
|
willUpdate(changed) {
|
|
557
590
|
super.willUpdate(changed);
|
|
558
591
|
hostAria(this.internals, { label: this.label });
|
|
559
592
|
this.toggleState('fullscreen', this.filled);
|
|
560
593
|
this.toggleState('idle', this.resting);
|
|
594
|
+
this.toggleState('layers-open', this.layersOpen);
|
|
595
|
+
this.toggleState('rotated', Math.round(this.bearing) % 360 !== 0);
|
|
596
|
+
this.toggleState('tilted', Math.round(this.pitch) !== 0);
|
|
561
597
|
}
|
|
562
598
|
renderLayers() {
|
|
563
599
|
const layers = this.layers.filter((layer) => this.shown(layer));
|
|
@@ -572,7 +608,7 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
572
608
|
return html `<div
|
|
573
609
|
part="region"
|
|
574
610
|
role="group"
|
|
575
|
-
aria-label=${this.label || this.getAttribute('aria-label') ||
|
|
611
|
+
aria-label=${this.label || this.getAttribute('aria-label') || this.fallbackLabel}
|
|
576
612
|
aria-keyshortcuts=${this.keyShortcuts}
|
|
577
613
|
tabindex="0"
|
|
578
614
|
@focusin=${this.idle.stir}
|
|
@@ -599,6 +635,10 @@ let HelixHeadlessMap = class HelixHeadlessMap extends MixinViewport(HelixElement
|
|
|
599
635
|
</div>`;
|
|
600
636
|
}
|
|
601
637
|
};
|
|
638
|
+
__decorate([
|
|
639
|
+
words,
|
|
640
|
+
property({ attribute: 'activate-hint-label' })
|
|
641
|
+
], HelixHeadlessMap.prototype, "activateHintLabel", void 0);
|
|
602
642
|
__decorate([
|
|
603
643
|
property({ type: Number })
|
|
604
644
|
], HelixHeadlessMap.prototype, "bearing", void 0);
|
|
@@ -606,18 +646,30 @@ __decorate([
|
|
|
606
646
|
property({ type: Boolean })
|
|
607
647
|
], HelixHeadlessMap.prototype, "cluster", void 0);
|
|
608
648
|
__decorate([
|
|
649
|
+
words,
|
|
650
|
+
property({ attribute: 'controls-label' })
|
|
651
|
+
], HelixHeadlessMap.prototype, "controlsLabel", void 0);
|
|
652
|
+
__decorate([
|
|
653
|
+
words,
|
|
609
654
|
property({ attribute: 'face-north-label' })
|
|
610
655
|
], HelixHeadlessMap.prototype, "faceNorthLabel", void 0);
|
|
611
656
|
__decorate([
|
|
657
|
+
words,
|
|
658
|
+
property({ attribute: 'fallback-label' })
|
|
659
|
+
], HelixHeadlessMap.prototype, "fallbackLabel", void 0);
|
|
660
|
+
__decorate([
|
|
661
|
+
words,
|
|
612
662
|
property({ attribute: 'flat-label' })
|
|
613
663
|
], HelixHeadlessMap.prototype, "flatLabel", void 0);
|
|
614
664
|
__decorate([
|
|
665
|
+
words,
|
|
615
666
|
property({ attribute: 'hybrid-label' })
|
|
616
667
|
], HelixHeadlessMap.prototype, "hybridLabel", void 0);
|
|
617
668
|
__decorate([
|
|
618
669
|
property()
|
|
619
670
|
], HelixHeadlessMap.prototype, "label", void 0);
|
|
620
671
|
__decorate([
|
|
672
|
+
words,
|
|
621
673
|
property({ attribute: 'layers-label' })
|
|
622
674
|
], HelixHeadlessMap.prototype, "layersLabel", void 0);
|
|
623
675
|
__decorate([
|
|
@@ -627,48 +679,74 @@ __decorate([
|
|
|
627
679
|
property({ attribute: 'map-type', reflect: true })
|
|
628
680
|
], HelixHeadlessMap.prototype, "mapType", void 0);
|
|
629
681
|
__decorate([
|
|
682
|
+
words,
|
|
630
683
|
property({ attribute: 'map-type-label' })
|
|
631
684
|
], HelixHeadlessMap.prototype, "mapTypeLabel", void 0);
|
|
632
685
|
__decorate([
|
|
686
|
+
words,
|
|
633
687
|
property({ attribute: 'moved-down-label' })
|
|
634
688
|
], HelixHeadlessMap.prototype, "movedDownLabel", void 0);
|
|
635
689
|
__decorate([
|
|
690
|
+
words,
|
|
636
691
|
property({ attribute: 'moved-left-label' })
|
|
637
692
|
], HelixHeadlessMap.prototype, "movedLeftLabel", void 0);
|
|
638
693
|
__decorate([
|
|
694
|
+
words,
|
|
639
695
|
property({ attribute: 'moved-right-label' })
|
|
640
696
|
], HelixHeadlessMap.prototype, "movedRightLabel", void 0);
|
|
641
697
|
__decorate([
|
|
698
|
+
words,
|
|
642
699
|
property({ attribute: 'moved-up-label' })
|
|
643
700
|
], HelixHeadlessMap.prototype, "movedUpLabel", void 0);
|
|
644
701
|
__decorate([
|
|
702
|
+
words,
|
|
645
703
|
property({ attribute: 'north-label' })
|
|
646
704
|
], HelixHeadlessMap.prototype, "northLabel", void 0);
|
|
647
705
|
__decorate([
|
|
648
706
|
property({ type: Number })
|
|
649
707
|
], HelixHeadlessMap.prototype, "pitch", void 0);
|
|
650
708
|
__decorate([
|
|
709
|
+
words,
|
|
651
710
|
property({ attribute: 'rotate-left-label' })
|
|
652
711
|
], HelixHeadlessMap.prototype, "rotateLeftLabel", void 0);
|
|
653
712
|
__decorate([
|
|
713
|
+
words,
|
|
654
714
|
property({ attribute: 'rotate-right-label' })
|
|
655
715
|
], HelixHeadlessMap.prototype, "rotateRightLabel", void 0);
|
|
656
716
|
__decorate([
|
|
717
|
+
words,
|
|
657
718
|
property({ attribute: 'satellite-label' })
|
|
658
719
|
], HelixHeadlessMap.prototype, "satelliteLabel", void 0);
|
|
659
720
|
__decorate([
|
|
721
|
+
words,
|
|
660
722
|
property({ attribute: 'standard-label' })
|
|
661
723
|
], HelixHeadlessMap.prototype, "standardLabel", void 0);
|
|
662
724
|
__decorate([
|
|
725
|
+
words,
|
|
663
726
|
property({ attribute: 'tilted-label' })
|
|
664
727
|
], HelixHeadlessMap.prototype, "tiltedLabel", void 0);
|
|
665
728
|
__decorate([
|
|
729
|
+
words,
|
|
666
730
|
property({ attribute: 'tilt-label' })
|
|
667
731
|
], HelixHeadlessMap.prototype, "tiltLabel", void 0);
|
|
668
732
|
__decorate([
|
|
733
|
+
words,
|
|
669
734
|
property({ attribute: 'turned-label' })
|
|
670
735
|
], HelixHeadlessMap.prototype, "turnedLabel", void 0);
|
|
671
736
|
__decorate([
|
|
737
|
+
words,
|
|
738
|
+
property({ attribute: 'two-finger-hint-label' })
|
|
739
|
+
], HelixHeadlessMap.prototype, "twoFingerHintLabel", void 0);
|
|
740
|
+
__decorate([
|
|
741
|
+
words,
|
|
742
|
+
property({ attribute: 'using-label' })
|
|
743
|
+
], HelixHeadlessMap.prototype, "usingLabel", void 0);
|
|
744
|
+
__decorate([
|
|
745
|
+
words,
|
|
746
|
+
property({ attribute: 'wheel-hint-label' })
|
|
747
|
+
], HelixHeadlessMap.prototype, "wheelHintLabel", void 0);
|
|
748
|
+
__decorate([
|
|
749
|
+
words,
|
|
672
750
|
property({ attribute: 'zoomed-label' })
|
|
673
751
|
], HelixHeadlessMap.prototype, "zoomedLabel", void 0);
|
|
674
752
|
__decorate([
|
|
@@ -34,6 +34,11 @@ export declare const pointsConverter: {
|
|
|
34
34
|
* @event {HelixMapPartChangeEvent} helix-map-part-change - The route's points, progress, name, or color changed. Used by `connectMap`; pages do not need to listen for it.
|
|
35
35
|
*/
|
|
36
36
|
export declare class HelixHeadlessMapRoute extends HelixElement {
|
|
37
|
+
/**
|
|
38
|
+
* The key this part's words are registered under, its styled tag:
|
|
39
|
+
* `registerWords('de', { 'helix-map-route': { label: 'Route' } })`.
|
|
40
|
+
*/
|
|
41
|
+
static words: string;
|
|
37
42
|
/**
|
|
38
43
|
* More about the route, such as its distance or time. Read after its label
|
|
39
44
|
* in the frame's list.
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, HelixElement, HelixMapPartChangeEvent } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, HelixElement, HelixMapPartChangeEvent, words } from '@fusion.dev/helix-core';
|
|
8
8
|
import { nothing } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
export const pointsOf = (value) => (value ?? '')
|
|
@@ -24,6 +24,7 @@ let HelixHeadlessMapRoute = class HelixHeadlessMapRoute extends HelixElement {
|
|
|
24
24
|
this.layerKind = 'route';
|
|
25
25
|
this.label = 'Route';
|
|
26
26
|
}
|
|
27
|
+
static { this.words = 'helix-map-route'; }
|
|
27
28
|
updated(changed) {
|
|
28
29
|
super.updated(changed);
|
|
29
30
|
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'layer' }));
|
|
@@ -39,6 +40,7 @@ __decorate([
|
|
|
39
40
|
property()
|
|
40
41
|
], HelixHeadlessMapRoute.prototype, "group", void 0);
|
|
41
42
|
__decorate([
|
|
43
|
+
words,
|
|
42
44
|
property()
|
|
43
45
|
], HelixHeadlessMapRoute.prototype, "label", void 0);
|
|
44
46
|
__decorate([
|
|
@@ -28,6 +28,11 @@ export type MapTerrainEncoding = 'mapbox' | 'terrarium';
|
|
|
28
28
|
* @event {HelixMapPartChangeEvent} helix-map-part-change - The tiles, how the ground is raised, or the layer's name or colors changed. Used by `connectMap`; pages do not need to listen for it.
|
|
29
29
|
*/
|
|
30
30
|
export declare class HelixHeadlessMapTerrain extends HelixElement {
|
|
31
|
+
/**
|
|
32
|
+
* The key this part's words are registered under, its styled tag:
|
|
33
|
+
* `registerWords('de', { 'helix-map-terrain': { label: 'Gelände' } })`.
|
|
34
|
+
*/
|
|
35
|
+
static words: string;
|
|
31
36
|
/** The elevation provider's credit, shown in the frame's footer. Links in it stay links. */
|
|
32
37
|
attribution?: string;
|
|
33
38
|
/** More about the terrain. Read after the label in the frame's list. */
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, HelixElement, HelixMapPartChangeEvent } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, HelixElement, HelixMapPartChangeEvent, words } from '@fusion.dev/helix-core';
|
|
8
8
|
import { nothing } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
let HelixHeadlessMapTerrain = class HelixHeadlessMapTerrain extends HelixElement {
|
|
@@ -17,6 +17,7 @@ let HelixHeadlessMapTerrain = class HelixHeadlessMapTerrain extends HelixElement
|
|
|
17
17
|
this.label = 'Terrain';
|
|
18
18
|
this.raised = false;
|
|
19
19
|
}
|
|
20
|
+
static { this.words = 'helix-map-terrain'; }
|
|
20
21
|
updated(changed) {
|
|
21
22
|
super.updated(changed);
|
|
22
23
|
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'layer' }));
|
|
@@ -41,6 +42,7 @@ __decorate([
|
|
|
41
42
|
property()
|
|
42
43
|
], HelixHeadlessMapTerrain.prototype, "group", void 0);
|
|
43
44
|
__decorate([
|
|
45
|
+
words,
|
|
44
46
|
property()
|
|
45
47
|
], HelixHeadlessMapTerrain.prototype, "label", void 0);
|
|
46
48
|
__decorate([
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var HelixHeadlessMegamenu_1;
|
|
8
|
-
import { anchorElement, customElement, deepContains, focusableElements, HelixElement, KeyboardNavigationController, MixinControllerOpen, PopoverController, tellDisclosure, } from '@fusion.dev/helix-core';
|
|
8
|
+
import { anchorElement, customElement, deepContains, focusableElements, focusItemOf, HelixElement, KeyboardNavigationController, MixinControllerOpen, PopoverController, tellDisclosure, } from '@fusion.dev/helix-core';
|
|
9
9
|
import { html, nothing } from 'lit';
|
|
10
10
|
import { property, state } from 'lit/decorators.js';
|
|
11
11
|
import { HandOver } from '../hand-over.js';
|
|
@@ -30,16 +30,9 @@ let HelixHeadlessMegamenu = class HelixHeadlessMegamenu extends MixinControllerO
|
|
|
30
30
|
});
|
|
31
31
|
this.keys = new KeyboardNavigationController(this, {
|
|
32
32
|
items: () => !this.parentElement?.shadowRoot
|
|
33
|
-
? HelixHeadlessMegamenu_1.bar
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return node === control || control.contains(node);
|
|
37
|
-
},
|
|
38
|
-
disabled: false,
|
|
39
|
-
focusItem: () => megamenu.trigger.focus(),
|
|
40
|
-
select: () => { },
|
|
41
|
-
selected: false,
|
|
42
|
-
}))
|
|
33
|
+
? HelixHeadlessMegamenu_1.bar
|
|
34
|
+
.alongside(this)
|
|
35
|
+
.map((megamenu) => focusItemOf(megamenu.trigger))
|
|
43
36
|
: [],
|
|
44
37
|
origin: 'focus',
|
|
45
38
|
reserved: () => ['ArrowDown', 'ArrowUp'],
|
|
@@ -25,8 +25,8 @@ declare const HelixHeadlessMenu_base: (new (...args: any[]) => import("@fusion.d
|
|
|
25
25
|
* onto your element after it upgrades causes a hydration mismatch.
|
|
26
26
|
*
|
|
27
27
|
* Group rows under a heading with `Menu.Section`, which is a `group` named by
|
|
28
|
-
* its heading. Between runs of rows, a `<helix-divider
|
|
29
|
-
*
|
|
28
|
+
* its heading. Between runs of rows, a `<helix-divider>` is a separator a
|
|
29
|
+
* screen reader announces.
|
|
30
30
|
*
|
|
31
31
|
* Keys: Enter, Space or Down Arrow on the trigger opens the menu on its first
|
|
32
32
|
* row, and Up Arrow on its last. In the menu, Up and Down Arrow move between
|
|
@@ -80,6 +80,11 @@ declare const HelixHeadlessMenu_base: (new (...args: any[]) => import("@fusion.d
|
|
|
80
80
|
* @cssstate start - A row on the current page has content in its leading column, so every row keeps that column.
|
|
81
81
|
*/
|
|
82
82
|
export declare class HelixHeadlessMenu extends HelixHeadlessMenu_base {
|
|
83
|
+
/**
|
|
84
|
+
* The key this family's words are registered under, its styled tag:
|
|
85
|
+
* `registerWords('de', { 'helix-menu': { backLabel: 'Zurück' } })`.
|
|
86
|
+
*/
|
|
87
|
+
static words: string;
|
|
83
88
|
/**
|
|
84
89
|
* The text of the row that returns from a submenu.
|
|
85
90
|
*/
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { AriaForwardController, anchorElement, customElement, DrilldownController, deepActiveElement, deepContains, HelixElement, inlineStep, KeyboardNavigationController, MixinCollection, MixinControllerOpen, PopoverController, scrollItemIntoView, slottedWords, tellDisclosure, typeaheadBy, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { AriaForwardController, anchorElement, customElement, DrilldownController, deepActiveElement, deepContains, HelixElement, inlineStep, KeyboardNavigationController, MixinCollection, MixinControllerOpen, PopoverController, scrollItemIntoView, slottedWords, tellDisclosure, typeaheadBy, words, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { caretLeft } from '@fusion.dev/helix-icons';
|
|
9
9
|
import { html, nothing } from 'lit';
|
|
10
10
|
import { property } from 'lit/decorators.js';
|
|
@@ -132,6 +132,7 @@ let HelixHeadlessMenu = class HelixHeadlessMenu extends MixinCollection(MixinCon
|
|
|
132
132
|
}
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
|
+
static { this.words = 'helix-menu'; }
|
|
135
136
|
tellTrigger() {
|
|
136
137
|
const slot = this.renderRoot?.querySelector('slot[name="trigger"]');
|
|
137
138
|
tellDisclosure(slot?.assignedElements({ flatten: true })[0], this.open, 'menu');
|
|
@@ -302,6 +303,7 @@ let HelixHeadlessMenu = class HelixHeadlessMenu extends MixinCollection(MixinCon
|
|
|
302
303
|
}
|
|
303
304
|
};
|
|
304
305
|
__decorate([
|
|
306
|
+
words,
|
|
305
307
|
property({ attribute: 'back-label' })
|
|
306
308
|
], HelixHeadlessMenu.prototype, "backLabel", void 0);
|
|
307
309
|
__decorate([
|
|
@@ -59,6 +59,11 @@ export type MeterBand = 'fair' | 'good' | 'poor';
|
|
|
59
59
|
* @cssstate under - The value is below `min`.
|
|
60
60
|
*/
|
|
61
61
|
export declare class HelixHeadlessMeter extends HelixElement {
|
|
62
|
+
/**
|
|
63
|
+
* The key this family's words are registered under, its styled tag:
|
|
64
|
+
* `registerWords('de', { 'helix-meter': { label: 'Messwert' } })`.
|
|
65
|
+
*/
|
|
66
|
+
static words: string;
|
|
62
67
|
/**
|
|
63
68
|
* Sets the band directly, for a rule that `low`, `high`, and `optimum` cannot
|
|
64
69
|
* express.
|
|
@@ -93,7 +98,9 @@ export declare class HelixHeadlessMeter extends HelixElement {
|
|
|
93
98
|
* The words each band is said with under `live`, by its name, written as
|
|
94
99
|
* JSON in the attribute: `band-labels='{"poor":"Almost full"}'`.
|
|
95
100
|
*
|
|
96
|
-
* A band left out keeps its default: "Good", "Fair" or "Poor".
|
|
101
|
+
* A band left out keeps its default: "Good", "Fair" or "Poor". Reading the
|
|
102
|
+
* property gives every band's words, yours over the registry's over the
|
|
103
|
+
* English.
|
|
97
104
|
*/
|
|
98
105
|
bandLabels: Partial<Record<MeterBand, string>>;
|
|
99
106
|
/**
|
|
@@ -134,9 +141,15 @@ export declare class HelixHeadlessMeter extends HelixElement {
|
|
|
134
141
|
*/
|
|
135
142
|
live: boolean;
|
|
136
143
|
/**
|
|
137
|
-
*
|
|
144
|
+
* What `live` says as the reading moves into another band. `{reading}` is
|
|
145
|
+
* the reading as it is shown, and `{band}` the band's words from
|
|
146
|
+
* `band-labels`.
|
|
147
|
+
*/
|
|
148
|
+
liveLabel: string;
|
|
149
|
+
/**
|
|
150
|
+
* The locale the words and the percentage are in, such as `fr` for `72 %`.
|
|
138
151
|
*
|
|
139
|
-
* Absent
|
|
152
|
+
* Absent reads the nearest `lang`, then the runtime's own.
|
|
140
153
|
*/
|
|
141
154
|
locale: string;
|
|
142
155
|
/**
|