"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 (
(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%"}
);
}