import type React from "react"; import type { ClassName } from "@reshaped/utilities"; import type * as G from "../../types/global"; import type { Attributes } from "../../types/global"; export type Variant = "headline-1" | "headline-2" | "headline-3" | "featured-1" | "featured-2" | "featured-3" | "featured-4" | "featured-5" | "featured-6" | "body-1" | "body-2" | "caption-1" | "caption-2"; export type Props = { /** Text render variant */ variant?: G.Responsive; /** Text font weight */ weight?: G.Responsive<"regular" | "medium" | "semibold" | "bold" | "extrabold">; /** Render monospace font */ monospace?: boolean; /** Text color, based on the color tokens */ color?: "neutral" | "neutral-faded" | "critical" | "warning" | "positive" | "primary" | "disabled"; /** Text alignment */ align?: G.Responsive<"start" | "center" | "end">; /** CSS wrapping style */ wrap?: "balance"; /** CSS text decoration style */ decoration?: "line-through"; /** Maximum number of lines to render, used for text truncation */ maxLines?: number; /** Render as a numeric value to preserve the width of each character */ numeric?: true; /** Node for inserting children */ children?: React.ReactNode; /** Additional classname for the root element */ className?: ClassName; /** Additional attributes for the root element */ attributes?: Attributes; /** Render as a different html tag */ as?: TagName extends keyof React.JSX.IntrinsicElements ? TagName : keyof React.JSX.IntrinsicElements; };