export type GestureRecordingState = "idle" | "recording" | "preview";
interface GestureRecordIconProps {
recording: boolean;
}
function GestureRecordIcon({ recording }: GestureRecordIconProps) {
return (
);
}
interface GestureRecordPanelButtonProps {
recordingState?: GestureRecordingState;
recordingDuration?: number;
onToggleRecording: () => void;
}
export function GestureRecordPanelButton({
recordingState,
recordingDuration,
onToggleRecording,
}: GestureRecordPanelButtonProps) {
const recording = recordingState === "recording";
return (
);
}
interface GestureRecordBadgeProps {
rect: { left: number; top: number; width: number; height: number };
recordingState?: GestureRecordingState;
onToggleRecording: () => void;
}
export function GestureRecordBadge({
rect,
recordingState,
onToggleRecording,
}: GestureRecordBadgeProps) {
const recording = recordingState === "recording";
const label = recording ? "Stop gesture recording (R)" : "Record gesture (R)";
return (
);
}