{"version":3,"file":"TextArea.mjs","sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef, useRef } from 'react'\n\nimport classNames from 'classnames'\nimport TextareaAutosize from 'react-textarea-autosize'\n\nimport { useIsomorphicLayoutEffect } from '~/src/hooks/useIsomorphicLayoutEffect'\nimport {\n  COMMON_IME_CONTROL_KEYS,\n  useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\n\nimport { useFormFieldProps } from '~/src/components/FormControl'\n\nimport type { TextAreaProps } from './TextArea.types'\n\nimport styles from './TextArea.module.scss'\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n  function TextArea(\n    {\n      style,\n      className,\n      minRows = 6,\n      maxRows = 6,\n      autoFocus = false,\n      value = '',\n      onKeyDown,\n      onKeyUp,\n      ...rest\n    },\n    forwardedRef\n  ) {\n    const { disabled, readOnly, hasError, ...ownProps } =\n      useFormFieldProps(rest)\n\n    const inputRef = useRef<HTMLTextAreaElement | null>(null)\n    const mergedInputRef = useMergeRefs(inputRef, forwardedRef)\n\n    const { handleKeyDown, handleKeyUp } =\n      useKeyboardActionLockerWhileComposing({\n        keysToLock: COMMON_IME_CONTROL_KEYS,\n        onKeyDown,\n        onKeyUp,\n      })\n\n    useIsomorphicLayoutEffect(function initialAutoFocus() {\n      function setSelectionToEnd() {\n        inputRef.current?.setSelectionRange(\n          inputRef.current?.value.length,\n          inputRef.current?.value.length\n        )\n      }\n\n      if (autoFocus) {\n        inputRef.current?.focus()\n        setSelectionToEnd()\n      }\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [])\n\n    return (\n      <TextareaAutosize\n        {...ownProps}\n        style={style}\n        className={classNames(styles.TextArea, className)}\n        ref={mergedInputRef}\n        value={value}\n        disabled={disabled}\n        readOnly={readOnly}\n        maxRows={maxRows}\n        minRows={minRows}\n        data-testid=\"bezier-text-area\"\n        onKeyDown={handleKeyDown}\n        onKeyUp={handleKeyUp}\n      />\n    )\n  }\n)\n"],"names":["TextArea","forwardRef","style","className","minRows","maxRows","autoFocus","value","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","inputRef","useRef","mergedInputRef","useMergeRefs","handleKeyDown","handleKeyUp","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","useIsomorphicLayoutEffect","initialAutoFocus","setSelectionToEnd","_inputRef$current","_inputRef$current2","_inputRef$current3","current","setSelectionRange","length","_inputRef$current4","focus","_jsx","TextareaAutosize","classNames","styles","ref"],"mappings":";;;;;;;;;;MAoBaA,QAAQ,gBAAGC,UAAU,CAChC,SAASD,QAAQA,CACf;EACEE,KAAK;EACLC,SAAS;AACTC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,KAAK,GAAG,EAAE;EACVC,SAAS;EACTC,OAAO;EACP,GAAGC;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC;AAAS,GAAC,GACjDC,iBAAiB,CAACN,IAAI,CAAC;AAEzB,EAAA,MAAMO,QAAQ,GAAGC,MAAM,CAA6B,IAAI,CAAC;AACzD,EAAA,MAAMC,cAAc,GAAGC,YAAY,CAACH,QAAQ,EAAEN,YAAY,CAAC;EAE3D,MAAM;IAAEU,aAAa;AAAEC,IAAAA;GAAa,GAClCC,qCAAqC,CAAC;AACpCC,IAAAA,UAAU,EAAEC,uBAAuB;IACnCjB,SAAS;AACTC,IAAAA;AACF,GAAC,CAAC;AAEJiB,EAAAA,yBAAyB,CAAC,SAASC,gBAAgBA,GAAG;IACpD,SAASC,iBAAiBA,GAAG;AAAA,MAAA,IAAAC,iBAAA,EAAAC,kBAAA,EAAAC,kBAAA;AAC3B,MAAA,CAAAF,iBAAA,GAAAZ,QAAQ,CAACe,OAAO,cAAAH,iBAAA,KAAA,KAAA,CAAA,IAAhBA,iBAAA,CAAkBI,iBAAiB,CAAAH,CAAAA,kBAAA,GACjCb,QAAQ,CAACe,OAAO,MAAAF,IAAAA,IAAAA,kBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAkBvB,KAAK,CAAC2B,MAAM,EAAAH,CAAAA,kBAAA,GAC9Bd,QAAQ,CAACe,OAAO,MAAA,IAAA,IAAAD,kBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAkBxB,KAAK,CAAC2B,MAC1B,CAAC;AACH;AAEA,IAAA,IAAI5B,SAAS,EAAE;AAAA,MAAA,IAAA6B,kBAAA;AACb,MAAA,CAAAA,kBAAA,GAAAlB,QAAQ,CAACe,OAAO,MAAA,IAAA,IAAAG,kBAAA,KAAA,KAAA,CAAA,IAAhBA,kBAAA,CAAkBC,KAAK,EAAE;AACzBR,MAAAA,iBAAiB,EAAE;AACrB;AACA;GACD,EAAE,EAAE,CAAC;EAEN,oBACES,GAAA,CAACC,KAAgB,EAAA;AAAA,IAAA,GACXvB,QAAQ;AACZb,IAAAA,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEoC,UAAU,CAACC,MAAM,CAACxC,QAAQ,EAAEG,SAAS,CAAE;AAClDsC,IAAAA,GAAG,EAAEtB,cAAe;AACpBZ,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBR,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,aAAA,EAAY,kBAAkB;AAC9BI,IAAAA,SAAS,EAAEa,aAAc;AACzBZ,IAAAA,OAAO,EAAEa;AAAY,GACtB,CAAC;AAEN,CACF;;;;"}