/** * @file Heading component */ import React from "react"; import styles from "./Heading.module.css"; export type HeadingProps = { level?: 1 | 2 | 3 | 4 | 5 | 6; size?: "compact" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl"; weight?: "normal" | "medium" | "semibold" | "bold"; color?: "primary" | "secondary" | "muted"; children: React.ReactNode; } & React.HTMLAttributes; export const Heading: React.FC = ({ level = 1, size, weight = "semibold", color = "primary", className = "", children, ...props }) => { const Tag = `h${level}` as React.ElementType; const classes = [styles.heading, className].filter(Boolean).join(" "); return ( {children} ); }; // Convenience components export const H1: React.FC> = (props) => ; export const H2: React.FC> = (props) => ; export const H3: React.FC> = (props) => ; export const H4: React.FC> = (props) => ; export const H5: React.FC> = (props) => ; export const H6: React.FC> = (props) => ;