"use client";
import type { ReactNode } from "react";
import { motion, useReducedMotion } from "motion/react";
type InkRevealProps = {
children: ReactNode;
className?: string;
/** Seconds the ink takes to spread. */
duration?: number;
/** Play only the first time it scrolls into view. */
once?: boolean;
};
const MASK = "radial-gradient(circle at 0% 50%, #000 var(--ink), transparent calc(var(--ink) + 25%))";
/* InkReveal: text spreads out from the left like ink soaking into paper, soft at the edge and sharpening as it dries. */
export function InkReveal({ children, className = "", duration = 1.6, once = true }: InkRevealProps) {
const reduce = useReducedMotion();
if (reduce) return {children};
return (
{children}
);
}