Box
Your first document
Box component
Usage
import { Box } from "@/Box";
<div style={{ minHeight: "300px" }}>
<Box className=" w-44 h-44 bg-blue-600 mx-auto hover:bg-blue-300 transition-all" />
</div>;Code
Interface code
import { ElementType, ReactNode } from 'react'/** * Props del componente `Box`. * * Componente polimórfico genérico que actúa como wrapper, * permitiendo renderizar cualquier elemento HTML o componente React * mediante la prop `component`, manteniendo tipado y autocompletado. */export interface BoxProps<T extends ElementType = 'div'> { /** Contenido del contenedor. */ children?: ReactNode /** * Elemento o componente React que se renderizará. * * Por defecto es un `div`, pero puede ser cualquier elemento HTML * (`section`, `main`, `a`, etc.) o un componente React. * * @default 'div' */ component?: T /** Clases adicionales */ className?: string}Component Code
import { ElementType } from 'react'import { BoxProps } from './box.types'export function Box<T extends ElementType = 'div'>({ component, className, children, ...props }: BoxProps<T>) { const Component = component ?? 'div' return ( <Component className={className} {...props}> {children} </Component> )}