src/components/span.tsximport { clsx } from 'clsx'export interface SpanProps extends React.ComponentPropsWithoutRef<'span'> {/** Variant of the span - controls default styling */variant?: 'default' | 'large' | 'small'/** Font size override */fontSize?: string/** Text color override */color?: string/** Font family override */fontFamily?: string/** Font weight override */fontWeight?: string/** Font style override */fontStyle?: string/** Line height override */lineHeight?: string/** Text alignment override */textAlign?: string/** Margin override */margin?: string/** Additional CSS classes */className?: string}export function Span({className = '',variant = 'default',fontSize = '',color = '',fontFamily = '',fontWeight = '',fontStyle = '',lineHeight = '',textAlign = '',margin = '',children,...props}: SpanProps) {// Define font size presets for variantsconst variantFontSizes = {default: 'text-lg',large: 'text-lg md:text-xl',small: 'text-sm',}// Use user-defined values if provided, otherwise use defaultsconst finalFontSize = fontSize || variantFontSizes[variant]const finalColor = color || 'text-contrast'const finalFontFamily = fontFamily || '' // no default font familyconst finalFontWeight = fontWeight || 'font-normal' // inherit font weightconst finalFontStyle = fontStyle || '' // no default font styleconst finalLineHeight = lineHeight || 'leading-normal' // default line heightconst finalTextAlign = textAlign || '' // no default text alignmentconst finalMargin = margin || 'mb-0' // no margin by defaultreturn (<spanclassName={clsx(finalFontSize,finalColor,finalFontFamily,finalFontWeight,finalFontStyle,finalLineHeight,finalTextAlign,finalMargin,className)}{...props}>{children}</span>)}