UNPKG

@dvcol/neo-svelte

Version:

Neomorphic ui library for svelte 5

34 lines (33 loc) 1.22 kB
import { emptyAnimation, emptyTransition, } from '@dvcol/svelte-utils/transition'; export const emptyUse = () => ({}); export const isTransitionWithProps = (transition) => 'use' in transition && transition.use !== undefined; const toFunction = (transition) => { if (!transition) return; if (isTransitionWithProps(transition)) return transition.use; return transition; }; export const toAnimation = (transition, fallback = emptyAnimation) => toFunction(transition) ?? fallback; export const toTransition = (transition, fallback = emptyTransition) => toFunction(transition) ?? fallback; export const toTransitionProps = (transition, fallback) => { if (!transition) return fallback; if (isTransitionWithProps(transition)) return transition.props; return fallback; }; export const isActionWithProps = (action) => 'use' in action && action.use !== undefined; export const toAction = (action) => { if (!action) return emptyUse; if (isActionWithProps(action)) return action.use; return action; }; export const toActionProps = (action) => { if (!action) return; if (isActionWithProps(action)) return action.props; };