@aceshooting/lyra-ui 3.5.0 → 3.6.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 +110 -2
- package/custom-elements.json +48093 -40204
- 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/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/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 +1 -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/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 +20 -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 +11 -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 +33 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +22 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +90 -0
- package/llms.txt +3 -0
- package/package.json +43 -6
- package/vscode-css-data.json +719 -0
- package/vscode-html-data.json +10579 -0
- package/web-types.json +12161 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
/** Curated preset catalog for the `name` property. `slide-in-start`/`slide-in-end`/
|
|
4
|
+
* `slide-out-start`/`slide-out-end` are resolved separately (see `slidePreset()`)
|
|
5
|
+
* because they depend on the element's inherited text direction. */
|
|
6
|
+
export type LyraAnimationPreset = 'none' | 'fade-in' | 'fade-out' | 'zoom-in' | 'zoom-out' | 'slide-in-start' | 'slide-in-end' | 'slide-out-start' | 'slide-out-end' | 'slide-in-up' | 'slide-in-down' | 'bounce' | 'pulse' | 'spin' | 'shake';
|
|
7
|
+
/** Ties `duration`/`easing` to the shared `--lyra-transition-*` tokens instead of
|
|
8
|
+
* the raw numeric properties. `'custom'` (the default) leaves `duration`/`easing`
|
|
9
|
+
* fully consumer-controlled. */
|
|
10
|
+
export type LyraAnimationTimingPreset = 'custom' | 'fast' | 'base' | 'ambient';
|
|
11
|
+
export interface LyraAnimationEventMap {
|
|
12
|
+
'lyra-start': CustomEvent<undefined>;
|
|
13
|
+
'lyra-finish': CustomEvent<undefined>;
|
|
14
|
+
'lyra-cancel': CustomEvent<undefined>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* `<lyra-animation>` declaratively animates its single slotted child through the
|
|
18
|
+
* native Web Animations API: a small curated preset catalog (`name`) or fully
|
|
19
|
+
* custom `keyframes`, explicit WAAPI timing controls, an optional
|
|
20
|
+
* `playOnVisible` trigger, and a `lyra-start`/`lyra-finish`/`lyra-cancel` event
|
|
21
|
+
* contract.
|
|
22
|
+
*
|
|
23
|
+
* `keyframes`, when set, always wins over `name`. The `iterations` default is
|
|
24
|
+
* `Infinity` (mirrors the upstream Web Awesome/Shoelace animation contract
|
|
25
|
+
* verbatim) -- a named preset plays forever unless the consumer sets
|
|
26
|
+
* `iterations="1"`.
|
|
27
|
+
*
|
|
28
|
+
* `direction` is the Web Animations API's `PlaybackDirection`
|
|
29
|
+
* (`'normal' | 'reverse' | 'alternate' | 'alternate-reverse'`) and is entirely
|
|
30
|
+
* unrelated to text direction. Only the `slide-in-start`/`slide-in-end`/
|
|
31
|
+
* `slide-out-start`/`slide-out-end` presets read the inherited text direction
|
|
32
|
+
* (`effectiveDirection`) to resolve which physical edge "start"/"end" means,
|
|
33
|
+
* and they do so fresh every time the animation is (re)built -- an animation
|
|
34
|
+
* already mid-flight is not retroactively re-mirrored if an ancestor `dir`
|
|
35
|
+
* flips while it plays; the next rebuild picks up the change.
|
|
36
|
+
*
|
|
37
|
+
* `respectReducedMotion` (default `true`) caps playback to one iteration and
|
|
38
|
+
* calls `finish()` immediately instead of playing, whenever the OS/browser
|
|
39
|
+
* reports `prefers-reduced-motion: reduce` -- the target snaps straight to
|
|
40
|
+
* its resolved end state, and `lyra-start`/`lyra-finish` still fire in order
|
|
41
|
+
* so a consumer sequencing further UI off those events keeps working even
|
|
42
|
+
* though nothing visibly interpolated. Set `respectReducedMotion="false"`
|
|
43
|
+
* only for genuine user-triggered feedback (e.g. a drag-confirm snap-back)
|
|
44
|
+
* where a silent jump would be more confusing than a fast real animation --
|
|
45
|
+
* ambient/decorative animation should always leave this at its default.
|
|
46
|
+
*
|
|
47
|
+
* `timingPreset` (default `'custom'`) optionally derives `duration`/`easing`
|
|
48
|
+
* from the shared `--lyra-transition-fast`/`-base`/`-ambient` tokens instead
|
|
49
|
+
* of the raw `duration`/`easing` property values, so an app's global motion
|
|
50
|
+
* retiming reaches this component's animations too.
|
|
51
|
+
*
|
|
52
|
+
* @customElement lyra-animation
|
|
53
|
+
* @slot - The element to animate. A second slotted element is accepted without error but ignored.
|
|
54
|
+
* @event lyra-start - A new animation was created and playback began or restarted.
|
|
55
|
+
* @event lyra-finish - The animation reached its natural end, including the reduced-motion instant-finish path.
|
|
56
|
+
* @event lyra-cancel - The animation was canceled via the public `cancel()` method or external cancellation.
|
|
57
|
+
* @cssprop [--lyra-animation-slide-distance=100%] - Travel distance for the slide-in/slide-out/slide-in-up/slide-in-down presets.
|
|
58
|
+
* @cssprop [--lyra-animation-zoom-scale=0.5] - Starting/ending scale factor for the zoom-in/zoom-out presets.
|
|
59
|
+
* @cssprop [--lyra-animation-bounce-height=25%] - Peak lift height of the bounce preset.
|
|
60
|
+
* @cssprop [--lyra-animation-shake-distance=4%] - Horizontal travel of the shake preset.
|
|
61
|
+
*/
|
|
62
|
+
export declare class LyraAnimation extends LyraElement<LyraAnimationEventMap> {
|
|
63
|
+
static styles: import("lit").CSSResultGroup[];
|
|
64
|
+
name: LyraAnimationPreset;
|
|
65
|
+
keyframes: Keyframe[] | undefined;
|
|
66
|
+
play: boolean;
|
|
67
|
+
delay: number;
|
|
68
|
+
direction: PlaybackDirection;
|
|
69
|
+
duration: number;
|
|
70
|
+
easing: string;
|
|
71
|
+
endDelay: number;
|
|
72
|
+
fill: FillMode;
|
|
73
|
+
iterations: number;
|
|
74
|
+
iterationStart: number;
|
|
75
|
+
playbackRate: number;
|
|
76
|
+
timingPreset: LyraAnimationTimingPreset;
|
|
77
|
+
respectReducedMotion: boolean;
|
|
78
|
+
playOnVisible: boolean;
|
|
79
|
+
playOnVisibleRepeat: boolean;
|
|
80
|
+
rootMargin: string;
|
|
81
|
+
threshold: number | number[];
|
|
82
|
+
root: Element | null;
|
|
83
|
+
private animation?;
|
|
84
|
+
private hasStarted;
|
|
85
|
+
private visibilityObserver?;
|
|
86
|
+
private motionQuery?;
|
|
87
|
+
connectedCallback(): void;
|
|
88
|
+
disconnectedCallback(): void;
|
|
89
|
+
private onMotionPreferenceChange;
|
|
90
|
+
protected updated(changed: PropertyValues): void;
|
|
91
|
+
private onSlotChange;
|
|
92
|
+
private currentTarget;
|
|
93
|
+
private resolveKeyframes;
|
|
94
|
+
private syncVisibilityObserver;
|
|
95
|
+
private destroyAnimation;
|
|
96
|
+
private createAnimation;
|
|
97
|
+
private applyPlayState;
|
|
98
|
+
private onAnimationFinish;
|
|
99
|
+
private onAnimationCancel;
|
|
100
|
+
get currentTime(): number;
|
|
101
|
+
set currentTime(value: number);
|
|
102
|
+
/** Convenience sugar for `this.play = true`. Named `start()`, not `play()`,
|
|
103
|
+
* because `play` is already a reactive boolean property on this class and a
|
|
104
|
+
* method cannot share that identifier. */
|
|
105
|
+
start(): void;
|
|
106
|
+
/** Convenience sugar for `this.play = false`. */
|
|
107
|
+
pause(): void;
|
|
108
|
+
/** Forwards to the underlying `Animation.cancel()`. Fires `lyra-cancel`. */
|
|
109
|
+
cancel(): void;
|
|
110
|
+
/** Forwards to the underlying `Animation.finish()`. */
|
|
111
|
+
finish(): void;
|
|
112
|
+
render(): TemplateResult;
|
|
113
|
+
}
|
|
114
|
+
declare global {
|
|
115
|
+
interface HTMLElementTagNameMap {
|
|
116
|
+
'lyra-animation': LyraAnimation;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=animation.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.class.d.ts","sourceRoot":"","sources":["../../../src/components/animation/animation.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D;;oEAEoE;AACpE,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,eAAe,GACf,QAAQ,GACR,OAAO,GACP,MAAM,GACN,OAAO,CAAC;AAEZ;;gCAEgC;AAChC,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACvC;AAgFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,aAAc,SAAQ,WAAW,CAAC,qBAAqB,CAAC;IACnE,MAAM,CAAC,MAAM,iCAAgC;IAEjC,IAAI,EAAE,mBAAmB,CAAU;IACf,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAa;IAClC,IAAI,UAAS;IAC7B,KAAK,SAAK;IAC1B,SAAS,EAAE,iBAAiB,CAAY;IACxB,QAAQ,SAAQ;IAChC,MAAM,SAAY;IACsB,QAAQ,SAAK;IACrD,IAAI,EAAE,QAAQ,CAAU;IACR,UAAU,SAAY;IACQ,cAAc,SAAK;IACrB,YAAY,SAAK;IAChB,YAAY,EAAE,yBAAyB,CAAY;IAC3B,oBAAoB,UAAQ;IACnC,aAAa,UAAS;IACf,mBAAmB,UAAS;IACrE,UAAU,SAAS;IAC3B,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;IACjC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE5D,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,WAAW,CAAC,CAAiB;IAErC,iBAAiB,IAAI,IAAI,CAQxB;IAED,oBAAoB,IAAI,IAAI,CAO3B;IAKD,OAAO,CAAC,wBAAwB,CAAsC;IAEtE,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAqB/C;IAED,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,sBAAsB,CA4B5B;IAWF,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe,CA6BrB;IAQF,OAAO,CAAC,cAAc,CAWpB;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAE5B;IAED;;8CAE0C;IAC1C,KAAK,IAAI,IAAI,CAEZ;IAED,iDAAiD;IACjD,KAAK,IAAI,IAAI,CAEZ;IAED,4EAA4E;IAC5E,MAAM,IAAI,IAAI,CAEb;IAED,uDAAuD;IACvD,MAAM,IAAI,IAAI,CAEb;IAED,MAAM,IAAI,cAAc,CAEvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
|
|
@@ -0,0 +1,420 @@
|
|
|
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 } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import { prefersReducedMotion } from '../../internal/motion.js';
|
|
11
|
+
import { styles } from './animation.styles.js';
|
|
12
|
+
const PRESETS = {
|
|
13
|
+
'fade-in': [{ opacity: 0 }, { opacity: 1 }],
|
|
14
|
+
'fade-out': [{ opacity: 1 }, { opacity: 0 }],
|
|
15
|
+
'zoom-in': [
|
|
16
|
+
{ opacity: 0, transform: 'scale(var(--lyra-animation-zoom-scale, 0.5))' },
|
|
17
|
+
{ opacity: 1, transform: 'scale(1)' },
|
|
18
|
+
],
|
|
19
|
+
'zoom-out': [
|
|
20
|
+
{ opacity: 1, transform: 'scale(1)' },
|
|
21
|
+
{ opacity: 0, transform: 'scale(var(--lyra-animation-zoom-scale, 0.5))' },
|
|
22
|
+
],
|
|
23
|
+
'slide-in-up': [
|
|
24
|
+
{ transform: 'translateY(var(--lyra-animation-slide-distance, 100%))', opacity: 0 },
|
|
25
|
+
{ transform: 'translateY(0)', opacity: 1 },
|
|
26
|
+
],
|
|
27
|
+
'slide-in-down': [
|
|
28
|
+
{ transform: 'translateY(calc(-1 * var(--lyra-animation-slide-distance, 100%)))', opacity: 0 },
|
|
29
|
+
{ transform: 'translateY(0)', opacity: 1 },
|
|
30
|
+
],
|
|
31
|
+
bounce: [
|
|
32
|
+
{ transform: 'translateY(0)', offset: 0 },
|
|
33
|
+
{ transform: 'translateY(calc(-1 * var(--lyra-animation-bounce-height, 25%)))', offset: 0.4 },
|
|
34
|
+
{ transform: 'translateY(0)', offset: 0.7 },
|
|
35
|
+
{ transform: 'translateY(calc(-0.4 * var(--lyra-animation-bounce-height, 25%)))', offset: 0.85 },
|
|
36
|
+
{ transform: 'translateY(0)', offset: 1 },
|
|
37
|
+
],
|
|
38
|
+
pulse: [
|
|
39
|
+
{ transform: 'scale(1)', opacity: 1, offset: 0 },
|
|
40
|
+
{ transform: 'scale(0.92)', opacity: 0.75, offset: 0.5 },
|
|
41
|
+
{ transform: 'scale(1)', opacity: 1, offset: 1 },
|
|
42
|
+
],
|
|
43
|
+
spin: [{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }],
|
|
44
|
+
shake: [
|
|
45
|
+
{ transform: 'translateX(0)', offset: 0 },
|
|
46
|
+
{ transform: 'translateX(calc(-1 * var(--lyra-animation-shake-distance, 4%)))', offset: 0.2 },
|
|
47
|
+
{ transform: 'translateX(var(--lyra-animation-shake-distance, 4%))', offset: 0.4 },
|
|
48
|
+
{ transform: 'translateX(calc(-1 * var(--lyra-animation-shake-distance, 4%)))', offset: 0.6 },
|
|
49
|
+
{ transform: 'translateX(var(--lyra-animation-shake-distance, 4%))', offset: 0.8 },
|
|
50
|
+
{ transform: 'translateX(0)', offset: 1 },
|
|
51
|
+
],
|
|
52
|
+
};
|
|
53
|
+
/** Builds the RTL-aware slide keyframes for `slide-in-start`/`slide-in-end`/
|
|
54
|
+
* `slide-out-start`/`slide-out-end`. "start"/"end" are logical edges: under
|
|
55
|
+
* `ltr` the start edge is physically left and the end edge is physically
|
|
56
|
+
* right; under `rtl` that's reversed. */
|
|
57
|
+
function slidePreset(edge, mode, dir) {
|
|
58
|
+
const negative = dir === 'ltr' ? edge === 'start' : edge === 'end';
|
|
59
|
+
const offscreen = `translateX(${negative ? 'calc(-1 * var(--lyra-animation-slide-distance, 100%))' : 'var(--lyra-animation-slide-distance, 100%)'})`;
|
|
60
|
+
const onscreen = 'translateX(0)';
|
|
61
|
+
return mode === 'in'
|
|
62
|
+
? [
|
|
63
|
+
{ transform: offscreen, opacity: 0 },
|
|
64
|
+
{ transform: onscreen, opacity: 1 },
|
|
65
|
+
]
|
|
66
|
+
: [
|
|
67
|
+
{ transform: onscreen, opacity: 1 },
|
|
68
|
+
{ transform: offscreen, opacity: 0 },
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
const DIRECTIONAL_SLIDE_NAMES = new Set(['slide-in-start', 'slide-in-end', 'slide-out-start', 'slide-out-end']);
|
|
72
|
+
/** Reads and decomposes a compound `--lyra-transition-*` token (e.g. `"180ms ease-out"`)
|
|
73
|
+
* into the plain numeric `duration`/string `easing` pair the Web Animations API needs --
|
|
74
|
+
* WAAPI's numeric timing options cannot take a `var()` reference the way a CSS `transform`
|
|
75
|
+
* string can. Resolves against fully computed style, so a theme override that itself uses
|
|
76
|
+
* `var()` internally never leaks unresolved text into `easing`. */
|
|
77
|
+
function resolveTimingToken(el, preset) {
|
|
78
|
+
const raw = getComputedStyle(el).getPropertyValue(`--lyra-transition-${preset}`).trim();
|
|
79
|
+
const match = /^([\d.]+)(ms|s)\s+(.+)$/.exec(raw);
|
|
80
|
+
if (!match)
|
|
81
|
+
return { duration: 1000, easing: 'linear' };
|
|
82
|
+
const [, num, unit, easing] = match;
|
|
83
|
+
return { duration: unit === 's' ? parseFloat(num) * 1000 : parseFloat(num), easing: easing.trim() };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* `<lyra-animation>` declaratively animates its single slotted child through the
|
|
87
|
+
* native Web Animations API: a small curated preset catalog (`name`) or fully
|
|
88
|
+
* custom `keyframes`, explicit WAAPI timing controls, an optional
|
|
89
|
+
* `playOnVisible` trigger, and a `lyra-start`/`lyra-finish`/`lyra-cancel` event
|
|
90
|
+
* contract.
|
|
91
|
+
*
|
|
92
|
+
* `keyframes`, when set, always wins over `name`. The `iterations` default is
|
|
93
|
+
* `Infinity` (mirrors the upstream Web Awesome/Shoelace animation contract
|
|
94
|
+
* verbatim) -- a named preset plays forever unless the consumer sets
|
|
95
|
+
* `iterations="1"`.
|
|
96
|
+
*
|
|
97
|
+
* `direction` is the Web Animations API's `PlaybackDirection`
|
|
98
|
+
* (`'normal' | 'reverse' | 'alternate' | 'alternate-reverse'`) and is entirely
|
|
99
|
+
* unrelated to text direction. Only the `slide-in-start`/`slide-in-end`/
|
|
100
|
+
* `slide-out-start`/`slide-out-end` presets read the inherited text direction
|
|
101
|
+
* (`effectiveDirection`) to resolve which physical edge "start"/"end" means,
|
|
102
|
+
* and they do so fresh every time the animation is (re)built -- an animation
|
|
103
|
+
* already mid-flight is not retroactively re-mirrored if an ancestor `dir`
|
|
104
|
+
* flips while it plays; the next rebuild picks up the change.
|
|
105
|
+
*
|
|
106
|
+
* `respectReducedMotion` (default `true`) caps playback to one iteration and
|
|
107
|
+
* calls `finish()` immediately instead of playing, whenever the OS/browser
|
|
108
|
+
* reports `prefers-reduced-motion: reduce` -- the target snaps straight to
|
|
109
|
+
* its resolved end state, and `lyra-start`/`lyra-finish` still fire in order
|
|
110
|
+
* so a consumer sequencing further UI off those events keeps working even
|
|
111
|
+
* though nothing visibly interpolated. Set `respectReducedMotion="false"`
|
|
112
|
+
* only for genuine user-triggered feedback (e.g. a drag-confirm snap-back)
|
|
113
|
+
* where a silent jump would be more confusing than a fast real animation --
|
|
114
|
+
* ambient/decorative animation should always leave this at its default.
|
|
115
|
+
*
|
|
116
|
+
* `timingPreset` (default `'custom'`) optionally derives `duration`/`easing`
|
|
117
|
+
* from the shared `--lyra-transition-fast`/`-base`/`-ambient` tokens instead
|
|
118
|
+
* of the raw `duration`/`easing` property values, so an app's global motion
|
|
119
|
+
* retiming reaches this component's animations too.
|
|
120
|
+
*
|
|
121
|
+
* @customElement lyra-animation
|
|
122
|
+
* @slot - The element to animate. A second slotted element is accepted without error but ignored.
|
|
123
|
+
* @event lyra-start - A new animation was created and playback began or restarted.
|
|
124
|
+
* @event lyra-finish - The animation reached its natural end, including the reduced-motion instant-finish path.
|
|
125
|
+
* @event lyra-cancel - The animation was canceled via the public `cancel()` method or external cancellation.
|
|
126
|
+
* @cssprop [--lyra-animation-slide-distance=100%] - Travel distance for the slide-in/slide-out/slide-in-up/slide-in-down presets.
|
|
127
|
+
* @cssprop [--lyra-animation-zoom-scale=0.5] - Starting/ending scale factor for the zoom-in/zoom-out presets.
|
|
128
|
+
* @cssprop [--lyra-animation-bounce-height=25%] - Peak lift height of the bounce preset.
|
|
129
|
+
* @cssprop [--lyra-animation-shake-distance=4%] - Horizontal travel of the shake preset.
|
|
130
|
+
*/
|
|
131
|
+
export class LyraAnimation extends LyraElement {
|
|
132
|
+
constructor() {
|
|
133
|
+
super(...arguments);
|
|
134
|
+
this.name = 'none';
|
|
135
|
+
this.keyframes = undefined;
|
|
136
|
+
this.play = false;
|
|
137
|
+
this.delay = 0;
|
|
138
|
+
this.direction = 'normal';
|
|
139
|
+
this.duration = 1000;
|
|
140
|
+
this.easing = 'linear';
|
|
141
|
+
this.endDelay = 0;
|
|
142
|
+
this.fill = 'auto';
|
|
143
|
+
this.iterations = Infinity;
|
|
144
|
+
this.iterationStart = 0;
|
|
145
|
+
this.playbackRate = 1;
|
|
146
|
+
this.timingPreset = 'custom';
|
|
147
|
+
this.respectReducedMotion = true;
|
|
148
|
+
this.playOnVisible = false;
|
|
149
|
+
this.playOnVisibleRepeat = false;
|
|
150
|
+
this.rootMargin = '0px';
|
|
151
|
+
this.threshold = 0;
|
|
152
|
+
this.root = null;
|
|
153
|
+
this.hasStarted = false;
|
|
154
|
+
// A live external event (the OS/browser toggling its reduced-motion
|
|
155
|
+
// setting), not a construction-order concern -- rebuild directly rather
|
|
156
|
+
// than routing through scheduleAfterUpdate.
|
|
157
|
+
this.onMotionPreferenceChange = () => this.createAnimation();
|
|
158
|
+
this.onSlotChange = () => {
|
|
159
|
+
this.createAnimation();
|
|
160
|
+
this.syncVisibilityObserver();
|
|
161
|
+
};
|
|
162
|
+
this.syncVisibilityObserver = () => {
|
|
163
|
+
this.visibilityObserver?.disconnect();
|
|
164
|
+
this.visibilityObserver = undefined;
|
|
165
|
+
if (!this.playOnVisible)
|
|
166
|
+
return;
|
|
167
|
+
const target = this.currentTarget();
|
|
168
|
+
if (!target)
|
|
169
|
+
return;
|
|
170
|
+
if (typeof IntersectionObserver === 'undefined') {
|
|
171
|
+
// No observer support in this environment -- fail open and just play.
|
|
172
|
+
this.play = true;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
this.visibilityObserver = new IntersectionObserver((entries) => {
|
|
176
|
+
const entry = entries[entries.length - 1];
|
|
177
|
+
if (!entry)
|
|
178
|
+
return;
|
|
179
|
+
if (entry.isIntersecting) {
|
|
180
|
+
this.play = true;
|
|
181
|
+
if (!this.playOnVisibleRepeat) {
|
|
182
|
+
this.visibilityObserver?.disconnect();
|
|
183
|
+
this.visibilityObserver = undefined;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else if (this.playOnVisibleRepeat) {
|
|
187
|
+
this.play = false;
|
|
188
|
+
}
|
|
189
|
+
}, { root: this.root instanceof Element ? this.root : null, rootMargin: this.rootMargin, threshold: this.threshold });
|
|
190
|
+
this.visibilityObserver.observe(target);
|
|
191
|
+
};
|
|
192
|
+
this.createAnimation = () => {
|
|
193
|
+
this.destroyAnimation();
|
|
194
|
+
const target = this.currentTarget();
|
|
195
|
+
const keyframes = this.resolveKeyframes();
|
|
196
|
+
if (!target || !keyframes)
|
|
197
|
+
return;
|
|
198
|
+
const reduced = this.respectReducedMotion && prefersReducedMotion();
|
|
199
|
+
const { duration, easing } = this.timingPreset === 'custom' ? { duration: this.duration, easing: this.easing } : resolveTimingToken(this, this.timingPreset);
|
|
200
|
+
const options = {
|
|
201
|
+
delay: this.delay,
|
|
202
|
+
direction: this.direction,
|
|
203
|
+
duration,
|
|
204
|
+
easing,
|
|
205
|
+
endDelay: this.endDelay,
|
|
206
|
+
fill: this.fill,
|
|
207
|
+
iterationStart: this.iterationStart,
|
|
208
|
+
iterations: reduced ? Math.min(this.iterations, 1) : this.iterations,
|
|
209
|
+
};
|
|
210
|
+
this.animation = target.animate(keyframes, options);
|
|
211
|
+
this.animation.playbackRate = this.playbackRate;
|
|
212
|
+
this.animation.addEventListener('cancel', this.onAnimationCancel);
|
|
213
|
+
this.animation.addEventListener('finish', this.onAnimationFinish);
|
|
214
|
+
if (this.play) {
|
|
215
|
+
this.hasStarted = true;
|
|
216
|
+
this.emit('lyra-start');
|
|
217
|
+
if (reduced)
|
|
218
|
+
this.animation.finish();
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
this.animation.pause();
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
// Guards against double-emitting lyra-start when both a rebuild-triggering
|
|
225
|
+
// property and `play` change in the same update batch (e.g. the element's
|
|
226
|
+
// very first update, where every property is "changed"): createAnimation()
|
|
227
|
+
// already handles the emit and sets hasStarted in that case, so this path
|
|
228
|
+
// (only reached when a rebuild did NOT also happen) never runs redundantly
|
|
229
|
+
// for that same transition.
|
|
230
|
+
this.applyPlayState = () => {
|
|
231
|
+
if (!this.animation)
|
|
232
|
+
return;
|
|
233
|
+
if (this.play) {
|
|
234
|
+
if (!this.hasStarted) {
|
|
235
|
+
this.hasStarted = true;
|
|
236
|
+
this.emit('lyra-start');
|
|
237
|
+
}
|
|
238
|
+
this.animation.play();
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
this.animation.pause();
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
this.onAnimationFinish = () => {
|
|
245
|
+
this.play = false;
|
|
246
|
+
this.hasStarted = false;
|
|
247
|
+
this.emit('lyra-finish');
|
|
248
|
+
};
|
|
249
|
+
this.onAnimationCancel = () => {
|
|
250
|
+
this.play = false;
|
|
251
|
+
this.hasStarted = false;
|
|
252
|
+
this.emit('lyra-cancel');
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
256
|
+
connectedCallback() {
|
|
257
|
+
super.connectedCallback();
|
|
258
|
+
this.motionQuery = typeof matchMedia === 'function' ? matchMedia('(prefers-reduced-motion: reduce)') : undefined;
|
|
259
|
+
this.motionQuery?.addEventListener('change', this.onMotionPreferenceChange);
|
|
260
|
+
this.scheduleAfterUpdate(() => {
|
|
261
|
+
this.createAnimation();
|
|
262
|
+
this.syncVisibilityObserver();
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
disconnectedCallback() {
|
|
266
|
+
this.destroyAnimation();
|
|
267
|
+
this.visibilityObserver?.disconnect();
|
|
268
|
+
this.visibilityObserver = undefined;
|
|
269
|
+
this.motionQuery?.removeEventListener('change', this.onMotionPreferenceChange);
|
|
270
|
+
this.motionQuery = undefined;
|
|
271
|
+
super.disconnectedCallback();
|
|
272
|
+
}
|
|
273
|
+
updated(changed) {
|
|
274
|
+
const rebuildKeys = [
|
|
275
|
+
'name',
|
|
276
|
+
'keyframes',
|
|
277
|
+
'delay',
|
|
278
|
+
'direction',
|
|
279
|
+
'duration',
|
|
280
|
+
'easing',
|
|
281
|
+
'endDelay',
|
|
282
|
+
'fill',
|
|
283
|
+
'iterations',
|
|
284
|
+
'iterationStart',
|
|
285
|
+
'timingPreset',
|
|
286
|
+
'respectReducedMotion',
|
|
287
|
+
];
|
|
288
|
+
if (rebuildKeys.some((key) => changed.has(key)))
|
|
289
|
+
this.createAnimation();
|
|
290
|
+
else if (changed.has('play'))
|
|
291
|
+
this.applyPlayState();
|
|
292
|
+
if (changed.has('playbackRate') && this.animation)
|
|
293
|
+
this.animation.playbackRate = this.playbackRate;
|
|
294
|
+
if (['playOnVisible', 'playOnVisibleRepeat', 'rootMargin', 'threshold', 'root'].some((key) => changed.has(key))) {
|
|
295
|
+
this.scheduleAfterUpdate(this.syncVisibilityObserver);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
currentTarget() {
|
|
299
|
+
const slot = this.renderRoot.querySelector('slot');
|
|
300
|
+
const [first] = slot?.assignedElements({ flatten: true }) ?? [];
|
|
301
|
+
return first instanceof HTMLElement ? first : undefined;
|
|
302
|
+
}
|
|
303
|
+
resolveKeyframes() {
|
|
304
|
+
if (this.keyframes)
|
|
305
|
+
return this.keyframes;
|
|
306
|
+
const { name } = this;
|
|
307
|
+
if (name === 'none')
|
|
308
|
+
return undefined;
|
|
309
|
+
if (DIRECTIONAL_SLIDE_NAMES.has(name)) {
|
|
310
|
+
const mode = name.startsWith('slide-in-') ? 'in' : 'out';
|
|
311
|
+
const edge = name.endsWith('-start') ? 'start' : 'end';
|
|
312
|
+
return slidePreset(edge, mode, this.effectiveDirection);
|
|
313
|
+
}
|
|
314
|
+
return PRESETS[name];
|
|
315
|
+
}
|
|
316
|
+
// Listeners are removed before `.cancel()` is called, not after. This
|
|
317
|
+
// method runs at the top of every createAnimation() rebuild (e.g. the
|
|
318
|
+
// consumer changed `duration` while playing) and in disconnectedCallback.
|
|
319
|
+
// Calling `.cancel()` while the `cancel` listener is still attached would
|
|
320
|
+
// spuriously fire the public `lyra-cancel` event and reset `play` back to
|
|
321
|
+
// `false` on every routine property change -- breaking the "lyra-start
|
|
322
|
+
// fires again on restart" contract. The public `cancel()` method below is
|
|
323
|
+
// a deliberately separate path that does NOT call this, so the native
|
|
324
|
+
// `cancel` event is allowed through to `lyra-cancel` on purpose.
|
|
325
|
+
destroyAnimation() {
|
|
326
|
+
if (!this.animation)
|
|
327
|
+
return;
|
|
328
|
+
this.animation.removeEventListener('cancel', this.onAnimationCancel);
|
|
329
|
+
this.animation.removeEventListener('finish', this.onAnimationFinish);
|
|
330
|
+
this.animation.cancel();
|
|
331
|
+
this.animation = undefined;
|
|
332
|
+
this.hasStarted = false;
|
|
333
|
+
}
|
|
334
|
+
get currentTime() {
|
|
335
|
+
return this.animation?.currentTime ?? 0;
|
|
336
|
+
}
|
|
337
|
+
set currentTime(value) {
|
|
338
|
+
if (this.animation)
|
|
339
|
+
this.animation.currentTime = value;
|
|
340
|
+
}
|
|
341
|
+
/** Convenience sugar for `this.play = true`. Named `start()`, not `play()`,
|
|
342
|
+
* because `play` is already a reactive boolean property on this class and a
|
|
343
|
+
* method cannot share that identifier. */
|
|
344
|
+
start() {
|
|
345
|
+
this.play = true;
|
|
346
|
+
}
|
|
347
|
+
/** Convenience sugar for `this.play = false`. */
|
|
348
|
+
pause() {
|
|
349
|
+
this.play = false;
|
|
350
|
+
}
|
|
351
|
+
/** Forwards to the underlying `Animation.cancel()`. Fires `lyra-cancel`. */
|
|
352
|
+
cancel() {
|
|
353
|
+
this.animation?.cancel();
|
|
354
|
+
}
|
|
355
|
+
/** Forwards to the underlying `Animation.finish()`. */
|
|
356
|
+
finish() {
|
|
357
|
+
this.animation?.finish();
|
|
358
|
+
}
|
|
359
|
+
render() {
|
|
360
|
+
return html `<slot @slotchange=${this.onSlotChange}></slot>`;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
__decorate([
|
|
364
|
+
property()
|
|
365
|
+
], LyraAnimation.prototype, "name", void 0);
|
|
366
|
+
__decorate([
|
|
367
|
+
property({ attribute: false })
|
|
368
|
+
], LyraAnimation.prototype, "keyframes", void 0);
|
|
369
|
+
__decorate([
|
|
370
|
+
property({ type: Boolean, reflect: true })
|
|
371
|
+
], LyraAnimation.prototype, "play", void 0);
|
|
372
|
+
__decorate([
|
|
373
|
+
property({ type: Number })
|
|
374
|
+
], LyraAnimation.prototype, "delay", void 0);
|
|
375
|
+
__decorate([
|
|
376
|
+
property()
|
|
377
|
+
], LyraAnimation.prototype, "direction", void 0);
|
|
378
|
+
__decorate([
|
|
379
|
+
property({ type: Number })
|
|
380
|
+
], LyraAnimation.prototype, "duration", void 0);
|
|
381
|
+
__decorate([
|
|
382
|
+
property()
|
|
383
|
+
], LyraAnimation.prototype, "easing", void 0);
|
|
384
|
+
__decorate([
|
|
385
|
+
property({ type: Number, attribute: 'end-delay' })
|
|
386
|
+
], LyraAnimation.prototype, "endDelay", void 0);
|
|
387
|
+
__decorate([
|
|
388
|
+
property()
|
|
389
|
+
], LyraAnimation.prototype, "fill", void 0);
|
|
390
|
+
__decorate([
|
|
391
|
+
property({ type: Number })
|
|
392
|
+
], LyraAnimation.prototype, "iterations", void 0);
|
|
393
|
+
__decorate([
|
|
394
|
+
property({ type: Number, attribute: 'iteration-start' })
|
|
395
|
+
], LyraAnimation.prototype, "iterationStart", void 0);
|
|
396
|
+
__decorate([
|
|
397
|
+
property({ type: Number, attribute: 'playback-rate' })
|
|
398
|
+
], LyraAnimation.prototype, "playbackRate", void 0);
|
|
399
|
+
__decorate([
|
|
400
|
+
property({ attribute: 'timing-preset', reflect: true })
|
|
401
|
+
], LyraAnimation.prototype, "timingPreset", void 0);
|
|
402
|
+
__decorate([
|
|
403
|
+
property({ type: Boolean, attribute: 'respect-reduced-motion', reflect: true })
|
|
404
|
+
], LyraAnimation.prototype, "respectReducedMotion", void 0);
|
|
405
|
+
__decorate([
|
|
406
|
+
property({ type: Boolean, attribute: 'play-on-visible', reflect: true })
|
|
407
|
+
], LyraAnimation.prototype, "playOnVisible", void 0);
|
|
408
|
+
__decorate([
|
|
409
|
+
property({ type: Boolean, attribute: 'play-on-visible-repeat', reflect: true })
|
|
410
|
+
], LyraAnimation.prototype, "playOnVisibleRepeat", void 0);
|
|
411
|
+
__decorate([
|
|
412
|
+
property({ attribute: 'root-margin' })
|
|
413
|
+
], LyraAnimation.prototype, "rootMargin", void 0);
|
|
414
|
+
__decorate([
|
|
415
|
+
property({ attribute: false })
|
|
416
|
+
], LyraAnimation.prototype, "threshold", void 0);
|
|
417
|
+
__decorate([
|
|
418
|
+
property({ attribute: false })
|
|
419
|
+
], LyraAnimation.prototype, "root", void 0);
|
|
420
|
+
//# sourceMappingURL=animation.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.class.js","sourceRoot":"","sources":["../../../src/components/animation/animation.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../src/components/animation/animation.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.js","sourceRoot":"","sources":["../../../src/components/animation/animation.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.styles.d.ts","sourceRoot":"","sources":["../../../src/components/animation/animation.styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,yBAQlB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
// This component has no CSS `animation:`/`transition:` declaration of its
|
|
3
|
+
// own to disable under `@media (prefers-reduced-motion: reduce)` -- the
|
|
4
|
+
// element being animated is light-DOM slotted content driven imperatively
|
|
5
|
+
// via `Element.animate()`, which the shared reduced-motion block in
|
|
6
|
+
// `tokens.styles.ts` (scoped to shadow-DOM descendants of `:host`) never
|
|
7
|
+
// reaches. All reduced-motion handling for this component lives in JS, in
|
|
8
|
+
// `animation.class.ts`'s `createAnimation()`. Do not add a media block here.
|
|
9
|
+
export const styles = css `
|
|
10
|
+
:host {
|
|
11
|
+
display: contents;
|
|
12
|
+
--lyra-animation-slide-distance: 100%;
|
|
13
|
+
--lyra-animation-zoom-scale: 0.5;
|
|
14
|
+
--lyra-animation-bounce-height: 25%;
|
|
15
|
+
--lyra-animation-shake-distance: 4%;
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
//# sourceMappingURL=animation.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.styles.js","sourceRoot":"","sources":["../../../src/components/animation/animation.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,oEAAoE;AACpE,yEAAyE;AACzE,0EAA0E;AAC1E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;CAQxB,CAAC"}
|