import { type FC, type ReactNode } from 'react'; /** * Font configuration options (matches Next.js API) */ export interface FontOptions { /** * The font family name */ fontFamily: string; /** * Font display strategy * @default 'swap' */ display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional'; /** * Font weight(s) */ weight?: string | string[]; /** * Font style */ style?: string | string[]; /** * Font source URLs for different formats */ src?: { woff2?: string; woff?: string; ttf?: string; eot?: string; }; /** * Preload the font * @default true */ preload?: boolean; /** * Fallback font family */ fallback?: string[]; /** * Variable font name for CSS variables (if using variable fonts) */ variable?: string; /** * Next.js compatibility - adjust font feature settings */ fontFeatureSettings?: string; /** * Next.js compatibility - optimize font loading */ preloadOnly?: boolean; /** * Next.js compatibility - subset of the font */ subsets?: string[]; /** * Next.js compatibility - font axes for variable fonts */ axes?: string[]; /** * Next.js compatibility - adjusts font features */ adjustFontFallback?: boolean | 'Arial' | 'Times New Roman'; } /** * Font component props */ export interface FontProps { /** * Font options or an array of font options for multiple font families */ options: FontOptions | FontOptions[]; /** * Optional children to render after fonts are loaded */ children?: ReactNode; /** * Override the default implementation for the