import React from 'react';
interface TypographyProps {
children: React.ReactNode;
className?: string;
}
interface LabelProps extends TypographyProps {
htmlFor?: string;
}
// Page Headers
export const PageTitle = ({ children, className = '' }: TypographyProps) => (
{children}
);
export const PageSubtitle = ({ children, className = '' }: TypographyProps) => (
{children}
);
// Section Headers
export const SectionTitle = ({ children, className = '' }: TypographyProps) => (
{children}
);
export const SectionSubtitle = ({ children, className = '' }: TypographyProps) => (
{children}
);
// Card Headers
export const CardTitle = ({ children, className = '' }: TypographyProps) => (
{children}
);
export const CardSubtitle = ({ children, className = '' }: TypographyProps) => (
{children}
);
// Stats and Values
export const StatValue = ({ children, className = '' }: TypographyProps) => (
{children}
);
export const StatLabel = ({ children, className = '' }: TypographyProps) => (
{children}
);
// Body Text
export const BodyText = ({ children, className = '' }: TypographyProps) => (
{children}
);
export const SmallText = ({ children, className = '' }: TypographyProps) => (
{children}
);
// Labels
export const Label = ({ children, htmlFor, className = '' }: LabelProps) => (
);
// Form Headers with Mobile Support
interface FormHeaderProps {
title: string;
subtitle?: string;
backButton?: React.ReactNode;
className?: string;
}
export const FormHeader = ({ title, subtitle, backButton, className = '' }: FormHeaderProps) => (
{/* Mobile: Stack vertically, Desktop: Side by side */}
{backButton && (
{backButton}
)}
{title}
{subtitle &&
{subtitle}}
);
// Page Container with consistent mobile spacing
export const PageContainer = ({ children, className = '' }: TypographyProps) => (
{children}
);
// Mobile-friendly card container
export const MobileCard = ({ children, className = '' }: TypographyProps) => (
{children}
);