import type { HTMLAttributes, JSX, ReactNode } from 'react'; export type TextContentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; export type TextContentWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold'; export interface TextContentProps extends HTMLAttributes { children?: ReactNode; /** * HTML element to render (e.g. `span`, `code`, `mark`, `label`, `b`, `i`, `div`, `time`). * Defaults to `span`. */ as?: keyof JSX.IntrinsicElements; /** * Font size variant (`xs`, `sm`, `md`, `lg`, `xl`). */ size?: TextContentSize; /** * Font weight variant (`light`, `normal`, `medium`, `semibold`, `bold`). */ weight?: TextContentWeight; /** * Shortcut for extra-small text (`text-xs/5`). Retained for backward compatibility. */ xsmall?: boolean; /** * Shortcut for small text (`text-sm/6`). Retained for backward compatibility. */ small?: boolean; /** * Shortcut for semibold text (`font-semibold`). Retained for backward compatibility. */ strong?: boolean; /** * Apply muted gray tone. */ muted?: boolean; /** * Apply error red text color. */ error?: boolean; /** * Apply success green text color. */ success?: boolean; /** * Apply warning amber text color. */ warning?: boolean; /** * Apply info blue text color. */ info?: boolean; /** * Inverted text color for dark background contexts. */ invert?: boolean; /** * Monospace font family (`font-mono`) for code snippets or numbers. */ monospace?: boolean; /** * Truncate single line text with ellipsis. */ truncate?: boolean; }