"use client"; import { useState } from "react"; import { Slider } from "../ui/Slider.tsx"; export function Specimen({ text, onTextChange, size, onSizeChange, weight, onWeightChange, tracking, onTrackingChange, serif, onSerifChange, }: { text?: string; onTextChange?: (v: string) => void; size?: number; onSizeChange?: (v: number) => void; weight?: number; onWeightChange?: (v: number) => void; tracking?: number; onTrackingChange?: (v: number) => void; serif?: boolean; onSerifChange?: (v: boolean) => void; }) { const [t, setT] = useState("Mizu"); const [s, setS] = useState(84); const [w, setW] = useState(800); const [tr, setTr] = useState(-2); const [se, setSe] = useState(false); const textV = text ?? t; const sizeV = size ?? s; const weightV = weight ?? w; const trackingV = tracking ?? tr; const serifV = serif ?? se; const shown = textV.trim() === "" ? "Type" : textV; return (

{shown}

(onSizeChange ? onSizeChange(v) : setS(v))} /> (onWeightChange ? onWeightChange(v) : setW(v))} /> (onTrackingChange ? onTrackingChange(v) : setTr(v))} />

font: {serifV ? "italic 400" : `${weightV} ${sizeV}px/0.95`}{" "} {serifV ? "Instrument Serif" : "Archivo Variable"}; · letter-spacing:{" "} {trackingV}px; · stretch: {serifV ? "normal" : "100%"}

); }