UNPKG

@dvcol/neo-svelte

Version:

Neomorphic ui library for svelte 5

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