{"version":3,"sources":["../src/textarea.tsx","../../../utilities/object-utils/src/omit.ts"],"sourcesContent":["import { FormControlOptions, useFormControl } from \"@chakra-ui/form-control\"\nimport {\n  chakra,\n  forwardRef,\n  HTMLChakraProps,\n  omitThemingProps,\n  ThemingProps,\n  useStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { omit } from \"@chakra-ui/object-utils\"\n\ninterface TextareaOptions {\n  /**\n   * The border color when the textarea is focused. Use color keys in `theme.colors`\n   * @example\n   * focusBorderColor = \"blue.500\"\n   */\n  focusBorderColor?: string\n  /**\n   * The border color when the textarea is invalid. Use color keys in `theme.colors`\n   * @example\n   * errorBorderColor = \"red.500\"\n   */\n  errorBorderColor?: string\n}\n\ntype Omitted = \"disabled\" | \"required\" | \"readOnly\"\n\nconst omitted = [\"h\", \"minH\", \"height\", \"minHeight\"]\n\nexport interface TextareaProps\n  extends Omit<HTMLChakraProps<\"textarea\">, Omitted>,\n    TextareaOptions,\n    FormControlOptions,\n    ThemingProps<\"Textarea\"> {}\n\n/**\n * Textarea is used to enter an amount of text that's longer than a single line\n * @see Docs https://chakra-ui.com/textarea\n */\nexport const Textarea = forwardRef<TextareaProps, \"textarea\">((props, ref) => {\n  const styles = useStyleConfig(\"Textarea\", props)\n  const { className, rows, ...rest } = omitThemingProps(props)\n\n  const textareaProps = useFormControl<HTMLTextAreaElement>(rest)\n\n  //@ts-ignore\n  const textareaStyles = rows ? omit(styles, omitted) : styles\n\n  return (\n    <chakra.textarea\n      ref={ref}\n      rows={rows}\n      {...textareaProps}\n      className={cx(\"chakra-textarea\", className)}\n      __css={textareaStyles}\n    />\n  )\n})\n\nTextarea.displayName = \"Textarea\"\n","export function omit<T extends Record<string, any>, K extends keyof T>(\n  object: T,\n  keysToOmit: K[] = [],\n) {\n  const clone: Record<string, unknown> = Object.assign({}, object)\n  for (const key of keysToOmit) {\n    if (key in clone) {\n      delete clone[key as string]\n    }\n  }\n  return clone as Omit<T, K>\n}\n"],"mappings":";;;AAAA,SAA6B,sBAAsB;AACnD;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,UAAU;;;ACTZ,SAAS,KACd,QACA,aAAkB,CAAC,GACnB;AACA,QAAM,QAAiC,OAAO,OAAO,CAAC,GAAG,MAAM;AAC/D,aAAW,OAAO,YAAY;AAC5B,QAAI,OAAO,OAAO;AAChB,aAAO,MAAM,GAAa;AAAA,IAC5B;AAAA,EACF;AACA,SAAO;AACT;;;ADwCI;AAtBJ,IAAM,UAAU,CAAC,KAAK,QAAQ,UAAU,WAAW;AAY5C,IAAM,WAAW,WAAsC,CAAC,OAAO,QAAQ;AAC5E,QAAM,SAAS,eAAe,YAAY,KAAK;AAC/C,QAAM,EAAE,WAAW,MAAM,GAAG,KAAK,IAAI,iBAAiB,KAAK;AAE3D,QAAM,gBAAgB,eAAoC,IAAI;AAG9D,QAAM,iBAAiB,OAAO,KAAK,QAAQ,OAAO,IAAI;AAEtD,SACE;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MACC;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,WAAW,GAAG,mBAAmB,SAAS;AAAA,MAC1C,OAAO;AAAA;AAAA,EACT;AAEJ,CAAC;AAED,SAAS,cAAc;","names":[]}