@aceshooting/lyra-ui 3.5.0 → 3.7.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/README.md +111 -2
- package/custom-elements.json +50239 -41857
- package/dist/components/animated-image/animated-image.class.d.ts +131 -0
- package/dist/components/animated-image/animated-image.class.d.ts.map +1 -0
- package/dist/components/animated-image/animated-image.class.js +296 -0
- package/dist/components/animated-image/animated-image.class.js.map +1 -0
- package/dist/components/animated-image/animated-image.d.ts +2 -0
- package/dist/components/animated-image/animated-image.d.ts.map +1 -0
- package/dist/components/animated-image/animated-image.js +5 -0
- package/dist/components/animated-image/animated-image.js.map +1 -0
- package/dist/components/animated-image/animated-image.styles.d.ts +2 -0
- package/dist/components/animated-image/animated-image.styles.d.ts.map +1 -0
- package/dist/components/animated-image/animated-image.styles.js +117 -0
- package/dist/components/animated-image/animated-image.styles.js.map +1 -0
- package/dist/components/animation/animation.class.d.ts +119 -0
- package/dist/components/animation/animation.class.d.ts.map +1 -0
- package/dist/components/animation/animation.class.js +420 -0
- package/dist/components/animation/animation.class.js.map +1 -0
- package/dist/components/animation/animation.d.ts +2 -0
- package/dist/components/animation/animation.d.ts.map +1 -0
- package/dist/components/animation/animation.js +5 -0
- package/dist/components/animation/animation.js.map +1 -0
- package/dist/components/animation/animation.styles.d.ts +2 -0
- package/dist/components/animation/animation.styles.d.ts.map +1 -0
- package/dist/components/animation/animation.styles.js +18 -0
- package/dist/components/animation/animation.styles.js.map +1 -0
- package/dist/components/avatar-group/avatar-group.class.d.ts +110 -0
- package/dist/components/avatar-group/avatar-group.class.d.ts.map +1 -0
- package/dist/components/avatar-group/avatar-group.class.js +182 -0
- package/dist/components/avatar-group/avatar-group.class.js.map +1 -0
- package/dist/components/avatar-group/avatar-group.d.ts +2 -0
- package/dist/components/avatar-group/avatar-group.d.ts.map +1 -0
- package/dist/components/avatar-group/avatar-group.js +5 -0
- package/dist/components/avatar-group/avatar-group.js.map +1 -0
- package/dist/components/avatar-group/avatar-group.styles.d.ts +2 -0
- package/dist/components/avatar-group/avatar-group.styles.d.ts.map +1 -0
- package/dist/components/avatar-group/avatar-group.styles.js +112 -0
- package/dist/components/avatar-group/avatar-group.styles.js.map +1 -0
- package/dist/components/button/button.class.d.ts +5 -2
- package/dist/components/button/button.class.d.ts.map +1 -1
- package/dist/components/button/button.class.js +4 -1
- package/dist/components/button/button.class.js.map +1 -1
- package/dist/components/button/button.styles.d.ts.map +1 -1
- package/dist/components/button/button.styles.js +16 -0
- package/dist/components/button/button.styles.js.map +1 -1
- package/dist/components/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/calendar/calendar.class.js +1 -12
- package/dist/components/calendar/calendar.class.js.map +1 -1
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +1 -1
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/calendar-viewer/calendar-viewer.class.js +2 -2
- package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/chart/box-plot.class.d.ts.map +1 -1
- package/dist/components/chart/box-plot.class.js +1 -3
- package/dist/components/chart/box-plot.class.js.map +1 -1
- package/dist/components/chart/chart.class.d.ts.map +1 -1
- package/dist/components/chart/chart.class.js +1 -3
- package/dist/components/chart/chart.class.js.map +1 -1
- package/dist/components/code-editor/code-editor.styles.d.ts.map +1 -1
- package/dist/components/code-editor/code-editor.styles.js +5 -2
- package/dist/components/code-editor/code-editor.styles.js.map +1 -1
- package/dist/components/contact-viewer/contact-viewer.class.d.ts +4 -1
- package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -1
- package/dist/components/contact-viewer/contact-viewer.class.js +5 -2
- package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -1
- package/dist/components/email-viewer/email-viewer.class.d.ts +4 -1
- package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/email-viewer/email-viewer.class.js +5 -2
- package/dist/components/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/file-icon/file-icon.class.d.ts +5 -1
- package/dist/components/file-icon/file-icon.class.d.ts.map +1 -1
- package/dist/components/file-icon/file-icon.class.js +20 -2
- package/dist/components/file-icon/file-icon.class.js.map +1 -1
- package/dist/components/file-icon/file-icon.styles.d.ts.map +1 -1
- package/dist/components/file-icon/file-icon.styles.js +4 -0
- package/dist/components/file-icon/file-icon.styles.js.map +1 -1
- package/dist/components/graph/graph.class.d.ts.map +1 -1
- package/dist/components/graph/graph.class.js +1 -3
- package/dist/components/graph/graph.class.js.map +1 -1
- package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.class.js +1 -8
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/icon/icon.styles.d.ts.map +1 -1
- package/dist/components/icon/icon.styles.js +1 -1
- package/dist/components/icon/icon.styles.js.map +1 -1
- package/dist/components/include/include.class.d.ts +104 -0
- package/dist/components/include/include.class.d.ts.map +1 -0
- package/dist/components/include/include.class.js +149 -0
- package/dist/components/include/include.class.js.map +1 -0
- package/dist/components/include/include.d.ts +2 -0
- package/dist/components/include/include.d.ts.map +1 -0
- package/dist/components/include/include.js +5 -0
- package/dist/components/include/include.js.map +1 -0
- package/dist/components/include/include.styles.d.ts +2 -0
- package/dist/components/include/include.styles.d.ts.map +1 -0
- package/dist/components/include/include.styles.js +14 -0
- package/dist/components/include/include.styles.js.map +1 -0
- package/dist/components/kbd/kbd.class.d.ts.map +1 -1
- package/dist/components/kbd/kbd.class.js +1 -11
- package/dist/components/kbd/kbd.class.js.map +1 -1
- package/dist/components/known-date/known-date.class.d.ts +208 -0
- package/dist/components/known-date/known-date.class.d.ts.map +1 -0
- package/dist/components/known-date/known-date.class.js +588 -0
- package/dist/components/known-date/known-date.class.js.map +1 -0
- package/dist/components/known-date/known-date.d.ts +2 -0
- package/dist/components/known-date/known-date.d.ts.map +1 -0
- package/dist/components/known-date/known-date.js +5 -0
- package/dist/components/known-date/known-date.js.map +1 -0
- package/dist/components/known-date/known-date.styles.d.ts +2 -0
- package/dist/components/known-date/known-date.styles.d.ts.map +1 -0
- package/dist/components/known-date/known-date.styles.js +134 -0
- package/dist/components/known-date/known-date.styles.js.map +1 -0
- package/dist/components/lightbox/lightbox.class.d.ts +187 -0
- package/dist/components/lightbox/lightbox.class.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.class.js +415 -0
- package/dist/components/lightbox/lightbox.class.js.map +1 -0
- package/dist/components/lightbox/lightbox.d.ts +3 -0
- package/dist/components/lightbox/lightbox.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.js +6 -0
- package/dist/components/lightbox/lightbox.js.map +1 -0
- package/dist/components/lightbox/lightbox.styles.d.ts +2 -0
- package/dist/components/lightbox/lightbox.styles.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.styles.js +179 -0
- package/dist/components/lightbox/lightbox.styles.js.map +1 -0
- package/dist/components/map/map.class.d.ts.map +1 -1
- package/dist/components/map/map.class.js +11 -23
- package/dist/components/map/map.class.js.map +1 -1
- package/dist/components/menu/menu.class.d.ts +1 -1
- package/dist/components/model-settings-panel/model-settings-panel.class.d.ts.map +1 -1
- package/dist/components/model-settings-panel/model-settings-panel.class.js +1 -10
- package/dist/components/model-settings-panel/model-settings-panel.class.js.map +1 -1
- package/dist/components/qr-code/qr-code-loader.d.ts +15 -0
- package/dist/components/qr-code/qr-code-loader.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code-loader.js +28 -0
- package/dist/components/qr-code/qr-code-loader.js.map +1 -0
- package/dist/components/qr-code/qr-code.class.d.ts +121 -0
- package/dist/components/qr-code/qr-code.class.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code.class.js +392 -0
- package/dist/components/qr-code/qr-code.class.js.map +1 -0
- package/dist/components/qr-code/qr-code.d.ts +2 -0
- package/dist/components/qr-code/qr-code.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code.js +5 -0
- package/dist/components/qr-code/qr-code.js.map +1 -0
- package/dist/components/qr-code/qr-code.styles.d.ts +2 -0
- package/dist/components/qr-code/qr-code.styles.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code.styles.js +48 -0
- package/dist/components/qr-code/qr-code.styles.js.map +1 -0
- package/dist/components/random-content/random-content.class.d.ts +99 -0
- package/dist/components/random-content/random-content.class.d.ts.map +1 -0
- package/dist/components/random-content/random-content.class.js +268 -0
- package/dist/components/random-content/random-content.class.js.map +1 -0
- package/dist/components/random-content/random-content.d.ts +2 -0
- package/dist/components/random-content/random-content.d.ts.map +1 -0
- package/dist/components/random-content/random-content.js +5 -0
- package/dist/components/random-content/random-content.js.map +1 -0
- package/dist/components/random-content/random-content.styles.d.ts +2 -0
- package/dist/components/random-content/random-content.styles.d.ts.map +1 -0
- package/dist/components/random-content/random-content.styles.js +94 -0
- package/dist/components/random-content/random-content.styles.js.map +1 -0
- package/dist/components/result-card/result-card.class.d.ts +9 -8
- package/dist/components/result-card/result-card.class.d.ts.map +1 -1
- package/dist/components/result-card/result-card.class.js +7 -26
- package/dist/components/result-card/result-card.class.js.map +1 -1
- package/dist/components/result-card/result-field.class.d.ts.map +1 -1
- package/dist/components/result-card/result-field.class.js +1 -11
- package/dist/components/result-card/result-field.class.js.map +1 -1
- package/dist/components/slider/slider.class.d.ts.map +1 -1
- package/dist/components/slider/slider.class.js +1 -19
- package/dist/components/slider/slider.class.js.map +1 -1
- package/dist/components/source-card/source-card.class.d.ts +8 -7
- package/dist/components/source-card/source-card.class.d.ts.map +1 -1
- package/dist/components/source-card/source-card.class.js +6 -25
- package/dist/components/source-card/source-card.class.js.map +1 -1
- package/dist/components/stat/stat.class.js +1 -1
- package/dist/components/stat/stat.class.js.map +1 -1
- package/dist/components/swatch-picker/swatch-picker.class.d.ts +55 -0
- package/dist/components/swatch-picker/swatch-picker.class.d.ts.map +1 -0
- package/dist/components/swatch-picker/swatch-picker.class.js +120 -0
- package/dist/components/swatch-picker/swatch-picker.class.js.map +1 -0
- package/dist/components/swatch-picker/swatch-picker.d.ts +2 -0
- package/dist/components/swatch-picker/swatch-picker.d.ts.map +1 -0
- package/dist/components/swatch-picker/swatch-picker.js +5 -0
- package/dist/components/swatch-picker/swatch-picker.js.map +1 -0
- package/dist/components/swatch-picker/swatch-picker.styles.d.ts +2 -0
- package/dist/components/swatch-picker/swatch-picker.styles.d.ts.map +1 -0
- package/dist/components/swatch-picker/swatch-picker.styles.js +55 -0
- package/dist/components/swatch-picker/swatch-picker.styles.js.map +1 -0
- package/dist/components/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/time-range/time-range.class.js +1 -21
- package/dist/components/time-range/time-range.class.js.map +1 -1
- package/dist/components/timeline/timeline-item.class.d.ts +120 -0
- package/dist/components/timeline/timeline-item.class.d.ts.map +1 -0
- package/dist/components/timeline/timeline-item.class.js +203 -0
- package/dist/components/timeline/timeline-item.class.js.map +1 -0
- package/dist/components/timeline/timeline-item.d.ts +3 -0
- package/dist/components/timeline/timeline-item.d.ts.map +1 -0
- package/dist/components/timeline/timeline-item.js +10 -0
- package/dist/components/timeline/timeline-item.js.map +1 -0
- package/dist/components/timeline/timeline-item.styles.d.ts +2 -0
- package/dist/components/timeline/timeline-item.styles.d.ts.map +1 -0
- package/dist/components/timeline/timeline-item.styles.js +149 -0
- package/dist/components/timeline/timeline-item.styles.js.map +1 -0
- package/dist/components/timeline/timeline.class.d.ts +59 -0
- package/dist/components/timeline/timeline.class.d.ts.map +1 -0
- package/dist/components/timeline/timeline.class.js +100 -0
- package/dist/components/timeline/timeline.class.js.map +1 -0
- package/dist/components/timeline/timeline.d.ts +2 -0
- package/dist/components/timeline/timeline.d.ts.map +1 -0
- package/dist/components/timeline/timeline.js +5 -0
- package/dist/components/timeline/timeline.js.map +1 -0
- package/dist/components/timeline/timeline.styles.d.ts +2 -0
- package/dist/components/timeline/timeline.styles.d.ts.map +1 -0
- package/dist/components/timeline/timeline.styles.js +52 -0
- package/dist/components/timeline/timeline.styles.js.map +1 -0
- package/dist/components/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/toast/toast-item.class.js +1 -3
- package/dist/components/toast/toast-item.class.js.map +1 -1
- package/dist/components/tool-param-form/tool-param-form.class.d.ts.map +1 -1
- package/dist/components/tool-param-form/tool-param-form.class.js +0 -1
- package/dist/components/tool-param-form/tool-param-form.class.js.map +1 -1
- package/dist/components/tour/tour.class.d.ts +250 -0
- package/dist/components/tour/tour.class.d.ts.map +1 -0
- package/dist/components/tour/tour.class.js +530 -0
- package/dist/components/tour/tour.class.js.map +1 -0
- package/dist/components/tour/tour.d.ts +2 -0
- package/dist/components/tour/tour.d.ts.map +1 -0
- package/dist/components/tour/tour.js +5 -0
- package/dist/components/tour/tour.js.map +1 -0
- package/dist/components/tour/tour.styles.d.ts +2 -0
- package/dist/components/tour/tour.styles.d.ts.map +1 -0
- package/dist/components/tour/tour.styles.js +165 -0
- package/dist/components/tour/tour.styles.js.map +1 -0
- package/dist/components/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/virtual-list/virtual-list.class.js +1 -3
- package/dist/components/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/word-cloud/word-cloud.class.js +1 -8
- package/dist/components/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/zoomable-frame/zoomable-frame.class.d.ts +15 -0
- package/dist/components/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
- package/dist/components/zoomable-frame/zoomable-frame.class.js +18 -0
- package/dist/components/zoomable-frame/zoomable-frame.class.js.map +1 -1
- package/dist/internal/a11y.d.ts +4 -0
- package/dist/internal/a11y.d.ts.map +1 -1
- package/dist/internal/a11y.js +17 -0
- package/dist/internal/a11y.js.map +1 -1
- package/dist/internal/canvas.d.ts +8 -0
- package/dist/internal/canvas.d.ts.map +1 -0
- package/dist/internal/canvas.js +14 -0
- package/dist/internal/canvas.js.map +1 -0
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +21 -2
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/motion.d.ts +5 -0
- package/dist/internal/motion.d.ts.map +1 -0
- package/dist/internal/motion.js +7 -0
- package/dist/internal/motion.js.map +1 -0
- package/dist/internal/numbers.d.ts +11 -0
- package/dist/internal/numbers.d.ts.map +1 -1
- package/dist/internal/numbers.js +21 -0
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/positioner.d.ts +14 -0
- package/dist/internal/positioner.d.ts.map +1 -1
- package/dist/internal/positioner.js +27 -0
- package/dist/internal/positioner.js.map +1 -1
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +12 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/rtl.d.ts +0 -11
- package/dist/internal/rtl.d.ts.map +1 -1
- package/dist/internal/rtl.js +0 -13
- package/dist/internal/rtl.js.map +1 -1
- package/dist/internal/safe-css.d.ts +15 -0
- package/dist/internal/safe-css.d.ts.map +1 -0
- package/dist/internal/safe-css.js +25 -0
- package/dist/internal/safe-css.js.map +1 -0
- package/dist/internal/strip-host-title.d.ts +24 -0
- package/dist/internal/strip-host-title.d.ts.map +1 -0
- package/dist/internal/strip-host-title.js +46 -0
- package/dist/internal/strip-host-title.js.map +1 -0
- package/dist/internal/tokens.styles.d.ts.map +1 -1
- package/dist/internal/tokens.styles.js +4 -0
- package/dist/internal/tokens.styles.js.map +1 -1
- package/dist/lyra.d.ts +37 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +24 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +161 -5
- package/llms.txt +5 -2
- package/package.json +43 -6
- package/vscode-css-data.json +733 -0
- package/vscode-html-data.json +10616 -0
- package/web-types.json +12206 -0
|
@@ -0,0 +1,530 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { keyed } from 'lit/directives/keyed.js';
|
|
10
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
11
|
+
import { lockScroll } from '../../internal/scroll-lock.js';
|
|
12
|
+
import { activateOverlay } from '../../internal/overlay-manager.js';
|
|
13
|
+
import { nextId, hasRealContent } from '../../internal/a11y.js';
|
|
14
|
+
import { place, trackRect } from '../../internal/positioner.js';
|
|
15
|
+
import { rtlAwarePlacement } from '../../internal/rtl.js';
|
|
16
|
+
import { prefersReducedMotion } from '../../internal/motion.js';
|
|
17
|
+
import { styles } from './tour.styles.js';
|
|
18
|
+
// Punches a rectangular hole (viewport minus the padded target rect) into the backdrop's own
|
|
19
|
+
// clip-path via the standard "keyhole" polygon technique: trace the full-viewport rectangle,
|
|
20
|
+
// slit inward to the target rectangle along a zero-width bridge (traversed once in, once back
|
|
21
|
+
// out along the exact same line so it contributes no net area), then trace the target rectangle
|
|
22
|
+
// itself. `evenodd` fill-rule turns the doubled-back bridge into a no-op and leaves the target
|
|
23
|
+
// rectangle excluded from the clipped (hit-testable, rendered) region -- this is what lets a
|
|
24
|
+
// pointer event fall through to the live page content underneath when a step opts into
|
|
25
|
+
// `interactiveTarget`.
|
|
26
|
+
function keyholeClipPath(x, y, width, height) {
|
|
27
|
+
const right = x + width;
|
|
28
|
+
const bottom = y + height;
|
|
29
|
+
return (`polygon(evenodd, 0% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, ` +
|
|
30
|
+
`${x}px ${y}px, ${x}px ${bottom}px, ${right}px ${bottom}px, ${right}px ${y}px, ${x}px ${y}px, 0% 0%)`);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `<lyra-tour>` -- a spotlight-and-step guided walkthrough for first-run onboarding. A sequence
|
|
34
|
+
* of steps, each anchored to a target element elsewhere in the page via the shared Floating UI
|
|
35
|
+
* positioner, shown against a dimmed full-viewport backdrop with a cutout/ring highlighting the
|
|
36
|
+
* current target, with Next/Previous/Skip controls and a step-progress indicator. First-party
|
|
37
|
+
* invention (no Web Awesome equivalent) -- nearest precedent in shape is `lyra-dialog` (overlay
|
|
38
|
+
* lifecycle/focus trap) + `lyra-carousel` (index-based navigation) + `lyra-stepper`
|
|
39
|
+
* (progress/RTL arrow-key nav).
|
|
40
|
+
*
|
|
41
|
+
* **Not a form-associated control.** A tour is a walkthrough, not a field -- it deliberately has
|
|
42
|
+
* no `label`/`hint`/`error` chrome and no `FormAssociated` mixin.
|
|
43
|
+
*
|
|
44
|
+
* **Controlled component.** `steps` is never mutated by this component (mirrors
|
|
45
|
+
* `lyra-stepper`'s `steps`); only `activeIndex` and `open` are self-managed, mirroring
|
|
46
|
+
* `lyra-carousel`'s `index`.
|
|
47
|
+
*
|
|
48
|
+
* **Target interactivity.** By default, the step's spotlighted target is non-interactive while
|
|
49
|
+
* its step is active: it stays visually revealed and perceivable/announceable by assistive tech
|
|
50
|
+
* (not `inert`, not `aria-hidden`) but cannot be clicked -- every pointer event over the full
|
|
51
|
+
* viewport, including directly over the visually-revealed target, is captured by the backdrop
|
|
52
|
+
* (CSS `mask` does not affect hit-testing, only `clip-path` does) -- and cannot be reached by Tab
|
|
53
|
+
* (the shared overlay focus trap confines Tab to the popover panel). Set `step.interactiveTarget`
|
|
54
|
+
* to opt a step's target out of this: the backdrop additionally clips itself (via `clip-path`,
|
|
55
|
+
* which *does* affect hit-testing) around the same rect, so pointer/click events fall through to
|
|
56
|
+
* the live target underneath. This only restores pointer/click reachability, not Tab
|
|
57
|
+
* reachability -- the focus trap still confines keyboard focus to the step popover regardless of
|
|
58
|
+
* `interactiveTarget`. If the interaction a step demonstrates must also be keyboard-reachable,
|
|
59
|
+
* don't rely on Tab to reach the live target -- have the app's own listener on the target call
|
|
60
|
+
* `tourEl.next()` to advance the tour programmatically.
|
|
61
|
+
*
|
|
62
|
+
* **Focus management.** Uses the shared overlay manager with `modal: false` -- a deliberate
|
|
63
|
+
* choice, not an oversight. The default `modal: true` would mark the entire rest of the page
|
|
64
|
+
* (including the spotlighted target itself, since it lives outside `<lyra-tour>`'s own ancestor
|
|
65
|
+
* chain) `inert`, stripping it from the accessibility tree entirely -- stronger than the
|
|
66
|
+
* "non-interactive but still perceivable" default described above. `modal: false` skips that
|
|
67
|
+
* DOM-wide `inert` marking; the shared Tab-trap still confines keyboard Tab to the popover panel
|
|
68
|
+
* unconditionally regardless of `modal`, and the backdrop's own hit-testing handles
|
|
69
|
+
* pointer/click reachability, so nothing is lost. `role="dialog"` and `aria-modal="true"` are
|
|
70
|
+
* still rendered on the popover panel anyway: most screen readers restrict their own virtual-
|
|
71
|
+
* cursor/browse-mode navigation to an `aria-modal="true"` element's subtree, giving assistive-
|
|
72
|
+
* tech users the same "can perceive, can't wander into, the live target" experience that the
|
|
73
|
+
* Tab-trap and backdrop hit-testing already give sighted/mouse users.
|
|
74
|
+
*
|
|
75
|
+
* Each step transition mounts a genuinely new popover DOM node (keyed on the step's `id`) so
|
|
76
|
+
* focus reliably re-enters the panel every time, even though the Previous/Next button that
|
|
77
|
+
* triggered the transition lives inside that same persistent-looking region.
|
|
78
|
+
*
|
|
79
|
+
* No `Home`/`End` jump-to-first/last-step shortcut and no click-to-jump progress dots, unlike
|
|
80
|
+
* `lyra-stepper` -- a tour's steps are tied to live DOM targets that may not exist until an
|
|
81
|
+
* earlier step's side effect (opening a menu, navigating a route) has run, so free jumping is
|
|
82
|
+
* unsafe by default. `goToStep()` remains available for a host that knows what it's doing (e.g.
|
|
83
|
+
* a "restart tour" affordance elsewhere).
|
|
84
|
+
*
|
|
85
|
+
* @customElement lyra-tour
|
|
86
|
+
* @slot - Rich content overriding the currently active step's plain-text `content` for that step
|
|
87
|
+
* only. When real content is assigned, it's shown instead of `step.content`; when empty,
|
|
88
|
+
* `step.content` renders as plain text. Not scoped per step by this component itself -- a
|
|
89
|
+
* consumer that needs different rich content per step swaps the slotted children (or listens
|
|
90
|
+
* for `lyra-tour-step-change` and re-renders them) itself, the same "consumer owns slotted
|
|
91
|
+
* content" pattern `lyra-dialog`'s default slot already uses.
|
|
92
|
+
* @event lyra-tour-start - Fired by `start()`. `detail: { index }`. Not cancelable.
|
|
93
|
+
* @event lyra-tour-step-change - Fired by `next()`/`back()`/`goToStep()` before `activeIndex`
|
|
94
|
+
* changes. `detail: { index, previousIndex, step, via }`. Cancelable -- a listener calling
|
|
95
|
+
* `preventDefault()` leaves `activeIndex` unchanged, letting a tour gate advancement on a real
|
|
96
|
+
* action (e.g. an onboarding step demonstrating "click this button" shouldn't let Next silently
|
|
97
|
+
* skip past it). This is a deliberate departure from `lyra-carousel`'s non-cancelable
|
|
98
|
+
* `lyra-slide-change`.
|
|
99
|
+
* @event lyra-tour-end - Fired by `end()` (and by `next()` on the last step, with reason
|
|
100
|
+
* `'completed'`). `detail: TourEndReason`. Cancelable, except in practice for `'unmount'` since
|
|
101
|
+
* the element is already being removed -- mirrors `lyra-dialog-close` exactly.
|
|
102
|
+
* @event lyra-tour-target-missing - The active step's `target` did not resolve to a connected
|
|
103
|
+
* element. `detail: { index, step }`. Not cancelable -- informational. The tour does not
|
|
104
|
+
* auto-end; it renders that step's popover unanchored (viewport-centered, no spotlight cutout)
|
|
105
|
+
* instead of throwing. A host can listen and decide to `skip()`/`goToStep()` in response.
|
|
106
|
+
* @csspart backdrop - The full-viewport dimmed scrim with the spotlight cutout, an inline `<svg>`.
|
|
107
|
+
* `aria-hidden="true"`.
|
|
108
|
+
* @csspart spotlight - The decorative highlight ring drawn around the current target's (padded)
|
|
109
|
+
* rect. `pointer-events: none`, `aria-hidden="true"`.
|
|
110
|
+
* @csspart popover - The step panel itself. `role="dialog"`.
|
|
111
|
+
* @csspart heading - The step's visible heading text element -- the `aria-labelledby` target.
|
|
112
|
+
* @csspart body - Wrapper around the step's content (slotted or `step.content`).
|
|
113
|
+
* @csspart progress - Wrapper around the built-in step-progress indicator (dots + text).
|
|
114
|
+
* @csspart progress-dot - An individual decorative dot within `progress`. `aria-hidden="true"`.
|
|
115
|
+
* @csspart progress-text - The visible "Step X of Y" text -- one of the popover's
|
|
116
|
+
* `aria-describedby` targets.
|
|
117
|
+
* @csspart footer - Wrapper around the Previous/Skip/Next-or-Done control row.
|
|
118
|
+
* @csspart skip-button - The Skip control.
|
|
119
|
+
* @csspart previous-button - The Previous control.
|
|
120
|
+
* @csspart next-button - The Next/Done control (label switches on the last step).
|
|
121
|
+
* @cssprop --lyra-tour-backdrop-color - Backdrop scrim fill. Defaults to `--lyra-color-overlay`.
|
|
122
|
+
* @cssprop --lyra-tour-spotlight-radius - Corner radius shared by the cutout and the ring.
|
|
123
|
+
* Defaults to `--lyra-radius`.
|
|
124
|
+
* @cssprop --lyra-tour-spotlight-ring-color - Spotlight ring color. Defaults to `--lyra-color-brand`.
|
|
125
|
+
* @cssprop --lyra-tour-spotlight-ring-width - Spotlight ring thickness. Defaults to
|
|
126
|
+
* `--lyra-border-width-medium`.
|
|
127
|
+
* @cssprop --lyra-tour-popover-max-width - Maximum popover inline size. Defaults to `--lyra-size-22rem`.
|
|
128
|
+
*/
|
|
129
|
+
export class LyraTour extends LyraElement {
|
|
130
|
+
constructor() {
|
|
131
|
+
super(...arguments);
|
|
132
|
+
/** Whether the tour is open. Set this (or call `start()`/`end()`) -- there is no separate
|
|
133
|
+
* `show()`/`hide()` pair. */
|
|
134
|
+
this.open = false;
|
|
135
|
+
/** Ordered step data. Never mutated by this component -- see the class doc's controlled-
|
|
136
|
+
* component contract. Empty (the default) renders nothing. */
|
|
137
|
+
this.steps = [];
|
|
138
|
+
/** Index of the currently active step, clamped to `[0, steps.length - 1]` by `goToStep()`. */
|
|
139
|
+
this.activeIndex = 0;
|
|
140
|
+
/** Tour-level default Floating UI placement, overridable per step via `TourStep.placement`. */
|
|
141
|
+
this.placement = 'bottom';
|
|
142
|
+
/** Distance (px) between the target and the popover, passed straight to Floating UI's
|
|
143
|
+
* `offset()` middleware -- a tour-level-only setting, mirroring `lyra-popover`'s `distance`
|
|
144
|
+
* prop exactly. */
|
|
145
|
+
this.distance = 12;
|
|
146
|
+
/** Tour-level default extra px between a target's own box and the spotlight cutout/ring,
|
|
147
|
+
* overridable per step via `TourStep.spotlightPadding`. */
|
|
148
|
+
this.spotlightPadding = 4;
|
|
149
|
+
/** Whether a backdrop click dismisses the tour (`end('skip')`). Defaults to `false` -- a
|
|
150
|
+
* deliberate inversion of `lyra-dialog`'s `noLightDismiss` (opt-out, default
|
|
151
|
+
* dismiss-on-backdrop-click): a guided tour's backdrop click doing nothing by default avoids
|
|
152
|
+
* losing onboarding progress to a stray click. Set this to restore dismiss-on-backdrop-click. */
|
|
153
|
+
this.lightDismiss = false;
|
|
154
|
+
/** Whether the built-in "Step X of Y" progress indicator (dots + text) renders in the footer. */
|
|
155
|
+
this.showProgress = true;
|
|
156
|
+
/** Host-level `aria-label` override for every step popover's accessible name -- wins over each
|
|
157
|
+
* step's own `heading`, matching `lyra-dialog`'s `accessibleLabel` pattern. Most consumers
|
|
158
|
+
* won't need this since each step already has a meaningful name via `heading`; setting it
|
|
159
|
+
* makes the *same* string name every step's panel. Set as a plain `aria-label` attribute on
|
|
160
|
+
* `<lyra-tour>` itself, not a public JS property. */
|
|
161
|
+
this.accessibleLabel = null;
|
|
162
|
+
this.unanchored = false;
|
|
163
|
+
this.hasSlotContent = false;
|
|
164
|
+
this.maskId = nextId('tour-mask');
|
|
165
|
+
this.headingId = nextId('tour-heading');
|
|
166
|
+
this.bodyId = nextId('tour-body');
|
|
167
|
+
this.progressTextId = nextId('tour-progress-text');
|
|
168
|
+
this.onBackdropClick = () => {
|
|
169
|
+
if (!this.lightDismiss)
|
|
170
|
+
return;
|
|
171
|
+
this.overlay?.dismissBackdrop();
|
|
172
|
+
};
|
|
173
|
+
this.onDefaultSlotChange = (e) => {
|
|
174
|
+
this.hasSlotContent = hasRealContent(e.target.assignedNodes({ flatten: true }));
|
|
175
|
+
};
|
|
176
|
+
// ArrowRight/ArrowLeft swap "forward"/"backward" meaning under RTL, mirroring lyra-stepper's
|
|
177
|
+
// forwardKey/backwardKey. Skipped for a native text-editing control (a step's slotted rich
|
|
178
|
+
// content might legitimately contain one) or when the keydown was already handled.
|
|
179
|
+
this.onPopoverKeyDown = (event) => {
|
|
180
|
+
if (event.defaultPrevented)
|
|
181
|
+
return;
|
|
182
|
+
const eventTarget = event.target;
|
|
183
|
+
if (eventTarget.matches('input, textarea, [contenteditable]:not([contenteditable="false"])'))
|
|
184
|
+
return;
|
|
185
|
+
const rtl = this.effectiveDirection === 'rtl';
|
|
186
|
+
const forwardKey = rtl ? 'ArrowLeft' : 'ArrowRight';
|
|
187
|
+
const backwardKey = rtl ? 'ArrowRight' : 'ArrowLeft';
|
|
188
|
+
if (event.key === forwardKey) {
|
|
189
|
+
event.preventDefault();
|
|
190
|
+
this.next();
|
|
191
|
+
}
|
|
192
|
+
else if (event.key === backwardKey) {
|
|
193
|
+
event.preventDefault();
|
|
194
|
+
this.back();
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
199
|
+
willUpdate(changed) {
|
|
200
|
+
if (!this.hasUpdated) {
|
|
201
|
+
this.hasSlotContent = hasRealContent(this.childNodes);
|
|
202
|
+
}
|
|
203
|
+
if (changed.has('open')) {
|
|
204
|
+
if (this.open) {
|
|
205
|
+
this.activateOverlayInternal();
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
this.deactivateOverlayInternal();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// Runs after render so the manager can resolve the (possibly just-swapped, per keyed()) panel,
|
|
213
|
+
// and so activateStep() can query the freshly-rendered popover/spotlight/mask elements.
|
|
214
|
+
updated(changed) {
|
|
215
|
+
if ((changed.has('open') && this.open) || changed.has('activeIndex')) {
|
|
216
|
+
this.overlay?.focusInitial();
|
|
217
|
+
if (this.open)
|
|
218
|
+
void this.activateStep();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
connectedCallback() {
|
|
222
|
+
super.connectedCallback();
|
|
223
|
+
// A reconnect (e.g. a drag-and-drop reparent keeping this same element instance) fires
|
|
224
|
+
// disconnectedCallback then connectedCallback synchronously with no update in between, so
|
|
225
|
+
// willUpdate never reruns to notice `open` is still true -- restore the scroll lock/trap and
|
|
226
|
+
// positioning it dropped. Mirrors lyra-dialog's identical reconnect-safety pattern.
|
|
227
|
+
if (this.hasUpdated && this.open) {
|
|
228
|
+
if (this.overlay?.isActive()) {
|
|
229
|
+
this.overlay.resume();
|
|
230
|
+
this.releaseScrollLock ??= lockScroll(this.ownerDocument);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
this.activateOverlayInternal();
|
|
234
|
+
}
|
|
235
|
+
queueMicrotask(() => {
|
|
236
|
+
this.overlay?.focusInitial();
|
|
237
|
+
void this.activateStep();
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
disconnectedCallback() {
|
|
242
|
+
super.disconnectedCallback();
|
|
243
|
+
this.disposePositioning();
|
|
244
|
+
this.releaseScrollLock?.();
|
|
245
|
+
this.releaseScrollLock = undefined;
|
|
246
|
+
this.overlay?.suspend();
|
|
247
|
+
if (this.open) {
|
|
248
|
+
// Deferred a microtask so a synchronous reparent (disconnect immediately followed by
|
|
249
|
+
// reconnect) isn't mistaken for a real removal -- mirrors lyra-dialog's identical case.
|
|
250
|
+
queueMicrotask(() => {
|
|
251
|
+
if (!this.isConnected && this.open) {
|
|
252
|
+
this.open = false;
|
|
253
|
+
this.emit('lyra-tour-end', 'unmount');
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/** Opens the tour at `index` (default `0`), clamped to `[0, steps.length - 1]`. Equivalent to
|
|
259
|
+
* `this.activeIndex = index; this.open = true;` plus the `lyra-tour-start` event. */
|
|
260
|
+
start(index = 0) {
|
|
261
|
+
this.activeIndex = this.clampIndex(index);
|
|
262
|
+
this.open = true;
|
|
263
|
+
this.emit('lyra-tour-start', { index: this.activeIndex });
|
|
264
|
+
}
|
|
265
|
+
/** Advances to the next step. On the last step, ends the tour instead (`end('completed')`) --
|
|
266
|
+
* the built-in Next/Done button calls this same method, so a custom control wired to `next()`
|
|
267
|
+
* behaves identically to the built-in one. Cancelable via `lyra-tour-step-change` (or
|
|
268
|
+
* `lyra-tour-end` when it triggers completion). */
|
|
269
|
+
next() {
|
|
270
|
+
const total = this.steps.length;
|
|
271
|
+
if (total === 0)
|
|
272
|
+
return;
|
|
273
|
+
if (this.activeIndex >= total - 1) {
|
|
274
|
+
this.end('completed');
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
this.transitionTo(this.activeIndex + 1, 'next');
|
|
278
|
+
}
|
|
279
|
+
/** Moves to the previous step. No-op on the first step (`activeIndex === 0`). */
|
|
280
|
+
back() {
|
|
281
|
+
if (this.activeIndex <= 0)
|
|
282
|
+
return;
|
|
283
|
+
this.transitionTo(this.activeIndex - 1, 'back');
|
|
284
|
+
}
|
|
285
|
+
/** Jumps directly to `index`, clamped to `[0, steps.length - 1]`. */
|
|
286
|
+
goToStep(index) {
|
|
287
|
+
if (this.steps.length === 0)
|
|
288
|
+
return;
|
|
289
|
+
const clamped = this.clampIndex(index);
|
|
290
|
+
if (clamped === this.activeIndex)
|
|
291
|
+
return;
|
|
292
|
+
this.transitionTo(clamped, 'goto');
|
|
293
|
+
}
|
|
294
|
+
/** Sugar for `end('skip')`. What the built-in Skip button calls. */
|
|
295
|
+
skip() {
|
|
296
|
+
this.end('skip');
|
|
297
|
+
}
|
|
298
|
+
/** Ends the tour. `reason` is forwarded as the `lyra-tour-end` detail. Cancelable (except in
|
|
299
|
+
* practice for `'unmount'`) -- mirrors `LyraDialog.close(reason)` exactly. */
|
|
300
|
+
end(reason = 'api') {
|
|
301
|
+
if (!this.open)
|
|
302
|
+
return;
|
|
303
|
+
const event = this.emit('lyra-tour-end', reason, { cancelable: true });
|
|
304
|
+
if (event.defaultPrevented)
|
|
305
|
+
return;
|
|
306
|
+
this.open = false;
|
|
307
|
+
}
|
|
308
|
+
clampIndex(index) {
|
|
309
|
+
const total = this.steps.length;
|
|
310
|
+
if (total === 0)
|
|
311
|
+
return 0;
|
|
312
|
+
return Math.min(Math.max(index, 0), total - 1);
|
|
313
|
+
}
|
|
314
|
+
transitionTo(index, via) {
|
|
315
|
+
const previousIndex = this.activeIndex;
|
|
316
|
+
const step = this.steps[index];
|
|
317
|
+
if (!step)
|
|
318
|
+
return;
|
|
319
|
+
const event = this.emit('lyra-tour-step-change', { index, previousIndex, step, via }, { cancelable: true });
|
|
320
|
+
if (event.defaultPrevented)
|
|
321
|
+
return;
|
|
322
|
+
this.activeIndex = index;
|
|
323
|
+
}
|
|
324
|
+
resolveTarget(step) {
|
|
325
|
+
const { target } = step;
|
|
326
|
+
if (typeof target === 'string') {
|
|
327
|
+
return this.ownerDocument.querySelector(target);
|
|
328
|
+
}
|
|
329
|
+
if (typeof target === 'function') {
|
|
330
|
+
return target() ?? null;
|
|
331
|
+
}
|
|
332
|
+
return target.isConnected ? target : null;
|
|
333
|
+
}
|
|
334
|
+
// Resolves the active step's target, scrolls it into view, and (re)wires the shared
|
|
335
|
+
// positioner (`place()`) for the popover and `trackRect()` for the spotlight cutout/ring.
|
|
336
|
+
// Re-run on every step activation -- targets are never cached, per TourTarget's doc comment.
|
|
337
|
+
async activateStep() {
|
|
338
|
+
this.disposePositioning();
|
|
339
|
+
const step = this.steps[this.activeIndex];
|
|
340
|
+
if (!step)
|
|
341
|
+
return;
|
|
342
|
+
const stepId = step.id;
|
|
343
|
+
const target = this.resolveTarget(step);
|
|
344
|
+
if (!target) {
|
|
345
|
+
if (!this.unanchored)
|
|
346
|
+
this.unanchored = true;
|
|
347
|
+
this.emit('lyra-tour-target-missing', { index: this.activeIndex, step });
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
if (this.unanchored) {
|
|
351
|
+
this.unanchored = false;
|
|
352
|
+
await this.updateComplete;
|
|
353
|
+
// The active step may have changed again while this render was pending.
|
|
354
|
+
if (this.steps[this.activeIndex]?.id !== stepId)
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
const popover = this.renderRoot.querySelector('[part="popover"]');
|
|
358
|
+
if (!popover)
|
|
359
|
+
return;
|
|
360
|
+
target.scrollIntoView({
|
|
361
|
+
block: 'center',
|
|
362
|
+
inline: 'nearest',
|
|
363
|
+
behavior: prefersReducedMotion() ? 'auto' : 'smooth',
|
|
364
|
+
});
|
|
365
|
+
const placement = rtlAwarePlacement(step.placement ?? this.placement, this);
|
|
366
|
+
this.placeCleanup = place(target, popover, { placement, offset: this.distance });
|
|
367
|
+
const padding = step.spotlightPadding ?? this.spotlightPadding;
|
|
368
|
+
const interactive = !!step.interactiveTarget;
|
|
369
|
+
this.spotlightCleanup = trackRect(target, (rect) => this.paintSpotlight(rect, padding, interactive));
|
|
370
|
+
}
|
|
371
|
+
paintSpotlight(rect, padding, interactive) {
|
|
372
|
+
const x = rect.left - padding;
|
|
373
|
+
const y = rect.top - padding;
|
|
374
|
+
const width = Math.max(0, rect.width + padding * 2);
|
|
375
|
+
const height = Math.max(0, rect.height + padding * 2);
|
|
376
|
+
const backdrop = this.renderRoot.querySelector('[part="backdrop"]');
|
|
377
|
+
const cutout = this.renderRoot.querySelector('[part="backdrop"] .cutout');
|
|
378
|
+
const spotlight = this.renderRoot.querySelector('[part="spotlight"]');
|
|
379
|
+
if (cutout) {
|
|
380
|
+
cutout.setAttribute('x', String(x));
|
|
381
|
+
cutout.setAttribute('y', String(y));
|
|
382
|
+
cutout.setAttribute('width', String(width));
|
|
383
|
+
cutout.setAttribute('height', String(height));
|
|
384
|
+
}
|
|
385
|
+
if (spotlight) {
|
|
386
|
+
spotlight.style.left = `${x}px`;
|
|
387
|
+
spotlight.style.top = `${y}px`;
|
|
388
|
+
spotlight.style.width = `${width}px`;
|
|
389
|
+
spotlight.style.height = `${height}px`;
|
|
390
|
+
}
|
|
391
|
+
if (backdrop) {
|
|
392
|
+
backdrop.style.clipPath = interactive ? keyholeClipPath(x, y, width, height) : '';
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
disposePositioning() {
|
|
396
|
+
this.placeCleanup?.();
|
|
397
|
+
this.placeCleanup = undefined;
|
|
398
|
+
this.spotlightCleanup?.();
|
|
399
|
+
this.spotlightCleanup = undefined;
|
|
400
|
+
}
|
|
401
|
+
activateOverlayInternal() {
|
|
402
|
+
if (this.overlay?.isActive())
|
|
403
|
+
return;
|
|
404
|
+
this.releaseScrollLock ??= lockScroll(this.ownerDocument);
|
|
405
|
+
this.overlay = activateOverlay({
|
|
406
|
+
host: this,
|
|
407
|
+
panel: () => this.shadowRoot?.querySelector('[part="popover"]') ?? null,
|
|
408
|
+
onEscape: () => this.end('escape'),
|
|
409
|
+
onBackdrop: () => this.end('skip'),
|
|
410
|
+
preferredInitialFocus: () => this.renderRoot.querySelector('[part="popover"]'),
|
|
411
|
+
modal: false,
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
deactivateOverlayInternal() {
|
|
415
|
+
this.disposePositioning();
|
|
416
|
+
this.releaseScrollLock?.();
|
|
417
|
+
this.releaseScrollLock = undefined;
|
|
418
|
+
this.overlay?.deactivate();
|
|
419
|
+
this.overlay = undefined;
|
|
420
|
+
}
|
|
421
|
+
render() {
|
|
422
|
+
const step = this.open ? this.steps[this.activeIndex] : undefined;
|
|
423
|
+
if (!step)
|
|
424
|
+
return html ``;
|
|
425
|
+
const total = this.steps.length;
|
|
426
|
+
const isLastStep = this.activeIndex >= total - 1;
|
|
427
|
+
const hasBodyContent = this.hasSlotContent || !!step.content;
|
|
428
|
+
const describedBy = [hasBodyContent ? this.bodyId : '', this.showProgress ? this.progressTextId : '']
|
|
429
|
+
.filter((id) => id.length > 0)
|
|
430
|
+
.join(' ');
|
|
431
|
+
return html `
|
|
432
|
+
<svg part="backdrop" aria-hidden="true" @click=${this.onBackdropClick}>
|
|
433
|
+
${this.unanchored
|
|
434
|
+
? html `<rect class="scrim" x="0" y="0" width="100%" height="100%"></rect>`
|
|
435
|
+
: html `
|
|
436
|
+
<defs>
|
|
437
|
+
<mask id=${this.maskId}>
|
|
438
|
+
<rect x="0" y="0" width="100%" height="100%" fill="white"></rect>
|
|
439
|
+
<rect class="cutout" x="0" y="0" width="0" height="0" fill="black"></rect>
|
|
440
|
+
</mask>
|
|
441
|
+
</defs>
|
|
442
|
+
<rect class="scrim" x="0" y="0" width="100%" height="100%" mask="url(#${this.maskId})"></rect>
|
|
443
|
+
`}
|
|
444
|
+
</svg>
|
|
445
|
+
<div part="spotlight" aria-hidden="true" ?hidden=${this.unanchored}></div>
|
|
446
|
+
${keyed(step.id, html `
|
|
447
|
+
<div
|
|
448
|
+
part="popover"
|
|
449
|
+
role="dialog"
|
|
450
|
+
aria-modal="true"
|
|
451
|
+
tabindex="-1"
|
|
452
|
+
aria-label=${this.accessibleLabel ?? nothing}
|
|
453
|
+
aria-labelledby=${this.accessibleLabel ? nothing : this.headingId}
|
|
454
|
+
aria-describedby=${describedBy || nothing}
|
|
455
|
+
?data-unanchored=${this.unanchored}
|
|
456
|
+
@keydown=${this.onPopoverKeyDown}
|
|
457
|
+
>
|
|
458
|
+
<span id=${this.headingId} part="heading">${step.heading}</span>
|
|
459
|
+
<div id=${this.bodyId} part="body">
|
|
460
|
+
<slot @slotchange=${this.onDefaultSlotChange}>${step.content ?? ''}</slot>
|
|
461
|
+
</div>
|
|
462
|
+
${this.showProgress
|
|
463
|
+
? html `
|
|
464
|
+
<div part="progress">
|
|
465
|
+
<span part="progress-text" id=${this.progressTextId}>
|
|
466
|
+
${this.localize('tourStepOf', undefined, { current: this.activeIndex + 1, total })}
|
|
467
|
+
</span>
|
|
468
|
+
<span class="dots">
|
|
469
|
+
${this.steps.map((_s, index) => html `<span part="progress-dot" aria-hidden="true" ?data-current=${index === this.activeIndex}></span>`)}
|
|
470
|
+
</span>
|
|
471
|
+
</div>
|
|
472
|
+
`
|
|
473
|
+
: nothing}
|
|
474
|
+
<div part="footer">
|
|
475
|
+
${!step.hidePrevious
|
|
476
|
+
? html `
|
|
477
|
+
<button
|
|
478
|
+
part="previous-button"
|
|
479
|
+
type="button"
|
|
480
|
+
?disabled=${this.activeIndex === 0}
|
|
481
|
+
@click=${this.back}
|
|
482
|
+
>
|
|
483
|
+
${this.localize('previous')}
|
|
484
|
+
</button>
|
|
485
|
+
`
|
|
486
|
+
: nothing}
|
|
487
|
+
<button part="skip-button" type="button" @click=${this.skip}>${this.localize('tourSkip')}</button>
|
|
488
|
+
<button part="next-button" type="button" @click=${this.next}>
|
|
489
|
+
${this.localize(isLastStep ? 'tourDone' : 'next')}
|
|
490
|
+
</button>
|
|
491
|
+
</div>
|
|
492
|
+
</div>
|
|
493
|
+
`)}
|
|
494
|
+
`;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
__decorate([
|
|
498
|
+
property({ type: Boolean, reflect: true })
|
|
499
|
+
], LyraTour.prototype, "open", void 0);
|
|
500
|
+
__decorate([
|
|
501
|
+
property({ attribute: false })
|
|
502
|
+
], LyraTour.prototype, "steps", void 0);
|
|
503
|
+
__decorate([
|
|
504
|
+
property({ type: Number, reflect: true, attribute: 'active-index' })
|
|
505
|
+
], LyraTour.prototype, "activeIndex", void 0);
|
|
506
|
+
__decorate([
|
|
507
|
+
property({ reflect: true })
|
|
508
|
+
], LyraTour.prototype, "placement", void 0);
|
|
509
|
+
__decorate([
|
|
510
|
+
property({ type: Number })
|
|
511
|
+
], LyraTour.prototype, "distance", void 0);
|
|
512
|
+
__decorate([
|
|
513
|
+
property({ type: Number, attribute: 'spotlight-padding' })
|
|
514
|
+
], LyraTour.prototype, "spotlightPadding", void 0);
|
|
515
|
+
__decorate([
|
|
516
|
+
property({ type: Boolean, attribute: 'light-dismiss' })
|
|
517
|
+
], LyraTour.prototype, "lightDismiss", void 0);
|
|
518
|
+
__decorate([
|
|
519
|
+
property({ type: Boolean, attribute: 'show-progress' })
|
|
520
|
+
], LyraTour.prototype, "showProgress", void 0);
|
|
521
|
+
__decorate([
|
|
522
|
+
property({ attribute: 'aria-label' })
|
|
523
|
+
], LyraTour.prototype, "accessibleLabel", void 0);
|
|
524
|
+
__decorate([
|
|
525
|
+
state()
|
|
526
|
+
], LyraTour.prototype, "unanchored", void 0);
|
|
527
|
+
__decorate([
|
|
528
|
+
state()
|
|
529
|
+
], LyraTour.prototype, "hasSlotContent", void 0);
|
|
530
|
+
//# sourceMappingURL=tour.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tour.class.js","sourceRoot":"","sources":["../../../src/components/tour/tour.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tour.d.ts","sourceRoot":"","sources":["../../../src/components/tour/tour.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tour.js","sourceRoot":"","sources":["../../../src/components/tour/tour.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tour.styles.d.ts","sourceRoot":"","sources":["../../../src/components/tour/tour.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAkKlB,CAAC"}
|