{"version":3,"file":"Textarea.cjs","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import TextareaAutosize from 'react-textarea-autosize';\nimport {\n  BoxProps,\n  ElementProps,\n  factory,\n  Factory,\n  getEnv,\n  StylesApiProps,\n  useProps,\n} from '../../core';\nimport { __BaseInputProps, __InputStylesNames } from '../Input';\nimport { InputBase } from '../InputBase';\n\nexport interface TextareaProps\n  extends BoxProps,\n    __BaseInputProps,\n    StylesApiProps<TextareaFactory>,\n    ElementProps<'textarea', 'size'> {\n  __staticSelector?: string;\n\n  /** Determines whether the textarea height should grow with its content, `false` by default */\n  autosize?: boolean;\n\n  /** Maximum rows for autosize textarea to grow, ignored if `autosize` prop is not set */\n  maxRows?: number;\n\n  /** Minimum rows of autosize textarea, ignored if `autosize` prop is not set */\n  minRows?: number;\n\n  /** Controls `resize` CSS property, `'none'` by default */\n  resize?: React.CSSProperties['resize'];\n}\n\nexport type TextareaFactory = Factory<{\n  props: TextareaProps;\n  ref: HTMLTextAreaElement;\n  stylesNames: __InputStylesNames;\n}>;\n\nconst defaultProps: Partial<TextareaProps> = {};\n\nexport const Textarea = factory<TextareaFactory>((props, ref) => {\n  const { autosize, maxRows, minRows, __staticSelector, resize, ...others } = useProps(\n    'Textarea',\n    defaultProps,\n    props\n  );\n\n  const shouldAutosize = autosize && getEnv() !== 'test';\n  const autosizeProps = shouldAutosize ? { maxRows, minRows } : {};\n\n  return (\n    <InputBase<any>\n      component={shouldAutosize ? TextareaAutosize : 'textarea'}\n      ref={ref}\n      {...others}\n      __staticSelector={__staticSelector || 'Textarea'}\n      multiline\n      data-no-overflow={(autosize && maxRows === undefined) || undefined}\n      __vars={{ '--input-resize': resize }}\n      {...autosizeProps}\n    />\n  );\n});\n\nTextarea.classes = InputBase.classes;\nTextarea.displayName = '@raikou/core/Textarea';\n"],"names":["factory","useProps","getEnv","jsx","InputBase","TextareaAutosize"],"mappings":";;;;;;;;;;;;;;;;;;;AAuCA,MAAM,eAAuC,EAAC;AAEvC,MAAM,QAAW,GAAAA,eAAA,CAAyB,CAAC,KAAA,EAAO,GAAQ,KAAA;AAC/D,EAAM,MAAA,EAAE,UAAU,OAAS,EAAA,OAAA,EAAS,kBAAkB,MAAQ,EAAA,GAAG,QAAW,GAAAC,iBAAA;AAAA,IAC1E,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAM,MAAA,cAAA,GAAiB,QAAY,IAAAC,aAAA,EAAa,KAAA,MAAA;AAChD,EAAA,MAAM,gBAAgB,cAAiB,GAAA,EAAE,OAAS,EAAA,OAAA,KAAY,EAAC;AAE/D,EACE,uBAAAC,cAAA;AAAA,IAACC,mBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,iBAAiBC,iCAAmB,GAAA,UAAA;AAAA,MAC/C,GAAA;AAAA,MACC,GAAG,MAAA;AAAA,MACJ,kBAAkB,gBAAoB,IAAA,UAAA;AAAA,MACtC,SAAS,EAAA,IAAA;AAAA,MACT,kBAAA,EAAmB,QAAY,IAAA,OAAA,KAAY,KAAc,CAAA,IAAA,KAAA,CAAA;AAAA,MACzD,MAAA,EAAQ,EAAE,gBAAA,EAAkB,MAAO,EAAA;AAAA,MAClC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,QAAA,CAAS,UAAUD,mBAAU,CAAA,OAAA;AAC7B,QAAA,CAAS,WAAc,GAAA,uBAAA;;;;"}