import type { Tone } from "../../Theme/tokens/builders/tone"; import type { TagDisplay, TagVariant } from "../Tag/TagProps"; /** How one status looks: a tone, plus the chip variant (ignored in dot display). */ export type StatusAppearance = { /** Status tone of the tag, same tones as Tag. */ tone: Tone; /** Chip variant; ignored in dot display. */ variant?: TagVariant; }; /** Props for StatusTag; `S` is the app's status union so `map` must cover every status. */ export interface StatusTagProps { /** The raw status value; one missing from `map` renders neutral and warns once in development. */ status: S; /** Visible text; the app owns translation, StatusTag never derives it from `status`. */ label: string; /** Status vocabulary to appearance, declared once per app. */ map: Record; /** "dot" gives a quiet dot plus label; default "chip". */ display?: TagDisplay; /** Tag size; defaults to "sm". */ size?: "sm" | "md"; /** Test id on the tag. */ "data-testid"?: string; }