react-smooth-flow
Version:
Effortless React animations for entering, exiting, and updating elements
86 lines (64 loc) • 2.86 kB
TypeScript
import { DependencyList } from 'react';
import { PropertiesHyphen } from 'csstype';
export declare const cancelTransition: (...tags: FalsyArray<Tag>) => void;
export declare interface ConfigurableDefaults {
debug: boolean;
transitionOptions: ParsedTransitionOptions;
}
export declare const constructTransition: (mapping: TransitionMapping) => {
'data-transition': string;
};
export declare const constructTransitionRoot: (tag: Tag) => {
'data-transitionroot': string;
};
declare type ContentAlign = 'topLeft' | 'topCenter' | 'topRight' | 'centerRight' | 'bottomRight' | 'bottomCenter' | 'bottomLeft' | 'centerLeft' | 'center';
export declare const defaults: ConfigurableDefaults;
declare type Falsy = false | 0 | '' | null | undefined;
export declare type FalsyArray<T> = (T | Falsy)[];
declare interface Keyframe_2 {
offset?: number;
[key: string]: string | number | undefined;
}
declare type Keyframes = Keyframe_2[] | PropertyIndexedKeyframes_2;
export declare type ParsedTransitionOptions = Required<Omit<TransitionOptions, 'exitKeyframes' | 'contentExitKeyframes' | 'transitionRootTag'>> & {
exitKeyframes: Keyframes;
contentExitKeyframes: Keyframes;
transitionRootTag: Tag | null;
};
declare type PositionAnchor = 'topLeft' | 'topRight' | 'bottomRight' | 'bottomLeft';
declare interface PropertyIndexedKeyframes_2 {
offset?: number[];
[key: string]: string[] | number[] | undefined;
}
declare type RelevantStyleProperties = Exclude<keyof PropertiesHyphen, 'pointer-events'>[];
export declare const startTransition: (tags: FalsyArray<Tag>, updateDOM?: () => void, config?: TransitionConfig) => Promise<void>;
export declare type Tag = string;
export declare interface TransitionConfig {
flushSync?: boolean;
onBegin?(): void;
onCancel?(): void;
onFinish?(): void;
}
export declare type TransitionMapping<T extends TransitionOptions | ParsedTransitionOptions = TransitionOptions> = Record<Tag, T>;
export declare interface TransitionOptions {
duration?: number;
easing?: string;
delay?: number;
ignoreReducedMotion?: boolean;
enterKeyframes?: Keyframes;
exitKeyframes?: Keyframes | 'reversedEnter';
contentEnterKeyframes?: Keyframes;
contentExitKeyframes?: Keyframes | 'reversedEnter';
scaleContent?: boolean;
contentAlign?: ContentAlign;
positionAnchor?: PositionAnchor;
forcePresenceTransition?: boolean;
transitionRootTag?: Tag;
clip?: boolean;
relevantStyleProperties?: RelevantStyleProperties;
persistBounds?: boolean;
transitionLayout?: boolean;
disabled?: boolean;
}
export declare const usePreCommitEffect: (effect: (isInitialRender: boolean) => void | (() => void), deps?: DependencyList) => void;
export { }