import { default as React } from 'react'; /** * Typography variant following Astro UX Design System * Maps directly to official Astro typography tokens */ export type TypographyVariant = "display1" | "display2" | "h1" | "h1Bold" | "h2" | "h3" | "h4" | "h5" | "h6" | "body1" | "body1Bold" | "body2" | "body2Bold" | "body3" | "body3Bold" | "control1" | "control1Bold" | "compact" | "compactBold" | "micro" | "microBold" | "mono" | "monoSmall" | "monoCompact"; /** * Semantic element to render */ export type TypographyElement = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "div" | "label" | "code" | "pre"; /** * Text color variants */ export type TypographyColor = "primary" | "secondary" | "tertiary" | "muted" | "inverse" | "inherit" | "normal" | "standby" | "caution" | "serious" | "critical" | "off"; export interface TypographyProps { /** Typography variant (required) */ variant: TypographyVariant; /** HTML element to render */ as?: TypographyElement; /** Text color */ color?: TypographyColor; /** Enable tabular figures for numeric alignment */ tabular?: boolean; /** Truncate with ellipsis */ truncate?: boolean; /** Text alignment */ align?: "left" | "center" | "right"; /** Disable text wrapping */ noWrap?: boolean; /** Transform text case */ transform?: "none" | "uppercase" | "lowercase" | "capitalize"; /** Additional CSS styles */ style?: React.CSSProperties; /** Additional CSS class */ className?: string; /** Children */ children?: React.ReactNode; /** Test ID */ "data-testid"?: string; } /** * Primary body font stack used by all components. * * Public Sans is the lead face for body text; Roboto is the fallback that * activates when web fonts fail to load (Public Sans is not installed * locally on most machines, but Roboto is on Android by default — and * AstroUXDS specifies Roboto as the canonical engineering-grade fallback). * Below that, the OS-native system fonts complete the chain so the UI * never falls through to Times. * * Read by `var(--font-family-primary)` so consumers can override at the * `:root` level (set by `` from `tokens.typography.fontFamily.primary`). */ export declare const FONT_FAMILY_PRIMARY = "var(--font-family-primary, \"Public Sans\", \"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif)"; /** * Monospace stack for tabular data, code, and numeric readouts. * Roboto Mono leads (AstroUXDS canonical), then OS-native mono fonts. */ export declare const FONT_FAMILY_MONO = "\"Roboto Mono\", \"SF Mono\", \"Consolas\", \"Liberation Mono\", monospace"; export declare const FONT_WEIGHTS: { readonly light: 300; readonly regular: 400; readonly medium: 500; readonly bold: 700; }; /** * Typography component providing AstroUXDS-compliant text styling. * * @example * ```tsx * // Heading * Section Title * * // Body text * Description text * * // Monospace data with tabular figures * 123.456 * * // Compact label for cards * LABEL * ``` */ export declare const Typography: React.FC; /** Display 1 - Largest display text */ export declare const Display1: React.FC>; /** Display 2 - Large display text */ export declare const Display2: React.FC>; /** Heading 1 */ export declare const H1: React.FC & { bold?: boolean; }>; /** Heading 2 */ export declare const H2: React.FC>; /** Heading 3 */ export declare const H3: React.FC>; /** Heading 4 */ export declare const H4: React.FC>; /** Heading 5 */ export declare const H5: React.FC>; /** Heading 6 */ export declare const H6: React.FC>; /** Body text level 1 (16px) */ export declare const Body1: React.FC & { bold?: boolean; }>; /** Body text level 2 (14px) */ export declare const Body2: React.FC & { bold?: boolean; }>; /** Body text level 3 (12px) */ export declare const Body3: React.FC & { bold?: boolean; }>; /** Compact text for dense UIs (10px) */ export declare const Compact: React.FC & { bold?: boolean; }>; /** Micro text for very tight spaces (9px) */ export declare const Micro: React.FC & { bold?: boolean; }>; /** Monospace text for data/code */ export declare const Mono: React.FC & { size?: "normal" | "small" | "compact"; }>; /** Data value text - monospace with tabular figures (for numeric displays) */ export declare const DataText: React.FC & { size?: "large" | "normal" | "small" | "compact"; }>; /** Label text for form controls and card headers */ export declare const Label: React.FC & { bold?: boolean; }>; export default Typography;