angular-movement 0.0.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "angular-movement",
3
- "version": "0.0.2",
3
+ "version": "0.3.0",
4
+ "type": "module",
4
5
  "description": "Angular animation directives — presets, custom keyframes, spring physics, scroll & parallax.",
5
6
  "keywords": [
6
7
  "angular",
@@ -16,7 +17,7 @@
16
17
  "license": "MIT",
17
18
  "repository": {
18
19
  "type": "git",
19
- "url": "https://github.com/Andersseen/angular-movement.git"
20
+ "url": "git+https://github.com/Andersseen/angular-movement.git"
20
21
  },
21
22
  "homepage": "https://github.com/Andersseen/angular-movement#readme",
22
23
  "bugs": {
@@ -1,15 +1,22 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, OnDestroy, OnInit, EnvironmentProviders } from '@angular/core';
3
3
 
4
- type MovePreset = 'fade-up' | 'fade-down' | 'fade-left' | 'fade-right' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'zoom-in' | 'zoom-out' | 'flip-x' | 'flip-y' | 'bounce-in' | 'blur-in' | 'spin' | 'pulse' | 'none';
5
- type MoveValuePair = readonly number[];
4
+ type MovePreset = 'fade-up' | 'fade-down' | 'fade-left' | 'fade-right' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'zoom-in' | 'zoom-out' | 'flip-x' | 'flip-y' | 'bounce-in' | 'blur-in' | 'spin' | 'pulse' | 'shake' | 'swing' | 'wobble' | 'rubber-band' | 'heart-beat' | 'tada' | 'jello' | 'light-speed' | 'roll-in' | 'icon-draw' | 'icon-pulse' | 'icon-bounce' | 'none';
5
+ type MoveValue = number | string;
6
+ type MoveValuePair = readonly MoveValue[];
6
7
  interface MoveSpring {
7
8
  stiffness?: number;
8
9
  damping?: number;
9
10
  mass?: number;
10
11
  velocity?: number;
11
12
  }
12
- interface MoveKeyframes {
13
+ interface MovePropertyTransition {
14
+ duration?: number;
15
+ easing?: string;
16
+ delay?: number;
17
+ }
18
+ type MoveTransitionConfig = MovePropertyTransition & Record<string, MovePropertyTransition | MoveValue | undefined>;
19
+ interface MoveKeyframeProperties {
13
20
  opacity?: MoveValuePair;
14
21
  x?: MoveValuePair;
15
22
  y?: MoveValuePair;
@@ -20,13 +27,21 @@ interface MoveKeyframes {
20
27
  rotateX?: MoveValuePair;
21
28
  rotateY?: MoveValuePair;
22
29
  blur?: MoveValuePair;
23
- [key: string]: MoveValuePair | undefined;
24
- }
25
- type MoveVariant = MoveKeyframes & {
30
+ pathLength?: MoveValuePair;
31
+ pathOffset?: MoveValuePair;
32
+ pathSpacing?: MoveValuePair;
33
+ strokeDashoffset?: MoveValuePair;
34
+ strokeDasharray?: MoveValuePair;
35
+ fillOpacity?: MoveValuePair;
36
+ strokeOpacity?: MoveValuePair;
37
+ }
38
+ type MoveKeyframes = MoveKeyframeProperties & Record<string, MoveValuePair | undefined>;
39
+ type MoveVariant = MoveKeyframeProperties & {
26
40
  spring?: MoveSpring;
27
41
  duration?: number;
28
42
  easing?: string;
29
43
  delay?: number;
44
+ transition?: MoveTransitionConfig;
30
45
  };
31
46
  interface MovePresetDefinition {
32
47
  enter: MoveKeyframes;
@@ -44,7 +59,14 @@ interface MoveKeyframeState {
44
59
  rotateX?: number;
45
60
  rotateY?: number;
46
61
  blur?: number;
47
- [key: string]: number | undefined;
62
+ pathLength?: number;
63
+ pathOffset?: number;
64
+ pathSpacing?: number;
65
+ strokeDashoffset?: number;
66
+ strokeDasharray?: string;
67
+ fillOpacity?: number;
68
+ strokeOpacity?: number;
69
+ [key: string]: number | string | undefined;
48
70
  }
49
71
  interface MoveAnimationConfig {
50
72
  initial?: MoveKeyframeState;
@@ -126,11 +148,13 @@ declare class MoveLeaveDirective implements OnDestroy, OnInit, MovePresenceChild
126
148
  declare class MoveHoverDirective implements OnDestroy {
127
149
  #private;
128
150
  readonly moveWhileHover: _angular_core.InputSignal<MovePreset | MoveKeyframes>;
129
- readonly moveDuration: _angular_core.InputSignal<number | undefined>;
151
+ readonly moveDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
130
152
  readonly moveEasing: _angular_core.InputSignal<string | undefined>;
131
- readonly moveDelay: _angular_core.InputSignal<number | undefined>;
153
+ readonly moveDelay: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
132
154
  readonly moveDisabled: _angular_core.InputSignal<boolean | undefined>;
133
155
  readonly moveSpring: _angular_core.InputSignal<MoveSpring | undefined>;
156
+ readonly moveReverseDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
157
+ readonly moveReverseEasing: _angular_core.InputSignal<string | undefined>;
134
158
  onMouseEnter(): void;
135
159
  onMouseLeave(): void;
136
160
  onTouchStart(event: TouchEvent): void;
@@ -138,23 +162,25 @@ declare class MoveHoverDirective implements OnDestroy {
138
162
  private play;
139
163
  ngOnDestroy(): void;
140
164
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MoveHoverDirective, never>;
141
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MoveHoverDirective, "[moveWhileHover]", never, { "moveWhileHover": { "alias": "moveWhileHover"; "required": true; "isSignal": true; }; "moveDuration": { "alias": "moveDuration"; "required": false; "isSignal": true; }; "moveEasing": { "alias": "moveEasing"; "required": false; "isSignal": true; }; "moveDelay": { "alias": "moveDelay"; "required": false; "isSignal": true; }; "moveDisabled": { "alias": "moveDisabled"; "required": false; "isSignal": true; }; "moveSpring": { "alias": "moveSpring"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
165
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MoveHoverDirective, "[moveWhileHover]", never, { "moveWhileHover": { "alias": "moveWhileHover"; "required": true; "isSignal": true; }; "moveDuration": { "alias": "moveDuration"; "required": false; "isSignal": true; }; "moveEasing": { "alias": "moveEasing"; "required": false; "isSignal": true; }; "moveDelay": { "alias": "moveDelay"; "required": false; "isSignal": true; }; "moveDisabled": { "alias": "moveDisabled"; "required": false; "isSignal": true; }; "moveSpring": { "alias": "moveSpring"; "required": false; "isSignal": true; }; "moveReverseDuration": { "alias": "moveReverseDuration"; "required": false; "isSignal": true; }; "moveReverseEasing": { "alias": "moveReverseEasing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
142
166
  }
143
167
 
144
168
  declare class MoveTapDirective implements OnDestroy {
145
169
  #private;
146
170
  readonly moveWhileTap: _angular_core.InputSignal<MovePreset | MoveKeyframes>;
147
- readonly moveDuration: _angular_core.InputSignal<number | undefined>;
171
+ readonly moveDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
148
172
  readonly moveEasing: _angular_core.InputSignal<string | undefined>;
149
- readonly moveDelay: _angular_core.InputSignal<number | undefined>;
173
+ readonly moveDelay: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
150
174
  readonly moveDisabled: _angular_core.InputSignal<boolean | undefined>;
151
175
  readonly moveSpring: _angular_core.InputSignal<MoveSpring | undefined>;
176
+ readonly moveReverseDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
177
+ readonly moveReverseEasing: _angular_core.InputSignal<string | undefined>;
152
178
  onPointerDown(): void;
153
179
  onPointerUp(): void;
154
180
  private play;
155
181
  ngOnDestroy(): void;
156
182
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MoveTapDirective, never>;
157
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MoveTapDirective, "[moveWhileTap]", never, { "moveWhileTap": { "alias": "moveWhileTap"; "required": true; "isSignal": true; }; "moveDuration": { "alias": "moveDuration"; "required": false; "isSignal": true; }; "moveEasing": { "alias": "moveEasing"; "required": false; "isSignal": true; }; "moveDelay": { "alias": "moveDelay"; "required": false; "isSignal": true; }; "moveDisabled": { "alias": "moveDisabled"; "required": false; "isSignal": true; }; "moveSpring": { "alias": "moveSpring"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
183
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MoveTapDirective, "[moveWhileTap]", never, { "moveWhileTap": { "alias": "moveWhileTap"; "required": true; "isSignal": true; }; "moveDuration": { "alias": "moveDuration"; "required": false; "isSignal": true; }; "moveEasing": { "alias": "moveEasing"; "required": false; "isSignal": true; }; "moveDelay": { "alias": "moveDelay"; "required": false; "isSignal": true; }; "moveDisabled": { "alias": "moveDisabled"; "required": false; "isSignal": true; }; "moveSpring": { "alias": "moveSpring"; "required": false; "isSignal": true; }; "moveReverseDuration": { "alias": "moveReverseDuration"; "required": false; "isSignal": true; }; "moveReverseEasing": { "alias": "moveReverseEasing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
158
184
  }
159
185
 
160
186
  interface MoveVariantsProvider {
@@ -365,6 +391,46 @@ declare class MoveLoopDirective implements OnDestroy, OnInit {
365
391
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MoveLoopDirective, "[moveLoop]", never, { "moveLoop": { "alias": "moveLoop"; "required": false; "isSignal": true; }; "moveDuration": { "alias": "moveDuration"; "required": false; "isSignal": true; }; "moveEasing": { "alias": "moveEasing"; "required": false; "isSignal": true; }; "moveDelay": { "alias": "moveDelay"; "required": false; "isSignal": true; }; "moveDisabled": { "alias": "moveDisabled"; "required": false; "isSignal": true; }; "moveSpring": { "alias": "moveSpring"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
366
392
  }
367
393
 
394
+ declare class MoveTargetDirective implements OnDestroy {
395
+ #private;
396
+ readonly moveTarget: _angular_core.InputSignal<boolean>;
397
+ readonly moveFrames: _angular_core.InputSignal<MoveKeyframes>;
398
+ readonly moveDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
399
+ readonly moveEasing: _angular_core.InputSignal<string | undefined>;
400
+ readonly moveDelay: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
401
+ readonly moveSpring: _angular_core.InputSignal<MoveSpring | undefined>;
402
+ readonly moveDisabled: _angular_core.InputSignal<boolean | undefined>;
403
+ readonly moveReverseDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
404
+ readonly moveReverseEasing: _angular_core.InputSignal<string | undefined>;
405
+ readonly moveTransition: _angular_core.InputSignal<MoveTransitionConfig | undefined>;
406
+ ngOnDestroy(): void;
407
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MoveTargetDirective, never>;
408
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MoveTargetDirective, "[moveTarget]", never, { "moveTarget": { "alias": "moveTarget"; "required": true; "isSignal": true; }; "moveFrames": { "alias": "moveFrames"; "required": true; "isSignal": true; }; "moveDuration": { "alias": "moveDuration"; "required": false; "isSignal": true; }; "moveEasing": { "alias": "moveEasing"; "required": false; "isSignal": true; }; "moveDelay": { "alias": "moveDelay"; "required": false; "isSignal": true; }; "moveSpring": { "alias": "moveSpring"; "required": false; "isSignal": true; }; "moveDisabled": { "alias": "moveDisabled"; "required": false; "isSignal": true; }; "moveReverseDuration": { "alias": "moveReverseDuration"; "required": false; "isSignal": true; }; "moveReverseEasing": { "alias": "moveReverseEasing"; "required": false; "isSignal": true; }; "moveTransition": { "alias": "moveTransition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
409
+ }
410
+
411
+ declare class MoveTriggerDirective implements OnDestroy {
412
+ #private;
413
+ readonly moveTrigger: _angular_core.InputSignal<boolean>;
414
+ readonly moveFrames: _angular_core.InputSignal<MoveKeyframes>;
415
+ readonly moveResetFrames: _angular_core.InputSignal<MoveKeyframes | undefined>;
416
+ readonly moveResetState: _angular_core.InputSignal<"initial" | "final" | "clear">;
417
+ readonly moveDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
418
+ readonly moveEasing: _angular_core.InputSignal<string | undefined>;
419
+ readonly moveDelay: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
420
+ readonly moveSpring: _angular_core.InputSignal<MoveSpring | undefined>;
421
+ readonly moveDisabled: _angular_core.InputSignal<boolean | undefined>;
422
+ readonly moveReverseDuration: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
423
+ readonly moveReverseEasing: _angular_core.InputSignal<string | undefined>;
424
+ play(frames?: MoveKeyframes): Promise<void>;
425
+ reset(): void;
426
+ set(state: MoveKeyframeState): void;
427
+ ngOnDestroy(): void;
428
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MoveTriggerDirective, never>;
429
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MoveTriggerDirective, "[moveTrigger]", ["moveTrigger"], { "moveTrigger": { "alias": "moveTrigger"; "required": true; "isSignal": true; }; "moveFrames": { "alias": "moveFrames"; "required": true; "isSignal": true; }; "moveResetFrames": { "alias": "moveResetFrames"; "required": false; "isSignal": true; }; "moveResetState": { "alias": "moveResetState"; "required": false; "isSignal": true; }; "moveDuration": { "alias": "moveDuration"; "required": false; "isSignal": true; }; "moveEasing": { "alias": "moveEasing"; "required": false; "isSignal": true; }; "moveDelay": { "alias": "moveDelay"; "required": false; "isSignal": true; }; "moveSpring": { "alias": "moveSpring"; "required": false; "isSignal": true; }; "moveDisabled": { "alias": "moveDisabled"; "required": false; "isSignal": true; }; "moveReverseDuration": { "alias": "moveReverseDuration"; "required": false; "isSignal": true; }; "moveReverseEasing": { "alias": "moveReverseEasing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
430
+ }
431
+
432
+ declare function clearComposedStyle(el: Element, extraKeys?: readonly string[]): void;
433
+
368
434
  interface MovementConfig {
369
435
  duration: number;
370
436
  easing: string;
@@ -403,6 +469,20 @@ declare function applyInitialStyles(el: HTMLElement, frames: MoveKeyframes): voi
403
469
  * Called just before WAAPI animates so it can take full control.
404
470
  */
405
471
  declare function clearInitialStyles(el: HTMLElement): void;
472
+ /**
473
+ * Validates MoveSpring configuration and returns sanitized values.
474
+ * Warns in development mode for invalid values.
475
+ */
476
+ declare function validateSpring(spring: MoveSpring | undefined): MoveSpring | undefined;
477
+ /**
478
+ * Validates scroll offset string format "elFraction viewFraction".
479
+ * Returns true if valid, warns in dev mode if invalid.
480
+ */
481
+ declare function isValidScrollOffset(offset: string): boolean;
482
+ /**
483
+ * Validates drag elastic factor. Must be between 0 and 1.
484
+ */
485
+ declare function validateDragElastic(elastic: number): number;
406
486
 
407
487
  /**
408
488
  * SmoothScrollService — Lenis-inspired smooth scroll for Angular.
@@ -458,10 +538,11 @@ interface PlayAnimationOptions {
458
538
  disabled?: boolean;
459
539
  iterations?: number;
460
540
  onDone?: () => void;
541
+ transition?: MoveTransitionConfig;
461
542
  }
462
543
  declare class AnimationEngine {
463
544
  #private;
464
- play(host: Element, frames: MoveKeyframes, options?: PlayAnimationOptions): AnimationControls | null;
545
+ play(host: Element, rawFrames: MoveKeyframes, options?: PlayAnimationOptions): AnimationControls | null;
465
546
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnimationEngine, never>;
466
547
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AnimationEngine>;
467
548
  }
@@ -485,7 +566,7 @@ declare class SpringPlayer implements AnimationControls {
485
566
  declare class WaapiPlayer implements AnimationControls {
486
567
  #private;
487
568
  readonly finished: Promise<void>;
488
- constructor(host: Element, frames: MoveKeyframes, config: MovementConfig, onDone?: () => void);
569
+ constructor(host: Element, frames: MoveKeyframes | Keyframe[], config: MovementConfig, onDone?: () => void);
489
570
  play(): void;
490
571
  pause(): void;
491
572
  cancel(): void;
@@ -493,12 +574,47 @@ declare class WaapiPlayer implements AnimationControls {
493
574
  set currentTime(time: number);
494
575
  }
495
576
 
577
+ interface ResolvedTransition {
578
+ keyframes: Keyframe[];
579
+ duration: number;
580
+ easing: string;
581
+ delay: number;
582
+ }
583
+ declare function composeTransitionKeyframes(frames: MoveKeyframes, transition: MoveTransitionConfig, baseConfig: MovementConfig): ResolvedTransition | null;
584
+
496
585
  declare const MOVE_PRESETS: Record<MovePreset, MovePresetDefinition>;
497
586
 
587
+ /**
588
+ * Returns keyframes for a path-drawing animation.
589
+ * Ideal for SVG `<path>`, `<circle>`, `<line>`, etc.
590
+ *
591
+ * @example
592
+ * ```html
593
+ * <path [moveTarget]="animate()" [moveFrames]="movePathDraw({ opacity: [0, 1] })" moveDuration="700" />
594
+ * ```
595
+ */
596
+ declare function movePathDraw(overrides?: Partial<MoveKeyframes>): MoveKeyframes;
597
+ /**
598
+ * Returns keyframes for a subtle pulse animation on an icon.
599
+ */
600
+ declare function moveIconPulse(overrides?: Partial<MoveKeyframes>): MoveKeyframes;
601
+ /**
602
+ * Returns keyframes for a subtle bounce animation on an icon.
603
+ */
604
+ declare function moveIconBounce(overrides?: Partial<MoveKeyframes>): MoveKeyframes;
605
+ /**
606
+ * Returns keyframes for a subtle shake animation on an icon.
607
+ */
608
+ declare function moveIconShake(overrides?: Partial<MoveKeyframes>): MoveKeyframes;
609
+ /**
610
+ * Returns keyframes for a subtle rotate animation on an icon.
611
+ */
612
+ declare function moveIconRotate(overrides?: Partial<MoveKeyframes>): MoveKeyframes;
613
+
498
614
  type MovementConfigInput = Partial<MovementConfig>;
499
615
  declare function provideMovement(config?: MovementConfigInput): EnvironmentProviders;
500
616
 
501
- declare const MOVEMENT_DIRECTIVES: readonly [typeof MoveEnterDirective, typeof MoveLeaveDirective, typeof MoveAnimateDirective, typeof MoveHoverDirective, typeof MoveTapDirective, typeof MoveVariantsDirective, typeof MoveStaggerDirective, typeof MoveLayoutDirective, typeof MoveScrollDirective, typeof MovePresenceDirective, typeof MoveDragDirective, typeof MoveInViewDirective, typeof MoveTextDirective, typeof MoveSmoothScrollDirective, typeof MoveFocusDirective, typeof MoveParallaxDirective, typeof MoveAnimationDirective, typeof MoveLoopDirective];
617
+ declare const MOVEMENT_DIRECTIVES: readonly [typeof MoveEnterDirective, typeof MoveLeaveDirective, typeof MoveAnimateDirective, typeof MoveHoverDirective, typeof MoveTapDirective, typeof MoveVariantsDirective, typeof MoveStaggerDirective, typeof MoveLayoutDirective, typeof MoveScrollDirective, typeof MovePresenceDirective, typeof MoveDragDirective, typeof MoveInViewDirective, typeof MoveTextDirective, typeof MoveSmoothScrollDirective, typeof MoveFocusDirective, typeof MoveParallaxDirective, typeof MoveAnimationDirective, typeof MoveLoopDirective, typeof MoveTargetDirective, typeof MoveTriggerDirective];
502
618
 
503
- export { AnimationEngine, MOVEMENT_CONFIG, MOVEMENT_DEFAULTS, MOVEMENT_DIRECTIVES, MOVE_PRESENCE_PARENT, MOVE_PRESETS, MOVE_STAGGER_PARENT, MOVE_VARIANTS_PARENT, MoveAnimateDirective, MoveAnimationDirective, MoveDragDirective, MoveEnterDirective, MoveFocusDirective, MoveHoverDirective, MoveInViewDirective, MoveLayoutDirective, MoveLeaveDirective, MoveLoopDirective, MoveParallaxDirective, MovePresenceDirective, MoveScrollDirective, MoveSmoothScrollDirective, MoveStaggerDirective, MoveTapDirective, MoveTextDirective, MoveVariantsDirective, SmoothScrollService, SpringPlayer, WaapiPlayer, applyInitialStyles, clearInitialStyles, prefersReducedMotion, provideMovement, resolveMoveFrames, resolveMovementConfig, reverseFrames };
504
- export type { AnimationControls, MoveAnimationConfig, MoveDirectiveInput, MoveDragConstraints, MoveInputOverrides, MoveKeyframeState, MoveKeyframes, MovePhase, MovePresenceChild, MovePresenceProvider, MovePreset, MovePresetDefinition, MoveSpring, MoveStaggerDirection, MoveStaggerProvider, MoveValuePair, MoveVariant, MoveVariantsProvider, MovementConfig, MovementConfigInput, PlayAnimationOptions };
619
+ export { AnimationEngine, MOVEMENT_CONFIG, MOVEMENT_DEFAULTS, MOVEMENT_DIRECTIVES, MOVE_PRESENCE_PARENT, MOVE_PRESETS, MOVE_STAGGER_PARENT, MOVE_VARIANTS_PARENT, MoveAnimateDirective, MoveAnimationDirective, MoveDragDirective, MoveEnterDirective, MoveFocusDirective, MoveHoverDirective, MoveInViewDirective, MoveLayoutDirective, MoveLeaveDirective, MoveLoopDirective, MoveParallaxDirective, MovePresenceDirective, MoveScrollDirective, MoveSmoothScrollDirective, MoveStaggerDirective, MoveTapDirective, MoveTargetDirective, MoveTextDirective, MoveTriggerDirective, MoveVariantsDirective, SmoothScrollService, SpringPlayer, WaapiPlayer, applyInitialStyles, clearComposedStyle, clearInitialStyles, composeTransitionKeyframes, isValidScrollOffset, moveIconBounce, moveIconPulse, moveIconRotate, moveIconShake, movePathDraw, prefersReducedMotion, provideMovement, resolveMoveFrames, resolveMovementConfig, reverseFrames, validateDragElastic, validateSpring };
620
+ export type { AnimationControls, MoveAnimationConfig, MoveDirectiveInput, MoveDragConstraints, MoveInputOverrides, MoveKeyframeProperties, MoveKeyframeState, MoveKeyframes, MovePhase, MovePresenceChild, MovePresenceProvider, MovePreset, MovePresetDefinition, MovePropertyTransition, MoveSpring, MoveStaggerDirection, MoveStaggerProvider, MoveTransitionConfig, MoveValue, MoveValuePair, MoveVariant, MoveVariantsProvider, MovementConfig, MovementConfigInput, PlayAnimationOptions, ResolvedTransition };