My App

Box

Your first document

Box component

Props

Prop

Type

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>  )}

On this page