{"version":3,"file":"text-area.cjs","sources":["../../../components/text-area/text-area.tsx"],"sourcesContent":["import { Field as FieldPrimitive } from '@base-ui/react/field';\nimport { cva, cx, type VariantProps } from 'class-variance-authority';\nimport { ChangeEvent, type ComponentProps } from 'react';\nimport { useFieldContext } from '../field';\n\nimport styles from './text-area.module.css';\n\nconst textAreaVariants = cva(styles.textarea, {\n  variants: {\n    size: {\n      small: styles['size-small'],\n      large: styles['size-large']\n    },\n    variant: {\n      default: styles['variant-default'],\n      borderless: styles['variant-borderless']\n    }\n  },\n  defaultVariants: {\n    size: 'large',\n    variant: 'default'\n  }\n});\n\nexport interface TextAreaProps\n  extends Omit<ComponentProps<'textarea'>, 'size'>,\n    VariantProps<typeof textAreaVariants> {\n  disabled?: boolean;\n  placeholder?: string;\n  value?: string;\n  onChange?: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n  onValueChange?: (\n    value: string,\n    event: ChangeEvent<HTMLTextAreaElement>\n  ) => void;\n}\n\nexport function TextArea({\n  className,\n  disabled,\n  value,\n  onChange,\n  onValueChange,\n  placeholder,\n  required,\n  size,\n  variant,\n  ...props\n}: TextAreaProps) {\n  const fieldContext = useFieldContext();\n  const resolvedRequired = required ?? fieldContext?.required;\n\n  const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n    onChange?.(event);\n    onValueChange?.(event.target.value, event);\n  };\n\n  const textarea = (\n    <textarea\n      rows={3}\n      data-slot='text-area'\n      className={cx(\n        textAreaVariants({ size, variant }),\n        disabled && styles.disabled,\n        className\n      )}\n      value={value}\n      onChange={handleChange}\n      disabled={disabled}\n      placeholder={placeholder}\n      required={resolvedRequired}\n      {...props}\n    />\n  );\n\n  if (fieldContext) {\n    return <FieldPrimitive.Control render={textarea} />;\n  }\n\n  return textarea;\n}\n\nTextArea.displayName = 'TextArea';\n"],"names":["cva","styles","useFieldContext","_jsx","cx","FieldPrimitive"],"mappings":";;;;;;;;;AAOA,MAAM,gBAAgB,GAAGA,0BAAG,CAACC,uBAAM,CAAC,QAAQ,EAAE;AAC5C,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAEA,uBAAM,CAAC,YAAY,CAAC;AAC3B,YAAA,KAAK,EAAEA,uBAAM,CAAC,YAAY,CAAC;AAC5B,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAEA,uBAAM,CAAC,iBAAiB,CAAC;AAClC,YAAA,UAAU,EAAEA,uBAAM,CAAC,oBAAoB,CAAC;AACzC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA,CAAC,CAAC;AAeG,SAAU,QAAQ,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,GAAG,KAAK,EACM,EAAA;AACd,IAAA,MAAM,YAAY,GAAGC,+BAAe,EAAE,CAAC;AACvC,IAAA,MAAM,gBAAgB,GAAG,QAAQ,IAAI,YAAY,EAAE,QAAQ,CAAC;AAE5D,IAAA,MAAM,YAAY,GAAG,CAAC,KAAuC,KAAI;AAC/D,QAAA,QAAQ,GAAG,KAAK,CAAC,CAAC;QAClB,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,KAAC,CAAC;IAEF,MAAM,QAAQ,IACZC,cACE,CAAA,UAAA,EAAA,EAAA,IAAI,EAAE,CAAC,EAAA,WAAA,EACG,WAAW,EACrB,SAAS,EAAEC,yBAAE,CACX,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACnC,QAAQ,IAAIH,uBAAM,CAAC,QAAQ,EAC3B,SAAS,CACV,EACD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,gBAAgB,EACtB,GAAA,KAAK,EACT,CAAA,CACH,CAAC;IAEF,IAAI,YAAY,EAAE;QAChB,OAAOE,cAAA,CAACE,WAAc,CAAC,OAAO,IAAC,MAAM,EAAE,QAAQ,EAAA,CAAI,CAAC;KACrD;AAED,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}