@bigbinary/neetoui 7.0.2 → 7.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/ColorPicker.js +1 -1198
  2. package/dist/ColorPicker.js.map +1 -1
  3. package/dist/DatePicker.js +81 -297
  4. package/dist/DatePicker.js.map +1 -1
  5. package/dist/DateTimePicker.js +75 -159
  6. package/dist/DateTimePicker.js.map +1 -1
  7. package/dist/HeaderCellMenu-810f0594.js +134 -0
  8. package/dist/HeaderCellMenu-810f0594.js.map +1 -0
  9. package/dist/Table.js +4 -128
  10. package/dist/Table.js.map +1 -1
  11. package/dist/Textarea-e836f83e.js +163 -0
  12. package/dist/Textarea-e836f83e.js.map +1 -0
  13. package/dist/Textarea.js +10 -146
  14. package/dist/Textarea.js.map +1 -1
  15. package/dist/TimePicker.js +80 -174
  16. package/dist/TimePicker.js.map +1 -1
  17. package/dist/cjs/ColorPicker.js +4 -1201
  18. package/dist/cjs/ColorPicker.js.map +1 -1
  19. package/dist/cjs/DatePicker.js +82 -305
  20. package/dist/cjs/DatePicker.js.map +1 -1
  21. package/dist/cjs/DateTimePicker.js +76 -166
  22. package/dist/cjs/DateTimePicker.js.map +1 -1
  23. package/dist/cjs/HeaderCellMenu-1b56b4e1.js +142 -0
  24. package/dist/cjs/HeaderCellMenu-1b56b4e1.js.map +1 -0
  25. package/dist/cjs/Table.js +10 -134
  26. package/dist/cjs/Table.js.map +1 -1
  27. package/dist/cjs/Textarea-2711696e.js +175 -0
  28. package/dist/cjs/Textarea-2711696e.js.map +1 -0
  29. package/dist/cjs/Textarea.js +11 -152
  30. package/dist/cjs/Textarea.js.map +1 -1
  31. package/dist/cjs/TimePicker.js +81 -181
  32. package/dist/cjs/TimePicker.js.map +1 -1
  33. package/dist/cjs/formik/Textarea.js +2 -3
  34. package/dist/cjs/formik/Textarea.js.map +1 -1
  35. package/dist/cjs/formik/index.js +1 -2
  36. package/dist/cjs/formik/index.js.map +1 -1
  37. package/dist/cjs/index-0d54eb09.js +646 -0
  38. package/dist/cjs/index-0d54eb09.js.map +1 -0
  39. package/dist/cjs/index.js +24 -25
  40. package/dist/cjs/index.js.map +1 -1
  41. package/dist/cjs/tinycolor-b1e9a7b2.js +1202 -0
  42. package/dist/cjs/tinycolor-b1e9a7b2.js.map +1 -0
  43. package/dist/formik/Textarea.js +1 -2
  44. package/dist/formik/Textarea.js.map +1 -1
  45. package/dist/formik/index.js +1 -2
  46. package/dist/formik/index.js.map +1 -1
  47. package/dist/index-4a662f27.js +629 -0
  48. package/dist/index-4a662f27.js.map +1 -0
  49. package/dist/index.js +20 -21
  50. package/dist/index.js.map +1 -1
  51. package/dist/tinycolor-282c618c.js +1200 -0
  52. package/dist/tinycolor-282c618c.js.map +1 -0
  53. package/package.json +1 -1
  54. package/types/DatePicker.d.ts +1 -0
  55. package/types/TimePicker.d.ts +1 -0
  56. package/dist/cjs/useSyncedRef-9c3dcd03.js +0 -19
  57. package/dist/cjs/useSyncedRef-9c3dcd03.js.map +0 -1
  58. package/dist/useSyncedRef-226a3dbc.js +0 -17
  59. package/dist/useSyncedRef-226a3dbc.js.map +0 -1
