/v1.0

DateField

DateField renderiza un <input type="date"> envuelto en un contenedor estilizado. Acepta y emite fechas como cadenas ISO en formato YYYY-MM-DD. Las props opcionales minDate y maxDate restringen el rango seleccionable.

Props

| Prop | Tipo | Requerido | Por defecto | Descripción | |------|------|-----------|-------------|-------------| | value | string | No | — | Valor de fecha actual en formato YYYY-MM-DD. | | onChange | (value: string) => void | Sí | — | Llamado con la nueva cadena de fecha cuando el usuario cambia el valor. | | label | string | No | — | Etiqueta mostrada sobre el input. | | description | string | No | — | Texto de ayuda mostrado debajo del input. | | minDate | string | No | — | Fecha mínima seleccionable en formato YYYY-MM-DD. | | maxDate | string | No | — | Fecha máxima seleccionable en formato YYYY-MM-DD. | | placeholder | string | No | — | Texto placeholder del input. | | containerStyle | React.CSSProperties | No | — | Estilos del div contenedor raíz. | | inputWrapperStyle | React.CSSProperties | No | — | Estilos del div wrapper interior que rodea al <input>. | | inputStyle | React.CSSProperties | No | — | Estilos aplicados directamente al elemento <input>. | | labelStyle | React.CSSProperties | No | — | Estilos del elemento de etiqueta. | | descriptionStyle | React.CSSProperties | No | — | Estilos del párrafo de descripción. | | className | string | No | — | Clase CSS del div wrapper. | | id | string | No | — | Atributo id del div wrapper. |

Uso

Básico

import React, { useState } from 'react';
import DateField from '@/components/fields/DateField';

export default function Example() {
  const [date, setDate] = useState('');

  return (
    <DateField
      label="Fecha de nacimiento"
      value={date}
      onChange={setDate}
    />
  );
}

Con fecha mínima y máxima

<DateField
  label="Fecha de turno"
  value={appointmentDate}
  onChange={setAppointmentDate}
  minDate="2024-01-01"
  maxDate="2024-12-31"
  description="Seleccioná una fecha dentro de 2024."
/>