use-scroll-animate 6.0.1 → 6.1.1
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 +31 -0
- package/README.md +157 -373
- package/README_ja.md +171 -145
- package/README_zh.md +169 -167
- package/dist/chunks/{base-B5i8qQPR.cjs → base-BaQV-2ha.cjs} +3 -3
- package/dist/chunks/base-BaQV-2ha.cjs.map +1 -0
- package/dist/chunks/{base-C3Sw9sAO.js → base-Yno7N2eC.js} +3 -3
- package/dist/chunks/base-Yno7N2eC.js.map +1 -0
- package/dist/chunks/{core-qpECfEkb.cjs → core-B5T0dhFH.cjs} +14 -210
- package/dist/chunks/core-B5T0dhFH.cjs.map +1 -0
- package/dist/chunks/{core-BDcszY4L.cjs → core-BGAyaY6L.cjs} +2 -2
- package/dist/chunks/{core-BDcszY4L.cjs.map → core-BGAyaY6L.cjs.map} +1 -1
- package/dist/chunks/{core-BTf__I-8.js → core-BIOaYdgN.js} +2 -2
- package/dist/chunks/{core-BTf__I-8.js.map → core-BIOaYdgN.js.map} +1 -1
- package/dist/chunks/{core-DN3hHbHh.js → core-CUGCsMsJ.js} +2 -2
- package/dist/chunks/{core-DN3hHbHh.js.map → core-CUGCsMsJ.js.map} +1 -1
- package/dist/chunks/{core-mV_TPgG_.js → core-D7cVumUu.js} +11 -203
- package/dist/chunks/core-D7cVumUu.js.map +1 -0
- package/dist/chunks/{core-BjOYKSrV.cjs → core-zq17EeCI.cjs} +2 -2
- package/dist/chunks/{core-BjOYKSrV.cjs.map → core-zq17EeCI.cjs.map} +1 -1
- package/dist/chunks/{fx-ChjxrMBo.js → fx-BqDeFywO.js} +2 -2
- package/dist/chunks/{fx-ChjxrMBo.js.map → fx-BqDeFywO.js.map} +1 -1
- package/dist/chunks/{fx-B8hk1Fby.cjs → fx-lBGVtQO1.cjs} +2 -2
- package/dist/chunks/{fx-B8hk1Fby.cjs.map → fx-lBGVtQO1.cjs.map} +1 -1
- package/dist/chunks/presets-BYBVJVeP.js +226 -0
- package/dist/chunks/presets-BYBVJVeP.js.map +1 -0
- package/dist/chunks/presets-CUHys3sK.cjs +233 -0
- package/dist/chunks/presets-CUHys3sK.cjs.map +1 -0
- package/dist/chunks/{spring-CckMe3x0.js → spring-DfQO5USi.js} +2 -2
- package/dist/chunks/{spring-CckMe3x0.js.map → spring-DfQO5USi.js.map} +1 -1
- package/dist/chunks/{spring--oZh55tB.cjs → spring-Dgx187Vh.cjs} +2 -2
- package/dist/chunks/{spring--oZh55tB.cjs.map → spring-Dgx187Vh.cjs.map} +1 -1
- package/dist/chunks/{stagger-CLc3j58T.cjs → stagger-CCFyhzSw.cjs} +3 -3
- package/dist/chunks/stagger-CCFyhzSw.cjs.map +1 -0
- package/dist/chunks/{stagger-BFAhKknX.js → stagger-DtMKo2SK.js} +3 -3
- package/dist/chunks/stagger-DtMKo2SK.js.map +1 -0
- package/dist/chunks/{variants-DxPmgrNX.cjs → variants-BhjyddG8.cjs} +2 -2
- package/dist/chunks/{variants-DxPmgrNX.cjs.map → variants-BhjyddG8.cjs.map} +1 -1
- package/dist/chunks/{variants-Bsevy6Xm.js → variants-VNscPeTD.js} +2 -2
- package/dist/chunks/{variants-Bsevy6Xm.js.map → variants-VNscPeTD.js.map} +1 -1
- package/dist/components/a11y.cjs +4 -4
- package/dist/components/a11y.cjs.map +1 -1
- package/dist/components/a11y.d.cts +2 -2
- package/dist/components/a11y.d.ts +2 -2
- package/dist/components/a11y.js +5 -5
- package/dist/components/a11y.js.map +1 -1
- package/dist/components/angular.cjs +8 -8
- package/dist/components/angular.cjs.map +1 -1
- package/dist/components/angular.d.cts +22 -22
- package/dist/components/angular.d.ts +22 -22
- package/dist/components/angular.js +8 -8
- package/dist/components/angular.js.map +1 -1
- package/dist/components/background.cjs +3 -3
- package/dist/components/background.cjs.map +1 -1
- package/dist/components/background.css +1 -1
- package/dist/components/background.d.cts +1 -1
- package/dist/components/background.d.ts +1 -1
- package/dist/components/background.js +3 -3
- package/dist/components/background.js.map +1 -1
- package/dist/components/bridge.cjs +2 -2
- package/dist/components/bridge.cjs.map +1 -1
- package/dist/components/bridge.d.cts +1 -1
- package/dist/components/bridge.d.ts +1 -1
- package/dist/components/bridge.js +2 -2
- package/dist/components/bridge.js.map +1 -1
- package/dist/components/cards.cjs +3 -3
- package/dist/components/cards.cjs.map +1 -1
- package/dist/components/cards.css +1 -1
- package/dist/components/cards.d.cts +1 -1
- package/dist/components/cards.d.ts +1 -1
- package/dist/components/cards.js +3 -3
- package/dist/components/cards.js.map +1 -1
- package/dist/components/click.cjs +4 -4
- package/dist/components/click.cjs.map +1 -1
- package/dist/components/click.css +1 -1
- package/dist/components/click.d.cts +1 -1
- package/dist/components/click.d.ts +1 -1
- package/dist/components/click.js +4 -4
- package/dist/components/click.js.map +1 -1
- package/dist/components/depth.cjs +4 -4
- package/dist/components/depth.cjs.map +1 -1
- package/dist/components/depth.css +1 -1
- package/dist/components/depth.d.cts +1 -1
- package/dist/components/depth.d.ts +1 -1
- package/dist/components/depth.js +4 -4
- package/dist/components/depth.js.map +1 -1
- package/dist/components/effects.cjs +13 -13
- package/dist/components/effects.cjs.map +1 -1
- package/dist/components/effects.d.cts +2 -2
- package/dist/components/effects.d.ts +2 -2
- package/dist/components/effects.js +13 -13
- package/dist/components/effects.js.map +1 -1
- package/dist/components/feedback.cjs +2 -2
- package/dist/components/feedback.cjs.map +1 -1
- package/dist/components/feedback.css +1 -1
- package/dist/components/feedback.d.cts +1 -1
- package/dist/components/feedback.d.ts +1 -1
- package/dist/components/feedback.js +2 -2
- package/dist/components/feedback.js.map +1 -1
- package/dist/components/fx.cjs +10 -10
- package/dist/components/fx.cjs.map +1 -1
- package/dist/components/fx.css +1 -1
- package/dist/components/fx.d.cts +2 -2
- package/dist/components/fx.d.ts +2 -2
- package/dist/components/fx.js +10 -10
- package/dist/components/fx.js.map +1 -1
- package/dist/components/gesture.cjs +4 -4
- package/dist/components/gesture.cjs.map +1 -1
- package/dist/components/gesture.css +1 -1
- package/dist/components/gesture.d.cts +1 -1
- package/dist/components/gesture.d.ts +1 -1
- package/dist/components/gesture.js +5 -5
- package/dist/components/gesture.js.map +1 -1
- package/dist/components/interaction.cjs +2 -2
- package/dist/components/interaction.cjs.map +1 -1
- package/dist/components/interaction.css +1 -1
- package/dist/components/interaction.d.cts +1 -1
- package/dist/components/interaction.d.ts +1 -1
- package/dist/components/interaction.js +2 -2
- package/dist/components/interaction.js.map +1 -1
- package/dist/components/jsx.d.cts +2 -2
- package/dist/components/jsx.d.ts +2 -2
- package/dist/components/layout.cjs +2 -2
- package/dist/components/layout.cjs.map +1 -1
- package/dist/components/layout.css +1 -1
- package/dist/components/layout.d.cts +1 -1
- package/dist/components/layout.d.ts +1 -1
- package/dist/components/layout.js +2 -2
- package/dist/components/layout.js.map +1 -1
- package/dist/components/lazy.cjs +2 -2
- package/dist/components/lazy.cjs.map +1 -1
- package/dist/components/lazy.d.cts +2 -2
- package/dist/components/lazy.d.ts +2 -2
- package/dist/components/lazy.js +2 -2
- package/dist/components/lazy.js.map +1 -1
- package/dist/components/lite.cjs +45 -41
- package/dist/components/lite.cjs.map +1 -1
- package/dist/components/lite.js +45 -41
- package/dist/components/lite.js.map +1 -1
- package/dist/components/packs.cjs +2 -2
- package/dist/components/packs.cjs.map +1 -1
- package/dist/components/packs.css +1 -1
- package/dist/components/packs.d.cts +1 -1
- package/dist/components/packs.d.ts +1 -1
- package/dist/components/packs.js +2 -2
- package/dist/components/packs.js.map +1 -1
- package/dist/components/page.cjs +3 -3
- package/dist/components/page.cjs.map +1 -1
- package/dist/components/page.css +1 -1
- package/dist/components/page.d.cts +1 -1
- package/dist/components/page.d.ts +1 -1
- package/dist/components/page.js +4 -4
- package/dist/components/page.js.map +1 -1
- package/dist/components/perf.cjs +3 -3
- package/dist/components/perf.cjs.map +1 -1
- package/dist/components/perf.d.cts +2 -2
- package/dist/components/perf.d.ts +2 -2
- package/dist/components/perf.js +4 -4
- package/dist/components/perf.js.map +1 -1
- package/dist/components/physics.cjs +3 -3
- package/dist/components/physics.cjs.map +1 -1
- package/dist/components/physics.css +1 -1
- package/dist/components/physics.d.cts +1 -1
- package/dist/components/physics.d.ts +1 -1
- package/dist/components/physics.js +4 -4
- package/dist/components/physics.js.map +1 -1
- package/dist/components/react.cjs +4 -4
- package/dist/components/react.cjs.map +1 -1
- package/dist/components/react.js +4 -4
- package/dist/components/react.js.map +1 -1
- package/dist/components/reveal.cjs +6 -2
- package/dist/components/reveal.cjs.map +1 -1
- package/dist/components/reveal.css +1 -1
- package/dist/components/reveal.d.cts +1 -1
- package/dist/components/reveal.d.ts +1 -1
- package/dist/components/reveal.js +6 -2
- package/dist/components/reveal.js.map +1 -1
- package/dist/components/solid.cjs +9 -9
- package/dist/components/solid.cjs.map +1 -1
- package/dist/components/solid.d.cts +22 -22
- package/dist/components/solid.d.ts +22 -22
- package/dist/components/solid.js +9 -9
- package/dist/components/solid.js.map +1 -1
- package/dist/components/svelte.cjs +8 -8
- package/dist/components/svelte.cjs.map +1 -1
- package/dist/components/svelte.d.cts +22 -22
- package/dist/components/svelte.d.ts +22 -22
- package/dist/components/svelte.js +8 -8
- package/dist/components/svelte.js.map +1 -1
- package/dist/components/svg.cjs +2 -2
- package/dist/components/svg.cjs.map +1 -1
- package/dist/components/svg.css +1 -1
- package/dist/components/svg.d.cts +1 -1
- package/dist/components/svg.d.ts +1 -1
- package/dist/components/svg.js +2 -2
- package/dist/components/svg.js.map +1 -1
- package/dist/components/text.cjs +3 -3
- package/dist/components/text.cjs.map +1 -1
- package/dist/components/text.css +1 -1
- package/dist/components/text.d.cts +1 -1
- package/dist/components/text.d.ts +1 -1
- package/dist/components/text.js +3 -3
- package/dist/components/text.js.map +1 -1
- package/dist/components/timeline.cjs +3 -3
- package/dist/components/timeline.cjs.map +1 -1
- package/dist/components/timeline.css +1 -1
- package/dist/components/timeline.d.cts +1 -1
- package/dist/components/timeline.d.ts +1 -1
- package/dist/components/timeline.js +4 -4
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/tokens.cjs +2 -2
- package/dist/components/tokens.cjs.map +1 -1
- package/dist/components/tokens.d.cts +2 -2
- package/dist/components/tokens.d.ts +2 -2
- package/dist/components/tokens.js +2 -2
- package/dist/components/tokens.js.map +1 -1
- package/dist/components/transitions.cjs +2 -2
- package/dist/components/transitions.cjs.map +1 -1
- package/dist/components/transitions.css +1 -1
- package/dist/components/transitions.d.cts +1 -1
- package/dist/components/transitions.d.ts +1 -1
- package/dist/components/transitions.js +2 -2
- package/dist/components/transitions.js.map +1 -1
- package/dist/components/ui.cjs +4 -4
- package/dist/components/ui.cjs.map +1 -1
- package/dist/components/ui.css +1 -1
- package/dist/components/ui.d.cts +1 -1
- package/dist/components/ui.d.ts +1 -1
- package/dist/components/ui.js +5 -5
- package/dist/components/ui.js.map +1 -1
- package/dist/components/vue.cjs +9 -9
- package/dist/components/vue.cjs.map +1 -1
- package/dist/components/vue.d.cts +23 -23
- package/dist/components/vue.d.ts +23 -23
- package/dist/components/vue.js +9 -9
- package/dist/components/vue.js.map +1 -1
- package/dist/components/webgl.cjs +2 -2
- package/dist/components/webgl.cjs.map +1 -1
- package/dist/components/webgl.css +1 -1
- package/dist/components/webgl.d.cts +1 -1
- package/dist/components/webgl.d.ts +1 -1
- package/dist/components/webgl.js +2 -2
- package/dist/components/webgl.js.map +1 -1
- package/dist/components.cjs +9 -9
- package/dist/components.cjs.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.d.cts +30 -30
- package/dist/components.d.ts +30 -30
- package/dist/components.js +11 -11
- package/dist/components.js.map +1 -1
- package/dist/components.umd.js +5 -5
- package/dist/components.umd.js.map +1 -1
- package/dist/element.cjs +4 -3
- package/dist/element.cjs.map +1 -1
- package/dist/element.d.cts +19 -5
- package/dist/element.d.ts +19 -5
- package/dist/element.js +4 -3
- package/dist/element.js.map +1 -1
- package/dist/element.umd.js +1 -1
- package/dist/element.umd.js.map +1 -1
- package/dist/index.cjs +28 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -15
- package/dist/index.d.ts +40 -15
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +5 -5
- package/dist/index.umd.js.map +1 -1
- package/dist/presets/extended.cjs +243 -0
- package/dist/presets/extended.cjs.map +1 -0
- package/dist/presets/extended.d.cts +37 -0
- package/dist/presets/extended.d.ts +37 -0
- package/dist/presets/extended.js +239 -0
- package/dist/presets/extended.js.map +1 -0
- package/dist/presets-extended.umd.js +2 -0
- package/dist/presets-extended.umd.js.map +1 -0
- package/dist/react.cjs +4 -3
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +19 -5
- package/dist/react.d.ts +19 -5
- package/dist/react.js +4 -3
- package/dist/react.js.map +1 -1
- package/dist/solid.cjs +5 -4
- package/dist/solid.cjs.map +1 -1
- package/dist/solid.d.cts +20 -6
- package/dist/solid.d.ts +20 -6
- package/dist/solid.js +5 -4
- package/dist/solid.js.map +1 -1
- package/dist/svelte.cjs +5 -4
- package/dist/svelte.cjs.map +1 -1
- package/dist/svelte.d.cts +20 -6
- package/dist/svelte.d.ts +20 -6
- package/dist/svelte.js +5 -4
- package/dist/svelte.js.map +1 -1
- package/dist/vue.cjs +4 -3
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.d.cts +19 -5
- package/dist/vue.d.ts +19 -5
- package/dist/vue.js +4 -3
- package/dist/vue.js.map +1 -1
- package/docs/API.md +17 -12
- package/docs/ROADMAP.md +12 -11
- package/docs/accessibility.md +2 -2
- package/docs/components.md +33 -33
- package/docs/frameworks-ssr.md +12 -12
- package/docs/hybrid-apps.md +10 -10
- package/docs/migration-from-aos.md +5 -5
- package/docs/migration-from-gsap-scrolltrigger.md +3 -3
- package/docs/motion-tokens.css +1 -1
- package/docs/motion-tokens.md +2 -2
- package/docs/performance.md +6 -6
- package/docs/presets.md +310 -0
- package/docs/windows-apps.md +8 -8
- package/package.json +40 -26
- package/dist/chunks/base-B5i8qQPR.cjs.map +0 -1
- package/dist/chunks/base-C3Sw9sAO.js.map +0 -1
- package/dist/chunks/core-mV_TPgG_.js.map +0 -1
- package/dist/chunks/core-qpECfEkb.cjs.map +0 -1
- package/dist/chunks/stagger-BFAhKknX.js.map +0 -1
- package/dist/chunks/stagger-CLc3j58T.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets-extended.umd.js","sources":["../src/extended-presets-data.ts","../src/extended-presets-umd.ts"],"sourcesContent":["/**\n * motionary — extended preset data (\"Scroll presets 2.0\", v6.1).\n * GENERATED by the release tooling from one source list; edit with care and keep\n * `ExtendedPreset` (src/types.ts) and showcase/catalog-extended.js in sync (tests check it).\n * Pure data: no side effects. Register with `registerPresets(EXTENDED_PRESETS)` or import\n * 'motionary/presets/extended' (registers on import).\n */\nimport type { ExtendedPreset, PresetKeyframes } from './types';\n\nexport const EXTENDED_PRESETS: Record<ExtendedPreset, PresetKeyframes> = {\n // Fade\n 'fade-in-up-sm': { from: { opacity: 0, transform: 'translateY(16px)' }, to: { opacity: 1, transform: 'translateY(0px)' } },\n 'fade-in-down-sm': { from: { opacity: 0, transform: 'translateY(-16px)' }, to: { opacity: 1, transform: 'translateY(0px)' } },\n 'fade-in-left-sm': { from: { opacity: 0, transform: 'translateX(-16px)' }, to: { opacity: 1, transform: 'translateX(0px)' } },\n 'fade-in-right-sm': { from: { opacity: 0, transform: 'translateX(16px)' }, to: { opacity: 1, transform: 'translateX(0px)' } },\n 'fade-in-up-lg': { from: { opacity: 0, transform: 'translateY(120px)' }, to: { opacity: 1, transform: 'translateY(0px)' } },\n 'fade-in-down-lg': { from: { opacity: 0, transform: 'translateY(-120px)' }, to: { opacity: 1, transform: 'translateY(0px)' } },\n 'fade-in-left-lg': { from: { opacity: 0, transform: 'translateX(-120px)' }, to: { opacity: 1, transform: 'translateX(0px)' } },\n 'fade-in-right-lg': { from: { opacity: 0, transform: 'translateX(120px)' }, to: { opacity: 1, transform: 'translateX(0px)' } },\n 'fade-in-up-left': { from: { opacity: 0, transform: 'translate(-40px, 40px)' }, to: { opacity: 1, transform: 'translate(0px, 0px)' } },\n 'fade-in-up-right': { from: { opacity: 0, transform: 'translate(40px, 40px)' }, to: { opacity: 1, transform: 'translate(0px, 0px)' } },\n 'fade-in-down-left': { from: { opacity: 0, transform: 'translate(-40px, -40px)' }, to: { opacity: 1, transform: 'translate(0px, 0px)' } },\n 'fade-in-down-right': { from: { opacity: 0, transform: 'translate(40px, -40px)' }, to: { opacity: 1, transform: 'translate(0px, 0px)' } },\n 'fade-in-scale': { from: { opacity: 0, transform: 'translateY(20px) scale(0.95)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'fade-in-half': { from: { opacity: 0.5 }, to: { opacity: 1 } },\n // Zoom & scale\n 'zoom-in-up': { from: { opacity: 0, transform: 'translateY(60px) scale(0.6)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'zoom-in-down': { from: { opacity: 0, transform: 'translateY(-60px) scale(0.6)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'zoom-in-left': { from: { opacity: 0, transform: 'translateX(-60px) scale(0.6)' }, to: { opacity: 1, transform: 'translateX(0px) scale(1)' } },\n 'zoom-in-right': { from: { opacity: 0, transform: 'translateX(60px) scale(0.6)' }, to: { opacity: 1, transform: 'translateX(0px) scale(1)' } },\n 'zoom-out-up': { from: { opacity: 0, transform: 'translateY(60px) scale(1.4)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'zoom-out-down': { from: { opacity: 0, transform: 'translateY(-60px) scale(1.4)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'zoom-out-left': { from: { opacity: 0, transform: 'translateX(-60px) scale(1.4)' }, to: { opacity: 1, transform: 'translateX(0px) scale(1)' } },\n 'zoom-out-right': { from: { opacity: 0, transform: 'translateX(60px) scale(1.4)' }, to: { opacity: 1, transform: 'translateX(0px) scale(1)' } },\n 'zoom-in-big': { from: { opacity: 0, transform: 'scale(0)' }, to: { opacity: 1, transform: 'scale(1)' } },\n 'zoom-out-big': { from: { opacity: 0, transform: 'scale(2)' }, to: { opacity: 1, transform: 'scale(1)' } },\n 'zoom-bounce': { from: { opacity: 0, transform: 'scale(0.3)' }, to: { opacity: 1, transform: 'scale(1)' }, frames: [{ offset: 0.5, opacity: 1, transform: 'scale(1.1)' }, { offset: 0.75, transform: 'scale(0.95)' }] },\n 'zoom-in-rotate': { from: { opacity: 0, transform: 'rotate(-30deg) scale(0.5)' }, to: { opacity: 1, transform: 'rotate(0deg) scale(1)' } },\n 'scale-x-left': { from: { transform: 'scaleX(0)', transformOrigin: 'left center' }, to: { transform: 'scaleX(1)', transformOrigin: 'left center' } },\n 'scale-x-right': { from: { transform: 'scaleX(0)', transformOrigin: 'right center' }, to: { transform: 'scaleX(1)', transformOrigin: 'right center' } },\n 'scale-y-top': { from: { transform: 'scaleY(0)', transformOrigin: 'center top' }, to: { transform: 'scaleY(1)', transformOrigin: 'center top' } },\n 'scale-y-bottom': { from: { transform: 'scaleY(0)', transformOrigin: 'center bottom' }, to: { transform: 'scaleY(1)', transformOrigin: 'center bottom' } },\n 'stretch-x': { from: { opacity: 0, transform: 'scale(1.6, 0.6)' }, to: { opacity: 1, transform: 'scale(1, 1)' } },\n 'stretch-y': { from: { opacity: 0, transform: 'scale(0.6, 1.6)' }, to: { opacity: 1, transform: 'scale(1, 1)' } },\n // Flip 3D\n 'flip-x-reverse': { from: { opacity: 0, transform: 'perspective(800px) rotateX(90deg)' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg)' } },\n 'flip-y-reverse': { from: { opacity: 0, transform: 'perspective(800px) rotateY(90deg)' }, to: { opacity: 1, transform: 'perspective(800px) rotateY(0deg)' } },\n 'flip-y-full': { from: { opacity: 0, transform: 'perspective(800px) rotateY(-180deg)' }, to: { opacity: 1, transform: 'perspective(800px) rotateY(0deg)' } },\n 'flip-diagonal': { from: { opacity: 0, transform: 'perspective(800px) rotate3d(1, 1, 0, 90deg)' }, to: { opacity: 1, transform: 'perspective(800px) rotate3d(1, 1, 0, 0deg)' } },\n 'flip-diagonal-reverse': { from: { opacity: 0, transform: 'perspective(800px) rotate3d(1, -1, 0, 90deg)' }, to: { opacity: 1, transform: 'perspective(800px) rotate3d(1, -1, 0, 0deg)' } },\n 'flip-left': { from: { opacity: 0, transform: 'perspective(800px) rotateY(-70deg)', transformOrigin: 'left center' }, to: { opacity: 1, transform: 'perspective(800px) rotateY(0deg)', transformOrigin: 'left center' } },\n 'flip-right': { from: { opacity: 0, transform: 'perspective(800px) rotateY(70deg)', transformOrigin: 'right center' }, to: { opacity: 1, transform: 'perspective(800px) rotateY(0deg)', transformOrigin: 'right center' } },\n 'unfold-down': { from: { opacity: 0, transform: 'perspective(800px) rotateX(-90deg)', transformOrigin: 'center top' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg)', transformOrigin: 'center top' } },\n 'unfold-up': { from: { opacity: 0, transform: 'perspective(800px) rotateX(90deg)', transformOrigin: 'center bottom' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg)', transformOrigin: 'center bottom' } },\n 'door-open-left': { from: { transform: 'perspective(800px) rotateY(-100deg)', transformOrigin: 'left center' }, to: { transform: 'perspective(800px) rotateY(0deg)', transformOrigin: 'left center' } },\n 'door-open-right': { from: { transform: 'perspective(800px) rotateY(100deg)', transformOrigin: 'right center' }, to: { transform: 'perspective(800px) rotateY(0deg)', transformOrigin: 'right center' } },\n 'fold-in': { from: { opacity: 0, transform: 'perspective(800px) rotateX(80deg) scaleY(0.4)' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg) scaleY(1)' } },\n 'flip-x-bounce': { from: { opacity: 0, transform: 'perspective(800px) rotateX(90deg)' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg)' }, frames: [{ offset: 0.4, opacity: 1, transform: 'perspective(800px) rotateX(-20deg)' }, { offset: 0.6, transform: 'perspective(800px) rotateX(10deg)' }, { offset: 0.8, transform: 'perspective(800px) rotateX(-5deg)' }] },\n 'flip-y-bounce': { from: { opacity: 0, transform: 'perspective(800px) rotateY(90deg)' }, to: { opacity: 1, transform: 'perspective(800px) rotateY(0deg)' }, frames: [{ offset: 0.4, opacity: 1, transform: 'perspective(800px) rotateY(-20deg)' }, { offset: 0.6, transform: 'perspective(800px) rotateY(10deg)' }, { offset: 0.8, transform: 'perspective(800px) rotateY(-5deg)' }] },\n 'swing-in-top': { from: { opacity: 0, transform: 'perspective(800px) rotateX(-100deg)', transformOrigin: 'center top' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg)', transformOrigin: 'center top' }, frames: [{ offset: 0.6, opacity: 1, transform: 'perspective(800px) rotateX(12deg)' }, { offset: 0.8, transform: 'perspective(800px) rotateX(-5deg)' }] },\n 'swing-in-bottom': { from: { opacity: 0, transform: 'perspective(800px) rotateX(100deg)', transformOrigin: 'center bottom' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg)', transformOrigin: 'center bottom' }, frames: [{ offset: 0.6, opacity: 1, transform: 'perspective(800px) rotateX(-12deg)' }, { offset: 0.8, transform: 'perspective(800px) rotateX(5deg)' }] },\n 'swing-in-left': { from: { opacity: 0, transform: 'perspective(800px) rotateY(100deg)', transformOrigin: 'left center' }, to: { opacity: 1, transform: 'perspective(800px) rotateY(0deg)', transformOrigin: 'left center' }, frames: [{ offset: 0.6, opacity: 1, transform: 'perspective(800px) rotateY(-12deg)' }, { offset: 0.8, transform: 'perspective(800px) rotateY(5deg)' }] },\n 'swing-in-right': { from: { opacity: 0, transform: 'perspective(800px) rotateY(-100deg)', transformOrigin: 'right center' }, to: { opacity: 1, transform: 'perspective(800px) rotateY(0deg)', transformOrigin: 'right center' }, frames: [{ offset: 0.6, opacity: 1, transform: 'perspective(800px) rotateY(12deg)' }, { offset: 0.8, transform: 'perspective(800px) rotateY(-5deg)' }] },\n // Slide\n 'slide-up-spring': { from: { transform: 'translateY(100%)' }, to: { transform: 'translateY(0%)' }, frames: [{ offset: 0.7, transform: 'translateY(-8%)' }] },\n 'slide-down-spring': { from: { transform: 'translateY(-100%)' }, to: { transform: 'translateY(0%)' }, frames: [{ offset: 0.7, transform: 'translateY(8%)' }] },\n 'slide-left-spring': { from: { transform: 'translateX(-100%)' }, to: { transform: 'translateX(0%)' }, frames: [{ offset: 0.7, transform: 'translateX(8%)' }] },\n 'slide-right-spring': { from: { transform: 'translateX(100%)' }, to: { transform: 'translateX(0%)' }, frames: [{ offset: 0.7, transform: 'translateX(-8%)' }] },\n 'slide-up-sm': { from: { transform: 'translateY(30%)' }, to: { transform: 'translateY(0%)' } },\n 'slide-down-sm': { from: { transform: 'translateY(-30%)' }, to: { transform: 'translateY(0%)' } },\n 'back-in-up': { from: { opacity: 0, transform: 'translateY(120px) scale(0.7)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' }, frames: [{ offset: 0.7, opacity: 0.8, transform: 'translateY(0px) scale(0.7)' }] },\n 'back-in-down': { from: { opacity: 0, transform: 'translateY(-120px) scale(0.7)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' }, frames: [{ offset: 0.7, opacity: 0.8, transform: 'translateY(0px) scale(0.7)' }] },\n 'back-in-left': { from: { opacity: 0, transform: 'translateX(-120px) scale(0.7)' }, to: { opacity: 1, transform: 'translateX(0px) scale(1)' }, frames: [{ offset: 0.7, opacity: 0.8, transform: 'translateX(0px) scale(0.7)' }] },\n 'back-in-right': { from: { opacity: 0, transform: 'translateX(120px) scale(0.7)' }, to: { opacity: 1, transform: 'translateX(0px) scale(1)' }, frames: [{ offset: 0.7, opacity: 0.8, transform: 'translateX(0px) scale(0.7)' }] },\n 'light-speed-in-left': { from: { opacity: 0, transform: 'translateX(-100%) skewX(30deg)' }, to: { opacity: 1, transform: 'translateX(0%) skewX(0deg)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateX(0%) skewX(-20deg)' }, { offset: 0.8, transform: 'translateX(0%) skewX(5deg)' }] },\n 'light-speed-in-right': { from: { opacity: 0, transform: 'translateX(100%) skewX(-30deg)' }, to: { opacity: 1, transform: 'translateX(0%) skewX(0deg)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateX(0%) skewX(20deg)' }, { offset: 0.8, transform: 'translateX(0%) skewX(-5deg)' }] },\n 'rise-in': { from: { opacity: 0, transform: 'translateY(80px) scale(0.96)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'sink-in': { from: { opacity: 0, transform: 'translateY(-80px) scale(1.04)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'float-in-up': { from: { opacity: 0, transform: 'translateY(40px) rotate(-3deg)' }, to: { opacity: 1, transform: 'translateY(0px) rotate(0deg)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateY(-6px) rotate(1deg)' }] },\n 'float-in-down': { from: { opacity: 0, transform: 'translateY(-40px) rotate(3deg)' }, to: { opacity: 1, transform: 'translateY(0px) rotate(0deg)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateY(6px) rotate(-1deg)' }] },\n // Rotate & skew\n 'roll-in-left': { from: { opacity: 0, transform: 'translateX(-120%) rotate(-120deg)' }, to: { opacity: 1, transform: 'translateX(0%) rotate(0deg)' } },\n 'roll-in-right': { from: { opacity: 0, transform: 'translateX(120%) rotate(120deg)' }, to: { opacity: 1, transform: 'translateX(0%) rotate(0deg)' } },\n 'spiral-in': { from: { opacity: 0, transform: 'rotate(-540deg) scale(0)' }, to: { opacity: 1, transform: 'rotate(0deg) scale(1)' } },\n 'spiral-in-reverse': { from: { opacity: 0, transform: 'rotate(540deg) scale(0)' }, to: { opacity: 1, transform: 'rotate(0deg) scale(1)' } },\n 'spin-in': { from: { opacity: 0, transform: 'rotate(-360deg)' }, to: { opacity: 1, transform: 'rotate(0deg)' } },\n 'rotate-in-up-left': { from: { opacity: 0, transform: 'rotate(45deg)', transformOrigin: 'left bottom' }, to: { opacity: 1, transform: 'rotate(0deg)', transformOrigin: 'left bottom' } },\n 'rotate-in-up-right': { from: { opacity: 0, transform: 'rotate(-45deg)', transformOrigin: 'right bottom' }, to: { opacity: 1, transform: 'rotate(0deg)', transformOrigin: 'right bottom' } },\n 'rotate-in-down-left': { from: { opacity: 0, transform: 'rotate(-45deg)', transformOrigin: 'left bottom' }, to: { opacity: 1, transform: 'rotate(0deg)', transformOrigin: 'left bottom' } },\n 'rotate-in-down-right': { from: { opacity: 0, transform: 'rotate(45deg)', transformOrigin: 'right bottom' }, to: { opacity: 1, transform: 'rotate(0deg)', transformOrigin: 'right bottom' } },\n 'skew-in-left': { from: { opacity: 0, transform: 'translateX(-80px) skewX(30deg)' }, to: { opacity: 1, transform: 'translateX(0px) skewX(0deg)' } },\n 'skew-in-y': { from: { opacity: 0, transform: 'translateY(40px) skewY(12deg)' }, to: { opacity: 1, transform: 'translateY(0px) skewY(0deg)' } },\n 'shear-in': { from: { opacity: 0, transform: 'skew(20deg, 10deg)' }, to: { opacity: 1, transform: 'skew(0deg, 0deg)' } },\n 'shear-in-reverse': { from: { opacity: 0, transform: 'skew(-20deg, -10deg)' }, to: { opacity: 1, transform: 'skew(0deg, 0deg)' } },\n 'twist-in': { from: { opacity: 0, transform: 'rotate(-20deg) skewX(10deg) scale(0.8)' }, to: { opacity: 1, transform: 'rotate(0deg) skewX(0deg) scale(1)' } },\n 'tilt-in-left': { from: { opacity: 0, transform: 'translateY(30px) rotate(-8deg)' }, to: { opacity: 1, transform: 'translateY(0px) rotate(0deg)' } },\n 'tilt-in-right': { from: { opacity: 0, transform: 'translateY(30px) rotate(8deg)' }, to: { opacity: 1, transform: 'translateY(0px) rotate(0deg)' } },\n // Blur & mask\n 'blur-in-down': { from: { opacity: 0, filter: 'blur(12px)', transform: 'translateY(-40px)' }, to: { opacity: 1, filter: 'blur(0px)', transform: 'translateY(0px)' } },\n 'blur-in-left': { from: { opacity: 0, filter: 'blur(12px)', transform: 'translateX(-40px)' }, to: { opacity: 1, filter: 'blur(0px)', transform: 'translateX(0px)' } },\n 'blur-in-right': { from: { opacity: 0, filter: 'blur(12px)', transform: 'translateX(40px)' }, to: { opacity: 1, filter: 'blur(0px)', transform: 'translateX(0px)' } },\n 'blur-in-strong': { from: { opacity: 0, filter: 'blur(24px)' }, to: { opacity: 1, filter: 'blur(0px)' } },\n 'blur-in-zoom': { from: { opacity: 0, filter: 'blur(14px)', transform: 'scale(1.2)' }, to: { opacity: 1, filter: 'blur(0px)', transform: 'scale(1)' } },\n 'blur-in-scale': { from: { opacity: 0, filter: 'blur(14px)', transform: 'scale(0.8)' }, to: { opacity: 1, filter: 'blur(0px)', transform: 'scale(1)' } },\n 'blur-in-x': { from: { opacity: 0, filter: 'blur(10px)', transform: 'scaleX(1.3)' }, to: { opacity: 1, filter: 'blur(0px)', transform: 'scaleX(1)' } },\n 'mask-up': { from: { transform: 'translateY(100%)', clipPath: 'inset(0% 0% 100% 0%)' }, to: { transform: 'translateY(0%)', clipPath: 'inset(0% 0% 0% 0%)' } },\n 'mask-down': { from: { transform: 'translateY(-100%)', clipPath: 'inset(100% 0% 0% 0%)' }, to: { transform: 'translateY(0%)', clipPath: 'inset(0% 0% 0% 0%)' } },\n 'mask-left': { from: { transform: 'translateX(100%)', clipPath: 'inset(0% 100% 0% 0%)' }, to: { transform: 'translateX(0%)', clipPath: 'inset(0% 0% 0% 0%)' } },\n 'mask-right': { from: { transform: 'translateX(-100%)', clipPath: 'inset(0% 0% 0% 100%)' }, to: { transform: 'translateX(0%)', clipPath: 'inset(0% 0% 0% 0%)' } },\n 'blur-mask-up': { from: { transform: 'translateY(60%)', clipPath: 'inset(0% 0% 60% 0%)', filter: 'blur(8px)' }, to: { transform: 'translateY(0%)', clipPath: 'inset(0% 0% 0% 0%)', filter: 'blur(0px)' } },\n // Clip reveal\n 'clip-circle-top': { from: { clipPath: 'circle(0% at 50% 0%)' }, to: { clipPath: 'circle(150% at 50% 0%)' } },\n 'clip-circle-bottom': { from: { clipPath: 'circle(0% at 50% 100%)' }, to: { clipPath: 'circle(150% at 50% 100%)' } },\n 'clip-circle-left': { from: { clipPath: 'circle(0% at 0% 50%)' }, to: { clipPath: 'circle(150% at 0% 50%)' } },\n 'clip-circle-right': { from: { clipPath: 'circle(0% at 100% 50%)' }, to: { clipPath: 'circle(150% at 100% 50%)' } },\n 'clip-circle-corner': { from: { clipPath: 'circle(0% at 0% 0%)' }, to: { clipPath: 'circle(150% at 0% 0%)' } },\n 'clip-ellipse': { from: { clipPath: 'ellipse(0% 0% at 50% 50%)' }, to: { clipPath: 'ellipse(75% 75% at 50% 50%)' } },\n 'clip-diamond': { from: { clipPath: 'polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%)' }, to: { clipPath: 'polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)' } },\n 'clip-split-x': { from: { clipPath: 'inset(0% 50% 0% 50%)' }, to: { clipPath: 'inset(0% 0% 0% 0%)' } },\n 'clip-split-y': { from: { clipPath: 'inset(50% 0% 50% 0%)' }, to: { clipPath: 'inset(0% 0% 0% 0%)' } },\n 'clip-box': { from: { clipPath: 'inset(50% 50% 50% 50%)' }, to: { clipPath: 'inset(0% 0% 0% 0%)' } },\n 'clip-pill': { from: { clipPath: 'inset(35% 35% 35% 35% round 50%)' }, to: { clipPath: 'inset(0% 0% 0% 0% round 0%)' } },\n 'clip-blinds': { from: { clipPath: 'polygon(0% 0%, 100% 0%, 100% 0%, 0% 0%, 0% 25%, 100% 25%, 100% 25%, 0% 25%, 0% 50%, 100% 50%, 100% 50%, 0% 50%, 0% 75%, 100% 75%, 100% 75%, 0% 75%)' }, to: { clipPath: 'polygon(0% 0%, 100% 0%, 100% 25%, 0% 25%, 0% 25%, 100% 25%, 100% 50%, 0% 50%, 0% 50%, 100% 50%, 100% 75%, 0% 75%, 0% 75%, 100% 75%, 100% 100%, 0% 100%)' } },\n 'clip-blinds-x': { from: { clipPath: 'polygon(0% 0%, 0% 100%, 0% 100%, 0% 0%, 25% 0%, 25% 100%, 25% 100%, 25% 0%, 50% 0%, 50% 100%, 50% 100%, 50% 0%, 75% 0%, 75% 100%, 75% 100%, 75% 0%)' }, to: { clipPath: 'polygon(0% 0%, 0% 100%, 25% 100%, 25% 0%, 25% 0%, 25% 100%, 50% 100%, 50% 0%, 50% 0%, 50% 100%, 75% 100%, 75% 0%, 75% 0%, 75% 100%, 100% 100%, 100% 0%)' } },\n 'clip-diagonal': { from: { clipPath: 'polygon(0% 0%, 0% 0%, 0% 0%)' }, to: { clipPath: 'polygon(0% 0%, 200% 0%, 0% 200%)' } },\n 'clip-diagonal-reverse': { from: { clipPath: 'polygon(100% 100%, 100% 100%, 100% 100%)' }, to: { clipPath: 'polygon(100% 100%, -100% 100%, 100% -100%)' } },\n 'clip-slant-right': { from: { clipPath: 'polygon(0% 0%, 0% 0%, -20% 100%, -20% 100%)' }, to: { clipPath: 'polygon(0% 0%, 120% 0%, 100% 100%, -20% 100%)' } },\n 'clip-slant-left': { from: { clipPath: 'polygon(100% 0%, 120% 0%, 120% 100%, 100% 100%)' }, to: { clipPath: 'polygon(-20% 0%, 120% 0%, 120% 100%, 0% 100%)' } },\n // Bounce & elastic\n 'bounce-in': { from: { opacity: 0, transform: 'scale(0.3)' }, to: { opacity: 1, transform: 'scale(1)' }, frames: [{ offset: 0.2, transform: 'scale(1.1)' }, { offset: 0.4, transform: 'scale(0.9)' }, { offset: 0.6, opacity: 1, transform: 'scale(1.03)' }, { offset: 0.8, transform: 'scale(0.97)' }] },\n 'bounce-in-up': { from: { opacity: 0, transform: 'translateY(120px)' }, to: { opacity: 1, transform: 'translateY(0px)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateY(-20px)' }, { offset: 0.75, transform: 'translateY(10px)' }, { offset: 0.9, transform: 'translateY(-5px)' }] },\n 'bounce-in-down': { from: { opacity: 0, transform: 'translateY(-120px)' }, to: { opacity: 1, transform: 'translateY(0px)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateY(20px)' }, { offset: 0.75, transform: 'translateY(-10px)' }, { offset: 0.9, transform: 'translateY(5px)' }] },\n 'bounce-in-left': { from: { opacity: 0, transform: 'translateX(-120px)' }, to: { opacity: 1, transform: 'translateX(0px)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateX(20px)' }, { offset: 0.75, transform: 'translateX(-10px)' }, { offset: 0.9, transform: 'translateX(5px)' }] },\n 'bounce-in-right': { from: { opacity: 0, transform: 'translateX(120px)' }, to: { opacity: 1, transform: 'translateX(0px)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'translateX(-20px)' }, { offset: 0.75, transform: 'translateX(10px)' }, { offset: 0.9, transform: 'translateX(-5px)' }] },\n 'elastic-in': { from: { opacity: 0, transform: 'scale(0)' }, to: { opacity: 1, transform: 'scale(1)' }, frames: [{ offset: 0.4, opacity: 1, transform: 'scale(1.2)' }, { offset: 0.6, transform: 'scale(0.88)' }, { offset: 0.75, transform: 'scale(1.06)' }, { offset: 0.9, transform: 'scale(0.98)' }] },\n 'elastic-in-x': { from: { opacity: 0, transform: 'scaleX(0)' }, to: { opacity: 1, transform: 'scaleX(1)' }, frames: [{ offset: 0.4, opacity: 1, transform: 'scaleX(1.25)' }, { offset: 0.6, transform: 'scaleX(0.85)' }, { offset: 0.8, transform: 'scaleX(1.08)' }] },\n 'rubber-in': { from: { opacity: 0, transform: 'scale(0.4, 0.4)' }, to: { opacity: 1, transform: 'scale(1, 1)' }, frames: [{ offset: 0.3, opacity: 1, transform: 'scale(1.25, 0.75)' }, { offset: 0.4, transform: 'scale(0.75, 1.25)' }, { offset: 0.5, transform: 'scale(1.15, 0.85)' }, { offset: 0.65, transform: 'scale(0.95, 1.05)' }, { offset: 0.75, transform: 'scale(1.05, 0.95)' }] },\n 'jello-in': { from: { opacity: 0, transform: 'skewX(-12.5deg) skewY(-12.5deg)' }, to: { opacity: 1, transform: 'skewX(0deg) skewY(0deg)' }, frames: [{ offset: 0.22, opacity: 1, transform: 'skewX(6.25deg) skewY(6.25deg)' }, { offset: 0.33, transform: 'skewX(-3.125deg) skewY(-3.125deg)' }, { offset: 0.44, transform: 'skewX(1.5625deg) skewY(1.5625deg)' }, { offset: 0.55, transform: 'skewX(-0.78deg) skewY(-0.78deg)' }, { offset: 0.66, transform: 'skewX(0.39deg) skewY(0.39deg)' }] },\n 'wobble-in': { from: { opacity: 0, transform: 'translateX(-25%) rotate(-5deg)' }, to: { opacity: 1, transform: 'translateX(0%) rotate(0deg)' }, frames: [{ offset: 0.3, opacity: 1, transform: 'translateX(20%) rotate(3deg)' }, { offset: 0.45, transform: 'translateX(-15%) rotate(-3deg)' }, { offset: 0.6, transform: 'translateX(10%) rotate(2deg)' }, { offset: 0.75, transform: 'translateX(-5%) rotate(-1deg)' }] },\n 'tada-in': { from: { opacity: 0, transform: 'scale(0.9) rotate(-3deg)' }, to: { opacity: 1, transform: 'scale(1) rotate(0deg)' }, frames: [{ offset: 0.3, opacity: 1, transform: 'scale(1.1) rotate(3deg)' }, { offset: 0.4, transform: 'scale(1.1) rotate(-3deg)' }, { offset: 0.5, transform: 'scale(1.1) rotate(3deg)' }, { offset: 0.6, transform: 'scale(1.1) rotate(-3deg)' }, { offset: 0.7, transform: 'scale(1.1) rotate(3deg)' }] },\n 'heartbeat-in': { from: { opacity: 0, transform: 'scale(0.6)' }, to: { opacity: 1, transform: 'scale(1)' }, frames: [{ offset: 0.25, opacity: 1, transform: 'scale(1.15)' }, { offset: 0.4, transform: 'scale(0.95)' }, { offset: 0.6, transform: 'scale(1.1)' }, { offset: 0.8, transform: 'scale(0.98)' }] },\n 'drop-in': { from: { opacity: 0, transform: 'translateY(-150px)' }, to: { opacity: 1, transform: 'translateY(0px)' }, frames: [{ offset: 0.4, opacity: 1, transform: 'translateY(0px)' }, { offset: 0.55, transform: 'translateY(-30px)' }, { offset: 0.7, transform: 'translateY(0px)' }, { offset: 0.82, transform: 'translateY(-8px)' }, { offset: 0.92, transform: 'translateY(0px)' }] },\n 'pop-in': { from: { opacity: 0, transform: 'scale(0.5)' }, to: { opacity: 1, transform: 'scale(1)' }, frames: [{ offset: 0.6, opacity: 1, transform: 'scale(1.12)' }] },\n 'squash-in': { from: { opacity: 0, transform: 'translateY(-80px) scale(0.8, 1.2)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1, 1)' }, frames: [{ offset: 0.5, opacity: 1, transform: 'translateY(0px) scale(1.25, 0.75)' }, { offset: 0.7, transform: 'translateY(-10px) scale(0.95, 1.05)' }, { offset: 0.85, transform: 'translateY(0px) scale(1.03, 0.97)' }] },\n 'shake-in': { from: { opacity: 0, transform: 'translateX(-30px)' }, to: { opacity: 1, transform: 'translateX(0px)' }, frames: [{ offset: 0.2, opacity: 1, transform: 'translateX(20px)' }, { offset: 0.4, transform: 'translateX(-14px)' }, { offset: 0.6, transform: 'translateX(8px)' }, { offset: 0.8, transform: 'translateX(-4px)' }] },\n 'swing-in': { from: { opacity: 0, transform: 'rotate(-30deg)', transformOrigin: 'center top' }, to: { opacity: 1, transform: 'rotate(0deg)', transformOrigin: 'center top' }, frames: [{ offset: 0.4, opacity: 1, transform: 'rotate(15deg)' }, { offset: 0.6, transform: 'rotate(-10deg)' }, { offset: 0.8, transform: 'rotate(5deg)' }] },\n // Color & light\n 'brightness-in': { from: { opacity: 0, filter: 'brightness(3)' }, to: { opacity: 1, filter: 'brightness(1)' } },\n 'darken-in': { from: { filter: 'brightness(0)' }, to: { filter: 'brightness(1)' } },\n 'color-in': { from: { filter: 'grayscale(1)' }, to: { filter: 'grayscale(0)' } },\n 'saturate-in': { from: { opacity: 0, filter: 'saturate(3)' }, to: { opacity: 1, filter: 'saturate(1)' } },\n 'hue-in': { from: { opacity: 0, filter: 'hue-rotate(-180deg)' }, to: { opacity: 1, filter: 'hue-rotate(0deg)' } },\n 'sepia-in': { from: { filter: 'sepia(1)' }, to: { filter: 'sepia(0)' } },\n 'invert-in': { from: { opacity: 0, filter: 'invert(1)' }, to: { opacity: 1, filter: 'invert(0)' } },\n 'contrast-in': { from: { opacity: 0, filter: 'contrast(0)' }, to: { opacity: 1, filter: 'contrast(1)' } },\n 'exposure-in': { from: { opacity: 0, filter: 'brightness(4) contrast(0.5)' }, to: { opacity: 1, filter: 'brightness(1) contrast(1)' } },\n 'vintage-in': { from: { opacity: 0, filter: 'sepia(1) contrast(1.4) blur(2px)' }, to: { opacity: 1, filter: 'sepia(0) contrast(1) blur(0px)' } },\n 'blur-bright-in': { from: { opacity: 0, filter: 'blur(8px) brightness(2)' }, to: { opacity: 1, filter: 'blur(0px) brightness(1)' } },\n 'shadow-lift': { from: { opacity: 0, transform: 'translateY(16px) scale(0.98)', filter: 'drop-shadow(0px 0px 0px rgba(0, 0, 0, 0))' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)', filter: 'drop-shadow(0px 18px 22px rgba(0, 0, 0, 0.35))' } },\n 'neon-glow-in': { from: { opacity: 0, filter: 'brightness(0.6) drop-shadow(0px 0px 0px rgba(124, 92, 255, 0))' }, to: { opacity: 1, filter: 'brightness(1) drop-shadow(0px 0px 10px rgba(124, 92, 255, 0.6))' }, frames: [{ offset: 0.5, opacity: 1, filter: 'brightness(1.5) drop-shadow(0px 0px 22px rgba(124, 92, 255, 0.95))' }] },\n 'glow-in': { from: { opacity: 0, filter: 'brightness(2) drop-shadow(0px 0px 18px rgba(255, 255, 255, 0.9))' }, to: { opacity: 1, filter: 'brightness(1) drop-shadow(0px 0px 0px rgba(255, 255, 255, 0))' } },\n // Depth & perspective\n 'perspective-in-up': { from: { opacity: 0, transform: 'perspective(800px) translateY(60px) rotateX(30deg)' }, to: { opacity: 1, transform: 'perspective(800px) translateY(0px) rotateX(0deg)' } },\n 'perspective-in-down': { from: { opacity: 0, transform: 'perspective(800px) translateY(-60px) rotateX(-30deg)' }, to: { opacity: 1, transform: 'perspective(800px) translateY(0px) rotateX(0deg)' } },\n 'perspective-in-left': { from: { opacity: 0, transform: 'perspective(800px) translateX(-60px) rotateY(-30deg)' }, to: { opacity: 1, transform: 'perspective(800px) translateX(0px) rotateY(0deg)' } },\n 'perspective-in-right': { from: { opacity: 0, transform: 'perspective(800px) translateX(60px) rotateY(30deg)' }, to: { opacity: 1, transform: 'perspective(800px) translateX(0px) rotateY(0deg)' } },\n 'depth-push': { from: { opacity: 0, transform: 'perspective(800px) translateZ(300px)' }, to: { opacity: 1, transform: 'perspective(800px) translateZ(0px)' } },\n 'depth-pull': { from: { opacity: 0, transform: 'perspective(800px) translateZ(-400px)' }, to: { opacity: 1, transform: 'perspective(800px) translateZ(0px)' } },\n 'depth-in-up': { from: { opacity: 0, transform: 'perspective(800px) translateY(80px) translateZ(-300px)' }, to: { opacity: 1, transform: 'perspective(800px) translateY(0px) translateZ(0px)' } },\n 'swoop-in-left': { from: { opacity: 0, transform: 'perspective(800px) translateX(-100px) translateZ(-200px) rotateY(60deg)' }, to: { opacity: 1, transform: 'perspective(800px) translateX(0px) translateZ(0px) rotateY(0deg)' } },\n 'swoop-in-right': { from: { opacity: 0, transform: 'perspective(800px) translateX(100px) translateZ(-200px) rotateY(-60deg)' }, to: { opacity: 1, transform: 'perspective(800px) translateX(0px) translateZ(0px) rotateY(0deg)' } },\n 'card-tilt-in': { from: { opacity: 0, transform: 'perspective(800px) rotateX(20deg) rotateY(-20deg) scale(0.9)' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg) rotateY(0deg) scale(1)' } },\n // Glitch & special\n 'glitch-in': { from: { opacity: 0, transform: 'translate(-12px, 0px) skewX(0deg)', clipPath: 'inset(40% 0% 45% 0%)' }, to: { opacity: 1, transform: 'translate(0px, 0px) skewX(0deg)', clipPath: 'inset(0% 0% 0% 0%)' }, frames: [{ offset: 0.15, opacity: 1, transform: 'translate(10px, 0px) skewX(-12deg)', clipPath: 'inset(10% 0% 70% 0%)' }, { offset: 0.3, transform: 'translate(-6px, 0px) skewX(8deg)', clipPath: 'inset(60% 0% 10% 0%)' }, { offset: 0.45, transform: 'translate(4px, 0px) skewX(0deg)', clipPath: 'inset(20% 0% 35% 0%)' }, { offset: 0.6, transform: 'translate(-2px, 0px) skewX(-4deg)', clipPath: 'inset(0% 0% 0% 0%)' }] },\n 'glitch-in-color': { from: { opacity: 0, transform: 'translate(-10px, 4px)', filter: 'hue-rotate(90deg) saturate(3)' }, to: { opacity: 1, transform: 'translate(0px, 0px)', filter: 'hue-rotate(0deg) saturate(1)' }, frames: [{ offset: 0.2, opacity: 1, transform: 'translate(8px, -3px)', filter: 'hue-rotate(-60deg) saturate(2.5)' }, { offset: 0.4, transform: 'translate(-5px, 2px)', filter: 'hue-rotate(40deg) saturate(2)' }, { offset: 0.6, transform: 'translate(3px, 0px)', filter: 'hue-rotate(-20deg) saturate(1.5)' }] },\n 'typewriter': { from: { clipPath: 'inset(0% 100% 0% 0%)', easing: 'steps(16, end)' }, to: { clipPath: 'inset(0% 0% 0% 0%)' } },\n 'typewriter-lines': { from: { clipPath: 'inset(0% 0% 100% 0%)', easing: 'steps(5, end)' }, to: { clipPath: 'inset(0% 0% 0% 0%)' } },\n 'hinge-in': { from: { opacity: 0, transform: 'translateY(60px) rotate(60deg)', transformOrigin: 'left top' }, to: { opacity: 1, transform: 'translateY(0px) rotate(0deg)', transformOrigin: 'left top' }, frames: [{ offset: 0.4, opacity: 1, transform: 'translateY(0px) rotate(-12deg)' }, { offset: 0.6, transform: 'translateY(0px) rotate(8deg)' }, { offset: 0.8, transform: 'translateY(0px) rotate(-4deg)' }] },\n 'flicker-in': { from: { opacity: 0 }, to: { opacity: 1 }, frames: [{ offset: 0.2, opacity: 0.7 }, { offset: 0.32, opacity: 0.2 }, { offset: 0.55, opacity: 0.9 }, { offset: 0.68, opacity: 0.45 }] },\n 'scan-in': { from: { clipPath: 'inset(0% 0% 100% 0%)', filter: 'brightness(2.5)' }, to: { clipPath: 'inset(0% 0% 0% 0%)', filter: 'brightness(1)' }, frames: [{ offset: 0.7, clipPath: 'inset(0% 0% 0% 0%)', filter: 'brightness(1.6)' }] },\n 'materialize': { from: { opacity: 0, filter: 'blur(10px) brightness(2.2)', transform: 'scale(1.08)' }, to: { opacity: 1, filter: 'blur(0px) brightness(1)', transform: 'scale(1)' } },\n 'teleport-in': { from: { opacity: 0, transform: 'scale(0.02, 2)', filter: 'brightness(3)' }, to: { opacity: 1, transform: 'scale(1, 1)', filter: 'brightness(1)' }, frames: [{ offset: 0.5, opacity: 1, transform: 'scale(1.2, 0.8)', filter: 'brightness(1.6)' }, { offset: 0.75, transform: 'scale(0.95, 1.05)', filter: 'brightness(1.1)' }] },\n // Stagger-ready\n 'stagger-fade-up': { from: { opacity: 0, transform: 'translateY(12px)' }, to: { opacity: 1, transform: 'translateY(0px)' } },\n 'stagger-pop': { from: { opacity: 0, transform: 'scale(0.85)' }, to: { opacity: 1, transform: 'scale(1)' } },\n 'stagger-rise': { from: { opacity: 0, transform: 'translateY(24px) scale(0.98)' }, to: { opacity: 1, transform: 'translateY(0px) scale(1)' } },\n 'stagger-slide': { from: { opacity: 0, transform: 'translateX(24px)' }, to: { opacity: 1, transform: 'translateX(0px)' } },\n 'stagger-flip': { from: { opacity: 0, transform: 'perspective(800px) rotateX(-50deg)', transformOrigin: 'center top' }, to: { opacity: 1, transform: 'perspective(800px) rotateX(0deg)', transformOrigin: 'center top' } },\n 'stagger-blur': { from: { opacity: 0, filter: 'blur(6px)', transform: 'translateY(8px)' }, to: { opacity: 1, filter: 'blur(0px)', transform: 'translateY(0px)' } },\n 'stagger-zoom': { from: { opacity: 0, transform: 'scale(1.15)' }, to: { opacity: 1, transform: 'scale(1)' } },\n 'stagger-drop': { from: { opacity: 0, transform: 'translateY(-16px) rotate(-3deg)' }, to: { opacity: 1, transform: 'translateY(0px) rotate(0deg)' } },\n // Scroll-linked\n 'scrub-parallax-up': { from: { transform: 'translateY(80px)' }, to: { transform: 'translateY(-80px)' } },\n 'scrub-parallax-down': { from: { transform: 'translateY(-80px)' }, to: { transform: 'translateY(80px)' } },\n 'scrub-rotate': { from: { transform: 'rotate(-25deg)' }, to: { transform: 'rotate(25deg)' } },\n 'scrub-spin': { from: { transform: 'rotate(0deg)' }, to: { transform: 'rotate(360deg)' } },\n 'scrub-scale': { from: { transform: 'scale(0.7)' }, to: { transform: 'scale(1.1)' } },\n 'scrub-shrink': { from: { transform: 'scale(1.15)' }, to: { transform: 'scale(0.85)' } },\n 'scrub-pan-left': { from: { transform: 'translateX(30%)' }, to: { transform: 'translateX(-30%)' } },\n 'scrub-pan-right': { from: { transform: 'translateX(-30%)' }, to: { transform: 'translateX(30%)' } },\n 'scrub-tilt': { from: { transform: 'perspective(800px) rotateX(25deg)' }, to: { transform: 'perspective(800px) rotateX(-25deg)' } },\n 'scrub-fade-through': { from: { opacity: 0 }, to: { opacity: 0 }, frames: [{ offset: 0.3, opacity: 1 }, { offset: 0.7, opacity: 1 }] },\n 'scrub-blur-through': { from: { filter: 'blur(8px)' }, to: { filter: 'blur(8px)' }, frames: [{ offset: 0.4, filter: 'blur(0px)' }, { offset: 0.6, filter: 'blur(0px)' }] },\n 'scrub-reveal-x': { from: { clipPath: 'inset(0% 100% 0% 0%)' }, to: { clipPath: 'inset(0% 0% 0% 0%)' } },\n};\n\n/** Extended preset names by category (the Animation Store filters). */\nexport const EXTENDED_PRESET_CATEGORIES: Record<string, ExtendedPreset[]> = {\n fade: ['fade-in-up-sm', 'fade-in-down-sm', 'fade-in-left-sm', 'fade-in-right-sm', 'fade-in-up-lg', 'fade-in-down-lg', 'fade-in-left-lg', 'fade-in-right-lg', 'fade-in-up-left', 'fade-in-up-right', 'fade-in-down-left', 'fade-in-down-right', 'fade-in-scale', 'fade-in-half'],\n zoom: ['zoom-in-up', 'zoom-in-down', 'zoom-in-left', 'zoom-in-right', 'zoom-out-up', 'zoom-out-down', 'zoom-out-left', 'zoom-out-right', 'zoom-in-big', 'zoom-out-big', 'zoom-bounce', 'zoom-in-rotate', 'scale-x-left', 'scale-x-right', 'scale-y-top', 'scale-y-bottom', 'stretch-x', 'stretch-y'],\n flip: ['flip-x-reverse', 'flip-y-reverse', 'flip-y-full', 'flip-diagonal', 'flip-diagonal-reverse', 'flip-left', 'flip-right', 'unfold-down', 'unfold-up', 'door-open-left', 'door-open-right', 'fold-in', 'flip-x-bounce', 'flip-y-bounce', 'swing-in-top', 'swing-in-bottom', 'swing-in-left', 'swing-in-right'],\n slide: ['slide-up-spring', 'slide-down-spring', 'slide-left-spring', 'slide-right-spring', 'slide-up-sm', 'slide-down-sm', 'back-in-up', 'back-in-down', 'back-in-left', 'back-in-right', 'light-speed-in-left', 'light-speed-in-right', 'rise-in', 'sink-in', 'float-in-up', 'float-in-down'],\n rotate: ['roll-in-left', 'roll-in-right', 'spiral-in', 'spiral-in-reverse', 'spin-in', 'rotate-in-up-left', 'rotate-in-up-right', 'rotate-in-down-left', 'rotate-in-down-right', 'skew-in-left', 'skew-in-y', 'shear-in', 'shear-in-reverse', 'twist-in', 'tilt-in-left', 'tilt-in-right'],\n blur: ['blur-in-down', 'blur-in-left', 'blur-in-right', 'blur-in-strong', 'blur-in-zoom', 'blur-in-scale', 'blur-in-x', 'mask-up', 'mask-down', 'mask-left', 'mask-right', 'blur-mask-up'],\n clip: ['clip-circle-top', 'clip-circle-bottom', 'clip-circle-left', 'clip-circle-right', 'clip-circle-corner', 'clip-ellipse', 'clip-diamond', 'clip-split-x', 'clip-split-y', 'clip-box', 'clip-pill', 'clip-blinds', 'clip-blinds-x', 'clip-diagonal', 'clip-diagonal-reverse', 'clip-slant-right', 'clip-slant-left'],\n elastic: ['bounce-in', 'bounce-in-up', 'bounce-in-down', 'bounce-in-left', 'bounce-in-right', 'elastic-in', 'elastic-in-x', 'rubber-in', 'jello-in', 'wobble-in', 'tada-in', 'heartbeat-in', 'drop-in', 'pop-in', 'squash-in', 'shake-in', 'swing-in'],\n light: ['brightness-in', 'darken-in', 'color-in', 'saturate-in', 'hue-in', 'sepia-in', 'invert-in', 'contrast-in', 'exposure-in', 'vintage-in', 'blur-bright-in', 'shadow-lift', 'neon-glow-in', 'glow-in'],\n depth: ['perspective-in-up', 'perspective-in-down', 'perspective-in-left', 'perspective-in-right', 'depth-push', 'depth-pull', 'depth-in-up', 'swoop-in-left', 'swoop-in-right', 'card-tilt-in'],\n special: ['glitch-in', 'glitch-in-color', 'typewriter', 'typewriter-lines', 'hinge-in', 'flicker-in', 'scan-in', 'materialize', 'teleport-in'],\n stagger: ['stagger-fade-up', 'stagger-pop', 'stagger-rise', 'stagger-slide', 'stagger-flip', 'stagger-blur', 'stagger-zoom', 'stagger-drop'],\n scrub: ['scrub-parallax-up', 'scrub-parallax-down', 'scrub-rotate', 'scrub-spin', 'scrub-scale', 'scrub-shrink', 'scrub-pan-left', 'scrub-pan-right', 'scrub-tilt', 'scrub-fade-through', 'scrub-blur-through', 'scrub-reveal-x'],\n};\n","/**\n * dist/presets-extended.umd.js — `<script>` build of the extended presets.\n * Adds them to the page-wide preset table shared by every copy of the library\n * (load it before or after dist/index.umd.js). Global: `ScrollAnimatePresets`.\n */\nimport { EXTENDED_PRESETS, EXTENDED_PRESET_CATEGORIES } from './extended-presets-data';\n\nconst g = globalThis as any;\nconst key = Symbol.for('use-scroll-animate.presets');\ng[key] = Object.assign(g[key] || {}, EXTENDED_PRESETS);\n\nexport { EXTENDED_PRESETS, EXTENDED_PRESET_CATEGORIES };\n"],"names":["EXTENDED_PRESETS","from","opacity","transform","to","frames","offset","transformOrigin","filter","clipPath","typewriter","easing","materialize","g","globalThis","key","Symbol","for","Object","assign","fade","zoom","flip","slide","rotate","blur","clip","elastic","light","depth","special","stagger","scrub"],"mappings":"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"}
|
package/dist/react.cjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var core = require('./chunks/core-
|
|
4
|
-
var stagger = require('./chunks/stagger-
|
|
3
|
+
var core = require('./chunks/core-B5T0dhFH.cjs');
|
|
4
|
+
var stagger = require('./chunks/stagger-CCFyhzSw.cjs');
|
|
5
|
+
require('./chunks/presets-CUHys3sK.cjs');
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
+
* motionary - React Integration
|
|
8
9
|
* Provides useScrollAnimate and useScrollStagger hooks for React applications.
|
|
9
10
|
* `useScrollStagger({ observeChildren: true })` also animates children added later.
|
|
10
11
|
*
|
package/dist/react.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.cjs","sources":["../src/react.ts"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"file":"react.cjs","sources":["../src/react.ts"],"sourcesContent":["/**\n * motionary - React Integration\n * Provides useScrollAnimate and useScrollStagger hooks for React applications.\n * `useScrollStagger({ observeChildren: true })` also animates children added later.\n *\n * Both hooks are thin wrappers around the core engine, so they share its\n * behaviour: `once`, `offset`, custom easing functions, progress,\n * `prefers-reduced-motion` support, and proper cleanup on unmount.\n */\n\nimport type { AnimateOptions, ScrollAnimateInstance } from './types';\nimport { createScrollAnimate } from './core';\nimport { staggerChildren, type StaggerOptions } from './stagger';\n\ntype ReactRef<T> = { current: T | null };\n\nconst CALLBACKS = ['onStart', 'onComplete', 'onEnter', 'onLeave', 'onProgress'] as const;\n\n/**\n * Wrap the callbacks that exist at mount so they always call the latest\n * version from the most recent render (avoids stale closures without\n * re-creating observers on every render).\n * @internal\n */\nexport function withLatestCallbacks(latest: ReactRef<AnimateOptions>): AnimateOptions {\n const initial = latest.current || {};\n const opts: AnimateOptions = { ...initial };\n CALLBACKS.forEach((name) => {\n if (typeof initial[name] === 'function') {\n (opts as any)[name] = (...args: unknown[]) => (latest.current?.[name] as any)?.(...args);\n }\n });\n return opts;\n}\n\nexport function createReactHooks(React: {\n useRef: <T>(initial: T | null) => ReactRef<T>;\n useEffect: (effect: () => (() => void) | void, deps?: unknown[]) => void;\n}) {\n // Created lazily on the client so importing on the server is side-effect free.\n let instance: ScrollAnimateInstance | null = null;\n const getInstance = () => instance || (instance = createScrollAnimate());\n\n function useScrollAnimate(options: AnimateOptions = {}) {\n const ref = React.useRef<Element>(null);\n const optionsRef = React.useRef<AnimateOptions>(options);\n optionsRef.current = options;\n\n React.useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const sa = getInstance();\n sa.observe(el, withLatestCallbacks(optionsRef));\n return () => sa.unobserve(el);\n }, []);\n\n return ref;\n }\n\n function useScrollStagger(options: StaggerOptions = {}) {\n const ref = React.useRef<Element>(null);\n const optionsRef = React.useRef<AnimateOptions>(options);\n optionsRef.current = options;\n\n React.useEffect(() => {\n const container = ref.current;\n if (!container) return;\n return staggerChildren(container, withLatestCallbacks(optionsRef) as StaggerOptions, getInstance());\n }, []);\n\n return ref;\n }\n\n return { useScrollAnimate, useScrollStagger };\n}\n"],"names":["createScrollAnimate","staggerChildren"],"mappings":";;;;;;AAAA;;;;;;;;AAQG;AAQH,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAU;AAExF;;;;;AAKG;AACG,SAAU,mBAAmB,CAAC,MAAgC,EAAA;AAClE,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE;AACpC,IAAA,MAAM,IAAI,GAAmB,EAAE,GAAG,OAAO,EAAE;AAC3C,IAAA,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;QACzB,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;YACtC,IAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAe,KAAM,MAAM,CAAC,OAAO,GAAG,IAAI,CAAS,GAAG,GAAG,IAAI,CAAC;QAC1F;AACF,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,gBAAgB,CAAC,KAGhC,EAAA;;IAEC,IAAI,QAAQ,GAAiC,IAAI;AACjD,IAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,KAAK,QAAQ,GAAGA,wBAAmB,EAAE,CAAC;IAExE,SAAS,gBAAgB,CAAC,OAAA,GAA0B,EAAE,EAAA;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAU,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAiB,OAAO,CAAC;AACxD,QAAA,UAAU,CAAC,OAAO,GAAG,OAAO;AAE5B,QAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,YAAA,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO;AACtB,YAAA,IAAI,CAAC,EAAE;gBAAE;AACT,YAAA,MAAM,EAAE,GAAG,WAAW,EAAE;YACxB,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC/C,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,CAAC,EAAE,EAAE,CAAC;AAEN,QAAA,OAAO,GAAG;IACZ;IAEA,SAAS,gBAAgB,CAAC,OAAA,GAA0B,EAAE,EAAA;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAU,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAiB,OAAO,CAAC;AACxD,QAAA,UAAU,CAAC,OAAO,GAAG,OAAO;AAE5B,QAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO;AAC7B,YAAA,IAAI,CAAC,SAAS;gBAAE;AAChB,YAAA,OAAOC,uBAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,UAAU,CAAmB,EAAE,WAAW,EAAE,CAAC;QACrG,CAAC,EAAE,EAAE,CAAC;AAEN,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE;AAC/C;;;;;"}
|
package/dist/react.d.cts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* motionary - Core Type Definitions
|
|
3
3
|
* A lightweight, high-performance scroll animation library
|
|
4
4
|
*/
|
|
5
|
-
/**
|
|
6
|
-
type
|
|
5
|
+
/** The 33 core presets (always available in `PRESETS`). */
|
|
6
|
+
type CorePreset = 'fade-in' | 'fade-in-up' | 'fade-in-down' | 'fade-in-left' | 'fade-in-right' | 'zoom-in' | 'zoom-out' | 'flip-x' | 'flip-y' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'bounce' | 'rotate-in' | 'blur-in' | 'skew-in' | 'scale-x' | 'scale-y' | 'shimmer' | 'pulse' | 'swing' | 'scale-up' | 'blur-in-up' | 'flip-up' | 'flip-down' | 'rotate-left' | 'rotate-right' | 'clip-up' | 'clip-down' | 'clip-left' | 'clip-right' | 'clip-circle';
|
|
7
|
+
/**
|
|
8
|
+
* Every built-in preset name: the core set plus the 6.1 extended set, which is
|
|
9
|
+
* available once `motionary/presets/extended` is loaded (or after
|
|
10
|
+
* `registerPresets(EXTENDED_PRESETS)`).
|
|
11
|
+
*/
|
|
12
|
+
type AnimationPreset = CorePreset | ExtendedPreset;
|
|
7
13
|
/**
|
|
8
14
|
* How `onProgress` / `progressVar` progress is measured.
|
|
9
15
|
* - `'ratio'` (default): the element's visible ratio (IntersectionObserver `intersectionRatio`).
|
|
@@ -22,16 +28,24 @@ type ProgressMode = 'ratio' | 'scroll';
|
|
|
22
28
|
* since those only mean something for a time-based animation.
|
|
23
29
|
*/
|
|
24
30
|
type ScrollEngine = 'auto' | 'js' | 'css';
|
|
31
|
+
/** The 6.1 extended presets (`motionary/presets/extended`). */
|
|
32
|
+
type ExtendedPreset = 'fade-in-up-sm' | 'fade-in-down-sm' | 'fade-in-left-sm' | 'fade-in-right-sm' | 'fade-in-up-lg' | 'fade-in-down-lg' | 'fade-in-left-lg' | 'fade-in-right-lg' | 'fade-in-up-left' | 'fade-in-up-right' | 'fade-in-down-left' | 'fade-in-down-right' | 'fade-in-scale' | 'fade-in-half' | 'zoom-in-up' | 'zoom-in-down' | 'zoom-in-left' | 'zoom-in-right' | 'zoom-out-up' | 'zoom-out-down' | 'zoom-out-left' | 'zoom-out-right' | 'zoom-in-big' | 'zoom-out-big' | 'zoom-bounce' | 'zoom-in-rotate' | 'scale-x-left' | 'scale-x-right' | 'scale-y-top' | 'scale-y-bottom' | 'stretch-x' | 'stretch-y' | 'flip-x-reverse' | 'flip-y-reverse' | 'flip-y-full' | 'flip-diagonal' | 'flip-diagonal-reverse' | 'flip-left' | 'flip-right' | 'unfold-down' | 'unfold-up' | 'door-open-left' | 'door-open-right' | 'fold-in' | 'flip-x-bounce' | 'flip-y-bounce' | 'swing-in-top' | 'swing-in-bottom' | 'swing-in-left' | 'swing-in-right' | 'slide-up-spring' | 'slide-down-spring' | 'slide-left-spring' | 'slide-right-spring' | 'slide-up-sm' | 'slide-down-sm' | 'back-in-up' | 'back-in-down' | 'back-in-left' | 'back-in-right' | 'light-speed-in-left' | 'light-speed-in-right' | 'rise-in' | 'sink-in' | 'float-in-up' | 'float-in-down' | 'roll-in-left' | 'roll-in-right' | 'spiral-in' | 'spiral-in-reverse' | 'spin-in' | 'rotate-in-up-left' | 'rotate-in-up-right' | 'rotate-in-down-left' | 'rotate-in-down-right' | 'skew-in-left' | 'skew-in-y' | 'shear-in' | 'shear-in-reverse' | 'twist-in' | 'tilt-in-left' | 'tilt-in-right' | 'blur-in-down' | 'blur-in-left' | 'blur-in-right' | 'blur-in-strong' | 'blur-in-zoom' | 'blur-in-scale' | 'blur-in-x' | 'mask-up' | 'mask-down' | 'mask-left' | 'mask-right' | 'blur-mask-up' | 'clip-circle-top' | 'clip-circle-bottom' | 'clip-circle-left' | 'clip-circle-right' | 'clip-circle-corner' | 'clip-ellipse' | 'clip-diamond' | 'clip-split-x' | 'clip-split-y' | 'clip-box' | 'clip-pill' | 'clip-blinds' | 'clip-blinds-x' | 'clip-diagonal' | 'clip-diagonal-reverse' | 'clip-slant-right' | 'clip-slant-left' | 'bounce-in' | 'bounce-in-up' | 'bounce-in-down' | 'bounce-in-left' | 'bounce-in-right' | 'elastic-in' | 'elastic-in-x' | 'rubber-in' | 'jello-in' | 'wobble-in' | 'tada-in' | 'heartbeat-in' | 'drop-in' | 'pop-in' | 'squash-in' | 'shake-in' | 'swing-in' | 'brightness-in' | 'darken-in' | 'color-in' | 'saturate-in' | 'hue-in' | 'sepia-in' | 'invert-in' | 'contrast-in' | 'exposure-in' | 'vintage-in' | 'blur-bright-in' | 'shadow-lift' | 'neon-glow-in' | 'glow-in' | 'perspective-in-up' | 'perspective-in-down' | 'perspective-in-left' | 'perspective-in-right' | 'depth-push' | 'depth-pull' | 'depth-in-up' | 'swoop-in-left' | 'swoop-in-right' | 'card-tilt-in' | 'glitch-in' | 'glitch-in-color' | 'typewriter' | 'typewriter-lines' | 'hinge-in' | 'flicker-in' | 'scan-in' | 'materialize' | 'teleport-in' | 'stagger-fade-up' | 'stagger-pop' | 'stagger-rise' | 'stagger-slide' | 'stagger-flip' | 'stagger-blur' | 'stagger-zoom' | 'stagger-drop' | 'scrub-parallax-up' | 'scrub-parallax-down' | 'scrub-rotate' | 'scrub-spin' | 'scrub-scale' | 'scrub-shrink' | 'scrub-pan-left' | 'scrub-pan-right' | 'scrub-tilt' | 'scrub-fade-through' | 'scrub-blur-through' | 'scrub-reveal-x';
|
|
25
33
|
/** Easing function types */
|
|
26
34
|
type EasingType = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'spring' | 'soft-spring' | 'heavy-bounce' | [number, number, number, number] | ((t: number) => number) | string;
|
|
27
35
|
/** Keyframe definition for custom animations */
|
|
28
36
|
interface AnimationKeyframe {
|
|
29
37
|
[property: string]: string | number;
|
|
30
38
|
}
|
|
39
|
+
/** One intermediate keyframe of a preset: `offset` is 0 < offset < 1. */
|
|
40
|
+
interface AnimationFrame extends AnimationKeyframe {
|
|
41
|
+
offset: number;
|
|
42
|
+
}
|
|
31
43
|
/** Custom animation definition */
|
|
32
44
|
interface CustomAnimation {
|
|
33
45
|
from: AnimationKeyframe;
|
|
34
46
|
to: AnimationKeyframe;
|
|
47
|
+
/** Optional intermediate keyframes (overshoot, bounce, …), played between `from` and `to`. */
|
|
48
|
+
frames?: AnimationFrame[];
|
|
35
49
|
}
|
|
36
50
|
/** Per-element animation options */
|
|
37
51
|
interface AnimateOptions {
|
|
@@ -96,7 +110,7 @@ interface AnimateOptions {
|
|
|
96
110
|
}
|
|
97
111
|
|
|
98
112
|
/**
|
|
99
|
-
*
|
|
113
|
+
* motionary - Staggered children
|
|
100
114
|
* Reveal a container's children one after another when the container scrolls
|
|
101
115
|
* into view, optionally also animating children that are added later.
|
|
102
116
|
*/
|
|
@@ -114,7 +128,7 @@ interface StaggerOptions extends AnimateOptions {
|
|
|
114
128
|
}
|
|
115
129
|
|
|
116
130
|
/**
|
|
117
|
-
*
|
|
131
|
+
* motionary - React Integration
|
|
118
132
|
* Provides useScrollAnimate and useScrollStagger hooks for React applications.
|
|
119
133
|
* `useScrollStagger({ observeChildren: true })` also animates children added later.
|
|
120
134
|
*
|
package/dist/react.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* motionary - Core Type Definitions
|
|
3
3
|
* A lightweight, high-performance scroll animation library
|
|
4
4
|
*/
|
|
5
|
-
/**
|
|
6
|
-
type
|
|
5
|
+
/** The 33 core presets (always available in `PRESETS`). */
|
|
6
|
+
type CorePreset = 'fade-in' | 'fade-in-up' | 'fade-in-down' | 'fade-in-left' | 'fade-in-right' | 'zoom-in' | 'zoom-out' | 'flip-x' | 'flip-y' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'bounce' | 'rotate-in' | 'blur-in' | 'skew-in' | 'scale-x' | 'scale-y' | 'shimmer' | 'pulse' | 'swing' | 'scale-up' | 'blur-in-up' | 'flip-up' | 'flip-down' | 'rotate-left' | 'rotate-right' | 'clip-up' | 'clip-down' | 'clip-left' | 'clip-right' | 'clip-circle';
|
|
7
|
+
/**
|
|
8
|
+
* Every built-in preset name: the core set plus the 6.1 extended set, which is
|
|
9
|
+
* available once `motionary/presets/extended` is loaded (or after
|
|
10
|
+
* `registerPresets(EXTENDED_PRESETS)`).
|
|
11
|
+
*/
|
|
12
|
+
type AnimationPreset = CorePreset | ExtendedPreset;
|
|
7
13
|
/**
|
|
8
14
|
* How `onProgress` / `progressVar` progress is measured.
|
|
9
15
|
* - `'ratio'` (default): the element's visible ratio (IntersectionObserver `intersectionRatio`).
|
|
@@ -22,16 +28,24 @@ type ProgressMode = 'ratio' | 'scroll';
|
|
|
22
28
|
* since those only mean something for a time-based animation.
|
|
23
29
|
*/
|
|
24
30
|
type ScrollEngine = 'auto' | 'js' | 'css';
|
|
31
|
+
/** The 6.1 extended presets (`motionary/presets/extended`). */
|
|
32
|
+
type ExtendedPreset = 'fade-in-up-sm' | 'fade-in-down-sm' | 'fade-in-left-sm' | 'fade-in-right-sm' | 'fade-in-up-lg' | 'fade-in-down-lg' | 'fade-in-left-lg' | 'fade-in-right-lg' | 'fade-in-up-left' | 'fade-in-up-right' | 'fade-in-down-left' | 'fade-in-down-right' | 'fade-in-scale' | 'fade-in-half' | 'zoom-in-up' | 'zoom-in-down' | 'zoom-in-left' | 'zoom-in-right' | 'zoom-out-up' | 'zoom-out-down' | 'zoom-out-left' | 'zoom-out-right' | 'zoom-in-big' | 'zoom-out-big' | 'zoom-bounce' | 'zoom-in-rotate' | 'scale-x-left' | 'scale-x-right' | 'scale-y-top' | 'scale-y-bottom' | 'stretch-x' | 'stretch-y' | 'flip-x-reverse' | 'flip-y-reverse' | 'flip-y-full' | 'flip-diagonal' | 'flip-diagonal-reverse' | 'flip-left' | 'flip-right' | 'unfold-down' | 'unfold-up' | 'door-open-left' | 'door-open-right' | 'fold-in' | 'flip-x-bounce' | 'flip-y-bounce' | 'swing-in-top' | 'swing-in-bottom' | 'swing-in-left' | 'swing-in-right' | 'slide-up-spring' | 'slide-down-spring' | 'slide-left-spring' | 'slide-right-spring' | 'slide-up-sm' | 'slide-down-sm' | 'back-in-up' | 'back-in-down' | 'back-in-left' | 'back-in-right' | 'light-speed-in-left' | 'light-speed-in-right' | 'rise-in' | 'sink-in' | 'float-in-up' | 'float-in-down' | 'roll-in-left' | 'roll-in-right' | 'spiral-in' | 'spiral-in-reverse' | 'spin-in' | 'rotate-in-up-left' | 'rotate-in-up-right' | 'rotate-in-down-left' | 'rotate-in-down-right' | 'skew-in-left' | 'skew-in-y' | 'shear-in' | 'shear-in-reverse' | 'twist-in' | 'tilt-in-left' | 'tilt-in-right' | 'blur-in-down' | 'blur-in-left' | 'blur-in-right' | 'blur-in-strong' | 'blur-in-zoom' | 'blur-in-scale' | 'blur-in-x' | 'mask-up' | 'mask-down' | 'mask-left' | 'mask-right' | 'blur-mask-up' | 'clip-circle-top' | 'clip-circle-bottom' | 'clip-circle-left' | 'clip-circle-right' | 'clip-circle-corner' | 'clip-ellipse' | 'clip-diamond' | 'clip-split-x' | 'clip-split-y' | 'clip-box' | 'clip-pill' | 'clip-blinds' | 'clip-blinds-x' | 'clip-diagonal' | 'clip-diagonal-reverse' | 'clip-slant-right' | 'clip-slant-left' | 'bounce-in' | 'bounce-in-up' | 'bounce-in-down' | 'bounce-in-left' | 'bounce-in-right' | 'elastic-in' | 'elastic-in-x' | 'rubber-in' | 'jello-in' | 'wobble-in' | 'tada-in' | 'heartbeat-in' | 'drop-in' | 'pop-in' | 'squash-in' | 'shake-in' | 'swing-in' | 'brightness-in' | 'darken-in' | 'color-in' | 'saturate-in' | 'hue-in' | 'sepia-in' | 'invert-in' | 'contrast-in' | 'exposure-in' | 'vintage-in' | 'blur-bright-in' | 'shadow-lift' | 'neon-glow-in' | 'glow-in' | 'perspective-in-up' | 'perspective-in-down' | 'perspective-in-left' | 'perspective-in-right' | 'depth-push' | 'depth-pull' | 'depth-in-up' | 'swoop-in-left' | 'swoop-in-right' | 'card-tilt-in' | 'glitch-in' | 'glitch-in-color' | 'typewriter' | 'typewriter-lines' | 'hinge-in' | 'flicker-in' | 'scan-in' | 'materialize' | 'teleport-in' | 'stagger-fade-up' | 'stagger-pop' | 'stagger-rise' | 'stagger-slide' | 'stagger-flip' | 'stagger-blur' | 'stagger-zoom' | 'stagger-drop' | 'scrub-parallax-up' | 'scrub-parallax-down' | 'scrub-rotate' | 'scrub-spin' | 'scrub-scale' | 'scrub-shrink' | 'scrub-pan-left' | 'scrub-pan-right' | 'scrub-tilt' | 'scrub-fade-through' | 'scrub-blur-through' | 'scrub-reveal-x';
|
|
25
33
|
/** Easing function types */
|
|
26
34
|
type EasingType = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'spring' | 'soft-spring' | 'heavy-bounce' | [number, number, number, number] | ((t: number) => number) | string;
|
|
27
35
|
/** Keyframe definition for custom animations */
|
|
28
36
|
interface AnimationKeyframe {
|
|
29
37
|
[property: string]: string | number;
|
|
30
38
|
}
|
|
39
|
+
/** One intermediate keyframe of a preset: `offset` is 0 < offset < 1. */
|
|
40
|
+
interface AnimationFrame extends AnimationKeyframe {
|
|
41
|
+
offset: number;
|
|
42
|
+
}
|
|
31
43
|
/** Custom animation definition */
|
|
32
44
|
interface CustomAnimation {
|
|
33
45
|
from: AnimationKeyframe;
|
|
34
46
|
to: AnimationKeyframe;
|
|
47
|
+
/** Optional intermediate keyframes (overshoot, bounce, …), played between `from` and `to`. */
|
|
48
|
+
frames?: AnimationFrame[];
|
|
35
49
|
}
|
|
36
50
|
/** Per-element animation options */
|
|
37
51
|
interface AnimateOptions {
|
|
@@ -96,7 +110,7 @@ interface AnimateOptions {
|
|
|
96
110
|
}
|
|
97
111
|
|
|
98
112
|
/**
|
|
99
|
-
*
|
|
113
|
+
* motionary - Staggered children
|
|
100
114
|
* Reveal a container's children one after another when the container scrolls
|
|
101
115
|
* into view, optionally also animating children that are added later.
|
|
102
116
|
*/
|
|
@@ -114,7 +128,7 @@ interface StaggerOptions extends AnimateOptions {
|
|
|
114
128
|
}
|
|
115
129
|
|
|
116
130
|
/**
|
|
117
|
-
*
|
|
131
|
+
* motionary - React Integration
|
|
118
132
|
* Provides useScrollAnimate and useScrollStagger hooks for React applications.
|
|
119
133
|
* `useScrollStagger({ observeChildren: true })` also animates children added later.
|
|
120
134
|
*
|
package/dist/react.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { c as createScrollAnimate } from './chunks/core-
|
|
2
|
-
import { s as staggerChildren } from './chunks/stagger-
|
|
1
|
+
import { c as createScrollAnimate } from './chunks/core-D7cVumUu.js';
|
|
2
|
+
import { s as staggerChildren } from './chunks/stagger-DtMKo2SK.js';
|
|
3
|
+
import './chunks/presets-BYBVJVeP.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
+
* motionary - React Integration
|
|
6
7
|
* Provides useScrollAnimate and useScrollStagger hooks for React applications.
|
|
7
8
|
* `useScrollStagger({ observeChildren: true })` also animates children added later.
|
|
8
9
|
*
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sources":["../src/react.ts"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"file":"react.js","sources":["../src/react.ts"],"sourcesContent":["/**\n * motionary - React Integration\n * Provides useScrollAnimate and useScrollStagger hooks for React applications.\n * `useScrollStagger({ observeChildren: true })` also animates children added later.\n *\n * Both hooks are thin wrappers around the core engine, so they share its\n * behaviour: `once`, `offset`, custom easing functions, progress,\n * `prefers-reduced-motion` support, and proper cleanup on unmount.\n */\n\nimport type { AnimateOptions, ScrollAnimateInstance } from './types';\nimport { createScrollAnimate } from './core';\nimport { staggerChildren, type StaggerOptions } from './stagger';\n\ntype ReactRef<T> = { current: T | null };\n\nconst CALLBACKS = ['onStart', 'onComplete', 'onEnter', 'onLeave', 'onProgress'] as const;\n\n/**\n * Wrap the callbacks that exist at mount so they always call the latest\n * version from the most recent render (avoids stale closures without\n * re-creating observers on every render).\n * @internal\n */\nexport function withLatestCallbacks(latest: ReactRef<AnimateOptions>): AnimateOptions {\n const initial = latest.current || {};\n const opts: AnimateOptions = { ...initial };\n CALLBACKS.forEach((name) => {\n if (typeof initial[name] === 'function') {\n (opts as any)[name] = (...args: unknown[]) => (latest.current?.[name] as any)?.(...args);\n }\n });\n return opts;\n}\n\nexport function createReactHooks(React: {\n useRef: <T>(initial: T | null) => ReactRef<T>;\n useEffect: (effect: () => (() => void) | void, deps?: unknown[]) => void;\n}) {\n // Created lazily on the client so importing on the server is side-effect free.\n let instance: ScrollAnimateInstance | null = null;\n const getInstance = () => instance || (instance = createScrollAnimate());\n\n function useScrollAnimate(options: AnimateOptions = {}) {\n const ref = React.useRef<Element>(null);\n const optionsRef = React.useRef<AnimateOptions>(options);\n optionsRef.current = options;\n\n React.useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const sa = getInstance();\n sa.observe(el, withLatestCallbacks(optionsRef));\n return () => sa.unobserve(el);\n }, []);\n\n return ref;\n }\n\n function useScrollStagger(options: StaggerOptions = {}) {\n const ref = React.useRef<Element>(null);\n const optionsRef = React.useRef<AnimateOptions>(options);\n optionsRef.current = options;\n\n React.useEffect(() => {\n const container = ref.current;\n if (!container) return;\n return staggerChildren(container, withLatestCallbacks(optionsRef) as StaggerOptions, getInstance());\n }, []);\n\n return ref;\n }\n\n return { useScrollAnimate, useScrollStagger };\n}\n"],"names":[],"mappings":";;;;AAAA;;;;;;;;AAQG;AAQH,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAU;AAExF;;;;;AAKG;AACG,SAAU,mBAAmB,CAAC,MAAgC,EAAA;AAClE,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE;AACpC,IAAA,MAAM,IAAI,GAAmB,EAAE,GAAG,OAAO,EAAE;AAC3C,IAAA,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;QACzB,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;YACtC,IAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAe,KAAM,MAAM,CAAC,OAAO,GAAG,IAAI,CAAS,GAAG,GAAG,IAAI,CAAC;QAC1F;AACF,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,gBAAgB,CAAC,KAGhC,EAAA;;IAEC,IAAI,QAAQ,GAAiC,IAAI;AACjD,IAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,KAAK,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAExE,SAAS,gBAAgB,CAAC,OAAA,GAA0B,EAAE,EAAA;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAU,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAiB,OAAO,CAAC;AACxD,QAAA,UAAU,CAAC,OAAO,GAAG,OAAO;AAE5B,QAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,YAAA,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO;AACtB,YAAA,IAAI,CAAC,EAAE;gBAAE;AACT,YAAA,MAAM,EAAE,GAAG,WAAW,EAAE;YACxB,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC/C,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,CAAC,EAAE,EAAE,CAAC;AAEN,QAAA,OAAO,GAAG;IACZ;IAEA,SAAS,gBAAgB,CAAC,OAAA,GAA0B,EAAE,EAAA;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAU,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAiB,OAAO,CAAC;AACxD,QAAA,UAAU,CAAC,OAAO,GAAG,OAAO;AAE5B,QAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO;AAC7B,YAAA,IAAI,CAAC,SAAS;gBAAE;AAChB,YAAA,OAAO,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,UAAU,CAAmB,EAAE,WAAW,EAAE,CAAC;QACrG,CAAC,EAAE,EAAE,CAAC;AAEN,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE;AAC/C;;;;"}
|
package/dist/solid.cjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var solidJs = require('solid-js');
|
|
4
|
-
var core = require('./chunks/core-
|
|
5
|
-
var stagger = require('./chunks/stagger-
|
|
4
|
+
var core = require('./chunks/core-B5T0dhFH.cjs');
|
|
5
|
+
var stagger = require('./chunks/stagger-CCFyhzSw.cjs');
|
|
6
|
+
require('./chunks/presets-CUHys3sK.cjs');
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* motionary - Solid integration
|
|
9
10
|
*
|
|
10
11
|
* ```tsx
|
|
11
|
-
* import { scrollAnimate, scrollStagger, useScrollAnimate } from '
|
|
12
|
+
* import { scrollAnimate, scrollStagger, useScrollAnimate } from 'motionary/solid';
|
|
12
13
|
* false && scrollAnimate; // keep the directive import (TypeScript)
|
|
13
14
|
*
|
|
14
15
|
* <div use:scrollAnimate={{ animation: 'zoom-in' }}>…</div>
|
package/dist/solid.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid.cjs","sources":["../src/solid.ts"],"sourcesContent":["/**\n *
|
|
1
|
+
{"version":3,"file":"solid.cjs","sources":["../src/solid.ts"],"sourcesContent":["/**\n * motionary - Solid integration\n *\n * ```tsx\n * import { scrollAnimate, scrollStagger, useScrollAnimate } from 'motionary/solid';\n * false && scrollAnimate; // keep the directive import (TypeScript)\n *\n * <div use:scrollAnimate={{ animation: 'zoom-in' }}>…</div>\n * <ul use:scrollStagger={{ stagger: 60 }}>…</ul>\n * <div ref={useScrollAnimate({ animation: 'fade-in-up' })}>…</div>\n * ```\n *\n * `solid-js` is an optional peer dependency (only needed for this entry).\n */\n\nimport { createRenderEffect, onCleanup, onMount } from 'solid-js';\nimport type { AnimateOptions, ScrollAnimateInstance } from './types';\nimport { createScrollAnimate } from './core';\nimport { staggerChildren, type StaggerOptions } from './stagger';\n\nexport interface SolidScrollAnimateOptions extends AnimateOptions {\n instance?: ScrollAnimateInstance;\n}\nexport interface SolidScrollStaggerOptions extends StaggerOptions {\n instance?: ScrollAnimateInstance;\n}\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface Directives {\n scrollAnimate: SolidScrollAnimateOptions | true;\n scrollStagger: SolidScrollStaggerOptions | true;\n }\n }\n}\n\nlet shared: ScrollAnimateInstance | null = null;\nconst getInstance = (own?: ScrollAnimateInstance) => own || shared || (shared = createScrollAnimate());\n\nfunction read<T>(accessor?: () => T | true | undefined): T {\n const v = accessor?.();\n return (v && v !== true ? v : {}) as T;\n}\n\nconst CALLBACKS = ['onStart', 'onComplete', 'onEnter', 'onLeave', 'onProgress'] as const;\n\n/** Callbacks always call the latest options' version. */\nfunction liveCallbacks(opts: AnimateOptions, latest: () => AnimateOptions): AnimateOptions {\n const out: AnimateOptions = { ...opts };\n CALLBACKS.forEach((name) => {\n if (typeof opts[name] === 'function') (out as any)[name] = (...args: unknown[]) => (latest()[name] as any)?.(...args);\n });\n return out;\n}\n\n/**\n * Directive: `<div use:scrollAnimate={{ animation: 'fade-in' }} />`.\n * 4.0.1: the accessor is tracked — when signals it reads change, callbacks\n * update right away and the other options are re-applied if the element has\n * not animated yet (no manual `refresh()` needed).\n */\nexport function scrollAnimate(el: Element, accessor?: () => SolidScrollAnimateOptions | true | undefined): void {\n let latest: SolidScrollAnimateOptions = {};\n let mounted = false;\n let sa: ScrollAnimateInstance | null = null;\n const apply = () => {\n const { instance, ...opts } = latest;\n const record = sa?.getObservedElements().find((r) => r.element === el);\n if (sa && record?.animated) return; // finished: callbacks stay live\n sa?.unobserve(el);\n sa = getInstance(instance);\n sa.observe(el, liveCallbacks(opts, () => latest));\n };\n createRenderEffect(() => {\n latest = read<SolidScrollAnimateOptions>(accessor);\n if (mounted) apply();\n });\n // Wait until the element is in the document (directives/refs run before insertion).\n onMount(() => {\n mounted = true;\n apply();\n });\n onCleanup(() => sa?.unobserve(el));\n}\n\n/** Directive: `<ul use:scrollStagger={{ stagger: 60, observeChildren: true }} />` */\nexport function scrollStagger(el: Element, accessor?: () => SolidScrollStaggerOptions | true | undefined): void {\n const { instance, ...opts } = read<SolidScrollStaggerOptions>(accessor);\n let stop: (() => void) | undefined;\n onMount(() => {\n stop = staggerChildren(el, opts, getInstance(instance));\n });\n onCleanup(() => stop?.());\n}\n\n/** Primitive returning a `ref` callback: `<div ref={useScrollAnimate({ animation: 'fade-in-up' })} />` */\nexport function useScrollAnimate(options: SolidScrollAnimateOptions = {}): (el: Element) => void {\n let el: Element | undefined;\n const { instance, ...opts } = options;\n const sa = getInstance(instance);\n onMount(() => el && sa.observe(el, opts));\n onCleanup(() => el && sa.unobserve(el));\n return (node: Element) => {\n el = node;\n };\n}\n"],"names":["createScrollAnimate","createRenderEffect","onMount","onCleanup","staggerChildren"],"mappings":"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"}
|
package/dist/solid.d.cts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* motionary - Core Type Definitions
|
|
3
3
|
* A lightweight, high-performance scroll animation library
|
|
4
4
|
*/
|
|
5
|
-
/**
|
|
6
|
-
type
|
|
5
|
+
/** The 33 core presets (always available in `PRESETS`). */
|
|
6
|
+
type CorePreset = 'fade-in' | 'fade-in-up' | 'fade-in-down' | 'fade-in-left' | 'fade-in-right' | 'zoom-in' | 'zoom-out' | 'flip-x' | 'flip-y' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'bounce' | 'rotate-in' | 'blur-in' | 'skew-in' | 'scale-x' | 'scale-y' | 'shimmer' | 'pulse' | 'swing' | 'scale-up' | 'blur-in-up' | 'flip-up' | 'flip-down' | 'rotate-left' | 'rotate-right' | 'clip-up' | 'clip-down' | 'clip-left' | 'clip-right' | 'clip-circle';
|
|
7
|
+
/**
|
|
8
|
+
* Every built-in preset name: the core set plus the 6.1 extended set, which is
|
|
9
|
+
* available once `motionary/presets/extended` is loaded (or after
|
|
10
|
+
* `registerPresets(EXTENDED_PRESETS)`).
|
|
11
|
+
*/
|
|
12
|
+
type AnimationPreset = CorePreset | ExtendedPreset;
|
|
7
13
|
/**
|
|
8
14
|
* How `onProgress` / `progressVar` progress is measured.
|
|
9
15
|
* - `'ratio'` (default): the element's visible ratio (IntersectionObserver `intersectionRatio`).
|
|
@@ -22,16 +28,24 @@ type ProgressMode = 'ratio' | 'scroll';
|
|
|
22
28
|
* since those only mean something for a time-based animation.
|
|
23
29
|
*/
|
|
24
30
|
type ScrollEngine = 'auto' | 'js' | 'css';
|
|
31
|
+
/** The 6.1 extended presets (`motionary/presets/extended`). */
|
|
32
|
+
type ExtendedPreset = 'fade-in-up-sm' | 'fade-in-down-sm' | 'fade-in-left-sm' | 'fade-in-right-sm' | 'fade-in-up-lg' | 'fade-in-down-lg' | 'fade-in-left-lg' | 'fade-in-right-lg' | 'fade-in-up-left' | 'fade-in-up-right' | 'fade-in-down-left' | 'fade-in-down-right' | 'fade-in-scale' | 'fade-in-half' | 'zoom-in-up' | 'zoom-in-down' | 'zoom-in-left' | 'zoom-in-right' | 'zoom-out-up' | 'zoom-out-down' | 'zoom-out-left' | 'zoom-out-right' | 'zoom-in-big' | 'zoom-out-big' | 'zoom-bounce' | 'zoom-in-rotate' | 'scale-x-left' | 'scale-x-right' | 'scale-y-top' | 'scale-y-bottom' | 'stretch-x' | 'stretch-y' | 'flip-x-reverse' | 'flip-y-reverse' | 'flip-y-full' | 'flip-diagonal' | 'flip-diagonal-reverse' | 'flip-left' | 'flip-right' | 'unfold-down' | 'unfold-up' | 'door-open-left' | 'door-open-right' | 'fold-in' | 'flip-x-bounce' | 'flip-y-bounce' | 'swing-in-top' | 'swing-in-bottom' | 'swing-in-left' | 'swing-in-right' | 'slide-up-spring' | 'slide-down-spring' | 'slide-left-spring' | 'slide-right-spring' | 'slide-up-sm' | 'slide-down-sm' | 'back-in-up' | 'back-in-down' | 'back-in-left' | 'back-in-right' | 'light-speed-in-left' | 'light-speed-in-right' | 'rise-in' | 'sink-in' | 'float-in-up' | 'float-in-down' | 'roll-in-left' | 'roll-in-right' | 'spiral-in' | 'spiral-in-reverse' | 'spin-in' | 'rotate-in-up-left' | 'rotate-in-up-right' | 'rotate-in-down-left' | 'rotate-in-down-right' | 'skew-in-left' | 'skew-in-y' | 'shear-in' | 'shear-in-reverse' | 'twist-in' | 'tilt-in-left' | 'tilt-in-right' | 'blur-in-down' | 'blur-in-left' | 'blur-in-right' | 'blur-in-strong' | 'blur-in-zoom' | 'blur-in-scale' | 'blur-in-x' | 'mask-up' | 'mask-down' | 'mask-left' | 'mask-right' | 'blur-mask-up' | 'clip-circle-top' | 'clip-circle-bottom' | 'clip-circle-left' | 'clip-circle-right' | 'clip-circle-corner' | 'clip-ellipse' | 'clip-diamond' | 'clip-split-x' | 'clip-split-y' | 'clip-box' | 'clip-pill' | 'clip-blinds' | 'clip-blinds-x' | 'clip-diagonal' | 'clip-diagonal-reverse' | 'clip-slant-right' | 'clip-slant-left' | 'bounce-in' | 'bounce-in-up' | 'bounce-in-down' | 'bounce-in-left' | 'bounce-in-right' | 'elastic-in' | 'elastic-in-x' | 'rubber-in' | 'jello-in' | 'wobble-in' | 'tada-in' | 'heartbeat-in' | 'drop-in' | 'pop-in' | 'squash-in' | 'shake-in' | 'swing-in' | 'brightness-in' | 'darken-in' | 'color-in' | 'saturate-in' | 'hue-in' | 'sepia-in' | 'invert-in' | 'contrast-in' | 'exposure-in' | 'vintage-in' | 'blur-bright-in' | 'shadow-lift' | 'neon-glow-in' | 'glow-in' | 'perspective-in-up' | 'perspective-in-down' | 'perspective-in-left' | 'perspective-in-right' | 'depth-push' | 'depth-pull' | 'depth-in-up' | 'swoop-in-left' | 'swoop-in-right' | 'card-tilt-in' | 'glitch-in' | 'glitch-in-color' | 'typewriter' | 'typewriter-lines' | 'hinge-in' | 'flicker-in' | 'scan-in' | 'materialize' | 'teleport-in' | 'stagger-fade-up' | 'stagger-pop' | 'stagger-rise' | 'stagger-slide' | 'stagger-flip' | 'stagger-blur' | 'stagger-zoom' | 'stagger-drop' | 'scrub-parallax-up' | 'scrub-parallax-down' | 'scrub-rotate' | 'scrub-spin' | 'scrub-scale' | 'scrub-shrink' | 'scrub-pan-left' | 'scrub-pan-right' | 'scrub-tilt' | 'scrub-fade-through' | 'scrub-blur-through' | 'scrub-reveal-x';
|
|
25
33
|
/** Easing function types */
|
|
26
34
|
type EasingType = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'spring' | 'soft-spring' | 'heavy-bounce' | [number, number, number, number] | ((t: number) => number) | string;
|
|
27
35
|
/** Keyframe definition for custom animations */
|
|
28
36
|
interface AnimationKeyframe {
|
|
29
37
|
[property: string]: string | number;
|
|
30
38
|
}
|
|
39
|
+
/** One intermediate keyframe of a preset: `offset` is 0 < offset < 1. */
|
|
40
|
+
interface AnimationFrame extends AnimationKeyframe {
|
|
41
|
+
offset: number;
|
|
42
|
+
}
|
|
31
43
|
/** Custom animation definition */
|
|
32
44
|
interface CustomAnimation {
|
|
33
45
|
from: AnimationKeyframe;
|
|
34
46
|
to: AnimationKeyframe;
|
|
47
|
+
/** Optional intermediate keyframes (overshoot, bounce, …), played between `from` and `to`. */
|
|
48
|
+
frames?: AnimationFrame[];
|
|
35
49
|
}
|
|
36
50
|
/** Per-element animation options */
|
|
37
51
|
interface AnimateOptions {
|
|
@@ -173,7 +187,7 @@ interface ScrollAnimateInstance {
|
|
|
173
187
|
}
|
|
174
188
|
|
|
175
189
|
/**
|
|
176
|
-
*
|
|
190
|
+
* motionary - Staggered children
|
|
177
191
|
* Reveal a container's children one after another when the container scrolls
|
|
178
192
|
* into view, optionally also animating children that are added later.
|
|
179
193
|
*/
|
|
@@ -191,10 +205,10 @@ interface StaggerOptions extends AnimateOptions {
|
|
|
191
205
|
}
|
|
192
206
|
|
|
193
207
|
/**
|
|
194
|
-
*
|
|
208
|
+
* motionary - Solid integration
|
|
195
209
|
*
|
|
196
210
|
* ```tsx
|
|
197
|
-
* import { scrollAnimate, scrollStagger, useScrollAnimate } from '
|
|
211
|
+
* import { scrollAnimate, scrollStagger, useScrollAnimate } from 'motionary/solid';
|
|
198
212
|
* false && scrollAnimate; // keep the directive import (TypeScript)
|
|
199
213
|
*
|
|
200
214
|
* <div use:scrollAnimate={{ animation: 'zoom-in' }}>…</div>
|
package/dist/solid.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* motionary - Core Type Definitions
|
|
3
3
|
* A lightweight, high-performance scroll animation library
|
|
4
4
|
*/
|
|
5
|
-
/**
|
|
6
|
-
type
|
|
5
|
+
/** The 33 core presets (always available in `PRESETS`). */
|
|
6
|
+
type CorePreset = 'fade-in' | 'fade-in-up' | 'fade-in-down' | 'fade-in-left' | 'fade-in-right' | 'zoom-in' | 'zoom-out' | 'flip-x' | 'flip-y' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'bounce' | 'rotate-in' | 'blur-in' | 'skew-in' | 'scale-x' | 'scale-y' | 'shimmer' | 'pulse' | 'swing' | 'scale-up' | 'blur-in-up' | 'flip-up' | 'flip-down' | 'rotate-left' | 'rotate-right' | 'clip-up' | 'clip-down' | 'clip-left' | 'clip-right' | 'clip-circle';
|
|
7
|
+
/**
|
|
8
|
+
* Every built-in preset name: the core set plus the 6.1 extended set, which is
|
|
9
|
+
* available once `motionary/presets/extended` is loaded (or after
|
|
10
|
+
* `registerPresets(EXTENDED_PRESETS)`).
|
|
11
|
+
*/
|
|
12
|
+
type AnimationPreset = CorePreset | ExtendedPreset;
|
|
7
13
|
/**
|
|
8
14
|
* How `onProgress` / `progressVar` progress is measured.
|
|
9
15
|
* - `'ratio'` (default): the element's visible ratio (IntersectionObserver `intersectionRatio`).
|
|
@@ -22,16 +28,24 @@ type ProgressMode = 'ratio' | 'scroll';
|
|
|
22
28
|
* since those only mean something for a time-based animation.
|
|
23
29
|
*/
|
|
24
30
|
type ScrollEngine = 'auto' | 'js' | 'css';
|
|
31
|
+
/** The 6.1 extended presets (`motionary/presets/extended`). */
|
|
32
|
+
type ExtendedPreset = 'fade-in-up-sm' | 'fade-in-down-sm' | 'fade-in-left-sm' | 'fade-in-right-sm' | 'fade-in-up-lg' | 'fade-in-down-lg' | 'fade-in-left-lg' | 'fade-in-right-lg' | 'fade-in-up-left' | 'fade-in-up-right' | 'fade-in-down-left' | 'fade-in-down-right' | 'fade-in-scale' | 'fade-in-half' | 'zoom-in-up' | 'zoom-in-down' | 'zoom-in-left' | 'zoom-in-right' | 'zoom-out-up' | 'zoom-out-down' | 'zoom-out-left' | 'zoom-out-right' | 'zoom-in-big' | 'zoom-out-big' | 'zoom-bounce' | 'zoom-in-rotate' | 'scale-x-left' | 'scale-x-right' | 'scale-y-top' | 'scale-y-bottom' | 'stretch-x' | 'stretch-y' | 'flip-x-reverse' | 'flip-y-reverse' | 'flip-y-full' | 'flip-diagonal' | 'flip-diagonal-reverse' | 'flip-left' | 'flip-right' | 'unfold-down' | 'unfold-up' | 'door-open-left' | 'door-open-right' | 'fold-in' | 'flip-x-bounce' | 'flip-y-bounce' | 'swing-in-top' | 'swing-in-bottom' | 'swing-in-left' | 'swing-in-right' | 'slide-up-spring' | 'slide-down-spring' | 'slide-left-spring' | 'slide-right-spring' | 'slide-up-sm' | 'slide-down-sm' | 'back-in-up' | 'back-in-down' | 'back-in-left' | 'back-in-right' | 'light-speed-in-left' | 'light-speed-in-right' | 'rise-in' | 'sink-in' | 'float-in-up' | 'float-in-down' | 'roll-in-left' | 'roll-in-right' | 'spiral-in' | 'spiral-in-reverse' | 'spin-in' | 'rotate-in-up-left' | 'rotate-in-up-right' | 'rotate-in-down-left' | 'rotate-in-down-right' | 'skew-in-left' | 'skew-in-y' | 'shear-in' | 'shear-in-reverse' | 'twist-in' | 'tilt-in-left' | 'tilt-in-right' | 'blur-in-down' | 'blur-in-left' | 'blur-in-right' | 'blur-in-strong' | 'blur-in-zoom' | 'blur-in-scale' | 'blur-in-x' | 'mask-up' | 'mask-down' | 'mask-left' | 'mask-right' | 'blur-mask-up' | 'clip-circle-top' | 'clip-circle-bottom' | 'clip-circle-left' | 'clip-circle-right' | 'clip-circle-corner' | 'clip-ellipse' | 'clip-diamond' | 'clip-split-x' | 'clip-split-y' | 'clip-box' | 'clip-pill' | 'clip-blinds' | 'clip-blinds-x' | 'clip-diagonal' | 'clip-diagonal-reverse' | 'clip-slant-right' | 'clip-slant-left' | 'bounce-in' | 'bounce-in-up' | 'bounce-in-down' | 'bounce-in-left' | 'bounce-in-right' | 'elastic-in' | 'elastic-in-x' | 'rubber-in' | 'jello-in' | 'wobble-in' | 'tada-in' | 'heartbeat-in' | 'drop-in' | 'pop-in' | 'squash-in' | 'shake-in' | 'swing-in' | 'brightness-in' | 'darken-in' | 'color-in' | 'saturate-in' | 'hue-in' | 'sepia-in' | 'invert-in' | 'contrast-in' | 'exposure-in' | 'vintage-in' | 'blur-bright-in' | 'shadow-lift' | 'neon-glow-in' | 'glow-in' | 'perspective-in-up' | 'perspective-in-down' | 'perspective-in-left' | 'perspective-in-right' | 'depth-push' | 'depth-pull' | 'depth-in-up' | 'swoop-in-left' | 'swoop-in-right' | 'card-tilt-in' | 'glitch-in' | 'glitch-in-color' | 'typewriter' | 'typewriter-lines' | 'hinge-in' | 'flicker-in' | 'scan-in' | 'materialize' | 'teleport-in' | 'stagger-fade-up' | 'stagger-pop' | 'stagger-rise' | 'stagger-slide' | 'stagger-flip' | 'stagger-blur' | 'stagger-zoom' | 'stagger-drop' | 'scrub-parallax-up' | 'scrub-parallax-down' | 'scrub-rotate' | 'scrub-spin' | 'scrub-scale' | 'scrub-shrink' | 'scrub-pan-left' | 'scrub-pan-right' | 'scrub-tilt' | 'scrub-fade-through' | 'scrub-blur-through' | 'scrub-reveal-x';
|
|
25
33
|
/** Easing function types */
|
|
26
34
|
type EasingType = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'spring' | 'soft-spring' | 'heavy-bounce' | [number, number, number, number] | ((t: number) => number) | string;
|
|
27
35
|
/** Keyframe definition for custom animations */
|
|
28
36
|
interface AnimationKeyframe {
|
|
29
37
|
[property: string]: string | number;
|
|
30
38
|
}
|
|
39
|
+
/** One intermediate keyframe of a preset: `offset` is 0 < offset < 1. */
|
|
40
|
+
interface AnimationFrame extends AnimationKeyframe {
|
|
41
|
+
offset: number;
|
|
42
|
+
}
|
|
31
43
|
/** Custom animation definition */
|
|
32
44
|
interface CustomAnimation {
|
|
33
45
|
from: AnimationKeyframe;
|
|
34
46
|
to: AnimationKeyframe;
|
|
47
|
+
/** Optional intermediate keyframes (overshoot, bounce, …), played between `from` and `to`. */
|
|
48
|
+
frames?: AnimationFrame[];
|
|
35
49
|
}
|
|
36
50
|
/** Per-element animation options */
|
|
37
51
|
interface AnimateOptions {
|
|
@@ -173,7 +187,7 @@ interface ScrollAnimateInstance {
|
|
|
173
187
|
}
|
|
174
188
|
|
|
175
189
|
/**
|
|
176
|
-
*
|
|
190
|
+
* motionary - Staggered children
|
|
177
191
|
* Reveal a container's children one after another when the container scrolls
|
|
178
192
|
* into view, optionally also animating children that are added later.
|
|
179
193
|
*/
|
|
@@ -191,10 +205,10 @@ interface StaggerOptions extends AnimateOptions {
|
|
|
191
205
|
}
|
|
192
206
|
|
|
193
207
|
/**
|
|
194
|
-
*
|
|
208
|
+
* motionary - Solid integration
|
|
195
209
|
*
|
|
196
210
|
* ```tsx
|
|
197
|
-
* import { scrollAnimate, scrollStagger, useScrollAnimate } from '
|
|
211
|
+
* import { scrollAnimate, scrollStagger, useScrollAnimate } from 'motionary/solid';
|
|
198
212
|
* false && scrollAnimate; // keep the directive import (TypeScript)
|
|
199
213
|
*
|
|
200
214
|
* <div use:scrollAnimate={{ animation: 'zoom-in' }}>…</div>
|