UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

167 lines (160 loc) 4.16 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var reactCompilerRuntime = require('react-compiler-runtime'); var React = require('react'); var TextInputWrapper = require('../internal/components/TextInputWrapper.js'); var TextArea_module = require('./TextArea.module.css.js'); var jsxRuntime = require('react/jsx-runtime'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefault(React); const DEFAULT_TEXTAREA_ROWS = 7; const DEFAULT_TEXTAREA_COLS = 30; const DEFAULT_TEXTAREA_RESIZE = 'both'; /** * An accessible, native textarea component that supports validation states. * This component accepts all native HTML <textarea> attributes as props. */ const Textarea = /*#__PURE__*/React__default.default.forwardRef((t0, ref) => { const $ = reactCompilerRuntime.c(39); let block; let className; let contrast; let disabled; let maxHeight; let minHeight; let required; let rest; let style; let sxProp; let t1; let t2; let t3; let validationStatus; let value; if ($[0] !== t0) { ({ value, disabled, sx: sxProp, required, validationStatus, rows: t1, cols: t2, resize: t3, block, contrast, className, minHeight, maxHeight, style, ...rest } = t0); $[0] = t0; $[1] = block; $[2] = className; $[3] = contrast; $[4] = disabled; $[5] = maxHeight; $[6] = minHeight; $[7] = required; $[8] = rest; $[9] = style; $[10] = sxProp; $[11] = t1; $[12] = t2; $[13] = t3; $[14] = validationStatus; $[15] = value; } else { block = $[1]; className = $[2]; contrast = $[3]; disabled = $[4]; maxHeight = $[5]; minHeight = $[6]; required = $[7]; rest = $[8]; style = $[9]; sxProp = $[10]; t1 = $[11]; t2 = $[12]; t3 = $[13]; validationStatus = $[14]; value = $[15]; } const rows = t1 === undefined ? DEFAULT_TEXTAREA_ROWS : t1; const cols = t2 === undefined ? DEFAULT_TEXTAREA_COLS : t2; const resize = t3 === undefined ? DEFAULT_TEXTAREA_RESIZE : t3; const t4 = validationStatus === "error" ? "true" : "false"; let t5; if ($[16] !== maxHeight || $[17] !== minHeight || $[18] !== style) { t5 = { minHeight, maxHeight, ...style }; $[16] = maxHeight; $[17] = minHeight; $[18] = style; $[19] = t5; } else { t5 = $[19]; } let t6; if ($[20] !== cols || $[21] !== disabled || $[22] !== ref || $[23] !== required || $[24] !== resize || $[25] !== rest || $[26] !== rows || $[27] !== t4 || $[28] !== t5 || $[29] !== value) { t6 = /*#__PURE__*/jsxRuntime.jsx("textarea", { value: value, "data-resize": resize, "aria-required": required, "aria-invalid": t4, ref: ref, disabled: disabled, rows: rows, cols: cols, className: TextArea_module.TextArea, style: t5, ...rest }); $[20] = cols; $[21] = disabled; $[22] = ref; $[23] = required; $[24] = resize; $[25] = rest; $[26] = rows; $[27] = t4; $[28] = t5; $[29] = value; $[30] = t6; } else { t6 = $[30]; } let t7; if ($[31] !== block || $[32] !== className || $[33] !== contrast || $[34] !== disabled || $[35] !== sxProp || $[36] !== t6 || $[37] !== validationStatus) { t7 = /*#__PURE__*/jsxRuntime.jsx(TextInputWrapper.TextInputBaseWrapper, { sx: sxProp, validationStatus: validationStatus, disabled: disabled, block: block, contrast: contrast, className: className, children: t6 }); $[31] = block; $[32] = className; $[33] = contrast; $[34] = disabled; $[35] = sxProp; $[36] = t6; $[37] = validationStatus; $[38] = t7; } else { t7 = $[38]; } return t7; }); Textarea.displayName = 'Textarea'; exports.DEFAULT_TEXTAREA_COLS = DEFAULT_TEXTAREA_COLS; exports.DEFAULT_TEXTAREA_RESIZE = DEFAULT_TEXTAREA_RESIZE; exports.DEFAULT_TEXTAREA_ROWS = DEFAULT_TEXTAREA_ROWS; exports.default = Textarea;