@primer/react
Version:
An implementation of GitHub's Primer Design System using React
167 lines (160 loc) • 4.16 kB
JavaScript
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;
;