'use client';
import * as React from 'react';
import type { ToolcraftTimelineKeyframeEasing } from '../../state/types';
import type { TimelineBezierControlPoints } from './timeline-easing-model';
import {
getEasingIconPath,
timelineEasingPresetIconLineColor,
timelineEasingPresetIconSize,
timelineEasingPresetIconViewBoxSize,
} from './timeline-easing-geometry';
export function TimelineEasingCurveIcon({
className,
easing,
size = 20,
}: {
className?: string;
easing: ToolcraftTimelineKeyframeEasing;
size?: number;
}): React.JSX.Element {
if (easing.type === 'step') {
return (
);
}
return (
);
}
export function TimelineEasingPresetIcon({
controlPoints,
}: {
controlPoints: TimelineBezierControlPoints;
}): React.JSX.Element {
const iconSize = timelineEasingPresetIconViewBoxSize;
const iconInset = 4;
const iconGridSize = iconSize - iconInset * 2;
const pointX = (point: number): number => iconInset + point * iconGridSize;
const pointY = (point: number): number => iconInset + (1 - point) * iconGridSize;
const path = `M ${pointX(0)} ${pointY(0)} C ${pointX(controlPoints[0])} ${pointY(
controlPoints[1],
)}, ${pointX(controlPoints[2])} ${pointY(controlPoints[3])}, ${pointX(1)} ${pointY(1)}`;
return (
);
}
export function TimelineEasingStepPresetIcon(): React.JSX.Element {
return (
);
}