{"version":3,"file":"field-root.cjs","sources":["../../../components/field/field-root.tsx"],"sourcesContent":["'use client';\n\nimport { Field as FieldPrimitive } from '@base-ui/react/field';\nimport { cx } from 'class-variance-authority';\nimport { createContext, ReactNode } from 'react';\nimport styles from './field.module.css';\nimport { FieldLabel } from './field-misc';\n\nexport interface FieldProps extends FieldPrimitive.Root.Props {\n  label?: ReactNode;\n  description?: ReactNode;\n  error?: ReactNode;\n  required?: boolean;\n}\n\nexport interface FieldContextValue {\n  invalid?: boolean;\n  disabled?: boolean;\n  required?: boolean;\n}\n\nexport const FieldContext = createContext<FieldContextValue | null>(null);\n\nexport function FieldRoot({\n  label,\n  description,\n  error,\n  required = true,\n  className,\n  children,\n  invalid,\n  disabled,\n  ref,\n  ...props\n}: FieldProps) {\n  const isInvalid = invalid ?? !!error;\n\n  return (\n    <FieldContext.Provider value={{ invalid: isInvalid, disabled, required }}>\n      <FieldPrimitive.Root\n        ref={ref}\n        className={cx(styles.field, className)}\n        invalid={isInvalid}\n        disabled={disabled}\n        data-slot='field'\n        {...props}\n      >\n        {label && <FieldLabel required={required}>{label}</FieldLabel>}\n        <div className={styles.control} data-slot='field-control'>\n          {children}\n        </div>\n        {(description || error) && (\n          <div className={styles.helperSlot} data-slot='field-helper'>\n            {description && !error && (\n              <FieldPrimitive.Description\n                className={styles.description}\n                data-slot='field-description'\n              >\n                {description}\n              </FieldPrimitive.Description>\n            )}\n            {error && (\n              <FieldPrimitive.Error\n                className={styles.error}\n                data-slot='field-error'\n                match\n              >\n                {error}\n              </FieldPrimitive.Error>\n            )}\n          </div>\n        )}\n      </FieldPrimitive.Root>\n    </FieldContext.Provider>\n  );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAuBM;AAYJ;AAEA;AAsCF;;;"}