motionary 7.8.0 → 8.0.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/CHANGELOG.md +34 -0
- package/README.md +1 -1
- package/README_ja.md +1 -1
- package/README_zh.md +1 -1
- package/bin/usa-codemod-8.mjs +74 -0
- package/dist/chunks/{audio-DcPvT2Kh.js → audio-CynhhWDi.js} +3 -3
- package/dist/chunks/{audio-DcPvT2Kh.js.map → audio-CynhhWDi.js.map} +1 -1
- package/dist/chunks/{audio-EXUoijsG.cjs → audio-cgWbDkoY.cjs} +3 -3
- package/dist/chunks/{audio-EXUoijsG.cjs.map → audio-cgWbDkoY.cjs.map} +1 -1
- package/dist/chunks/{base-2-yYc93C.js → base-CLuqlLfG.js} +63 -6
- package/dist/chunks/base-CLuqlLfG.js.map +1 -0
- package/dist/chunks/{base-BaQV-2ha.cjs → base-DoRUZBy-.cjs} +66 -5
- package/dist/chunks/base-DoRUZBy-.cjs.map +1 -0
- package/dist/chunks/{builtins-HlqAkK0f.js → builtins-Bs4smevg.js} +3 -3
- package/dist/chunks/{builtins-HlqAkK0f.js.map → builtins-Bs4smevg.js.map} +1 -1
- package/dist/chunks/{builtins-xalxV2d5.cjs → builtins-ClXshqj-.cjs} +3 -3
- package/dist/chunks/{builtins-xalxV2d5.cjs.map → builtins-ClXshqj-.cjs.map} +1 -1
- package/dist/chunks/{core-DuO-AVXL.js → core-C3Taz-ew.js} +2 -2
- package/dist/chunks/{core-DuO-AVXL.js.map → core-C3Taz-ew.js.map} +1 -1
- package/dist/chunks/{core-D5rU0CV6.js → core-CiN5sqxB.js} +2 -2
- package/dist/chunks/{core-D5rU0CV6.js.map → core-CiN5sqxB.js.map} +1 -1
- package/dist/chunks/{core-BGAyaY6L.cjs → core-CwO835Wm.cjs} +2 -2
- package/dist/chunks/{core-BGAyaY6L.cjs.map → core-CwO835Wm.cjs.map} +1 -1
- package/dist/chunks/{core-zq17EeCI.cjs → core-O4grKHSa.cjs} +2 -2
- package/dist/chunks/{core-zq17EeCI.cjs.map → core-O4grKHSa.cjs.map} +1 -1
- package/dist/chunks/{fx-lBGVtQO1.cjs → fx-C-XjLOTc.cjs} +2 -2
- package/dist/chunks/{fx-lBGVtQO1.cjs.map → fx-C-XjLOTc.cjs.map} +1 -1
- package/dist/chunks/{fx-CMxWNwH8.js → fx-CQv3IxMf.js} +2 -2
- package/dist/chunks/{fx-CMxWNwH8.js.map → fx-CQv3IxMf.js.map} +1 -1
- package/dist/chunks/{gpu-DLPghVWr.js → gpu-CB8frFOD.js} +2 -2
- package/dist/chunks/{gpu-DLPghVWr.js.map → gpu-CB8frFOD.js.map} +1 -1
- package/dist/chunks/{gpu-Dx0H875w.cjs → gpu-CcdA2D2i.cjs} +2 -2
- package/dist/chunks/{gpu-Dx0H875w.cjs.map → gpu-CcdA2D2i.cjs.map} +1 -1
- package/dist/chunks/{index-tags-C04JP8g4.js → index-tags-B-JBecYg.js} +2 -2
- package/dist/chunks/index-tags-B-JBecYg.js.map +1 -0
- package/dist/chunks/{index-tags-BTMwrfgV.cjs → index-tags-hLIF2Clq.cjs} +2 -2
- package/dist/chunks/index-tags-hLIF2Clq.cjs.map +1 -0
- package/dist/chunks/{player-PS6_FzNw.cjs → player-C2n17sdH.cjs} +4 -4
- package/dist/chunks/{player-PS6_FzNw.cjs.map → player-C2n17sdH.cjs.map} +1 -1
- package/dist/chunks/{player-DxvCYo7Q.js → player-YzQGkKaW.js} +4 -4
- package/dist/chunks/{player-DxvCYo7Q.js.map → player-YzQGkKaW.js.map} +1 -1
- package/dist/chunks/{registry-DehBVRDV.cjs → registry-BVklOepd.cjs} +2 -2
- package/dist/chunks/{registry-DehBVRDV.cjs.map → registry-BVklOepd.cjs.map} +1 -1
- package/dist/chunks/{registry-CyKExAmE.js → registry-CnO7ZVPK.js} +2 -2
- package/dist/chunks/{registry-CyKExAmE.js.map → registry-CnO7ZVPK.js.map} +1 -1
- package/dist/chunks/{spring-BK8DiezC.js → spring-BFKNHmfl.js} +2 -2
- package/dist/chunks/{spring-BK8DiezC.js.map → spring-BFKNHmfl.js.map} +1 -1
- package/dist/chunks/{spring-Dgx187Vh.cjs → spring-uQMVJTj9.cjs} +2 -2
- package/dist/chunks/{spring-Dgx187Vh.cjs.map → spring-uQMVJTj9.cjs.map} +1 -1
- package/dist/chunks/{variants-BQ6bhzn4.js → variants-B-zKORvt.js} +2 -2
- package/dist/chunks/{variants-BQ6bhzn4.js.map → variants-B-zKORvt.js.map} +1 -1
- package/dist/chunks/{variants-BhjyddG8.cjs → variants-DagykrKH.cjs} +2 -2
- package/dist/chunks/{variants-BhjyddG8.cjs.map → variants-DagykrKH.cjs.map} +1 -1
- package/dist/components/a11y.cjs +2 -2
- package/dist/components/a11y.d.cts +1 -1
- package/dist/components/a11y.d.ts +1 -1
- package/dist/components/a11y.js +3 -3
- package/dist/components/angular.cjs +9 -9
- package/dist/components/angular.d.cts +2 -14
- package/dist/components/angular.d.ts +2 -14
- package/dist/components/angular.js +9 -9
- package/dist/components/background.cjs +2 -2
- package/dist/components/background.js +2 -2
- package/dist/components/bridge.cjs +1 -1
- package/dist/components/bridge.js +1 -1
- package/dist/components/cards.cjs +2 -2
- package/dist/components/cards.js +2 -2
- package/dist/components/click.cjs +3 -3
- package/dist/components/click.js +3 -3
- package/dist/components/depth.cjs +3 -3
- package/dist/components/depth.js +3 -3
- package/dist/components/effects.cjs +7 -7
- package/dist/components/effects.js +9 -9
- package/dist/components/engine.cjs +266 -0
- package/dist/components/engine.cjs.map +1 -0
- package/dist/components/engine.d.cts +105 -0
- package/dist/components/engine.d.ts +105 -0
- package/dist/components/engine.js +255 -0
- package/dist/components/engine.js.map +1 -0
- package/dist/components/feedback.cjs +1 -1
- package/dist/components/feedback.js +1 -1
- package/dist/components/fx-3d.cjs +2 -2
- package/dist/components/fx-3d.js +2 -2
- package/dist/components/fx-ai.cjs +2 -2
- package/dist/components/fx-ai.js +2 -2
- package/dist/components/fx-chart.cjs +2 -2
- package/dist/components/fx-chart.js +2 -2
- package/dist/components/fx-focus.cjs +2 -2
- package/dist/components/fx-focus.js +2 -2
- package/dist/components/fx-form.cjs +2 -2
- package/dist/components/fx-form.js +2 -2
- package/dist/components/fx-game.cjs +2 -2
- package/dist/components/fx-game.js +2 -2
- package/dist/components/fx-geo.cjs +2 -2
- package/dist/components/fx-geo.js +2 -2
- package/dist/components/fx-gpu.cjs +3 -3
- package/dist/components/fx-gpu.js +3 -3
- package/dist/components/fx-light.cjs +2 -2
- package/dist/components/fx-light.js +2 -2
- package/dist/components/fx-morph.cjs +2 -2
- package/dist/components/fx-morph.js +2 -2
- package/dist/components/fx-music.cjs +3 -3
- package/dist/components/fx-music.js +3 -3
- package/dist/components/fx-physics.cjs +2 -2
- package/dist/components/fx-physics.js +2 -2
- package/dist/components/fx-shop.cjs +2 -2
- package/dist/components/fx-shop.js +2 -2
- package/dist/components/fx-social.cjs +2 -2
- package/dist/components/fx-social.js +2 -2
- package/dist/components/fx-text.cjs +2 -2
- package/dist/components/fx-text.js +2 -2
- package/dist/components/fx-transitions.cjs +3 -3
- package/dist/components/fx-transitions.js +3 -3
- package/dist/components/fx-weather.cjs +2 -2
- package/dist/components/fx-weather.js +2 -2
- package/dist/components/fx.cjs +5 -5
- package/dist/components/fx.js +6 -6
- package/dist/components/fx2.cjs +4 -4
- package/dist/components/fx2.js +5 -5
- package/dist/components/gesture.cjs +3 -3
- package/dist/components/gesture.js +4 -4
- package/dist/components/interaction.cjs +1 -1
- package/dist/components/interaction.js +1 -1
- package/dist/components/jsx.d.cts +1 -1
- package/dist/components/jsx.d.ts +1 -1
- package/dist/components/layout.cjs +1 -1
- package/dist/components/layout.js +1 -1
- package/dist/components/lazy.cjs +1 -1
- package/dist/components/lazy.d.cts +1 -1
- package/dist/components/lazy.d.ts +1 -1
- package/dist/components/lazy.js +1 -1
- package/dist/components/lite.cjs +151 -205
- package/dist/components/lite.cjs.map +1 -1
- package/dist/components/lite.js +152 -205
- package/dist/components/lite.js.map +1 -1
- package/dist/components/marketplace.cjs +2 -2
- package/dist/components/marketplace.js +2 -2
- package/dist/components/packs.cjs +1 -1
- package/dist/components/packs.js +1 -1
- package/dist/components/page.cjs +2 -2
- package/dist/components/page.js +3 -3
- package/dist/components/perf.cjs +2 -2
- package/dist/components/perf.d.cts +1 -1
- package/dist/components/perf.d.ts +1 -1
- package/dist/components/perf.js +3 -3
- package/dist/components/physics.cjs +2 -2
- package/dist/components/physics.js +3 -3
- package/dist/components/react.cjs +1 -1
- package/dist/components/react.js +1 -1
- package/dist/components/reveal.cjs +1 -1
- package/dist/components/reveal.js +1 -1
- package/dist/components/solid.cjs +9 -9
- package/dist/components/solid.d.cts +2 -14
- package/dist/components/solid.d.ts +2 -14
- package/dist/components/solid.js +9 -9
- package/dist/components/svelte.cjs +9 -9
- package/dist/components/svelte.d.cts +2 -14
- package/dist/components/svelte.d.ts +2 -14
- package/dist/components/svelte.js +9 -9
- package/dist/components/svg.cjs +1 -1
- package/dist/components/svg.js +1 -1
- package/dist/components/text.cjs +2 -2
- package/dist/components/text.js +2 -2
- package/dist/components/timeline.cjs +2 -2
- package/dist/components/timeline.js +3 -3
- package/dist/components/transitions.cjs +1 -1
- package/dist/components/transitions.js +1 -1
- package/dist/components/ui.cjs +17 -107
- package/dist/components/ui.cjs.map +1 -1
- package/dist/components/ui.css +0 -1
- package/dist/components/ui.d.cts +3 -16
- package/dist/components/ui.d.ts +3 -16
- package/dist/components/ui.js +19 -108
- package/dist/components/ui.js.map +1 -1
- package/dist/components/vue.cjs +9 -9
- package/dist/components/vue.d.cts +2 -14
- package/dist/components/vue.d.ts +2 -14
- package/dist/components/vue.js +9 -9
- package/dist/components/webgl.cjs +1 -1
- package/dist/components/webgl.js +1 -1
- package/dist/components/widgets.cjs +585 -145
- package/dist/components/widgets.cjs.map +1 -1
- package/dist/components/widgets.d.cts +136 -3
- package/dist/components/widgets.d.ts +136 -3
- package/dist/components/widgets.js +579 -146
- package/dist/components/widgets.js.map +1 -1
- package/dist/components.cjs +9 -10
- package/dist/components.cjs.map +1 -1
- package/dist/components.css +0 -1
- package/dist/components.d.cts +4 -17
- package/dist/components.d.ts +4 -17
- package/dist/components.js +12 -12
- package/dist/components.umd.js +2 -2
- package/dist/components.umd.js.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/widgets.umd.js +1 -1
- package/dist/widgets.umd.js.map +1 -1
- package/docs/ROADMAP.md +14 -12
- package/docs/accessibility.md +1 -2
- package/docs/components.md +44 -1
- package/docs/deprecations.md +4 -0
- package/docs/upgrading-8.md +37 -0
- package/package.json +23 -2
- package/dist/chunks/base-2-yYc93C.js.map +0 -1
- package/dist/chunks/base-BaQV-2ha.cjs.map +0 -1
- package/dist/chunks/index-tags-BTMwrfgV.cjs.map +0 -1
- package/dist/chunks/index-tags-C04JP8g4.js.map +0 -1
|
@@ -10,7 +10,7 @@ const COMPONENT_CATEGORIES = {
|
|
|
10
10
|
physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],
|
|
11
11
|
cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],
|
|
12
12
|
click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],
|
|
13
|
-
ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-
|
|
13
|
+
ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],
|
|
14
14
|
page: ['usa-cursor', 'usa-fullpage', 'usa-loading-bar', 'usa-back-to-top', 'usa-ambient', 'usa-splash', 'usa-auto-skeleton', 'usa-motion-switch'],
|
|
15
15
|
timeline: ['usa-timeline'],
|
|
16
16
|
gesture: ['usa-swipeable', 'usa-pinch-zoom'],
|
|
@@ -23,4 +23,4 @@ const COMPONENT_CATEGORIES = {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { COMPONENT_CATEGORIES as C };
|
|
26
|
-
//# sourceMappingURL=index-tags-
|
|
26
|
+
//# sourceMappingURL=index-tags-B-JBecYg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-tags-B-JBecYg.js","sources":["../../src/components/index-tags.ts"],"sourcesContent":["// The component categories and their default tags (no imports: safe for lazy loaders).\n/** The component categories and their default tags. */\nexport const COMPONENT_CATEGORIES = {\n reveal: ['usa-reveal', 'usa-stagger', 'usa-scroll-progress', 'usa-scrolly'],\n text: ['usa-typewriter', 'usa-split-text', 'usa-scramble', 'usa-counter', 'usa-shimmer-text', 'usa-text-rotate', 'usa-wave-text', 'usa-glitch', 'usa-gradient-text', 'usa-handwriting', 'usa-scroll-highlight'],\n interaction: ['usa-ripple', 'usa-magnetic', 'usa-tilt', 'usa-spotlight', 'usa-press'],\n feedback: ['usa-spinner', 'usa-skeleton', 'usa-progress', 'usa-toaster', 'usa-check'],\n background: ['usa-aurora', 'usa-particles', 'usa-grain', 'usa-marquee', 'usa-acrylic', 'usa-grid-glow', 'usa-blobs', 'usa-water-ripple', 'usa-dot-network'],\n transitions: ['usa-dialog', 'usa-accordion', 'usa-view-switch'],\n physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],\n cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],\n click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],\n ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],\n page: ['usa-cursor', 'usa-fullpage', 'usa-loading-bar', 'usa-back-to-top', 'usa-ambient', 'usa-splash', 'usa-auto-skeleton', 'usa-motion-switch'],\n timeline: ['usa-timeline'],\n gesture: ['usa-swipeable', 'usa-pinch-zoom'],\n svg: ['usa-draw', 'usa-morph', 'usa-mask-reveal', 'usa-anim-icon'],\n webgl: ['usa-shader', 'usa-distort', 'usa-liquid', 'usa-post-fx'],\n depth: ['usa-cube', 'usa-depth'],\n layout: ['usa-auto-animate', 'usa-masonry'],\n packs: ['usa-pack'],\n fx: ['usa-fx'],\n} as const;\n\nexport type ComponentCategory = keyof typeof COMPONENT_CATEGORIES;\n"],"names":[],"mappings":"AAAA;AACA;AACO,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,CAAC;IAC3E,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;IAC/M,WAAW,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC;IACrF,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;AACrF,IAAA,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC3J,IAAA,WAAW,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,iBAAiB,CAAC;AAC/D,IAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC1D,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC5E,IAAA,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;IAC9G,EAAE,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC;AAC7J,IAAA,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;IACjJ,QAAQ,EAAE,CAAC,cAAc,CAAC;AAC1B,IAAA,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC5C,GAAG,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;IAClE,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC;AACjE,IAAA,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;AAChC,IAAA,MAAM,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAC3C,KAAK,EAAE,CAAC,UAAU,CAAC;IACnB,EAAE,EAAE,CAAC,QAAQ,CAAC;;;;;"}
|
|
@@ -12,7 +12,7 @@ const COMPONENT_CATEGORIES = {
|
|
|
12
12
|
physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],
|
|
13
13
|
cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],
|
|
14
14
|
click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],
|
|
15
|
-
ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-
|
|
15
|
+
ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],
|
|
16
16
|
page: ['usa-cursor', 'usa-fullpage', 'usa-loading-bar', 'usa-back-to-top', 'usa-ambient', 'usa-splash', 'usa-auto-skeleton', 'usa-motion-switch'],
|
|
17
17
|
timeline: ['usa-timeline'],
|
|
18
18
|
gesture: ['usa-swipeable', 'usa-pinch-zoom'],
|
|
@@ -25,4 +25,4 @@ const COMPONENT_CATEGORIES = {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.COMPONENT_CATEGORIES = COMPONENT_CATEGORIES;
|
|
28
|
-
//# sourceMappingURL=index-tags-
|
|
28
|
+
//# sourceMappingURL=index-tags-hLIF2Clq.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-tags-hLIF2Clq.cjs","sources":["../../src/components/index-tags.ts"],"sourcesContent":["// The component categories and their default tags (no imports: safe for lazy loaders).\n/** The component categories and their default tags. */\nexport const COMPONENT_CATEGORIES = {\n reveal: ['usa-reveal', 'usa-stagger', 'usa-scroll-progress', 'usa-scrolly'],\n text: ['usa-typewriter', 'usa-split-text', 'usa-scramble', 'usa-counter', 'usa-shimmer-text', 'usa-text-rotate', 'usa-wave-text', 'usa-glitch', 'usa-gradient-text', 'usa-handwriting', 'usa-scroll-highlight'],\n interaction: ['usa-ripple', 'usa-magnetic', 'usa-tilt', 'usa-spotlight', 'usa-press'],\n feedback: ['usa-spinner', 'usa-skeleton', 'usa-progress', 'usa-toaster', 'usa-check'],\n background: ['usa-aurora', 'usa-particles', 'usa-grain', 'usa-marquee', 'usa-acrylic', 'usa-grid-glow', 'usa-blobs', 'usa-water-ripple', 'usa-dot-network'],\n transitions: ['usa-dialog', 'usa-accordion', 'usa-view-switch'],\n physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],\n cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],\n click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],\n ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],\n page: ['usa-cursor', 'usa-fullpage', 'usa-loading-bar', 'usa-back-to-top', 'usa-ambient', 'usa-splash', 'usa-auto-skeleton', 'usa-motion-switch'],\n timeline: ['usa-timeline'],\n gesture: ['usa-swipeable', 'usa-pinch-zoom'],\n svg: ['usa-draw', 'usa-morph', 'usa-mask-reveal', 'usa-anim-icon'],\n webgl: ['usa-shader', 'usa-distort', 'usa-liquid', 'usa-post-fx'],\n depth: ['usa-cube', 'usa-depth'],\n layout: ['usa-auto-animate', 'usa-masonry'],\n packs: ['usa-pack'],\n fx: ['usa-fx'],\n} as const;\n\nexport type ComponentCategory = keyof typeof COMPONENT_CATEGORIES;\n"],"names":[],"mappings":";;AAAA;AACA;AACO,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,CAAC;IAC3E,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;IAC/M,WAAW,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC;IACrF,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;AACrF,IAAA,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC3J,IAAA,WAAW,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,iBAAiB,CAAC;AAC/D,IAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC1D,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC5E,IAAA,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;IAC9G,EAAE,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC;AAC7J,IAAA,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;IACjJ,QAAQ,EAAE,CAAC,cAAc,CAAC;AAC1B,IAAA,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC5C,GAAG,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;IAClE,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC;AACjE,IAAA,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;AAChC,IAAA,MAAM,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAC3C,KAAK,EAAE,CAAC,UAAU,CAAC;IACnB,EAAE,EAAE,CAAC,QAAQ,CAAC;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var registry = require('./registry-
|
|
4
|
-
var base = require('./base-
|
|
5
|
-
var core = require('./core-
|
|
3
|
+
var registry = require('./registry-BVklOepd.cjs');
|
|
4
|
+
var base = require('./base-DoRUZBy-.cjs');
|
|
5
|
+
var core = require('./core-CwO835Wm.cjs');
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* 5.4 — `<usa-story template="…">` scroll-storytelling templates.
|
|
@@ -522,4 +522,4 @@ exports.defineStory = defineStory;
|
|
|
522
522
|
exports.formatCount = formatCount;
|
|
523
523
|
exports.normalizeAnimation = normalizeAnimation;
|
|
524
524
|
exports.storyProgress = storyProgress;
|
|
525
|
-
//# sourceMappingURL=player-
|
|
525
|
+
//# sourceMappingURL=player-C2n17sdH.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-PS6_FzNw.cjs","sources":["../../src/components/effects/story.ts","../../src/components/effects/player.ts"],"sourcesContent":["/**\n * 5.4 — `<usa-story template=\"…\">` scroll-storytelling templates.\n *\n * - `pin` — a sticky `[data-stage]` while `[data-step]` sections scroll past; the\n * step in view gets `data-active`, the stage gets `data-active-step=\"<index>\"`.\n * - `gallery` — a horizontal `[data-track]` slides sideways as you scroll down.\n * - `zoom` — the `[data-stage]` zooms toward the viewer (`zoom=\"6\"`) and fades.\n * - `compare` — before / after (`[data-before]`, `[data-after]`) wipe driven by\n * scroll, plus a draggable, keyboard-accessible handle (`role=\"slider\"`).\n * - `counter` — `[data-count=\"1234\"]` numbers count up when they enter view.\n * - `highlight` — paragraphs dim except the one crossing the viewport center.\n *\n * Every template sets `--usa-story-progress` (0–1) on the host and dispatches\n * `usa-story-step` (`detail: { index }`). Reduced motion: no sliding / zooming\n * (the gallery stacks vertically), counters show final values, the rest is\n * class changes only.\n */\nimport { defineElement, type UsaElement } from '../base';\n\nexport const STORY_TEMPLATES = ['pin', 'gallery', 'zoom', 'compare', 'counter', 'highlight'] as const;\nexport type StoryTemplate = (typeof STORY_TEMPLATES)[number];\n\nexport interface UsaStoryElement extends UsaElement {\n /** Scroll progress through the story, 0–1. */\n readonly progress: number;\n /** Index of the active step (pin / highlight), or -1. */\n readonly step: number;\n}\n\nconst CSS = `usa-story{display:block;position:relative}\nusa-story[template=pin] [data-stage],usa-story[template=gallery] [data-sticky],usa-story[template=zoom] [data-stage],usa-story[template=compare] [data-sticky]{position:sticky;top:0}\nusa-story[template=pin] [data-stage]{align-self:start}\nusa-story[template=pin] [data-step]{min-height:80vh;opacity:.35;transition:opacity .3s}\nusa-story[template=pin] [data-step][data-active]{opacity:1}\nusa-story[template=gallery] [data-sticky]{height:100vh;overflow:hidden;display:flex;align-items:center}\nusa-story[template=gallery] [data-track]{display:flex;gap:24px;will-change:transform}\nusa-story[template=gallery][data-static] [data-sticky]{position:static;height:auto;overflow:visible}\nusa-story[template=gallery][data-static] [data-track]{flex-direction:column;transform:none!important}\nusa-story[template=zoom] [data-stage]{height:100vh;overflow:hidden;display:grid;place-items:center}\nusa-story[template=compare] [data-sticky]{height:var(--usa-story-h,70vh);overflow:hidden}\nusa-story[template=compare] [data-before],usa-story[template=compare] [data-after]{position:absolute;inset:0}\nusa-story[template=compare] [data-after]{clip-path:inset(0 0 0 var(--usa-split,50%))}\nusa-story [data-handle]{position:absolute;top:0;bottom:0;left:var(--usa-split,50%);width:4px;margin-left:-2px;background:#fff;box-shadow:0 0 0 1px #0003;cursor:ew-resize;touch-action:none}\nusa-story [data-handle]:focus-visible{outline:3px solid #7c5cff;outline-offset:2px}\nusa-story[template=highlight] p,usa-story[template=highlight] [data-step]{opacity:.3;transition:opacity .25s}\nusa-story[template=highlight] [data-active]{opacity:1}`;\n\nconst clamp = (v: number, a = 0, b = 1) => Math.min(b, Math.max(a, v));\n\n/** Progress of `el` through the viewport: 0 when its top hits the viewport top, 1 when its bottom hits the viewport bottom. */\nexport function storyProgress(el: Element, vh = typeof innerHeight === 'number' ? innerHeight : 800): number {\n const r = el.getBoundingClientRect();\n const span = r.height - vh;\n return span > 0 ? clamp(-r.top / span) : clamp((vh - r.top) / (vh + r.height));\n}\n\n/** Format a counted value like the target (`1,234`, `12.5`, prefix / suffix kept). */\nexport function formatCount(target: string, t: number): string {\n const m = target.match(/^(\\D*)([\\d,]*\\.?\\d+)(.*)$/);\n if (!m) return target;\n const [, pre, num, post] = m;\n const n = parseFloat(num.replace(/,/g, ''));\n const dec = (num.split('.')[1] || '').length;\n let s = (n * t).toFixed(dec);\n if (num.includes(',')) s = Number(s).toLocaleString('en-US', { minimumFractionDigits: dec, maximumFractionDigits: dec });\n return pre + s + post;\n}\n\nexport function defineStory(tag = 'usa-story'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaStory extends Base {\n static get observedAttributes(): string[] {\n return ['template', 'zoom'];\n }\n progress = 0;\n step = -1;\n private frame = 0;\n get template(): StoryTemplate {\n const t = this.str('template', 'pin') as StoryTemplate;\n return STORY_TEMPLATES.includes(t) ? t : 'pin';\n }\n private steps(): HTMLElement[] {\n const own = Array.from(this.querySelectorAll<HTMLElement>('[data-step]:not([data-stage])'));\n return own.length || this.template !== 'highlight' ? own : Array.from(this.querySelectorAll<HTMLElement>('p'));\n }\n private setStep(i: number): void {\n if (i === this.step) return;\n this.step = i;\n this.steps().forEach((s, k) => s.toggleAttribute('data-active', k === i));\n const stage = this.querySelector<HTMLElement>('[data-stage]');\n if (stage) stage.dataset.activeStep = String(i);\n this.dispatchEvent(new CustomEvent('usa-story-step', { detail: { index: i }, bubbles: true }));\n }\n /** Recompute from the current scroll position (called on scroll / resize). */\n update(): void {\n this.frame = 0;\n const p = (this.progress = storyProgress(this));\n this.style.setProperty('--usa-story-progress', p.toFixed(4));\n const t = this.template;\n const vh = innerHeight || 800;\n if (t === 'pin' || t === 'highlight') {\n const mid = vh / 2;\n let best = -1;\n let bestD = Infinity;\n this.steps().forEach((s, i) => {\n const r = s.getBoundingClientRect();\n const d = r.top <= mid && r.bottom >= mid ? 0 : Math.min(Math.abs(r.top - mid), Math.abs(r.bottom - mid));\n if (d < bestD) (bestD = d), (best = i);\n });\n this.setStep(best);\n } else if (t === 'gallery' && !this.reduced) {\n const track = this.querySelector<HTMLElement>('[data-track]');\n const box = this.querySelector<HTMLElement>('[data-sticky]');\n if (track && box) track.style.transform = `translateX(${(-p * Math.max(0, track.scrollWidth - box.clientWidth)).toFixed(1)}px)`;\n } else if (t === 'zoom' && !this.reduced) {\n const inner = this.querySelector<HTMLElement>('[data-stage] > *');\n if (inner) {\n inner.style.transform = `scale(${(1 + p * (this.num('zoom', 6) - 1)).toFixed(3)})`;\n inner.style.opacity = String(clamp(1.4 - p * 1.4).toFixed(3));\n }\n } else if (t === 'compare' && !this.hasAttribute('data-dragged')) {\n this.setSplit(p * 100);\n } else if (t === 'counter') {\n this.querySelectorAll<HTMLElement>('[data-count]:not([data-counted])').forEach((el) => {\n const r = el.getBoundingClientRect();\n if (r.top < vh * 0.9 && r.bottom > 0) this.count(el);\n });\n }\n }\n private setSplit(pct: number): void {\n const v = clamp(pct, 0, 100);\n this.style.setProperty('--usa-split', `${v.toFixed(2)}%`);\n const h = this.querySelector<HTMLElement>('[data-handle]');\n if (h) h.setAttribute('aria-valuenow', String(Math.round(v)));\n }\n private count(el: HTMLElement): void {\n el.dataset.counted = '';\n const target = el.dataset.count || el.textContent || '0';\n el.setAttribute('aria-label', target);\n if (this.reduced) {\n el.textContent = target;\n return;\n }\n const dur = Number(el.dataset.duration) || 1600;\n const t0 = performance.now();\n const tick = (now: number) => {\n const k = clamp((now - t0) / dur);\n el.textContent = formatCount(target, 1 - (1 - k) ** 3);\n if (k < 1) requestAnimationFrame(tick);\n };\n requestAnimationFrame(tick);\n }\n mount(): void {\n this.toggleAttribute('data-static', this.reduced);\n if (this.template === 'compare') this.mountCompare();\n const kick = () => {\n if (!this.frame) this.frame = requestAnimationFrame(() => this.update());\n };\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(this.frame));\n this.update();\n }\n private mountCompare(): void {\n const box = this.querySelector<HTMLElement>('[data-sticky]') || this;\n let h = this.querySelector<HTMLElement>('[data-handle]');\n if (!h) {\n h = document.createElement('div');\n h.setAttribute('data-handle', '');\n box.appendChild(h);\n this.onCleanup(() => h!.remove());\n }\n h.tabIndex = 0;\n h.setAttribute('role', 'slider');\n h.setAttribute('aria-label', this.str('label', 'Before / after'));\n h.setAttribute('aria-valuemin', '0');\n h.setAttribute('aria-valuemax', '100');\n const at = (e: PointerEvent) => {\n const r = box.getBoundingClientRect();\n this.dataset.dragged = '';\n this.setSplit(((e.clientX - r.left) / (r.width || 1)) * 100);\n };\n let drag = false;\n this.listen(h, 'pointerdown', (e: PointerEvent) => {\n drag = true;\n h!.setPointerCapture?.(e.pointerId);\n });\n this.listen(h, 'pointermove', (e: PointerEvent) => drag && at(e));\n this.listen(h, 'pointerup', () => (drag = false));\n this.listen(h, 'keydown', (e: KeyboardEvent) => {\n const cur = parseFloat(h!.getAttribute('aria-valuenow') || '50');\n const step = e.shiftKey ? 10 : 2;\n const next = e.key === 'ArrowLeft' || e.key === 'ArrowDown' ? cur - step : e.key === 'ArrowRight' || e.key === 'ArrowUp' ? cur + step : e.key === 'Home' ? 0 : e.key === 'End' ? 100 : null;\n if (next == null) return;\n e.preventDefault();\n this.dataset.dragged = '';\n this.setSplit(next);\n });\n this.setSplit(50);\n }\n unmount(): void {\n this.step = -1;\n delete this.dataset.dragged;\n }\n },\n { id: 'usa-story', text: CSS }\n );\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-story': UsaStoryElement;\n }\n}\n","/**\n * 5.9 — `<usa-player>`: plays JSON animations.\n *\n * Format `use-scroll-animate/animation` v1:\n *\n * ```json\n * { \"format\": \"use-scroll-animate/animation\", \"version\": 1, \"name\": \"Hero\",\n * \"loop\": false,\n * \"tracks\": [\n * { \"target\": \"h1\", \"start\": 0, \"duration\": 600, \"preset\": \"fade-up\" },\n * { \"target\": \".cta\", \"start\": 500, \"duration\": 500, \"keyframes\": [{ \"opacity\": 0 }, { \"opacity\": 1 }], \"easing\": \"ease-out\" },\n * { \"target\": \".cta\", \"start\": 1100, \"effect\": \"jelly\", \"options\": {} }\n * ] }\n * ```\n *\n * A track animates `target` (a selector inside the player; `:scope` for the\n * player itself) with a timeline preset, its own keyframes, or fires any\n * registered effect at `start`. Playground presets (format\n * `use-scroll-animate/playground`) are accepted too — their tracks map to the\n * player's children in order.\n *\n * Keyframe tracks are WAAPI animations driven by one clock, so the player can\n * play, pause, seek, change rate and be scrubbed by scroll\n * (`trigger=\"scroll\"`). Reduced motion: jumps to the end state, effects skipped.\n */\nimport { playEffect } from '../fx/registry';\nimport { defineElement, prefersReducedMotion, type UsaElement } from '../base';\nimport { TIMELINE_PRESETS } from '../timeline/core';\nimport { storyProgress } from './story';\n\nexport interface AnimationTrack {\n /** Selector inside the player (`:scope` = the player). */\n target?: string;\n /** Start time in ms. */\n start?: number;\n duration?: number;\n /** A timeline preset (`fade-up`, `scale`, `blur`…). */\n preset?: string;\n keyframes?: Keyframe[];\n easing?: string;\n /** A registered effect fired at `start` (instead of keyframes). */\n effect?: string;\n options?: Record<string, unknown>;\n label?: string;\n}\n\nexport interface AnimationJSON {\n format?: string;\n version?: number;\n name?: string;\n loop?: boolean;\n /** Total length; defaults to the end of the last track. */\n duration?: number;\n tracks: AnimationTrack[];\n}\n\nexport const ANIMATION_FORMAT = 'use-scroll-animate/animation';\n\nfunction decodePlayground(state: string): AnimationTrack[] {\n try {\n const b64 = state.replace(/-/g, '+').replace(/_/g, '/');\n const json = decodeURIComponent(escape(atob(b64)));\n const t = (JSON.parse(json).t || []) as [string, number, number, string][];\n return t.map(([preset, start, duration, label], i) => ({ target: `:scope > :nth-child(${i + 1})`, preset, start, duration, label }));\n } catch {\n return [];\n }\n}\n\n/** Validate / normalise an animation (object or JSON text). Throws on anything unusable. */\nexport function normalizeAnimation(input: string | AnimationJSON | Record<string, any>): Required<Pick<AnimationJSON, 'tracks' | 'duration' | 'loop' | 'name'>> {\n const d: any = typeof input === 'string' ? JSON.parse(input) : input;\n if (!d || typeof d !== 'object') throw new Error('[motionary] animation: expected an object');\n let tracks: AnimationTrack[];\n if (d.format === 'use-scroll-animate/playground') tracks = decodePlayground(String(d.state || ''));\n else if (Array.isArray(d.tracks)) tracks = d.tracks;\n else throw new Error('[motionary] animation: missing \"tracks\"');\n if (d.format && d.format !== ANIMATION_FORMAT && d.format !== 'use-scroll-animate/playground') throw new Error(`[motionary] animation: unknown format \"${d.format}\"`);\n if (d.version && d.version > 1 && d.format === ANIMATION_FORMAT) throw new Error(`[motionary] animation: version ${d.version} needs a newer motionary`);\n const out = tracks\n .filter((t) => t && (t.effect || t.preset || Array.isArray(t.keyframes)))\n .map((t) => ({ ...t, target: t.target || ':scope', start: Math.max(0, Number(t.start) || 0), duration: t.effect ? 0 : Math.max(1, Number(t.duration) || 600) }));\n const end = out.reduce((m, t) => Math.max(m, t.start + t.duration), 0);\n return { tracks: out, duration: Math.max(end, Number(d.duration) || 0), loop: !!d.loop, name: String(d.name || 'animation') };\n}\n\nexport interface Player {\n readonly duration: number;\n readonly currentTime: number;\n readonly playing: boolean;\n play(): void;\n pause(): void;\n /** Jump to `ms` (effects between are not replayed). */\n seek(ms: number): void;\n /** Playback rate (default 1). */\n rate: number;\n /** Resolves each time the animation reaches its end (not when looping). */\n readonly finished: Promise<void>;\n destroy(): void;\n}\n\nconst pick = (root: HTMLElement, sel: string): HTMLElement[] => {\n if (sel === ':scope') return [root];\n try {\n return Array.from(root.querySelectorAll<HTMLElement>(sel));\n } catch {\n return [];\n }\n};\n\n/** Bind an animation to `root` and return its controller (paused at 0 unless `autoplay`). */\nexport function createPlayer(root: HTMLElement, animation: string | AnimationJSON, o: { autoplay?: boolean; loop?: boolean; rate?: number; onFinish?: () => void } = {}): Player {\n const a = normalizeAnimation(animation);\n const loop = o.loop ?? a.loop;\n const anims: Animation[] = [];\n const effects: { els: HTMLElement[]; t: AnimationTrack; fired: boolean }[] = [];\n for (const t of a.tracks) {\n const els = pick(root, t.target!);\n if (t.effect) effects.push({ els, t, fired: false });\n else {\n const kf = t.keyframes || TIMELINE_PRESETS[t.preset!] || TIMELINE_PRESETS.fade;\n for (const el of els) {\n if (typeof el.animate !== 'function') continue;\n const an = el.animate(kf, { duration: t.duration, delay: t.start, easing: t.easing || 'cubic-bezier(0.22, 1, 0.36, 1)', fill: 'both' });\n an.pause();\n an.currentTime = 0;\n anims.push(an);\n }\n }\n }\n let time = 0;\n let playing = false;\n let raf = 0;\n let last = 0;\n let resolve!: () => void;\n let finished = new Promise<void>((r) => (resolve = r));\n const set = (ms: number) => {\n time = Math.min(a.duration, Math.max(0, ms));\n for (const an of anims) an.currentTime = time;\n };\n const fireDue = () => {\n if (prefersReducedMotion()) return;\n for (const e of effects)\n if (!e.fired && time >= e.t.start!) {\n e.fired = true;\n for (const el of e.els) playEffect(el, e.t.effect!, e.t.options || {}).catch(() => undefined);\n }\n };\n const done = () => {\n resolve();\n o.onFinish?.();\n finished = new Promise<void>((r) => (resolve = r));\n };\n const frame = (now: number) => {\n raf = 0;\n if (!playing) return;\n set(time + (now - last) * player.rate);\n last = now;\n fireDue();\n if (time >= a.duration) {\n if (loop) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n } else {\n playing = false;\n done();\n return;\n }\n }\n raf = requestAnimationFrame(frame);\n };\n const player: Player = {\n get duration() {\n return a.duration;\n },\n get currentTime() {\n return time;\n },\n get playing() {\n return playing;\n },\n rate: o.rate ?? 1,\n get finished() {\n return finished;\n },\n play() {\n if (prefersReducedMotion()) {\n set(a.duration);\n effects.forEach((e) => (e.fired = true));\n done();\n return;\n }\n if (playing) return;\n if (time >= a.duration) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n }\n playing = true;\n last = performance.now();\n fireDue();\n raf = requestAnimationFrame(frame);\n },\n pause() {\n playing = false;\n cancelAnimationFrame(raf);\n raf = 0;\n },\n seek(ms: number) {\n set(ms);\n effects.forEach((e) => (e.fired = e.t.start! < time));\n },\n destroy() {\n player.pause();\n anims.forEach((an) => an.cancel());\n },\n };\n if (o.autoplay) player.play();\n return player;\n}\n\nexport interface UsaPlayerElement extends UsaElement {\n readonly player: Player | null;\n /** Load an animation (object or JSON text) and restart. */\n load(animation: string | AnimationJSON): void;\n play(): void;\n pause(): void;\n seek(ms: number): void;\n}\n\n/**\n * `<usa-player src=\"hero.json\" | <script type=\"application/json\"> child\n * trigger=\"load | view | scroll | click | manual\" loop rate controls>`.\n * Emits `usa-player-ready` and `usa-player-finish`; sets `data-error` when the\n * animation cannot be loaded.\n */\nexport function definePlayer(tag = 'usa-player'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaPlayer extends Base {\n static get observedAttributes(): string[] {\n return ['src', 'trigger', 'loop', 'rate'];\n }\n player: Player | null = null;\n private json: string | AnimationJSON | null = null;\n load(animation: string | AnimationJSON): void {\n this.json = animation;\n this.start();\n }\n play(): void {\n this.player?.play();\n }\n pause(): void {\n this.player?.pause();\n }\n seek(ms: number): void {\n this.player?.seek(ms);\n }\n private start(): void {\n this.player?.destroy();\n this.player = null;\n if (!this.json) return;\n try {\n this.player = createPlayer(this, this.json, {\n loop: this.hasAttribute('loop') ? true : undefined,\n rate: this.num('rate', 1),\n onFinish: () => this.dispatchEvent(new CustomEvent('usa-player-finish', { bubbles: true })),\n });\n this.removeAttribute('data-error');\n } catch (err) {\n this.setAttribute('data-error', String((err as Error).message || err));\n return;\n }\n const p = this.player;\n this.dispatchEvent(new CustomEvent('usa-player-ready', { detail: { duration: p.duration }, bubbles: true }));\n const trig = this.str('trigger', 'view');\n if (trig === 'load') p.play();\n else if (trig === 'view') this.inView((v) => v && p.play(), { threshold: 0.25 });\n else if (trig === 'click') this.listen(this, 'click', () => (p.playing ? p.pause() : p.play()));\n else if (trig === 'scroll') {\n let f = 0;\n const upd = () => {\n f = 0;\n p.seek(storyProgress(this) * p.duration);\n };\n const kick = () => void (f ||= requestAnimationFrame(upd));\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(f));\n upd();\n }\n if (this.flag('controls')) this.mountControls(p);\n }\n private mountControls(p: Player): void {\n const b = document.createElement('button');\n b.type = 'button';\n b.setAttribute('data-player-toggle', '');\n b.textContent = '▶︎ / ❚❚';\n b.setAttribute('aria-label', 'Play / pause animation');\n this.listen(b, 'click', (e: Event) => {\n e.stopPropagation();\n if (p.playing) p.pause();\n else p.play();\n b.setAttribute('aria-pressed', String(p.playing));\n });\n this.append(b);\n this.onCleanup(() => b.remove());\n }\n changed(name: string): void {\n if (name === 'src') this.json = null;\n super.changed(name);\n }\n mount(): void {\n this.onCleanup(() => {\n this.player?.destroy();\n this.player = null;\n });\n const inline = this.querySelector<HTMLScriptElement>('script[type=\"application/json\"]');\n const src = this.str('src');\n if (inline && !this.json) this.json = inline.textContent || '';\n if (src && !this.json) {\n fetch(src)\n .then((r) => (r.ok ? r.text() : Promise.reject(new Error(`HTTP ${r.status}`))))\n .then((t) => this.isConnected && this.load(t))\n .catch((err) => this.setAttribute('data-error', String(err.message || err)));\n return;\n }\n this.start();\n }\n },\n { id: 'usa-player', text: 'usa-player{display:block;position:relative}usa-player>script{display:none}usa-player [data-player-toggle]{position:absolute;right:8px;bottom:8px}' }\n );\n}\n"],"names":["defineElement","TIMELINE_PRESETS","prefersReducedMotion","playEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"player-C2n17sdH.cjs","sources":["../../src/components/effects/story.ts","../../src/components/effects/player.ts"],"sourcesContent":["/**\n * 5.4 — `<usa-story template=\"…\">` scroll-storytelling templates.\n *\n * - `pin` — a sticky `[data-stage]` while `[data-step]` sections scroll past; the\n * step in view gets `data-active`, the stage gets `data-active-step=\"<index>\"`.\n * - `gallery` — a horizontal `[data-track]` slides sideways as you scroll down.\n * - `zoom` — the `[data-stage]` zooms toward the viewer (`zoom=\"6\"`) and fades.\n * - `compare` — before / after (`[data-before]`, `[data-after]`) wipe driven by\n * scroll, plus a draggable, keyboard-accessible handle (`role=\"slider\"`).\n * - `counter` — `[data-count=\"1234\"]` numbers count up when they enter view.\n * - `highlight` — paragraphs dim except the one crossing the viewport center.\n *\n * Every template sets `--usa-story-progress` (0–1) on the host and dispatches\n * `usa-story-step` (`detail: { index }`). Reduced motion: no sliding / zooming\n * (the gallery stacks vertically), counters show final values, the rest is\n * class changes only.\n */\nimport { defineElement, type UsaElement } from '../base';\n\nexport const STORY_TEMPLATES = ['pin', 'gallery', 'zoom', 'compare', 'counter', 'highlight'] as const;\nexport type StoryTemplate = (typeof STORY_TEMPLATES)[number];\n\nexport interface UsaStoryElement extends UsaElement {\n /** Scroll progress through the story, 0–1. */\n readonly progress: number;\n /** Index of the active step (pin / highlight), or -1. */\n readonly step: number;\n}\n\nconst CSS = `usa-story{display:block;position:relative}\nusa-story[template=pin] [data-stage],usa-story[template=gallery] [data-sticky],usa-story[template=zoom] [data-stage],usa-story[template=compare] [data-sticky]{position:sticky;top:0}\nusa-story[template=pin] [data-stage]{align-self:start}\nusa-story[template=pin] [data-step]{min-height:80vh;opacity:.35;transition:opacity .3s}\nusa-story[template=pin] [data-step][data-active]{opacity:1}\nusa-story[template=gallery] [data-sticky]{height:100vh;overflow:hidden;display:flex;align-items:center}\nusa-story[template=gallery] [data-track]{display:flex;gap:24px;will-change:transform}\nusa-story[template=gallery][data-static] [data-sticky]{position:static;height:auto;overflow:visible}\nusa-story[template=gallery][data-static] [data-track]{flex-direction:column;transform:none!important}\nusa-story[template=zoom] [data-stage]{height:100vh;overflow:hidden;display:grid;place-items:center}\nusa-story[template=compare] [data-sticky]{height:var(--usa-story-h,70vh);overflow:hidden}\nusa-story[template=compare] [data-before],usa-story[template=compare] [data-after]{position:absolute;inset:0}\nusa-story[template=compare] [data-after]{clip-path:inset(0 0 0 var(--usa-split,50%))}\nusa-story [data-handle]{position:absolute;top:0;bottom:0;left:var(--usa-split,50%);width:4px;margin-left:-2px;background:#fff;box-shadow:0 0 0 1px #0003;cursor:ew-resize;touch-action:none}\nusa-story [data-handle]:focus-visible{outline:3px solid #7c5cff;outline-offset:2px}\nusa-story[template=highlight] p,usa-story[template=highlight] [data-step]{opacity:.3;transition:opacity .25s}\nusa-story[template=highlight] [data-active]{opacity:1}`;\n\nconst clamp = (v: number, a = 0, b = 1) => Math.min(b, Math.max(a, v));\n\n/** Progress of `el` through the viewport: 0 when its top hits the viewport top, 1 when its bottom hits the viewport bottom. */\nexport function storyProgress(el: Element, vh = typeof innerHeight === 'number' ? innerHeight : 800): number {\n const r = el.getBoundingClientRect();\n const span = r.height - vh;\n return span > 0 ? clamp(-r.top / span) : clamp((vh - r.top) / (vh + r.height));\n}\n\n/** Format a counted value like the target (`1,234`, `12.5`, prefix / suffix kept). */\nexport function formatCount(target: string, t: number): string {\n const m = target.match(/^(\\D*)([\\d,]*\\.?\\d+)(.*)$/);\n if (!m) return target;\n const [, pre, num, post] = m;\n const n = parseFloat(num.replace(/,/g, ''));\n const dec = (num.split('.')[1] || '').length;\n let s = (n * t).toFixed(dec);\n if (num.includes(',')) s = Number(s).toLocaleString('en-US', { minimumFractionDigits: dec, maximumFractionDigits: dec });\n return pre + s + post;\n}\n\nexport function defineStory(tag = 'usa-story'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaStory extends Base {\n static get observedAttributes(): string[] {\n return ['template', 'zoom'];\n }\n progress = 0;\n step = -1;\n private frame = 0;\n get template(): StoryTemplate {\n const t = this.str('template', 'pin') as StoryTemplate;\n return STORY_TEMPLATES.includes(t) ? t : 'pin';\n }\n private steps(): HTMLElement[] {\n const own = Array.from(this.querySelectorAll<HTMLElement>('[data-step]:not([data-stage])'));\n return own.length || this.template !== 'highlight' ? own : Array.from(this.querySelectorAll<HTMLElement>('p'));\n }\n private setStep(i: number): void {\n if (i === this.step) return;\n this.step = i;\n this.steps().forEach((s, k) => s.toggleAttribute('data-active', k === i));\n const stage = this.querySelector<HTMLElement>('[data-stage]');\n if (stage) stage.dataset.activeStep = String(i);\n this.dispatchEvent(new CustomEvent('usa-story-step', { detail: { index: i }, bubbles: true }));\n }\n /** Recompute from the current scroll position (called on scroll / resize). */\n update(): void {\n this.frame = 0;\n const p = (this.progress = storyProgress(this));\n this.style.setProperty('--usa-story-progress', p.toFixed(4));\n const t = this.template;\n const vh = innerHeight || 800;\n if (t === 'pin' || t === 'highlight') {\n const mid = vh / 2;\n let best = -1;\n let bestD = Infinity;\n this.steps().forEach((s, i) => {\n const r = s.getBoundingClientRect();\n const d = r.top <= mid && r.bottom >= mid ? 0 : Math.min(Math.abs(r.top - mid), Math.abs(r.bottom - mid));\n if (d < bestD) (bestD = d), (best = i);\n });\n this.setStep(best);\n } else if (t === 'gallery' && !this.reduced) {\n const track = this.querySelector<HTMLElement>('[data-track]');\n const box = this.querySelector<HTMLElement>('[data-sticky]');\n if (track && box) track.style.transform = `translateX(${(-p * Math.max(0, track.scrollWidth - box.clientWidth)).toFixed(1)}px)`;\n } else if (t === 'zoom' && !this.reduced) {\n const inner = this.querySelector<HTMLElement>('[data-stage] > *');\n if (inner) {\n inner.style.transform = `scale(${(1 + p * (this.num('zoom', 6) - 1)).toFixed(3)})`;\n inner.style.opacity = String(clamp(1.4 - p * 1.4).toFixed(3));\n }\n } else if (t === 'compare' && !this.hasAttribute('data-dragged')) {\n this.setSplit(p * 100);\n } else if (t === 'counter') {\n this.querySelectorAll<HTMLElement>('[data-count]:not([data-counted])').forEach((el) => {\n const r = el.getBoundingClientRect();\n if (r.top < vh * 0.9 && r.bottom > 0) this.count(el);\n });\n }\n }\n private setSplit(pct: number): void {\n const v = clamp(pct, 0, 100);\n this.style.setProperty('--usa-split', `${v.toFixed(2)}%`);\n const h = this.querySelector<HTMLElement>('[data-handle]');\n if (h) h.setAttribute('aria-valuenow', String(Math.round(v)));\n }\n private count(el: HTMLElement): void {\n el.dataset.counted = '';\n const target = el.dataset.count || el.textContent || '0';\n el.setAttribute('aria-label', target);\n if (this.reduced) {\n el.textContent = target;\n return;\n }\n const dur = Number(el.dataset.duration) || 1600;\n const t0 = performance.now();\n const tick = (now: number) => {\n const k = clamp((now - t0) / dur);\n el.textContent = formatCount(target, 1 - (1 - k) ** 3);\n if (k < 1) requestAnimationFrame(tick);\n };\n requestAnimationFrame(tick);\n }\n mount(): void {\n this.toggleAttribute('data-static', this.reduced);\n if (this.template === 'compare') this.mountCompare();\n const kick = () => {\n if (!this.frame) this.frame = requestAnimationFrame(() => this.update());\n };\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(this.frame));\n this.update();\n }\n private mountCompare(): void {\n const box = this.querySelector<HTMLElement>('[data-sticky]') || this;\n let h = this.querySelector<HTMLElement>('[data-handle]');\n if (!h) {\n h = document.createElement('div');\n h.setAttribute('data-handle', '');\n box.appendChild(h);\n this.onCleanup(() => h!.remove());\n }\n h.tabIndex = 0;\n h.setAttribute('role', 'slider');\n h.setAttribute('aria-label', this.str('label', 'Before / after'));\n h.setAttribute('aria-valuemin', '0');\n h.setAttribute('aria-valuemax', '100');\n const at = (e: PointerEvent) => {\n const r = box.getBoundingClientRect();\n this.dataset.dragged = '';\n this.setSplit(((e.clientX - r.left) / (r.width || 1)) * 100);\n };\n let drag = false;\n this.listen(h, 'pointerdown', (e: PointerEvent) => {\n drag = true;\n h!.setPointerCapture?.(e.pointerId);\n });\n this.listen(h, 'pointermove', (e: PointerEvent) => drag && at(e));\n this.listen(h, 'pointerup', () => (drag = false));\n this.listen(h, 'keydown', (e: KeyboardEvent) => {\n const cur = parseFloat(h!.getAttribute('aria-valuenow') || '50');\n const step = e.shiftKey ? 10 : 2;\n const next = e.key === 'ArrowLeft' || e.key === 'ArrowDown' ? cur - step : e.key === 'ArrowRight' || e.key === 'ArrowUp' ? cur + step : e.key === 'Home' ? 0 : e.key === 'End' ? 100 : null;\n if (next == null) return;\n e.preventDefault();\n this.dataset.dragged = '';\n this.setSplit(next);\n });\n this.setSplit(50);\n }\n unmount(): void {\n this.step = -1;\n delete this.dataset.dragged;\n }\n },\n { id: 'usa-story', text: CSS }\n );\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-story': UsaStoryElement;\n }\n}\n","/**\n * 5.9 — `<usa-player>`: plays JSON animations.\n *\n * Format `use-scroll-animate/animation` v1:\n *\n * ```json\n * { \"format\": \"use-scroll-animate/animation\", \"version\": 1, \"name\": \"Hero\",\n * \"loop\": false,\n * \"tracks\": [\n * { \"target\": \"h1\", \"start\": 0, \"duration\": 600, \"preset\": \"fade-up\" },\n * { \"target\": \".cta\", \"start\": 500, \"duration\": 500, \"keyframes\": [{ \"opacity\": 0 }, { \"opacity\": 1 }], \"easing\": \"ease-out\" },\n * { \"target\": \".cta\", \"start\": 1100, \"effect\": \"jelly\", \"options\": {} }\n * ] }\n * ```\n *\n * A track animates `target` (a selector inside the player; `:scope` for the\n * player itself) with a timeline preset, its own keyframes, or fires any\n * registered effect at `start`. Playground presets (format\n * `use-scroll-animate/playground`) are accepted too — their tracks map to the\n * player's children in order.\n *\n * Keyframe tracks are WAAPI animations driven by one clock, so the player can\n * play, pause, seek, change rate and be scrubbed by scroll\n * (`trigger=\"scroll\"`). Reduced motion: jumps to the end state, effects skipped.\n */\nimport { playEffect } from '../fx/registry';\nimport { defineElement, prefersReducedMotion, type UsaElement } from '../base';\nimport { TIMELINE_PRESETS } from '../timeline/core';\nimport { storyProgress } from './story';\n\nexport interface AnimationTrack {\n /** Selector inside the player (`:scope` = the player). */\n target?: string;\n /** Start time in ms. */\n start?: number;\n duration?: number;\n /** A timeline preset (`fade-up`, `scale`, `blur`…). */\n preset?: string;\n keyframes?: Keyframe[];\n easing?: string;\n /** A registered effect fired at `start` (instead of keyframes). */\n effect?: string;\n options?: Record<string, unknown>;\n label?: string;\n}\n\nexport interface AnimationJSON {\n format?: string;\n version?: number;\n name?: string;\n loop?: boolean;\n /** Total length; defaults to the end of the last track. */\n duration?: number;\n tracks: AnimationTrack[];\n}\n\nexport const ANIMATION_FORMAT = 'use-scroll-animate/animation';\n\nfunction decodePlayground(state: string): AnimationTrack[] {\n try {\n const b64 = state.replace(/-/g, '+').replace(/_/g, '/');\n const json = decodeURIComponent(escape(atob(b64)));\n const t = (JSON.parse(json).t || []) as [string, number, number, string][];\n return t.map(([preset, start, duration, label], i) => ({ target: `:scope > :nth-child(${i + 1})`, preset, start, duration, label }));\n } catch {\n return [];\n }\n}\n\n/** Validate / normalise an animation (object or JSON text). Throws on anything unusable. */\nexport function normalizeAnimation(input: string | AnimationJSON | Record<string, any>): Required<Pick<AnimationJSON, 'tracks' | 'duration' | 'loop' | 'name'>> {\n const d: any = typeof input === 'string' ? JSON.parse(input) : input;\n if (!d || typeof d !== 'object') throw new Error('[motionary] animation: expected an object');\n let tracks: AnimationTrack[];\n if (d.format === 'use-scroll-animate/playground') tracks = decodePlayground(String(d.state || ''));\n else if (Array.isArray(d.tracks)) tracks = d.tracks;\n else throw new Error('[motionary] animation: missing \"tracks\"');\n if (d.format && d.format !== ANIMATION_FORMAT && d.format !== 'use-scroll-animate/playground') throw new Error(`[motionary] animation: unknown format \"${d.format}\"`);\n if (d.version && d.version > 1 && d.format === ANIMATION_FORMAT) throw new Error(`[motionary] animation: version ${d.version} needs a newer motionary`);\n const out = tracks\n .filter((t) => t && (t.effect || t.preset || Array.isArray(t.keyframes)))\n .map((t) => ({ ...t, target: t.target || ':scope', start: Math.max(0, Number(t.start) || 0), duration: t.effect ? 0 : Math.max(1, Number(t.duration) || 600) }));\n const end = out.reduce((m, t) => Math.max(m, t.start + t.duration), 0);\n return { tracks: out, duration: Math.max(end, Number(d.duration) || 0), loop: !!d.loop, name: String(d.name || 'animation') };\n}\n\nexport interface Player {\n readonly duration: number;\n readonly currentTime: number;\n readonly playing: boolean;\n play(): void;\n pause(): void;\n /** Jump to `ms` (effects between are not replayed). */\n seek(ms: number): void;\n /** Playback rate (default 1). */\n rate: number;\n /** Resolves each time the animation reaches its end (not when looping). */\n readonly finished: Promise<void>;\n destroy(): void;\n}\n\nconst pick = (root: HTMLElement, sel: string): HTMLElement[] => {\n if (sel === ':scope') return [root];\n try {\n return Array.from(root.querySelectorAll<HTMLElement>(sel));\n } catch {\n return [];\n }\n};\n\n/** Bind an animation to `root` and return its controller (paused at 0 unless `autoplay`). */\nexport function createPlayer(root: HTMLElement, animation: string | AnimationJSON, o: { autoplay?: boolean; loop?: boolean; rate?: number; onFinish?: () => void } = {}): Player {\n const a = normalizeAnimation(animation);\n const loop = o.loop ?? a.loop;\n const anims: Animation[] = [];\n const effects: { els: HTMLElement[]; t: AnimationTrack; fired: boolean }[] = [];\n for (const t of a.tracks) {\n const els = pick(root, t.target!);\n if (t.effect) effects.push({ els, t, fired: false });\n else {\n const kf = t.keyframes || TIMELINE_PRESETS[t.preset!] || TIMELINE_PRESETS.fade;\n for (const el of els) {\n if (typeof el.animate !== 'function') continue;\n const an = el.animate(kf, { duration: t.duration, delay: t.start, easing: t.easing || 'cubic-bezier(0.22, 1, 0.36, 1)', fill: 'both' });\n an.pause();\n an.currentTime = 0;\n anims.push(an);\n }\n }\n }\n let time = 0;\n let playing = false;\n let raf = 0;\n let last = 0;\n let resolve!: () => void;\n let finished = new Promise<void>((r) => (resolve = r));\n const set = (ms: number) => {\n time = Math.min(a.duration, Math.max(0, ms));\n for (const an of anims) an.currentTime = time;\n };\n const fireDue = () => {\n if (prefersReducedMotion()) return;\n for (const e of effects)\n if (!e.fired && time >= e.t.start!) {\n e.fired = true;\n for (const el of e.els) playEffect(el, e.t.effect!, e.t.options || {}).catch(() => undefined);\n }\n };\n const done = () => {\n resolve();\n o.onFinish?.();\n finished = new Promise<void>((r) => (resolve = r));\n };\n const frame = (now: number) => {\n raf = 0;\n if (!playing) return;\n set(time + (now - last) * player.rate);\n last = now;\n fireDue();\n if (time >= a.duration) {\n if (loop) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n } else {\n playing = false;\n done();\n return;\n }\n }\n raf = requestAnimationFrame(frame);\n };\n const player: Player = {\n get duration() {\n return a.duration;\n },\n get currentTime() {\n return time;\n },\n get playing() {\n return playing;\n },\n rate: o.rate ?? 1,\n get finished() {\n return finished;\n },\n play() {\n if (prefersReducedMotion()) {\n set(a.duration);\n effects.forEach((e) => (e.fired = true));\n done();\n return;\n }\n if (playing) return;\n if (time >= a.duration) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n }\n playing = true;\n last = performance.now();\n fireDue();\n raf = requestAnimationFrame(frame);\n },\n pause() {\n playing = false;\n cancelAnimationFrame(raf);\n raf = 0;\n },\n seek(ms: number) {\n set(ms);\n effects.forEach((e) => (e.fired = e.t.start! < time));\n },\n destroy() {\n player.pause();\n anims.forEach((an) => an.cancel());\n },\n };\n if (o.autoplay) player.play();\n return player;\n}\n\nexport interface UsaPlayerElement extends UsaElement {\n readonly player: Player | null;\n /** Load an animation (object or JSON text) and restart. */\n load(animation: string | AnimationJSON): void;\n play(): void;\n pause(): void;\n seek(ms: number): void;\n}\n\n/**\n * `<usa-player src=\"hero.json\" | <script type=\"application/json\"> child\n * trigger=\"load | view | scroll | click | manual\" loop rate controls>`.\n * Emits `usa-player-ready` and `usa-player-finish`; sets `data-error` when the\n * animation cannot be loaded.\n */\nexport function definePlayer(tag = 'usa-player'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaPlayer extends Base {\n static get observedAttributes(): string[] {\n return ['src', 'trigger', 'loop', 'rate'];\n }\n player: Player | null = null;\n private json: string | AnimationJSON | null = null;\n load(animation: string | AnimationJSON): void {\n this.json = animation;\n this.start();\n }\n play(): void {\n this.player?.play();\n }\n pause(): void {\n this.player?.pause();\n }\n seek(ms: number): void {\n this.player?.seek(ms);\n }\n private start(): void {\n this.player?.destroy();\n this.player = null;\n if (!this.json) return;\n try {\n this.player = createPlayer(this, this.json, {\n loop: this.hasAttribute('loop') ? true : undefined,\n rate: this.num('rate', 1),\n onFinish: () => this.dispatchEvent(new CustomEvent('usa-player-finish', { bubbles: true })),\n });\n this.removeAttribute('data-error');\n } catch (err) {\n this.setAttribute('data-error', String((err as Error).message || err));\n return;\n }\n const p = this.player;\n this.dispatchEvent(new CustomEvent('usa-player-ready', { detail: { duration: p.duration }, bubbles: true }));\n const trig = this.str('trigger', 'view');\n if (trig === 'load') p.play();\n else if (trig === 'view') this.inView((v) => v && p.play(), { threshold: 0.25 });\n else if (trig === 'click') this.listen(this, 'click', () => (p.playing ? p.pause() : p.play()));\n else if (trig === 'scroll') {\n let f = 0;\n const upd = () => {\n f = 0;\n p.seek(storyProgress(this) * p.duration);\n };\n const kick = () => void (f ||= requestAnimationFrame(upd));\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(f));\n upd();\n }\n if (this.flag('controls')) this.mountControls(p);\n }\n private mountControls(p: Player): void {\n const b = document.createElement('button');\n b.type = 'button';\n b.setAttribute('data-player-toggle', '');\n b.textContent = '▶︎ / ❚❚';\n b.setAttribute('aria-label', 'Play / pause animation');\n this.listen(b, 'click', (e: Event) => {\n e.stopPropagation();\n if (p.playing) p.pause();\n else p.play();\n b.setAttribute('aria-pressed', String(p.playing));\n });\n this.append(b);\n this.onCleanup(() => b.remove());\n }\n changed(name: string): void {\n if (name === 'src') this.json = null;\n super.changed(name);\n }\n mount(): void {\n this.onCleanup(() => {\n this.player?.destroy();\n this.player = null;\n });\n const inline = this.querySelector<HTMLScriptElement>('script[type=\"application/json\"]');\n const src = this.str('src');\n if (inline && !this.json) this.json = inline.textContent || '';\n if (src && !this.json) {\n fetch(src)\n .then((r) => (r.ok ? r.text() : Promise.reject(new Error(`HTTP ${r.status}`))))\n .then((t) => this.isConnected && this.load(t))\n .catch((err) => this.setAttribute('data-error', String(err.message || err)));\n return;\n }\n this.start();\n }\n },\n { id: 'usa-player', text: 'usa-player{display:block;position:relative}usa-player>script{display:none}usa-player [data-player-toggle]{position:absolute;right:8px;bottom:8px}' }\n );\n}\n"],"names":["defineElement","TIMELINE_PRESETS","prefersReducedMotion","playEffect"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { playEffect } from './registry-
|
|
2
|
-
import { u as defineElement, p as prefersReducedMotion } from './base-
|
|
3
|
-
import { T as TIMELINE_PRESETS } from './core-
|
|
1
|
+
import { playEffect } from './registry-CnO7ZVPK.js';
|
|
2
|
+
import { u as defineElement, p as prefersReducedMotion } from './base-CLuqlLfG.js';
|
|
3
|
+
import { T as TIMELINE_PRESETS } from './core-CiN5sqxB.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 5.4 — `<usa-story template="…">` scroll-storytelling templates.
|
|
@@ -513,4 +513,4 @@ function definePlayer(tag = 'usa-player') {
|
|
|
513
513
|
}
|
|
514
514
|
|
|
515
515
|
export { ANIMATION_FORMAT as A, STORY_TEMPLATES as S, definePlayer as a, createPlayer as c, defineStory as d, formatCount as f, normalizeAnimation as n, storyProgress as s };
|
|
516
|
-
//# sourceMappingURL=player-
|
|
516
|
+
//# sourceMappingURL=player-YzQGkKaW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-DxvCYo7Q.js","sources":["../../src/components/effects/story.ts","../../src/components/effects/player.ts"],"sourcesContent":["/**\n * 5.4 — `<usa-story template=\"…\">` scroll-storytelling templates.\n *\n * - `pin` — a sticky `[data-stage]` while `[data-step]` sections scroll past; the\n * step in view gets `data-active`, the stage gets `data-active-step=\"<index>\"`.\n * - `gallery` — a horizontal `[data-track]` slides sideways as you scroll down.\n * - `zoom` — the `[data-stage]` zooms toward the viewer (`zoom=\"6\"`) and fades.\n * - `compare` — before / after (`[data-before]`, `[data-after]`) wipe driven by\n * scroll, plus a draggable, keyboard-accessible handle (`role=\"slider\"`).\n * - `counter` — `[data-count=\"1234\"]` numbers count up when they enter view.\n * - `highlight` — paragraphs dim except the one crossing the viewport center.\n *\n * Every template sets `--usa-story-progress` (0–1) on the host and dispatches\n * `usa-story-step` (`detail: { index }`). Reduced motion: no sliding / zooming\n * (the gallery stacks vertically), counters show final values, the rest is\n * class changes only.\n */\nimport { defineElement, type UsaElement } from '../base';\n\nexport const STORY_TEMPLATES = ['pin', 'gallery', 'zoom', 'compare', 'counter', 'highlight'] as const;\nexport type StoryTemplate = (typeof STORY_TEMPLATES)[number];\n\nexport interface UsaStoryElement extends UsaElement {\n /** Scroll progress through the story, 0–1. */\n readonly progress: number;\n /** Index of the active step (pin / highlight), or -1. */\n readonly step: number;\n}\n\nconst CSS = `usa-story{display:block;position:relative}\nusa-story[template=pin] [data-stage],usa-story[template=gallery] [data-sticky],usa-story[template=zoom] [data-stage],usa-story[template=compare] [data-sticky]{position:sticky;top:0}\nusa-story[template=pin] [data-stage]{align-self:start}\nusa-story[template=pin] [data-step]{min-height:80vh;opacity:.35;transition:opacity .3s}\nusa-story[template=pin] [data-step][data-active]{opacity:1}\nusa-story[template=gallery] [data-sticky]{height:100vh;overflow:hidden;display:flex;align-items:center}\nusa-story[template=gallery] [data-track]{display:flex;gap:24px;will-change:transform}\nusa-story[template=gallery][data-static] [data-sticky]{position:static;height:auto;overflow:visible}\nusa-story[template=gallery][data-static] [data-track]{flex-direction:column;transform:none!important}\nusa-story[template=zoom] [data-stage]{height:100vh;overflow:hidden;display:grid;place-items:center}\nusa-story[template=compare] [data-sticky]{height:var(--usa-story-h,70vh);overflow:hidden}\nusa-story[template=compare] [data-before],usa-story[template=compare] [data-after]{position:absolute;inset:0}\nusa-story[template=compare] [data-after]{clip-path:inset(0 0 0 var(--usa-split,50%))}\nusa-story [data-handle]{position:absolute;top:0;bottom:0;left:var(--usa-split,50%);width:4px;margin-left:-2px;background:#fff;box-shadow:0 0 0 1px #0003;cursor:ew-resize;touch-action:none}\nusa-story [data-handle]:focus-visible{outline:3px solid #7c5cff;outline-offset:2px}\nusa-story[template=highlight] p,usa-story[template=highlight] [data-step]{opacity:.3;transition:opacity .25s}\nusa-story[template=highlight] [data-active]{opacity:1}`;\n\nconst clamp = (v: number, a = 0, b = 1) => Math.min(b, Math.max(a, v));\n\n/** Progress of `el` through the viewport: 0 when its top hits the viewport top, 1 when its bottom hits the viewport bottom. */\nexport function storyProgress(el: Element, vh = typeof innerHeight === 'number' ? innerHeight : 800): number {\n const r = el.getBoundingClientRect();\n const span = r.height - vh;\n return span > 0 ? clamp(-r.top / span) : clamp((vh - r.top) / (vh + r.height));\n}\n\n/** Format a counted value like the target (`1,234`, `12.5`, prefix / suffix kept). */\nexport function formatCount(target: string, t: number): string {\n const m = target.match(/^(\\D*)([\\d,]*\\.?\\d+)(.*)$/);\n if (!m) return target;\n const [, pre, num, post] = m;\n const n = parseFloat(num.replace(/,/g, ''));\n const dec = (num.split('.')[1] || '').length;\n let s = (n * t).toFixed(dec);\n if (num.includes(',')) s = Number(s).toLocaleString('en-US', { minimumFractionDigits: dec, maximumFractionDigits: dec });\n return pre + s + post;\n}\n\nexport function defineStory(tag = 'usa-story'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaStory extends Base {\n static get observedAttributes(): string[] {\n return ['template', 'zoom'];\n }\n progress = 0;\n step = -1;\n private frame = 0;\n get template(): StoryTemplate {\n const t = this.str('template', 'pin') as StoryTemplate;\n return STORY_TEMPLATES.includes(t) ? t : 'pin';\n }\n private steps(): HTMLElement[] {\n const own = Array.from(this.querySelectorAll<HTMLElement>('[data-step]:not([data-stage])'));\n return own.length || this.template !== 'highlight' ? own : Array.from(this.querySelectorAll<HTMLElement>('p'));\n }\n private setStep(i: number): void {\n if (i === this.step) return;\n this.step = i;\n this.steps().forEach((s, k) => s.toggleAttribute('data-active', k === i));\n const stage = this.querySelector<HTMLElement>('[data-stage]');\n if (stage) stage.dataset.activeStep = String(i);\n this.dispatchEvent(new CustomEvent('usa-story-step', { detail: { index: i }, bubbles: true }));\n }\n /** Recompute from the current scroll position (called on scroll / resize). */\n update(): void {\n this.frame = 0;\n const p = (this.progress = storyProgress(this));\n this.style.setProperty('--usa-story-progress', p.toFixed(4));\n const t = this.template;\n const vh = innerHeight || 800;\n if (t === 'pin' || t === 'highlight') {\n const mid = vh / 2;\n let best = -1;\n let bestD = Infinity;\n this.steps().forEach((s, i) => {\n const r = s.getBoundingClientRect();\n const d = r.top <= mid && r.bottom >= mid ? 0 : Math.min(Math.abs(r.top - mid), Math.abs(r.bottom - mid));\n if (d < bestD) (bestD = d), (best = i);\n });\n this.setStep(best);\n } else if (t === 'gallery' && !this.reduced) {\n const track = this.querySelector<HTMLElement>('[data-track]');\n const box = this.querySelector<HTMLElement>('[data-sticky]');\n if (track && box) track.style.transform = `translateX(${(-p * Math.max(0, track.scrollWidth - box.clientWidth)).toFixed(1)}px)`;\n } else if (t === 'zoom' && !this.reduced) {\n const inner = this.querySelector<HTMLElement>('[data-stage] > *');\n if (inner) {\n inner.style.transform = `scale(${(1 + p * (this.num('zoom', 6) - 1)).toFixed(3)})`;\n inner.style.opacity = String(clamp(1.4 - p * 1.4).toFixed(3));\n }\n } else if (t === 'compare' && !this.hasAttribute('data-dragged')) {\n this.setSplit(p * 100);\n } else if (t === 'counter') {\n this.querySelectorAll<HTMLElement>('[data-count]:not([data-counted])').forEach((el) => {\n const r = el.getBoundingClientRect();\n if (r.top < vh * 0.9 && r.bottom > 0) this.count(el);\n });\n }\n }\n private setSplit(pct: number): void {\n const v = clamp(pct, 0, 100);\n this.style.setProperty('--usa-split', `${v.toFixed(2)}%`);\n const h = this.querySelector<HTMLElement>('[data-handle]');\n if (h) h.setAttribute('aria-valuenow', String(Math.round(v)));\n }\n private count(el: HTMLElement): void {\n el.dataset.counted = '';\n const target = el.dataset.count || el.textContent || '0';\n el.setAttribute('aria-label', target);\n if (this.reduced) {\n el.textContent = target;\n return;\n }\n const dur = Number(el.dataset.duration) || 1600;\n const t0 = performance.now();\n const tick = (now: number) => {\n const k = clamp((now - t0) / dur);\n el.textContent = formatCount(target, 1 - (1 - k) ** 3);\n if (k < 1) requestAnimationFrame(tick);\n };\n requestAnimationFrame(tick);\n }\n mount(): void {\n this.toggleAttribute('data-static', this.reduced);\n if (this.template === 'compare') this.mountCompare();\n const kick = () => {\n if (!this.frame) this.frame = requestAnimationFrame(() => this.update());\n };\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(this.frame));\n this.update();\n }\n private mountCompare(): void {\n const box = this.querySelector<HTMLElement>('[data-sticky]') || this;\n let h = this.querySelector<HTMLElement>('[data-handle]');\n if (!h) {\n h = document.createElement('div');\n h.setAttribute('data-handle', '');\n box.appendChild(h);\n this.onCleanup(() => h!.remove());\n }\n h.tabIndex = 0;\n h.setAttribute('role', 'slider');\n h.setAttribute('aria-label', this.str('label', 'Before / after'));\n h.setAttribute('aria-valuemin', '0');\n h.setAttribute('aria-valuemax', '100');\n const at = (e: PointerEvent) => {\n const r = box.getBoundingClientRect();\n this.dataset.dragged = '';\n this.setSplit(((e.clientX - r.left) / (r.width || 1)) * 100);\n };\n let drag = false;\n this.listen(h, 'pointerdown', (e: PointerEvent) => {\n drag = true;\n h!.setPointerCapture?.(e.pointerId);\n });\n this.listen(h, 'pointermove', (e: PointerEvent) => drag && at(e));\n this.listen(h, 'pointerup', () => (drag = false));\n this.listen(h, 'keydown', (e: KeyboardEvent) => {\n const cur = parseFloat(h!.getAttribute('aria-valuenow') || '50');\n const step = e.shiftKey ? 10 : 2;\n const next = e.key === 'ArrowLeft' || e.key === 'ArrowDown' ? cur - step : e.key === 'ArrowRight' || e.key === 'ArrowUp' ? cur + step : e.key === 'Home' ? 0 : e.key === 'End' ? 100 : null;\n if (next == null) return;\n e.preventDefault();\n this.dataset.dragged = '';\n this.setSplit(next);\n });\n this.setSplit(50);\n }\n unmount(): void {\n this.step = -1;\n delete this.dataset.dragged;\n }\n },\n { id: 'usa-story', text: CSS }\n );\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-story': UsaStoryElement;\n }\n}\n","/**\n * 5.9 — `<usa-player>`: plays JSON animations.\n *\n * Format `use-scroll-animate/animation` v1:\n *\n * ```json\n * { \"format\": \"use-scroll-animate/animation\", \"version\": 1, \"name\": \"Hero\",\n * \"loop\": false,\n * \"tracks\": [\n * { \"target\": \"h1\", \"start\": 0, \"duration\": 600, \"preset\": \"fade-up\" },\n * { \"target\": \".cta\", \"start\": 500, \"duration\": 500, \"keyframes\": [{ \"opacity\": 0 }, { \"opacity\": 1 }], \"easing\": \"ease-out\" },\n * { \"target\": \".cta\", \"start\": 1100, \"effect\": \"jelly\", \"options\": {} }\n * ] }\n * ```\n *\n * A track animates `target` (a selector inside the player; `:scope` for the\n * player itself) with a timeline preset, its own keyframes, or fires any\n * registered effect at `start`. Playground presets (format\n * `use-scroll-animate/playground`) are accepted too — their tracks map to the\n * player's children in order.\n *\n * Keyframe tracks are WAAPI animations driven by one clock, so the player can\n * play, pause, seek, change rate and be scrubbed by scroll\n * (`trigger=\"scroll\"`). Reduced motion: jumps to the end state, effects skipped.\n */\nimport { playEffect } from '../fx/registry';\nimport { defineElement, prefersReducedMotion, type UsaElement } from '../base';\nimport { TIMELINE_PRESETS } from '../timeline/core';\nimport { storyProgress } from './story';\n\nexport interface AnimationTrack {\n /** Selector inside the player (`:scope` = the player). */\n target?: string;\n /** Start time in ms. */\n start?: number;\n duration?: number;\n /** A timeline preset (`fade-up`, `scale`, `blur`…). */\n preset?: string;\n keyframes?: Keyframe[];\n easing?: string;\n /** A registered effect fired at `start` (instead of keyframes). */\n effect?: string;\n options?: Record<string, unknown>;\n label?: string;\n}\n\nexport interface AnimationJSON {\n format?: string;\n version?: number;\n name?: string;\n loop?: boolean;\n /** Total length; defaults to the end of the last track. */\n duration?: number;\n tracks: AnimationTrack[];\n}\n\nexport const ANIMATION_FORMAT = 'use-scroll-animate/animation';\n\nfunction decodePlayground(state: string): AnimationTrack[] {\n try {\n const b64 = state.replace(/-/g, '+').replace(/_/g, '/');\n const json = decodeURIComponent(escape(atob(b64)));\n const t = (JSON.parse(json).t || []) as [string, number, number, string][];\n return t.map(([preset, start, duration, label], i) => ({ target: `:scope > :nth-child(${i + 1})`, preset, start, duration, label }));\n } catch {\n return [];\n }\n}\n\n/** Validate / normalise an animation (object or JSON text). Throws on anything unusable. */\nexport function normalizeAnimation(input: string | AnimationJSON | Record<string, any>): Required<Pick<AnimationJSON, 'tracks' | 'duration' | 'loop' | 'name'>> {\n const d: any = typeof input === 'string' ? JSON.parse(input) : input;\n if (!d || typeof d !== 'object') throw new Error('[motionary] animation: expected an object');\n let tracks: AnimationTrack[];\n if (d.format === 'use-scroll-animate/playground') tracks = decodePlayground(String(d.state || ''));\n else if (Array.isArray(d.tracks)) tracks = d.tracks;\n else throw new Error('[motionary] animation: missing \"tracks\"');\n if (d.format && d.format !== ANIMATION_FORMAT && d.format !== 'use-scroll-animate/playground') throw new Error(`[motionary] animation: unknown format \"${d.format}\"`);\n if (d.version && d.version > 1 && d.format === ANIMATION_FORMAT) throw new Error(`[motionary] animation: version ${d.version} needs a newer motionary`);\n const out = tracks\n .filter((t) => t && (t.effect || t.preset || Array.isArray(t.keyframes)))\n .map((t) => ({ ...t, target: t.target || ':scope', start: Math.max(0, Number(t.start) || 0), duration: t.effect ? 0 : Math.max(1, Number(t.duration) || 600) }));\n const end = out.reduce((m, t) => Math.max(m, t.start + t.duration), 0);\n return { tracks: out, duration: Math.max(end, Number(d.duration) || 0), loop: !!d.loop, name: String(d.name || 'animation') };\n}\n\nexport interface Player {\n readonly duration: number;\n readonly currentTime: number;\n readonly playing: boolean;\n play(): void;\n pause(): void;\n /** Jump to `ms` (effects between are not replayed). */\n seek(ms: number): void;\n /** Playback rate (default 1). */\n rate: number;\n /** Resolves each time the animation reaches its end (not when looping). */\n readonly finished: Promise<void>;\n destroy(): void;\n}\n\nconst pick = (root: HTMLElement, sel: string): HTMLElement[] => {\n if (sel === ':scope') return [root];\n try {\n return Array.from(root.querySelectorAll<HTMLElement>(sel));\n } catch {\n return [];\n }\n};\n\n/** Bind an animation to `root` and return its controller (paused at 0 unless `autoplay`). */\nexport function createPlayer(root: HTMLElement, animation: string | AnimationJSON, o: { autoplay?: boolean; loop?: boolean; rate?: number; onFinish?: () => void } = {}): Player {\n const a = normalizeAnimation(animation);\n const loop = o.loop ?? a.loop;\n const anims: Animation[] = [];\n const effects: { els: HTMLElement[]; t: AnimationTrack; fired: boolean }[] = [];\n for (const t of a.tracks) {\n const els = pick(root, t.target!);\n if (t.effect) effects.push({ els, t, fired: false });\n else {\n const kf = t.keyframes || TIMELINE_PRESETS[t.preset!] || TIMELINE_PRESETS.fade;\n for (const el of els) {\n if (typeof el.animate !== 'function') continue;\n const an = el.animate(kf, { duration: t.duration, delay: t.start, easing: t.easing || 'cubic-bezier(0.22, 1, 0.36, 1)', fill: 'both' });\n an.pause();\n an.currentTime = 0;\n anims.push(an);\n }\n }\n }\n let time = 0;\n let playing = false;\n let raf = 0;\n let last = 0;\n let resolve!: () => void;\n let finished = new Promise<void>((r) => (resolve = r));\n const set = (ms: number) => {\n time = Math.min(a.duration, Math.max(0, ms));\n for (const an of anims) an.currentTime = time;\n };\n const fireDue = () => {\n if (prefersReducedMotion()) return;\n for (const e of effects)\n if (!e.fired && time >= e.t.start!) {\n e.fired = true;\n for (const el of e.els) playEffect(el, e.t.effect!, e.t.options || {}).catch(() => undefined);\n }\n };\n const done = () => {\n resolve();\n o.onFinish?.();\n finished = new Promise<void>((r) => (resolve = r));\n };\n const frame = (now: number) => {\n raf = 0;\n if (!playing) return;\n set(time + (now - last) * player.rate);\n last = now;\n fireDue();\n if (time >= a.duration) {\n if (loop) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n } else {\n playing = false;\n done();\n return;\n }\n }\n raf = requestAnimationFrame(frame);\n };\n const player: Player = {\n get duration() {\n return a.duration;\n },\n get currentTime() {\n return time;\n },\n get playing() {\n return playing;\n },\n rate: o.rate ?? 1,\n get finished() {\n return finished;\n },\n play() {\n if (prefersReducedMotion()) {\n set(a.duration);\n effects.forEach((e) => (e.fired = true));\n done();\n return;\n }\n if (playing) return;\n if (time >= a.duration) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n }\n playing = true;\n last = performance.now();\n fireDue();\n raf = requestAnimationFrame(frame);\n },\n pause() {\n playing = false;\n cancelAnimationFrame(raf);\n raf = 0;\n },\n seek(ms: number) {\n set(ms);\n effects.forEach((e) => (e.fired = e.t.start! < time));\n },\n destroy() {\n player.pause();\n anims.forEach((an) => an.cancel());\n },\n };\n if (o.autoplay) player.play();\n return player;\n}\n\nexport interface UsaPlayerElement extends UsaElement {\n readonly player: Player | null;\n /** Load an animation (object or JSON text) and restart. */\n load(animation: string | AnimationJSON): void;\n play(): void;\n pause(): void;\n seek(ms: number): void;\n}\n\n/**\n * `<usa-player src=\"hero.json\" | <script type=\"application/json\"> child\n * trigger=\"load | view | scroll | click | manual\" loop rate controls>`.\n * Emits `usa-player-ready` and `usa-player-finish`; sets `data-error` when the\n * animation cannot be loaded.\n */\nexport function definePlayer(tag = 'usa-player'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaPlayer extends Base {\n static get observedAttributes(): string[] {\n return ['src', 'trigger', 'loop', 'rate'];\n }\n player: Player | null = null;\n private json: string | AnimationJSON | null = null;\n load(animation: string | AnimationJSON): void {\n this.json = animation;\n this.start();\n }\n play(): void {\n this.player?.play();\n }\n pause(): void {\n this.player?.pause();\n }\n seek(ms: number): void {\n this.player?.seek(ms);\n }\n private start(): void {\n this.player?.destroy();\n this.player = null;\n if (!this.json) return;\n try {\n this.player = createPlayer(this, this.json, {\n loop: this.hasAttribute('loop') ? true : undefined,\n rate: this.num('rate', 1),\n onFinish: () => this.dispatchEvent(new CustomEvent('usa-player-finish', { bubbles: true })),\n });\n this.removeAttribute('data-error');\n } catch (err) {\n this.setAttribute('data-error', String((err as Error).message || err));\n return;\n }\n const p = this.player;\n this.dispatchEvent(new CustomEvent('usa-player-ready', { detail: { duration: p.duration }, bubbles: true }));\n const trig = this.str('trigger', 'view');\n if (trig === 'load') p.play();\n else if (trig === 'view') this.inView((v) => v && p.play(), { threshold: 0.25 });\n else if (trig === 'click') this.listen(this, 'click', () => (p.playing ? p.pause() : p.play()));\n else if (trig === 'scroll') {\n let f = 0;\n const upd = () => {\n f = 0;\n p.seek(storyProgress(this) * p.duration);\n };\n const kick = () => void (f ||= requestAnimationFrame(upd));\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(f));\n upd();\n }\n if (this.flag('controls')) this.mountControls(p);\n }\n private mountControls(p: Player): void {\n const b = document.createElement('button');\n b.type = 'button';\n b.setAttribute('data-player-toggle', '');\n b.textContent = '▶︎ / ❚❚';\n b.setAttribute('aria-label', 'Play / pause animation');\n this.listen(b, 'click', (e: Event) => {\n e.stopPropagation();\n if (p.playing) p.pause();\n else p.play();\n b.setAttribute('aria-pressed', String(p.playing));\n });\n this.append(b);\n this.onCleanup(() => b.remove());\n }\n changed(name: string): void {\n if (name === 'src') this.json = null;\n super.changed(name);\n }\n mount(): void {\n this.onCleanup(() => {\n this.player?.destroy();\n this.player = null;\n });\n const inline = this.querySelector<HTMLScriptElement>('script[type=\"application/json\"]');\n const src = this.str('src');\n if (inline && !this.json) this.json = inline.textContent || '';\n if (src && !this.json) {\n fetch(src)\n .then((r) => (r.ok ? r.text() : Promise.reject(new Error(`HTTP ${r.status}`))))\n .then((t) => this.isConnected && this.load(t))\n .catch((err) => this.setAttribute('data-error', String(err.message || err)));\n return;\n }\n this.start();\n }\n },\n { id: 'usa-player', text: 'usa-player{display:block;position:relative}usa-player>script{display:none}usa-player [data-player-toggle]{position:absolute;right:8px;bottom:8px}' }\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"player-YzQGkKaW.js","sources":["../../src/components/effects/story.ts","../../src/components/effects/player.ts"],"sourcesContent":["/**\n * 5.4 — `<usa-story template=\"…\">` scroll-storytelling templates.\n *\n * - `pin` — a sticky `[data-stage]` while `[data-step]` sections scroll past; the\n * step in view gets `data-active`, the stage gets `data-active-step=\"<index>\"`.\n * - `gallery` — a horizontal `[data-track]` slides sideways as you scroll down.\n * - `zoom` — the `[data-stage]` zooms toward the viewer (`zoom=\"6\"`) and fades.\n * - `compare` — before / after (`[data-before]`, `[data-after]`) wipe driven by\n * scroll, plus a draggable, keyboard-accessible handle (`role=\"slider\"`).\n * - `counter` — `[data-count=\"1234\"]` numbers count up when they enter view.\n * - `highlight` — paragraphs dim except the one crossing the viewport center.\n *\n * Every template sets `--usa-story-progress` (0–1) on the host and dispatches\n * `usa-story-step` (`detail: { index }`). Reduced motion: no sliding / zooming\n * (the gallery stacks vertically), counters show final values, the rest is\n * class changes only.\n */\nimport { defineElement, type UsaElement } from '../base';\n\nexport const STORY_TEMPLATES = ['pin', 'gallery', 'zoom', 'compare', 'counter', 'highlight'] as const;\nexport type StoryTemplate = (typeof STORY_TEMPLATES)[number];\n\nexport interface UsaStoryElement extends UsaElement {\n /** Scroll progress through the story, 0–1. */\n readonly progress: number;\n /** Index of the active step (pin / highlight), or -1. */\n readonly step: number;\n}\n\nconst CSS = `usa-story{display:block;position:relative}\nusa-story[template=pin] [data-stage],usa-story[template=gallery] [data-sticky],usa-story[template=zoom] [data-stage],usa-story[template=compare] [data-sticky]{position:sticky;top:0}\nusa-story[template=pin] [data-stage]{align-self:start}\nusa-story[template=pin] [data-step]{min-height:80vh;opacity:.35;transition:opacity .3s}\nusa-story[template=pin] [data-step][data-active]{opacity:1}\nusa-story[template=gallery] [data-sticky]{height:100vh;overflow:hidden;display:flex;align-items:center}\nusa-story[template=gallery] [data-track]{display:flex;gap:24px;will-change:transform}\nusa-story[template=gallery][data-static] [data-sticky]{position:static;height:auto;overflow:visible}\nusa-story[template=gallery][data-static] [data-track]{flex-direction:column;transform:none!important}\nusa-story[template=zoom] [data-stage]{height:100vh;overflow:hidden;display:grid;place-items:center}\nusa-story[template=compare] [data-sticky]{height:var(--usa-story-h,70vh);overflow:hidden}\nusa-story[template=compare] [data-before],usa-story[template=compare] [data-after]{position:absolute;inset:0}\nusa-story[template=compare] [data-after]{clip-path:inset(0 0 0 var(--usa-split,50%))}\nusa-story [data-handle]{position:absolute;top:0;bottom:0;left:var(--usa-split,50%);width:4px;margin-left:-2px;background:#fff;box-shadow:0 0 0 1px #0003;cursor:ew-resize;touch-action:none}\nusa-story [data-handle]:focus-visible{outline:3px solid #7c5cff;outline-offset:2px}\nusa-story[template=highlight] p,usa-story[template=highlight] [data-step]{opacity:.3;transition:opacity .25s}\nusa-story[template=highlight] [data-active]{opacity:1}`;\n\nconst clamp = (v: number, a = 0, b = 1) => Math.min(b, Math.max(a, v));\n\n/** Progress of `el` through the viewport: 0 when its top hits the viewport top, 1 when its bottom hits the viewport bottom. */\nexport function storyProgress(el: Element, vh = typeof innerHeight === 'number' ? innerHeight : 800): number {\n const r = el.getBoundingClientRect();\n const span = r.height - vh;\n return span > 0 ? clamp(-r.top / span) : clamp((vh - r.top) / (vh + r.height));\n}\n\n/** Format a counted value like the target (`1,234`, `12.5`, prefix / suffix kept). */\nexport function formatCount(target: string, t: number): string {\n const m = target.match(/^(\\D*)([\\d,]*\\.?\\d+)(.*)$/);\n if (!m) return target;\n const [, pre, num, post] = m;\n const n = parseFloat(num.replace(/,/g, ''));\n const dec = (num.split('.')[1] || '').length;\n let s = (n * t).toFixed(dec);\n if (num.includes(',')) s = Number(s).toLocaleString('en-US', { minimumFractionDigits: dec, maximumFractionDigits: dec });\n return pre + s + post;\n}\n\nexport function defineStory(tag = 'usa-story'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaStory extends Base {\n static get observedAttributes(): string[] {\n return ['template', 'zoom'];\n }\n progress = 0;\n step = -1;\n private frame = 0;\n get template(): StoryTemplate {\n const t = this.str('template', 'pin') as StoryTemplate;\n return STORY_TEMPLATES.includes(t) ? t : 'pin';\n }\n private steps(): HTMLElement[] {\n const own = Array.from(this.querySelectorAll<HTMLElement>('[data-step]:not([data-stage])'));\n return own.length || this.template !== 'highlight' ? own : Array.from(this.querySelectorAll<HTMLElement>('p'));\n }\n private setStep(i: number): void {\n if (i === this.step) return;\n this.step = i;\n this.steps().forEach((s, k) => s.toggleAttribute('data-active', k === i));\n const stage = this.querySelector<HTMLElement>('[data-stage]');\n if (stage) stage.dataset.activeStep = String(i);\n this.dispatchEvent(new CustomEvent('usa-story-step', { detail: { index: i }, bubbles: true }));\n }\n /** Recompute from the current scroll position (called on scroll / resize). */\n update(): void {\n this.frame = 0;\n const p = (this.progress = storyProgress(this));\n this.style.setProperty('--usa-story-progress', p.toFixed(4));\n const t = this.template;\n const vh = innerHeight || 800;\n if (t === 'pin' || t === 'highlight') {\n const mid = vh / 2;\n let best = -1;\n let bestD = Infinity;\n this.steps().forEach((s, i) => {\n const r = s.getBoundingClientRect();\n const d = r.top <= mid && r.bottom >= mid ? 0 : Math.min(Math.abs(r.top - mid), Math.abs(r.bottom - mid));\n if (d < bestD) (bestD = d), (best = i);\n });\n this.setStep(best);\n } else if (t === 'gallery' && !this.reduced) {\n const track = this.querySelector<HTMLElement>('[data-track]');\n const box = this.querySelector<HTMLElement>('[data-sticky]');\n if (track && box) track.style.transform = `translateX(${(-p * Math.max(0, track.scrollWidth - box.clientWidth)).toFixed(1)}px)`;\n } else if (t === 'zoom' && !this.reduced) {\n const inner = this.querySelector<HTMLElement>('[data-stage] > *');\n if (inner) {\n inner.style.transform = `scale(${(1 + p * (this.num('zoom', 6) - 1)).toFixed(3)})`;\n inner.style.opacity = String(clamp(1.4 - p * 1.4).toFixed(3));\n }\n } else if (t === 'compare' && !this.hasAttribute('data-dragged')) {\n this.setSplit(p * 100);\n } else if (t === 'counter') {\n this.querySelectorAll<HTMLElement>('[data-count]:not([data-counted])').forEach((el) => {\n const r = el.getBoundingClientRect();\n if (r.top < vh * 0.9 && r.bottom > 0) this.count(el);\n });\n }\n }\n private setSplit(pct: number): void {\n const v = clamp(pct, 0, 100);\n this.style.setProperty('--usa-split', `${v.toFixed(2)}%`);\n const h = this.querySelector<HTMLElement>('[data-handle]');\n if (h) h.setAttribute('aria-valuenow', String(Math.round(v)));\n }\n private count(el: HTMLElement): void {\n el.dataset.counted = '';\n const target = el.dataset.count || el.textContent || '0';\n el.setAttribute('aria-label', target);\n if (this.reduced) {\n el.textContent = target;\n return;\n }\n const dur = Number(el.dataset.duration) || 1600;\n const t0 = performance.now();\n const tick = (now: number) => {\n const k = clamp((now - t0) / dur);\n el.textContent = formatCount(target, 1 - (1 - k) ** 3);\n if (k < 1) requestAnimationFrame(tick);\n };\n requestAnimationFrame(tick);\n }\n mount(): void {\n this.toggleAttribute('data-static', this.reduced);\n if (this.template === 'compare') this.mountCompare();\n const kick = () => {\n if (!this.frame) this.frame = requestAnimationFrame(() => this.update());\n };\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(this.frame));\n this.update();\n }\n private mountCompare(): void {\n const box = this.querySelector<HTMLElement>('[data-sticky]') || this;\n let h = this.querySelector<HTMLElement>('[data-handle]');\n if (!h) {\n h = document.createElement('div');\n h.setAttribute('data-handle', '');\n box.appendChild(h);\n this.onCleanup(() => h!.remove());\n }\n h.tabIndex = 0;\n h.setAttribute('role', 'slider');\n h.setAttribute('aria-label', this.str('label', 'Before / after'));\n h.setAttribute('aria-valuemin', '0');\n h.setAttribute('aria-valuemax', '100');\n const at = (e: PointerEvent) => {\n const r = box.getBoundingClientRect();\n this.dataset.dragged = '';\n this.setSplit(((e.clientX - r.left) / (r.width || 1)) * 100);\n };\n let drag = false;\n this.listen(h, 'pointerdown', (e: PointerEvent) => {\n drag = true;\n h!.setPointerCapture?.(e.pointerId);\n });\n this.listen(h, 'pointermove', (e: PointerEvent) => drag && at(e));\n this.listen(h, 'pointerup', () => (drag = false));\n this.listen(h, 'keydown', (e: KeyboardEvent) => {\n const cur = parseFloat(h!.getAttribute('aria-valuenow') || '50');\n const step = e.shiftKey ? 10 : 2;\n const next = e.key === 'ArrowLeft' || e.key === 'ArrowDown' ? cur - step : e.key === 'ArrowRight' || e.key === 'ArrowUp' ? cur + step : e.key === 'Home' ? 0 : e.key === 'End' ? 100 : null;\n if (next == null) return;\n e.preventDefault();\n this.dataset.dragged = '';\n this.setSplit(next);\n });\n this.setSplit(50);\n }\n unmount(): void {\n this.step = -1;\n delete this.dataset.dragged;\n }\n },\n { id: 'usa-story', text: CSS }\n );\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-story': UsaStoryElement;\n }\n}\n","/**\n * 5.9 — `<usa-player>`: plays JSON animations.\n *\n * Format `use-scroll-animate/animation` v1:\n *\n * ```json\n * { \"format\": \"use-scroll-animate/animation\", \"version\": 1, \"name\": \"Hero\",\n * \"loop\": false,\n * \"tracks\": [\n * { \"target\": \"h1\", \"start\": 0, \"duration\": 600, \"preset\": \"fade-up\" },\n * { \"target\": \".cta\", \"start\": 500, \"duration\": 500, \"keyframes\": [{ \"opacity\": 0 }, { \"opacity\": 1 }], \"easing\": \"ease-out\" },\n * { \"target\": \".cta\", \"start\": 1100, \"effect\": \"jelly\", \"options\": {} }\n * ] }\n * ```\n *\n * A track animates `target` (a selector inside the player; `:scope` for the\n * player itself) with a timeline preset, its own keyframes, or fires any\n * registered effect at `start`. Playground presets (format\n * `use-scroll-animate/playground`) are accepted too — their tracks map to the\n * player's children in order.\n *\n * Keyframe tracks are WAAPI animations driven by one clock, so the player can\n * play, pause, seek, change rate and be scrubbed by scroll\n * (`trigger=\"scroll\"`). Reduced motion: jumps to the end state, effects skipped.\n */\nimport { playEffect } from '../fx/registry';\nimport { defineElement, prefersReducedMotion, type UsaElement } from '../base';\nimport { TIMELINE_PRESETS } from '../timeline/core';\nimport { storyProgress } from './story';\n\nexport interface AnimationTrack {\n /** Selector inside the player (`:scope` = the player). */\n target?: string;\n /** Start time in ms. */\n start?: number;\n duration?: number;\n /** A timeline preset (`fade-up`, `scale`, `blur`…). */\n preset?: string;\n keyframes?: Keyframe[];\n easing?: string;\n /** A registered effect fired at `start` (instead of keyframes). */\n effect?: string;\n options?: Record<string, unknown>;\n label?: string;\n}\n\nexport interface AnimationJSON {\n format?: string;\n version?: number;\n name?: string;\n loop?: boolean;\n /** Total length; defaults to the end of the last track. */\n duration?: number;\n tracks: AnimationTrack[];\n}\n\nexport const ANIMATION_FORMAT = 'use-scroll-animate/animation';\n\nfunction decodePlayground(state: string): AnimationTrack[] {\n try {\n const b64 = state.replace(/-/g, '+').replace(/_/g, '/');\n const json = decodeURIComponent(escape(atob(b64)));\n const t = (JSON.parse(json).t || []) as [string, number, number, string][];\n return t.map(([preset, start, duration, label], i) => ({ target: `:scope > :nth-child(${i + 1})`, preset, start, duration, label }));\n } catch {\n return [];\n }\n}\n\n/** Validate / normalise an animation (object or JSON text). Throws on anything unusable. */\nexport function normalizeAnimation(input: string | AnimationJSON | Record<string, any>): Required<Pick<AnimationJSON, 'tracks' | 'duration' | 'loop' | 'name'>> {\n const d: any = typeof input === 'string' ? JSON.parse(input) : input;\n if (!d || typeof d !== 'object') throw new Error('[motionary] animation: expected an object');\n let tracks: AnimationTrack[];\n if (d.format === 'use-scroll-animate/playground') tracks = decodePlayground(String(d.state || ''));\n else if (Array.isArray(d.tracks)) tracks = d.tracks;\n else throw new Error('[motionary] animation: missing \"tracks\"');\n if (d.format && d.format !== ANIMATION_FORMAT && d.format !== 'use-scroll-animate/playground') throw new Error(`[motionary] animation: unknown format \"${d.format}\"`);\n if (d.version && d.version > 1 && d.format === ANIMATION_FORMAT) throw new Error(`[motionary] animation: version ${d.version} needs a newer motionary`);\n const out = tracks\n .filter((t) => t && (t.effect || t.preset || Array.isArray(t.keyframes)))\n .map((t) => ({ ...t, target: t.target || ':scope', start: Math.max(0, Number(t.start) || 0), duration: t.effect ? 0 : Math.max(1, Number(t.duration) || 600) }));\n const end = out.reduce((m, t) => Math.max(m, t.start + t.duration), 0);\n return { tracks: out, duration: Math.max(end, Number(d.duration) || 0), loop: !!d.loop, name: String(d.name || 'animation') };\n}\n\nexport interface Player {\n readonly duration: number;\n readonly currentTime: number;\n readonly playing: boolean;\n play(): void;\n pause(): void;\n /** Jump to `ms` (effects between are not replayed). */\n seek(ms: number): void;\n /** Playback rate (default 1). */\n rate: number;\n /** Resolves each time the animation reaches its end (not when looping). */\n readonly finished: Promise<void>;\n destroy(): void;\n}\n\nconst pick = (root: HTMLElement, sel: string): HTMLElement[] => {\n if (sel === ':scope') return [root];\n try {\n return Array.from(root.querySelectorAll<HTMLElement>(sel));\n } catch {\n return [];\n }\n};\n\n/** Bind an animation to `root` and return its controller (paused at 0 unless `autoplay`). */\nexport function createPlayer(root: HTMLElement, animation: string | AnimationJSON, o: { autoplay?: boolean; loop?: boolean; rate?: number; onFinish?: () => void } = {}): Player {\n const a = normalizeAnimation(animation);\n const loop = o.loop ?? a.loop;\n const anims: Animation[] = [];\n const effects: { els: HTMLElement[]; t: AnimationTrack; fired: boolean }[] = [];\n for (const t of a.tracks) {\n const els = pick(root, t.target!);\n if (t.effect) effects.push({ els, t, fired: false });\n else {\n const kf = t.keyframes || TIMELINE_PRESETS[t.preset!] || TIMELINE_PRESETS.fade;\n for (const el of els) {\n if (typeof el.animate !== 'function') continue;\n const an = el.animate(kf, { duration: t.duration, delay: t.start, easing: t.easing || 'cubic-bezier(0.22, 1, 0.36, 1)', fill: 'both' });\n an.pause();\n an.currentTime = 0;\n anims.push(an);\n }\n }\n }\n let time = 0;\n let playing = false;\n let raf = 0;\n let last = 0;\n let resolve!: () => void;\n let finished = new Promise<void>((r) => (resolve = r));\n const set = (ms: number) => {\n time = Math.min(a.duration, Math.max(0, ms));\n for (const an of anims) an.currentTime = time;\n };\n const fireDue = () => {\n if (prefersReducedMotion()) return;\n for (const e of effects)\n if (!e.fired && time >= e.t.start!) {\n e.fired = true;\n for (const el of e.els) playEffect(el, e.t.effect!, e.t.options || {}).catch(() => undefined);\n }\n };\n const done = () => {\n resolve();\n o.onFinish?.();\n finished = new Promise<void>((r) => (resolve = r));\n };\n const frame = (now: number) => {\n raf = 0;\n if (!playing) return;\n set(time + (now - last) * player.rate);\n last = now;\n fireDue();\n if (time >= a.duration) {\n if (loop) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n } else {\n playing = false;\n done();\n return;\n }\n }\n raf = requestAnimationFrame(frame);\n };\n const player: Player = {\n get duration() {\n return a.duration;\n },\n get currentTime() {\n return time;\n },\n get playing() {\n return playing;\n },\n rate: o.rate ?? 1,\n get finished() {\n return finished;\n },\n play() {\n if (prefersReducedMotion()) {\n set(a.duration);\n effects.forEach((e) => (e.fired = true));\n done();\n return;\n }\n if (playing) return;\n if (time >= a.duration) {\n effects.forEach((e) => (e.fired = false));\n set(0);\n }\n playing = true;\n last = performance.now();\n fireDue();\n raf = requestAnimationFrame(frame);\n },\n pause() {\n playing = false;\n cancelAnimationFrame(raf);\n raf = 0;\n },\n seek(ms: number) {\n set(ms);\n effects.forEach((e) => (e.fired = e.t.start! < time));\n },\n destroy() {\n player.pause();\n anims.forEach((an) => an.cancel());\n },\n };\n if (o.autoplay) player.play();\n return player;\n}\n\nexport interface UsaPlayerElement extends UsaElement {\n readonly player: Player | null;\n /** Load an animation (object or JSON text) and restart. */\n load(animation: string | AnimationJSON): void;\n play(): void;\n pause(): void;\n seek(ms: number): void;\n}\n\n/**\n * `<usa-player src=\"hero.json\" | <script type=\"application/json\"> child\n * trigger=\"load | view | scroll | click | manual\" loop rate controls>`.\n * Emits `usa-player-ready` and `usa-player-finish`; sets `data-error` when the\n * animation cannot be loaded.\n */\nexport function definePlayer(tag = 'usa-player'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaPlayer extends Base {\n static get observedAttributes(): string[] {\n return ['src', 'trigger', 'loop', 'rate'];\n }\n player: Player | null = null;\n private json: string | AnimationJSON | null = null;\n load(animation: string | AnimationJSON): void {\n this.json = animation;\n this.start();\n }\n play(): void {\n this.player?.play();\n }\n pause(): void {\n this.player?.pause();\n }\n seek(ms: number): void {\n this.player?.seek(ms);\n }\n private start(): void {\n this.player?.destroy();\n this.player = null;\n if (!this.json) return;\n try {\n this.player = createPlayer(this, this.json, {\n loop: this.hasAttribute('loop') ? true : undefined,\n rate: this.num('rate', 1),\n onFinish: () => this.dispatchEvent(new CustomEvent('usa-player-finish', { bubbles: true })),\n });\n this.removeAttribute('data-error');\n } catch (err) {\n this.setAttribute('data-error', String((err as Error).message || err));\n return;\n }\n const p = this.player;\n this.dispatchEvent(new CustomEvent('usa-player-ready', { detail: { duration: p.duration }, bubbles: true }));\n const trig = this.str('trigger', 'view');\n if (trig === 'load') p.play();\n else if (trig === 'view') this.inView((v) => v && p.play(), { threshold: 0.25 });\n else if (trig === 'click') this.listen(this, 'click', () => (p.playing ? p.pause() : p.play()));\n else if (trig === 'scroll') {\n let f = 0;\n const upd = () => {\n f = 0;\n p.seek(storyProgress(this) * p.duration);\n };\n const kick = () => void (f ||= requestAnimationFrame(upd));\n this.listen(window, 'scroll', kick, { passive: true });\n this.listen(window, 'resize', kick);\n this.onCleanup(() => cancelAnimationFrame(f));\n upd();\n }\n if (this.flag('controls')) this.mountControls(p);\n }\n private mountControls(p: Player): void {\n const b = document.createElement('button');\n b.type = 'button';\n b.setAttribute('data-player-toggle', '');\n b.textContent = '▶︎ / ❚❚';\n b.setAttribute('aria-label', 'Play / pause animation');\n this.listen(b, 'click', (e: Event) => {\n e.stopPropagation();\n if (p.playing) p.pause();\n else p.play();\n b.setAttribute('aria-pressed', String(p.playing));\n });\n this.append(b);\n this.onCleanup(() => b.remove());\n }\n changed(name: string): void {\n if (name === 'src') this.json = null;\n super.changed(name);\n }\n mount(): void {\n this.onCleanup(() => {\n this.player?.destroy();\n this.player = null;\n });\n const inline = this.querySelector<HTMLScriptElement>('script[type=\"application/json\"]');\n const src = this.str('src');\n if (inline && !this.json) this.json = inline.textContent || '';\n if (src && !this.json) {\n fetch(src)\n .then((r) => (r.ok ? r.text() : Promise.reject(new Error(`HTTP ${r.status}`))))\n .then((t) => this.isConnected && this.load(t))\n .catch((err) => this.setAttribute('data-error', String(err.message || err)));\n return;\n }\n this.start();\n }\n },\n { id: 'usa-player', text: 'usa-player{display:block;position:relative}usa-player>script{display:none}usa-player [data-player-toggle]{position:absolute;right:8px;bottom:8px}' }\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var base = require('./base-
|
|
3
|
+
var base = require('./base-DoRUZBy-.cjs');
|
|
4
4
|
|
|
5
5
|
var _a;
|
|
6
6
|
const EFFECT_KINDS = ['enter', 'exit', 'attention', 'click', 'hover', 'card', 'loop', 'page', 'background', 'text', 'cursor', 'scroll'];
|
|
@@ -128,4 +128,4 @@ exports.listEffects = listEffects;
|
|
|
128
128
|
exports.playEffect = playEffect;
|
|
129
129
|
exports.registerEffect = registerEffect;
|
|
130
130
|
exports.registerEffects = registerEffects;
|
|
131
|
-
//# sourceMappingURL=registry-
|
|
131
|
+
//# sourceMappingURL=registry-BVklOepd.cjs.map
|