@@ -0,0 +1,175 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _extends = require('@babel/runtime/helpers/extends');
5
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
+ var React = require('react');
8
+ var classnames = require('classnames');
9
+ var useId = require('./useId-4e3deb5c.js');
10
+ require('react-router-dom');
11
+ require('@bigbinary/neeto-hotkeys');
12
+ require('./overlayManager.js');
13
+ var index = require('./index-f2e36d91.js');
14
+ require('qs');
15
+ var Label = require('./Label.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
21
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
22
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
23
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
25
+
26
+ var useSyncedRef = function useSyncedRef(ref) {
27
+ var innerRef = React.useRef();
28
+ React.useEffect(function () {
29
+ if (!ref) return;
30
+ if (typeof ref === "function") {
31
+ ref(innerRef.current);
32
+ } else {
33
+ ref.current = innerRef.current;
34
+ }
35
+ });
36
+ return innerRef;
37
+ };
38
+
39
+ var _excluded = ["size", "resize", "suffix", "prefix", "disabled", "required", "nakedTextarea", "helpText", "error", "label", "className", "maxLength", "unlimitedChars", "labelProps", "onBlur", "disableTrimOnBlur"];
40
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
42
+ var SIZES = {
43
+ small: "small",
44
+ medium: "medium",
45
+ large: "large"
46
+ };
47
+ var ROWS = {
48
+ small: 1,
49
+ medium: 3,
50
+ large: 4
51
+ };
52
+ var RESIZE = {
53
+ vertical: "vertical",
54
+ none: "none"
55
+ };
56
+ var Textarea = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
57
+ var _ref2, _otherProps$value, _otherProps$onChange;
58
+ var _ref$size = _ref.size,
59
+ size = _ref$size === void 0 ? SIZES.medium : _ref$size,
60
+ _ref$resize = _ref.resize,
61
+ resize = _ref$resize === void 0 ? RESIZE.vertical : _ref$resize,
62
+ _ref$suffix = _ref.suffix,
63
+ suffix = _ref$suffix === void 0 ? null : _ref$suffix,
64
+ _ref$prefix = _ref.prefix,
65
+ prefix = _ref$prefix === void 0 ? null : _ref$prefix,
66
+ _ref$disabled = _ref.disabled,
67
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
68
+ _ref$required = _ref.required,
69
+ required = _ref$required === void 0 ? false : _ref$required,
70
+ _ref$nakedTextarea = _ref.nakedTextarea,
71
+ nakedTextarea = _ref$nakedTextarea === void 0 ? false : _ref$nakedTextarea,
72
+ _ref$helpText = _ref.helpText,
73
+ helpText = _ref$helpText === void 0 ? "" : _ref$helpText,
74
+ _ref$error = _ref.error,
75
+ error = _ref$error === void 0 ? "" : _ref$error,
76
+ _ref$label = _ref.label,
77
+ label = _ref$label === void 0 ? "" : _ref$label,
78
+ _ref$className = _ref.className,
79
+ className = _ref$className === void 0 ? "" : _ref$className,
80
+ maxLength = _ref.maxLength,
81
+ _ref$unlimitedChars = _ref.unlimitedChars,
82
+ unlimitedChars = _ref$unlimitedChars === void 0 ? false : _ref$unlimitedChars,
83
+ labelProps = _ref.labelProps,
84
+ onBlur = _ref.onBlur,
85
+ _ref$disableTrimOnBlu = _ref.disableTrimOnBlur,
86
+ disableTrimOnBlur = _ref$disableTrimOnBlu === void 0 ? false : _ref$disableTrimOnBlu,
87
+ otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
88
+ var _useState = React.useState(""),
89
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
90
+ valueInternal = _useState2[0],
91
+ setValueInternal = _useState2[1];
92
+ var value = (_ref2 = (_otherProps$value = otherProps.value) !== null && _otherProps$value !== void 0 ? _otherProps$value : valueInternal) !== null && _ref2 !== void 0 ? _ref2 : "";
93
+ var id = useId.useId(otherProps.id);
94
+ var errorId = "error_".concat(id);
95
+ var helpTextId = "helpText_".concat(id);
96
+ var textareaRef = useSyncedRef(ref);
97
+ var valueLength = (value === null || value === void 0 ? void 0 : value.toString().length) || 0;
98
+ var isCharacterLimitVisible = valueLength >= maxLength * 0.85;
99
+ var maxLengthError = unlimitedChars && valueLength > maxLength;
100
+ var onChangeInternal = function onChangeInternal(e) {
101
+ return setValueInternal(e.target.value);
102
+ };
103
+ var onChange = (_otherProps$onChange = otherProps.onChange) !== null && _otherProps$onChange !== void 0 ? _otherProps$onChange : onChangeInternal;
104
+ var isMaxLengthPresent = !!maxLength || maxLength === 0;
105
+ React.useEffect(function () {
106
+ textareaRef.current.style.minHeight = "22px";
107
+ textareaRef.current.style.height = "auto";
108
+ var scrollHeight = textareaRef.current.scrollHeight;
109
+ textareaRef.current.style.height = "".concat(scrollHeight + 1, "px");
110
+ }, [value]);
111
+ var handleTrimmedChangeOnBlur = function handleTrimmedChangeOnBlur(e) {
112
+ if (disableTrimOnBlur || typeof value !== "string") return;
113
+ var trimmedValue = value.trim();
114
+ if (value === trimmedValue) return;
115
+ e.target.value = trimmedValue;
116
+ onChange(e);
117
+ };
118
+ var handleOnBlur = function handleOnBlur(e) {
119
+ handleTrimmedChangeOnBlur(e);
120
+ onBlur === null || onBlur === void 0 || onBlur(e);
121
+ };
122
+ return /*#__PURE__*/React__default["default"].createElement("div", {
123
+ className: classnames__default["default"](["neeto-ui-input__wrapper", className])
124
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
125
+ className: "neeto-ui-input__label-wrapper"
126
+ }, label && /*#__PURE__*/React__default["default"].createElement(Label, _extends__default["default"]({
127
+ required: required,
128
+ "data-cy": "".concat(index.hyphenize(label), "-label"),
129
+ htmlFor: id
130
+ }, labelProps), label), isCharacterLimitVisible && /*#__PURE__*/React__default["default"].createElement("p", {
131
+ className: classnames__default["default"]("neeto-ui-input__max-length", {
132
+ "neeto-ui-input__max-length--error": maxLengthError
133
+ })
134
+ }, valueLength, "/", maxLength)), /*#__PURE__*/React__default["default"].createElement("div", {
135
+ "data-cy": "".concat(index.hyphenize(label), "-text-input"),
136
+ className: classnames__default["default"]("neeto-ui-input", "neeto-ui-input--textarea", {
137
+ "neeto-ui-input--error": !!error,
138
+ "neeto-ui-input--disabled": !!disabled,
139
+ "neeto-ui-input--naked": !!nakedTextarea,
140
+ "neeto-ui-input--small": size === SIZES.small,
141
+ "neeto-ui-input--medium": size === SIZES.medium,
142
+ "neeto-ui-input--large": size === SIZES.large,
143
+ "neeto-ui-input--resize--vertical": resize === RESIZE.vertical,
144
+ "neeto-ui-input--resize--none": resize === RESIZE.none
145
+ })
146
+ }, prefix && /*#__PURE__*/React__default["default"].createElement("div", {
147
+ className: "neeto-ui-input__prefix"
148
+ }, prefix), /*#__PURE__*/React__default["default"].createElement("textarea", _extends__default["default"]({
149
+ ref: textareaRef,
150
+ rows: ROWS[size]
151
+ }, _objectSpread(_objectSpread(_objectSpread({
152
+ disabled: disabled
153
+ }, isMaxLengthPresent && !unlimitedChars && {
154
+ maxLength: maxLength
155
+ }), otherProps), {}, {
156
+ onChange: onChange,
157
+ value: value
158
+ }), {
159
+ onBlur: handleOnBlur
160
+ })), suffix && /*#__PURE__*/React__default["default"].createElement("div", {
161
+ className: "neeto-ui-input__suffix"
162
+ }, suffix)), !!error && /*#__PURE__*/React__default["default"].createElement("p", {
163
+ className: "neeto-ui-input__error",
164
+ "data-cy": "".concat(index.hyphenize(label), "-input-error"),
165
+ id: errorId
166
+ }, error), helpText && /*#__PURE__*/React__default["default"].createElement("p", {
167
+ className: "neeto-ui-input__help-text",
168
+ id: helpTextId
169
+ }, helpText));
170
+ });
171
+ Textarea.displayName = "Textarea";
172
+
173
+ exports.Textarea = Textarea;
174
+ exports.useSyncedRef = useSyncedRef;
175
+ //# sourceMappingURL=Textarea-2711696e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea-2711696e.js","sources":["../../src/hooks/useSyncedRef.js","../../src/components/Textarea.jsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nconst useSyncedRef = ref => {\n const innerRef = useRef();\n\n useEffect(() => {\n if (!ref) return;\n\n if (typeof ref === \"function\") {\n ref(innerRef.current);\n } else {\n ref.current = innerRef.current;\n }\n });\n\n return innerRef;\n};\n\nexport default useSyncedRef;\n","import React, { useState, useEffect, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { useSyncedRef, useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport Label from \"./Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst ROWS = { small: 1, medium: 3, large: 4 };\n\nconst RESIZE = { vertical: \"vertical\", none: \"none\" };\n\nconst Textarea = forwardRef(\n (\n {\n size = SIZES.medium,\n resize = RESIZE.vertical,\n suffix = null,\n prefix = null,\n disabled = false,\n required = false,\n nakedTextarea = false,\n helpText = \"\",\n error = \"\",\n label = \"\",\n className = \"\",\n maxLength,\n unlimitedChars = false,\n labelProps,\n onBlur,\n disableTrimOnBlur = false,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(\"\");\n\n const value = otherProps.value ?? valueInternal ?? \"\";\n\n const id = useId(otherProps.id);\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const textareaRef = useSyncedRef(ref);\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChangeInternal = e => setValueInternal(e.target.value);\n const onChange = otherProps.onChange ?? onChangeInternal;\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n useEffect(() => {\n textareaRef.current.style.minHeight = \"22px\";\n textareaRef.current.style.height = \"auto\";\n const scrollHeight = textareaRef.current.scrollHeight;\n textareaRef.current.style.height = `${scrollHeight + 1}px`;\n }, [value]);\n\n const handleTrimmedChangeOnBlur = e => {\n if (disableTrimOnBlur || typeof value !== \"string\") return;\n\n const trimmedValue = value.trim();\n if (value === trimmedValue) return;\n\n e.target.value = trimmedValue;\n onChange(e);\n };\n\n const handleOnBlur = e => {\n handleTrimmedChangeOnBlur(e);\n onBlur?.(e);\n };\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${hyphenize(label)}-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${hyphenize(label)}-text-input`}\n className={classnames(\"neeto-ui-input\", \"neeto-ui-input--textarea\", {\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--naked\": !!nakedTextarea,\n \"neeto-ui-input--small\": size === SIZES.small,\n \"neeto-ui-input--medium\": size === SIZES.medium,\n \"neeto-ui-input--large\": size === SIZES.large,\n \"neeto-ui-input--resize--vertical\": resize === RESIZE.vertical,\n \"neeto-ui-input--resize--none\": resize === RESIZE.none,\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <textarea\n ref={textareaRef}\n rows={ROWS[size]}\n {...{\n disabled,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n onChange,\n value,\n }}\n onBlur={handleOnBlur}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p className=\"neeto-ui-input__help-text\" id={helpTextId}>\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nTextarea.propTypes = {\n /**\n * To specify the row height of the Textarea.\n */\n rows: PropTypes.number,\n /**\n * To specify the size of Textarea.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the label shown above the Textarea.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To provide the value of the Textarea.\n */\n value: PropTypes.string,\n /**\n * To provide the error message shown below the Textarea.\n */\n error: PropTypes.string,\n /**\n * To provide the placeholder text for the Textarea.\n */\n placeholder: PropTypes.string,\n /**\n * To specify whether the Textarea is required.\n */\n required: PropTypes.bool,\n /**\n * To specify whether the Textarea is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To provide additional classnames to the Textarea container.\n */\n className: PropTypes.string,\n /**\n * The resize property sets whether the Textarea is resizable.\n */\n resize: PropTypes.oneOf(Object.values(RESIZE)),\n /**\n * To specify the text that appears below the Textarea.\n */\n helpText: PropTypes.string,\n /**\n * To create a Textarea without any borders.\n */\n nakedTextarea: PropTypes.bool,\n /**\n * To specify a maximum character limit to the Textarea. Charater limit is visible only if the Textarea value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the content to be added at the end of the Textarea.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Textarea.\n */\n prefix: PropTypes.node,\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Textarea;\n"],"names":["useSyncedRef","ref","innerRef","useRef","useEffect","current","SIZES","small","medium","large","ROWS","RESIZE","vertical","none","Textarea","forwardRef","_ref","_ref2","_otherProps$value","_otherProps$onChange","_ref$size","size","_ref$resize","resize","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$required","required","_ref$nakedTextarea","nakedTextarea","_ref$helpText","helpText","_ref$error","error","_ref$label","label","_ref$className","className","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","onBlur","_ref$disableTrimOnBlu","disableTrimOnBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","valueInternal","setValueInternal","value","id","useId","errorId","concat","helpTextId","textareaRef","valueLength","toString","length","isCharacterLimitVisible","maxLengthError","onChangeInternal","e","target","onChange","isMaxLengthPresent","style","minHeight","height","scrollHeight","handleTrimmedChangeOnBlur","trimmedValue","trim","handleOnBlur","React","createElement","classnames","Label","_extends","hyphenize","htmlFor","rows","_objectSpread","displayName"],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
- var _extends = require('@babel/runtime/helpers/extends');
5
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
- var React = require('react');
8
- var classnames = require('classnames');
9
- var useId = require('./useId-4e3deb5c.js');
3
+ require('@babel/runtime/helpers/defineProperty');
4
+ require('@babel/runtime/helpers/extends');
5
+ require('@babel/runtime/helpers/slicedToArray');
6
+ require('@babel/runtime/helpers/objectWithoutProperties');
7
+ require('react');
8
+ require('classnames');
9
+ require('./useId-4e3deb5c.js');
10
10
  require('react-router-dom');
