"use client"; import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { type ReactNode, useEffect, useState } from "react"; import { Progress } from "@/components/motion/progress"; import { cn } from "@/lib/utils"; const EASE = [0.23, 1, 0.32, 1] as const; export interface ShimmerTextProps { children: ReactNode; className?: string; } /** Status text with a bright band sweeping across it, for a quiet "still working" signal. */ export function ShimmerText({ children, className }: ShimmerTextProps) { const reduce = useReducedMotion(); if (reduce) { return ( {children} ); } return ( {children} ); } export interface AgentProgressProps { label: string; /** 0 to 100. Omitted, the bar runs indeterminate. */ value?: number; className?: string; } /** A labeled progress bar with a pulsing dot marking it as a live, running step. */ export function AgentProgress({ label, value, className }: AgentProgressProps) { return (