'use client'; import { forwardRef, HTMLAttributes, ReactNode } from 'react'; import styles from './inscription.module.css'; export interface InscriptionProps extends HTMLAttributes { /** Text content */ children: ReactNode; /** Carving style */ effect?: 'carved' | 'deepCarved' | 'embossed' | 'weathered' | 'ancient' | 'roman'; /** Stone color variant */ variant?: 'bone' | 'marble' | 'granite' | 'obsidian' | 'gold'; /** Text size */ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; /** Add stone texture overlay */ textured?: boolean; /** Add decorative border */ bordered?: boolean; /** Add crack effect */ cracked?: boolean; /** HTML tag to render */ as?: 'div' | 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'p'; } export const Inscription = forwardRef( ( { children, effect = 'carved', variant = 'bone', size = 'md', textured = false, bordered = false, cracked = false, as: Component = 'div', className, ...props }, ref ) => { const text = typeof children === 'string' ? children : ''; return ( } className={` ${styles.inscription} ${styles[effect]} ${styles[variant]} ${styles[size]} ${textured ? styles.textured : ''} ${bordered ? styles.bordered : ''} ${cracked ? styles.cracked : ''} ${className || ''} `} data-text={text} {...props} > {children} ); } ); Inscription.displayName = 'Inscription'; export default Inscription;