11
11
  require('@bigbinary/neeto-hotkeys');
12
12
  require('./overlayManager.js');
13
- var index = require('./index-f2e36d91.js');
13
+ require('./index-f2e36d91.js');
14
14
  require('qs');
15
- var useSyncedRef = require('./useSyncedRef-9c3dcd03.js');
16
- var Label = require('./Label.js');
15
+ var Textarea = require('./Textarea-2711696e.js');
16
+ require('./Label.js');
17
17
  require('@babel/runtime/helpers/classCallCheck');
18
18
  require('@babel/runtime/helpers/createClass');
19
19
  require('dayjs');
@@ -32,148 +32,7 @@ require('tippy.js');
32
32
  require('./Popover.js');
33
33
  require('./Typography.js');
34
34
 
35
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
36
35
 
37
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
38
- var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
39
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
40
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
41
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
42
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
43
36
 
44
- var _excluded = ["size", "resize", "suffix", "prefix", "disabled", "required", "nakedTextarea", "helpText", "error", "label", "className", "maxLength", "unlimitedChars", "labelProps", "onBlur", "disableTrimOnBlur"];
45
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
46
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
- var SIZES = {
48
- small: "small",
49
- medium: "medium",
50
- large: "large"
51
- };
52
- var ROWS = {
53
- small: 1,
54
- medium: 3,
55
- large: 4
56
- };
57
- var RESIZE = {
58
- vertical: "vertical",
59
- none: "none"
60
- };
61
- var Textarea = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
62
- var _ref2, _otherProps$value, _otherProps$onChange;
63
- var _ref$size = _ref.size,
64
- size = _ref$size === void 0 ? SIZES.medium : _ref$size,
65
- _ref$resize = _ref.resize,
66
- resize = _ref$resize === void 0 ? RESIZE.vertical : _ref$resize,
67
- _ref$suffix = _ref.suffix,
68
- suffix = _ref$suffix === void 0 ? null : _ref$suffix,
69
- _ref$prefix = _ref.prefix,
70
- prefix = _ref$prefix === void 0 ? null : _ref$prefix,
71
- _ref$disabled = _ref.disabled,
72
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
73
- _ref$required = _ref.required,
74
- required = _ref$required === void 0 ? false : _ref$required,
75
- _ref$nakedTextarea = _ref.nakedTextarea,
76
- nakedTextarea = _ref$nakedTextarea === void 0 ? false : _ref$nakedTextarea,
77
- _ref$helpText = _ref.helpText,
78
- helpText = _ref$helpText === void 0 ? "" : _ref$helpText,
79
- _ref$error = _ref.error,
80
- error = _ref$error === void 0 ? "" : _ref$error,
81
- _ref$label = _ref.label,
82
- label = _ref$label === void 0 ? "" : _ref$label,
83
- _ref$className = _ref.className,
84
- className = _ref$className === void 0 ? "" : _ref$className,
85
- maxLength = _ref.maxLength,
86
- _ref$unlimitedChars = _ref.unlimitedChars,
87
- unlimitedChars = _ref$unlimitedChars === void 0 ? false : _ref$unlimitedChars,
88
- labelProps = _ref.labelProps,
89
- onBlur = _ref.onBlur,
90
- _ref$disableTrimOnBlu = _ref.disableTrimOnBlur,
91
- disableTrimOnBlur = _ref$disableTrimOnBlu === void 0 ? false : _ref$disableTrimOnBlu,
92
- otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
93
- var _useState = React.useState(""),
94
- _useState2 = _slicedToArray__default["default"](_useState, 2),
95
- valueInternal = _useState2[0],
96
- setValueInternal = _useState2[1];
97
- var value = (_ref2 = (_otherProps$value = otherProps.value) !== null && _otherProps$value !== void 0 ? _otherProps$value : valueInternal) !== null && _ref2 !== void 0 ? _ref2 : "";
98
- var id = useId.useId(otherProps.id);
99
- var errorId = "error_".concat(id);
100
- var helpTextId = "helpText_".concat(id);
101
- var textareaRef = useSyncedRef.useSyncedRef(ref);
102
- var valueLength = (value === null || value === void 0 ? void 0 : value.toString().length) || 0;
103
- var isCharacterLimitVisible = valueLength >= maxLength * 0.85;
104
- var maxLengthError = unlimitedChars && valueLength > maxLength;
105
- var onChangeInternal = function onChangeInternal(e) {
106
- return setValueInternal(e.target.value);
107
- };
108
- var onChange = (_otherProps$onChange = otherProps.onChange) !== null && _otherProps$onChange !== void 0 ? _otherProps$onChange : onChangeInternal;
109
- var isMaxLengthPresent = !!maxLength || maxLength === 0;
110
- React.useEffect(function () {
111
- textareaRef.current.style.minHeight = "22px";
112
- textareaRef.current.style.height = "auto";
113
- var scrollHeight = textareaRef.current.scrollHeight;
114
- textareaRef.current.style.height = "".concat(scrollHeight + 1, "px");
115
- }, [value]);
116
- var handleTrimmedChangeOnBlur = function handleTrimmedChangeOnBlur(e) {
117
- if (disableTrimOnBlur || typeof value !== "string") return;
118
- var trimmedValue = value.trim();
119
- if (value === trimmedValue) return;
120
- e.target.value = trimmedValue;
121
- onChange(e);
122
- };
123
- var handleOnBlur = function handleOnBlur(e) {
124
- handleTrimmedChangeOnBlur(e);
125
- onBlur === null || onBlur === void 0 || onBlur(e);
126
- };
127
- return /*#__PURE__*/React__default["default"].createElement("div", {
128
- className: classnames__default["default"](["neeto-ui-input__wrapper", className])
129
- }, /*#__PURE__*/React__default["default"].createElement("div", {
130
- className: "neeto-ui-input__label-wrapper"
131
- }, label && /*#__PURE__*/React__default["default"].createElement(Label, _extends__default["default"]({
132
- required: required,
133
- "data-cy": "".concat(index.hyphenize(label), "-label"),
134
- htmlFor: id
135
- }, labelProps), label), isCharacterLimitVisible && /*#__PURE__*/React__default["default"].createElement("p", {
136
- className: classnames__default["default"]("neeto-ui-input__max-length", {
137
- "neeto-ui-input__max-length--error": maxLengthError
138
- })
139
- }, valueLength, "/", maxLength)), /*#__PURE__*/React__default["default"].createElement("div", {
140
- "data-cy": "".concat(index.hyphenize(label), "-text-input"),
141
- className: classnames__default["default"]("neeto-ui-input", "neeto-ui-input--textarea", {
142
- "neeto-ui-input--error": !!error,
143
- "neeto-ui-input--disabled": !!disabled,
144
- "neeto-ui-input--naked": !!nakedTextarea,
145
- "neeto-ui-input--small": size === SIZES.small,
146
- "neeto-ui-input--medium": size === SIZES.medium,
147
- "neeto-ui-input--large": size === SIZES.large,
148
- "neeto-ui-input--resize--vertical": resize === RESIZE.vertical,
149
- "neeto-ui-input--resize--none": resize === RESIZE.none
150
- })
151
- }, prefix && /*#__PURE__*/React__default["default"].createElement("div", {
152
- className: "neeto-ui-input__prefix"
153
- }, prefix), /*#__PURE__*/React__default["default"].createElement("textarea", _extends__default["default"]({
154
- ref: textareaRef,
155
- rows: ROWS[size]
156
- }, _objectSpread(_objectSpread(_objectSpread({
157
- disabled: disabled
158
- }, isMaxLengthPresent && !unlimitedChars && {
159
- maxLength: maxLength
160
- }), otherProps), {}, {
161
- onChange: onChange,
162
- value: value
163
- }), {
164
- onBlur: handleOnBlur
165
- })), suffix && /*#__PURE__*/React__default["default"].createElement("div", {
166
- className: "neeto-ui-input__suffix"
167
- }, suffix)), !!error && /*#__PURE__*/React__default["default"].createElement("p", {
168
- className: "neeto-ui-input__error",
169
- "data-cy": "".concat(index.hyphenize(label), "-input-error"),
170
- id: errorId
171
- }, error), helpText && /*#__PURE__*/React__default["default"].createElement("p", {
172
- className: "neeto-ui-input__help-text",
173
- id: helpTextId
174
- }, helpText));
175
- });
176
- Textarea.displayName = "Textarea";
177
-
178
- module.exports = Textarea;
37
+ module.exports = Textarea.Textarea;
179
38
  //# sourceMappingURL=Textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sources":["../../src/components/Textarea.jsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { useSyncedRef, useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport Label from \"./Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst ROWS = { small: 1, medium: 3, large: 4 };\n\nconst RESIZE = { vertical: \"vertical\", none: \"none\" };\n\nconst Textarea = forwardRef(\n (\n {\n size = SIZES.medium,\n resize = RESIZE.vertical,\n suffix = null,\n prefix = null,\n disabled = false,\n required = false,\n nakedTextarea = false,\n helpText = \"\",\n error = \"\",\n label = \"\",\n className = \"\",\n maxLength,\n unlimitedChars = false,\n labelProps,\n onBlur,\n disableTrimOnBlur = false,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(\"\");\n\n const value = otherProps.value ?? valueInternal ?? \"\";\n\n const id = useId(otherProps.id);\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const textareaRef = useSyncedRef(ref);\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChangeInternal = e => setValueInternal(e.target.value);\n const onChange = otherProps.onChange ?? onChangeInternal;\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n useEffect(() => {\n textareaRef.current.style.minHeight = \"22px\";\n textareaRef.current.style.height = \"auto\";\n const scrollHeight = textareaRef.current.scrollHeight;\n textareaRef.current.style.height = `${scrollHeight + 1}px`;\n }, [value]);\n\n const handleTrimmedChangeOnBlur = e => {\n if (disableTrimOnBlur || typeof value !== \"string\") return;\n\n const trimmedValue = value.trim();\n if (value === trimmedValue) return;\n\n e.target.value = trimmedValue;\n onChange(e);\n };\n\n const handleOnBlur = e => {\n handleTrimmedChangeOnBlur(e);\n onBlur?.(e);\n };\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${hyphenize(label)}-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${hyphenize(label)}-text-input`}\n className={classnames(\"neeto-ui-input\", \"neeto-ui-input--textarea\", {\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--naked\": !!nakedTextarea,\n \"neeto-ui-input--small\": size === SIZES.small,\n \"neeto-ui-input--medium\": size === SIZES.medium,\n \"neeto-ui-input--large\": size === SIZES.large,\n \"neeto-ui-input--resize--vertical\": resize === RESIZE.vertical,\n \"neeto-ui-input--resize--none\": resize === RESIZE.none,\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <textarea\n ref={textareaRef}\n rows={ROWS[size]}\n {...{\n disabled,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n onChange,\n value,\n }}\n onBlur={handleOnBlur}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p className=\"neeto-ui-input__help-text\" id={helpTextId}>\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nTextarea.propTypes = {\n /**\n * To specify the row height of the Textarea.\n */\n rows: PropTypes.number,\n /**\n * To specify the size of Textarea.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the label shown above the Textarea.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To provide the value of the Textarea.\n */\n value: PropTypes.string,\n /**\n * To provide the error message shown below the Textarea.\n */\n error: PropTypes.string,\n /**\n * To provide the placeholder text for the Textarea.\n */\n placeholder: PropTypes.string,\n /**\n * To specify whether the Textarea is required.\n */\n required: PropTypes.bool,\n /**\n * To specify whether the Textarea is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To provide additional classnames to the Textarea container.\n */\n className: PropTypes.string,\n /**\n * The resize property sets whether the Textarea is resizable.\n */\n resize: PropTypes.oneOf(Object.values(RESIZE)),\n /**\n * To specify the text that appears below the Textarea.\n */\n helpText: PropTypes.string,\n /**\n * To create a Textarea without any borders.\n */\n nakedTextarea: PropTypes.bool,\n /**\n * To specify a maximum character limit to the Textarea. Charater limit is visible only if the Textarea value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the content to be added at the end of the Textarea.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Textarea.\n */\n prefix: PropTypes.node,\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Textarea;\n"],"names":["SIZES","small","medium","large","ROWS","RESIZE","vertical","none","Textarea","forwardRef","_ref","ref","_ref2","_otherProps$value","_otherProps$onChange","_ref$size","size","_ref$resize","resize","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$required","required","_ref$nakedTextarea","nakedTextarea","_ref$helpText","helpText","_ref$error","error","_ref$label","label","_ref$className","className","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","onBlur","_ref$disableTrimOnBlu","disableTrimOnBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","valueInternal","setValueInternal","value","id","useId","errorId","concat","helpTextId","textareaRef","useSyncedRef","valueLength","toString","length","isCharacterLimitVisible","maxLengthError","onChangeInternal","e","target","onChange","isMaxLengthPresent","useEffect","current","style","minHeight","height","scrollHeight","handleTrimmedChangeOnBlur","trimmedValue","trim","handleOnBlur","React","createElement","classnames","Label","_extends","hyphenize","htmlFor","rows","_objectSpread","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Textarea.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}