'use strict';

const checkbox = require('./fields/checkbox.cjs');
const date = require('./fields/date.cjs');
const _enum = require('./fields/enum.cjs');
const input = require('./fields/input.cjs');
const number = require('./fields/number.cjs');
const radioGroup = require('./fields/radio-group.cjs');
const _switch = require('./fields/switch.cjs');
const textarea = require('./fields/textarea.cjs');

const INPUT_COMPONENTS = {
  checkbox: checkbox,
  date: date,
  select: _enum,
  radio: radioGroup,
  switch: _switch,
  textarea: textarea,
  number: number,
  fallback: input
};
const DEFAULT_ZOD_HANDLERS = {
  // Zod v3 style type names
  ZodBoolean: "checkbox",
  ZodDate: "date",
  ZodEnum: "select",
  ZodNativeEnum: "select",
  ZodNumber: "number",
  // Zod v4 style type names (lowercase, no "Zod" prefix)
  boolean: "checkbox",
  date: "date",
  enum: "select",
  nativeEnum: "select",
  number: "number",
  int: "number",
  float: "number"
};

exports.DEFAULT_ZOD_HANDLERS = DEFAULT_ZOD_HANDLERS;
exports.INPUT_COMPONENTS = INPUT_COMPONENTS;
