@dxc-technology/halstack-react 0.0.0-2b773b3 → 0.0.0-2bca710

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 (290) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1348 -0
  4. package/HalstackContext.js +335 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +108 -134
  8. package/accordion/Accordion.stories.tsx +108 -118
  9. package/accordion/Accordion.test.js +10 -11
  10. package/accordion/types.d.ts +1 -12
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +25 -65
  13. package/accordion-group/AccordionGroup.stories.tsx +93 -66
  14. package/accordion-group/AccordionGroup.test.js +27 -62
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +7 -12
  18. package/alert/Alert.js +9 -10
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +1 -1
  21. package/badge/Badge.d.ts +1 -1
  22. package/badge/Badge.js +5 -3
  23. package/badge/types.d.ts +1 -0
  24. package/bleed/Bleed.js +1 -34
  25. package/bleed/Bleed.stories.tsx +95 -95
  26. package/bleed/types.d.ts +1 -1
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +19 -48
  29. package/box/Box.stories.tsx +38 -51
  30. package/box/Box.test.js +1 -1
  31. package/box/types.d.ts +0 -11
  32. package/bulleted-list/BulletedList.d.ts +7 -0
  33. package/bulleted-list/BulletedList.js +125 -0
  34. package/bulleted-list/BulletedList.stories.tsx +206 -0
  35. package/bulleted-list/types.d.ts +38 -0
  36. package/button/Button.d.ts +1 -1
  37. package/button/Button.js +44 -71
  38. package/button/Button.stories.tsx +159 -8
  39. package/button/Button.test.js +12 -1
  40. package/button/types.d.ts +9 -5
  41. package/card/Card.d.ts +1 -1
  42. package/card/Card.js +37 -58
  43. package/card/Card.stories.tsx +12 -42
  44. package/card/Card.test.js +1 -1
  45. package/card/types.d.ts +1 -6
  46. package/checkbox/Checkbox.d.ts +2 -2
  47. package/checkbox/Checkbox.js +104 -101
  48. package/checkbox/Checkbox.stories.tsx +198 -130
  49. package/checkbox/Checkbox.test.js +94 -17
  50. package/checkbox/types.d.ts +7 -3
  51. package/chip/Chip.js +28 -49
  52. package/chip/Chip.stories.tsx +121 -26
  53. package/chip/Chip.test.js +3 -5
  54. package/chip/types.d.ts +1 -1
  55. package/common/OpenSans.css +68 -80
  56. package/common/coreTokens.d.ts +146 -0
  57. package/common/coreTokens.js +167 -0
  58. package/common/utils.d.ts +1 -0
  59. package/common/utils.js +4 -4
  60. package/common/variables.d.ts +1494 -0
  61. package/common/variables.js +1111 -1111
  62. package/date-input/Calendar.d.ts +4 -0
  63. package/date-input/Calendar.js +258 -0
  64. package/date-input/DateInput.js +140 -238
  65. package/date-input/DateInput.stories.tsx +209 -33
  66. package/date-input/DateInput.test.js +519 -149
  67. package/date-input/DatePicker.d.ts +4 -0
  68. package/date-input/DatePicker.js +146 -0
  69. package/date-input/Icons.d.ts +6 -0
  70. package/date-input/Icons.js +75 -0
  71. package/date-input/YearPicker.d.ts +4 -0
  72. package/date-input/YearPicker.js +126 -0
  73. package/date-input/types.d.ts +55 -0
  74. package/dialog/Dialog.d.ts +1 -1
  75. package/dialog/Dialog.js +68 -103
  76. package/dialog/Dialog.stories.tsx +154 -171
  77. package/dialog/Dialog.test.js +334 -5
  78. package/dialog/types.d.ts +0 -12
  79. package/dropdown/Dropdown.d.ts +1 -1
  80. package/dropdown/Dropdown.js +246 -253
  81. package/dropdown/Dropdown.stories.tsx +245 -56
  82. package/dropdown/Dropdown.test.js +507 -110
  83. package/dropdown/DropdownMenu.d.ts +4 -0
  84. package/dropdown/DropdownMenu.js +74 -0
  85. package/dropdown/DropdownMenuItem.d.ts +4 -0
  86. package/dropdown/DropdownMenuItem.js +79 -0
  87. package/dropdown/types.d.ts +23 -3
  88. package/file-input/FileInput.d.ts +2 -2
  89. package/file-input/FileInput.js +180 -223
  90. package/file-input/FileInput.stories.tsx +122 -11
  91. package/file-input/FileInput.test.js +14 -14
  92. package/file-input/FileItem.d.ts +4 -14
  93. package/file-input/FileItem.js +44 -66
  94. package/file-input/types.d.ts +18 -1
  95. package/flex/Flex.d.ts +4 -0
  96. package/flex/Flex.js +71 -0
  97. package/flex/Flex.stories.tsx +112 -0
  98. package/flex/types.d.ts +97 -0
  99. package/footer/Footer.d.ts +1 -1
  100. package/footer/Footer.js +49 -142
  101. package/footer/Footer.stories.tsx +41 -19
  102. package/footer/Footer.test.js +16 -26
  103. package/footer/Icons.js +1 -1
  104. package/footer/types.d.ts +11 -12
  105. package/grid/Grid.d.ts +7 -0
  106. package/grid/Grid.js +91 -0
  107. package/grid/Grid.stories.tsx +219 -0
  108. package/grid/types.d.ts +115 -0
  109. package/header/Header.d.ts +4 -3
  110. package/header/Header.js +102 -150
  111. package/header/Header.stories.tsx +152 -63
  112. package/header/Header.test.js +20 -4
  113. package/header/Icons.js +2 -2
  114. package/header/types.d.ts +0 -13
  115. package/heading/Heading.js +1 -1
  116. package/heading/Heading.test.js +1 -1
  117. package/image/Image.d.ts +4 -0
  118. package/image/Image.js +85 -0
  119. package/image/Image.stories.tsx +127 -0
  120. package/image/types.d.ts +72 -0
  121. package/inset/Inset.js +1 -34
  122. package/inset/Inset.stories.tsx +37 -36
  123. package/inset/types.d.ts +1 -1
  124. package/layout/ApplicationLayout.d.ts +16 -6
  125. package/layout/ApplicationLayout.js +81 -138
  126. package/layout/ApplicationLayout.stories.tsx +85 -94
  127. package/layout/Icons.d.ts +8 -0
  128. package/layout/Icons.js +52 -45
  129. package/layout/SidenavContext.d.ts +5 -0
  130. package/layout/SidenavContext.js +19 -0
  131. package/layout/types.d.ts +19 -35
  132. package/link/Link.d.ts +3 -2
  133. package/link/Link.js +60 -77
  134. package/link/Link.stories.tsx +155 -53
  135. package/link/Link.test.js +9 -19
  136. package/link/types.d.ts +5 -21
  137. package/main.d.ts +9 -10
  138. package/main.js +55 -57
  139. package/nav-tabs/NavTabs.d.ts +8 -0
  140. package/nav-tabs/NavTabs.js +122 -0
  141. package/nav-tabs/NavTabs.stories.tsx +274 -0
  142. package/nav-tabs/NavTabs.test.js +82 -0
  143. package/nav-tabs/Tab.d.ts +4 -0
  144. package/nav-tabs/Tab.js +146 -0
  145. package/nav-tabs/types.d.ts +52 -0
  146. package/number-input/NumberInput.d.ts +7 -0
  147. package/number-input/NumberInput.js +6 -4
  148. package/number-input/NumberInput.test.js +319 -102
  149. package/number-input/types.d.ts +13 -10
  150. package/package.json +19 -23
  151. package/paginator/Icons.d.ts +5 -0
  152. package/paginator/Icons.js +16 -28
  153. package/paginator/Paginator.js +20 -49
  154. package/paginator/Paginator.stories.tsx +24 -0
  155. package/paginator/Paginator.test.js +91 -39
  156. package/paragraph/Paragraph.d.ts +5 -0
  157. package/paragraph/Paragraph.js +38 -0
  158. package/paragraph/Paragraph.stories.tsx +44 -0
  159. package/password-input/Icons.d.ts +6 -0
  160. package/password-input/Icons.js +39 -0
  161. package/password-input/PasswordInput.js +36 -80
  162. package/password-input/PasswordInput.stories.tsx +1 -0
  163. package/password-input/PasswordInput.test.js +36 -45
  164. package/password-input/types.d.ts +14 -11
  165. package/progress-bar/ProgressBar.js +61 -55
  166. package/progress-bar/ProgressBar.stories.jsx +47 -12
  167. package/progress-bar/ProgressBar.test.js +68 -23
  168. package/quick-nav/QuickNav.js +77 -26
  169. package/quick-nav/QuickNav.stories.tsx +145 -26
  170. package/quick-nav/types.d.ts +4 -4
  171. package/radio-group/Radio.d.ts +1 -1
  172. package/radio-group/Radio.js +46 -31
  173. package/radio-group/RadioGroup.js +37 -36
  174. package/radio-group/RadioGroup.stories.tsx +132 -18
  175. package/radio-group/RadioGroup.test.js +124 -97
  176. package/radio-group/types.d.ts +2 -2
  177. package/resultsetTable/Icons.d.ts +7 -0
  178. package/resultsetTable/Icons.js +51 -0
  179. package/resultsetTable/ResultsetTable.js +49 -108
  180. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  181. package/resultsetTable/ResultsetTable.test.js +61 -42
  182. package/resultsetTable/types.d.ts +1 -1
  183. package/select/Listbox.d.ts +4 -0
  184. package/select/Listbox.js +169 -0
  185. package/select/Option.js +11 -24
  186. package/select/Select.js +148 -214
  187. package/select/Select.stories.tsx +525 -136
  188. package/select/Select.test.js +478 -307
  189. package/select/types.d.ts +20 -4
  190. package/sidenav/Icons.d.ts +7 -0
  191. package/sidenav/Icons.js +51 -0
  192. package/sidenav/Sidenav.d.ts +6 -5
  193. package/sidenav/Sidenav.js +146 -44
  194. package/sidenav/Sidenav.stories.tsx +251 -151
  195. package/sidenav/Sidenav.test.js +25 -37
  196. package/sidenav/types.d.ts +52 -26
  197. package/slider/Slider.d.ts +2 -2
  198. package/slider/Slider.js +121 -97
  199. package/slider/Slider.stories.tsx +64 -1
  200. package/slider/Slider.test.js +122 -22
  201. package/slider/types.d.ts +4 -0
  202. package/spinner/Spinner.js +18 -24
  203. package/spinner/Spinner.stories.jsx +53 -27
  204. package/spinner/Spinner.test.js +1 -1
  205. package/switch/Switch.d.ts +2 -2
  206. package/switch/Switch.js +138 -68
  207. package/switch/Switch.stories.tsx +49 -38
  208. package/switch/Switch.test.js +145 -18
  209. package/switch/types.d.ts +6 -2
  210. package/table/Table.js +3 -3
  211. package/table/Table.stories.jsx +80 -1
  212. package/table/Table.test.js +2 -2
  213. package/tabs/Tab.d.ts +4 -0
  214. package/tabs/Tab.js +132 -0
  215. package/tabs/Tabs.js +358 -108
  216. package/tabs/Tabs.stories.tsx +119 -11
  217. package/tabs/Tabs.test.js +220 -10
  218. package/tabs/types.d.ts +13 -3
  219. package/tag/Tag.js +12 -17
  220. package/tag/Tag.stories.tsx +14 -1
  221. package/tag/Tag.test.js +1 -1
  222. package/tag/types.d.ts +1 -1
  223. package/text-input/Icons.d.ts +8 -0
  224. package/text-input/Icons.js +60 -0
  225. package/text-input/Suggestion.d.ts +4 -0
  226. package/text-input/Suggestion.js +84 -0
  227. package/text-input/Suggestions.d.ts +4 -0
  228. package/text-input/Suggestions.js +134 -0
  229. package/text-input/TextInput.js +260 -399
  230. package/text-input/TextInput.stories.tsx +319 -185
  231. package/text-input/TextInput.test.js +846 -759
  232. package/text-input/types.d.ts +50 -12
  233. package/textarea/Textarea.js +37 -45
  234. package/textarea/Textarea.stories.jsx +68 -1
  235. package/textarea/Textarea.test.js +61 -19
  236. package/textarea/types.d.ts +14 -7
  237. package/toggle-group/ToggleGroup.d.ts +2 -2
  238. package/toggle-group/ToggleGroup.js +85 -59
  239. package/toggle-group/ToggleGroup.stories.tsx +48 -3
  240. package/toggle-group/ToggleGroup.test.js +38 -24
  241. package/toggle-group/types.d.ts +23 -14
  242. package/typography/Typography.d.ts +4 -0
  243. package/typography/Typography.js +32 -0
  244. package/typography/Typography.stories.tsx +198 -0
  245. package/typography/types.d.ts +18 -0
  246. package/typography/types.js +5 -0
  247. package/useTheme.d.ts +1246 -1
  248. package/useTheme.js +3 -3
  249. package/useTranslatedLabels.d.ts +85 -0
  250. package/useTranslatedLabels.js +20 -0
  251. package/utils/BaseTypography.d.ts +21 -0
  252. package/utils/BaseTypography.js +108 -0
  253. package/utils/FocusLock.d.ts +13 -0
  254. package/utils/FocusLock.js +138 -0
  255. package/wizard/Wizard.js +44 -45
  256. package/wizard/Wizard.stories.tsx +40 -1
  257. package/wizard/Wizard.test.js +1 -1
  258. package/wizard/types.d.ts +3 -3
  259. package/ThemeContext.d.ts +0 -10
  260. package/ThemeContext.js +0 -243
  261. package/card/ice-cream.jpg +0 -0
  262. package/common/RequiredComponent.js +0 -32
  263. package/list/List.d.ts +0 -4
  264. package/list/List.js +0 -47
  265. package/list/List.stories.tsx +0 -95
  266. package/list/types.d.ts +0 -7
  267. package/number-input/NumberInputContext.d.ts +0 -4
  268. package/number-input/NumberInputContext.js +0 -19
  269. package/number-input/numberInputContextTypes.d.ts +0 -19
  270. package/radio/Radio.d.ts +0 -4
  271. package/radio/Radio.js +0 -174
  272. package/radio/Radio.stories.tsx +0 -192
  273. package/radio/Radio.test.js +0 -71
  274. package/radio/types.d.ts +0 -54
  275. package/row/Row.d.ts +0 -3
  276. package/row/Row.js +0 -127
  277. package/row/Row.stories.tsx +0 -237
  278. package/row/types.d.ts +0 -28
  279. package/stack/Stack.d.ts +0 -3
  280. package/stack/Stack.js +0 -97
  281. package/stack/Stack.stories.tsx +0 -164
  282. package/stack/types.d.ts +0 -24
  283. package/text/Text.d.ts +0 -7
  284. package/text/Text.js +0 -30
  285. package/text/Text.stories.tsx +0 -19
  286. /package/{list → bulleted-list}/types.js +0 -0
  287. /package/{radio → flex}/types.js +0 -0
  288. /package/{row → grid}/types.js +0 -0
  289. /package/{stack → image}/types.js +0 -0
  290. /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
@@ -6,7 +6,7 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
10
  declare type Action = {
11
11
  /**
12
12
  * This function will be called when the user clicks the action.
@@ -59,6 +59,10 @@ declare type Props = {
59
59
  * If true, the component will be disabled.
60
60
  */
61
61
  disabled?: boolean;
62
+ /**
63
+ * If true, the component will not be mutable, meaning the user can not edit the control.
64
+ */
65
+ readOnly?: boolean;
62
66
  /**
63
67
  * If true, the input will be optional, showing '(Optional)'
64
68
  * next to the label. Otherwise, the field will be considered required and an error will be
@@ -78,26 +82,29 @@ declare type Props = {
78
82
  * This function will be called when the user types within the input
79
83
  * element of the component. An object including the current value and
80
84
  * the error (if the value entered is not valid) will be passed to this
81
- * function. If there is no error, error will be null.
85
+ * function. If there is no error, error will not be defined.
82
86
  */
83
87
  onChange?: (val: {
84
88
  value: string;
85
- error: string | null;
89
+ error?: string;
86
90
  }) => void;
87
91
  /**
88
92
  * This function will be called when the input element loses the focus.
89
93
  * An object including the input value and the error (if the value
90
94
  * entered is not valid) will be passed to this function. If there is no error,
91
- * error will be null.
95
+ * error will not be defined.
92
96
  */
93
97
  onBlur?: (val: {
94
98
  value: string;
95
- error: string | null;
99
+ error?: string;
96
100
  }) => void;
97
101
  /**
98
- * If it is defined, the component will change its appearance, showing
99
- * the error below the input component. If it is not defined, the error
100
- * messages will be managed internally, but never displayed on its own.
102
+ * If it is a defined value and also a truthy string, the component will
103
+ * change its appearance, showing the error below the input component. If
104
+ * the defined value is an empty string, it will reserve a space below
105
+ * the component for a future error, but it would not change its look. In
106
+ * case of being undefined or null, both the appearance and the space for
107
+ * the error message would not be modified.
101
108
  */
102
109
  error?: string;
103
110
  /**
@@ -114,7 +121,7 @@ declare type Props = {
114
121
  * pattern, the onBlur and onChange functions will be called with the
115
122
  * current value and an internal error informing that this value does not
116
123
  * match the pattern. If the pattern is met, the error parameter of both
117
- * events will be null.
124
+ * events will not be defined.
118
125
  */
119
126
  pattern?: string;
120
127
  /**
@@ -124,7 +131,7 @@ declare type Props = {
124
131
  * comply the minimum length, the onBlur and onChange functions will be called
125
132
  * with the current value and an internal error informing that the value
126
133
  * length does not comply the specified range. If a valid length is
127
- * reached, the error parameter of both events will be null.
134
+ * reached, the error parameter of both events will not be defined.
128
135
  */
129
136
  minLength?: number;
130
137
  /**
@@ -134,7 +141,7 @@ declare type Props = {
134
141
  * comply the maximum length, the onBlur and onChange functions will be called
135
142
  * with the current value and an internal error informing that the value
136
143
  * length does not comply the specified range. If a valid length is
137
- * reached, the error parameter of both events will be null.
144
+ * reached, the error parameter of both events will not be defined.
138
145
  */
139
146
  maxLength?: number;
140
147
  /**
@@ -148,7 +155,7 @@ declare type Props = {
148
155
  */
149
156
  margin?: Space | Margin;
150
157
  /**
151
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
158
+ * Size of the component.
152
159
  */
153
160
  size?: "small" | "medium" | "large" | "fillParent";
154
161
  /**
@@ -156,8 +163,39 @@ declare type Props = {
156
163
  */
157
164
  tabIndex?: number;
158
165
  };
166
+ /**
167
+ * List of suggestions of an Text Input component.
168
+ */
169
+ export declare type SuggestionsProps = {
170
+ id: string;
171
+ value: string;
172
+ suggestions: string[];
173
+ visualFocusIndex: number;
174
+ highlightedSuggestions: boolean;
175
+ searchHasErrors: boolean;
176
+ isSearching: boolean;
177
+ suggestionOnClick: (suggestion: string) => void;
178
+ getTextInputWidth: () => number;
179
+ };
159
180
  /**
160
181
  * Reference to the component.
161
182
  */
162
183
  export declare type RefType = HTMLDivElement;
184
+ /**
185
+ * Single suggestion of an Text Input component.
186
+ */
187
+ export declare type SuggestionProps = {
188
+ id: string;
189
+ value: string;
190
+ onClick: (suggestion: string) => void;
191
+ suggestion: string;
192
+ isLast: boolean;
193
+ visuallyFocused: boolean;
194
+ highlighted: boolean;
195
+ };
196
+ export declare type AutosuggestWrapperProps = {
197
+ condition: boolean;
198
+ wrapper: (children: React.ReactNode) => JSX.Element;
199
+ children: React.ReactNode;
200
+ };
163
201
  export default Props;
@@ -19,11 +19,13 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _utils = require("../common/utils.js");
22
+ var _utils = require("../common/utils");
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
- var _variables = require("../common/variables.js");
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
+
28
+ var _variables = require("../common/variables");
27
29
 
28
30
  var _uuid = require("uuid");
29
31
 
@@ -35,14 +37,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
37
 
36
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
39
 
38
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
39
- return "This field is required. Please, enter a value.";
40
- };
41
-
42
- var getPatternErrorMessage = function getPatternErrorMessage() {
43
- return "Please match the format requested.";
44
- };
45
-
46
40
  var patternMatch = function patternMatch(pattern, value) {
47
41
  return new RegExp(pattern).test(value);
48
42
  };
@@ -59,6 +53,8 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
59
53
  placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
60
54
  _ref$disabled = _ref.disabled,
61
55
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
56
+ _ref$readOnly = _ref.readOnly,
57
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
62
58
  _ref$optional = _ref.optional,
63
59
  optional = _ref$optional === void 0 ? false : _ref$optional,
64
60
  _ref$verticalGrow = _ref.verticalGrow,
@@ -90,13 +86,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
90
86
 
91
87
  var colorsTheme = (0, _useTheme["default"])();
92
88
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
89
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
93
90
  var textareaRef = (0, _react.useRef)(null);
94
91
  var errorId = "error-".concat(textareaId);
95
92
 
96
- var getLengthErrorMessage = function getLengthErrorMessage() {
97
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
98
- };
99
-
100
93
  var isNotOptional = function isNotOptional(value) {
101
94
  return value === "" && !optional;
102
95
  };
@@ -109,46 +102,46 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
109
102
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
110
103
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
111
104
  value: newValue,
112
- error: getNotOptionalErrorMessage()
105
+ error: translatedLabels.formFields.requiredValueErrorMessage
113
106
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
114
107
  value: newValue,
115
- error: getLengthErrorMessage()
108
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
116
109
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
117
110
  value: newValue,
118
- error: getPatternErrorMessage()
111
+ error: translatedLabels.formFields.formatRequestedErrorMessage
119
112
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
120
113
  value: newValue
121
114
  });
122
115
  };
123
116
 
124
- var handleTOnBlur = function handleTOnBlur(event) {
117
+ var autoVerticalGrow = function autoVerticalGrow() {
118
+ var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
119
+ var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
120
+ textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
121
+ var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
122
+ textareaRef.current.style.height = "".concat(newHeight, "px");
123
+ };
124
+
125
+ var handleOnBlur = function handleOnBlur(event) {
125
126
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
126
127
  value: event.target.value,
127
- error: getNotOptionalErrorMessage()
128
+ error: translatedLabels.formFields.requiredValueErrorMessage
128
129
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
129
130
  value: event.target.value,
130
- error: getLengthErrorMessage()
131
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
131
132
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
132
133
  value: event.target.value,
133
- error: getPatternErrorMessage()
134
+ error: translatedLabels.formFields.formatRequestedErrorMessage
134
135
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
135
136
  value: event.target.value
136
137
  });
137
138
  };
138
139
 
139
- var handleTOnChange = function handleTOnChange(event) {
140
+ var handleOnChange = function handleOnChange(event) {
140
141
  changeValue(event.target.value);
142
+ verticalGrow === "auto" && autoVerticalGrow();
141
143
  };
142
144
 
143
- (0, _react.useLayoutEffect)(function () {
144
- if (verticalGrow === "auto") {
145
- var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
146
- var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
147
- textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
148
- var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
149
- textareaRef.current.style.height = "".concat(newHeight, "px");
150
- }
151
- }, [value, verticalGrow, rows, innerValue]);
152
145
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
153
146
  theme: colorsTheme.textarea
154
147
  }, /*#__PURE__*/_react["default"].createElement(TextareaContainer, {
@@ -160,7 +153,7 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
160
153
  disabled: disabled,
161
154
  backgroundType: backgroundType,
162
155
  helperText: helperText
163
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
156
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
164
157
  disabled: disabled,
165
158
  backgroundType: backgroundType
166
159
  }, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
@@ -170,9 +163,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
170
163
  placeholder: placeholder,
171
164
  verticalGrow: verticalGrow,
172
165
  rows: rows,
173
- onChange: handleTOnChange,
174
- onBlur: handleTOnBlur,
166
+ onChange: handleOnChange,
167
+ onBlur: handleOnBlur,
175
168
  disabled: disabled,
169
+ readOnly: readOnly,
176
170
  error: error,
177
171
  minLength: minLength,
178
172
  maxLength: maxLength,
@@ -180,10 +174,9 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
180
174
  backgroundType: backgroundType,
181
175
  ref: textareaRef,
182
176
  tabIndex: tabIndex,
183
- "aria-disabled": disabled,
184
- "aria-invalid": error ? "true" : "false",
177
+ "aria-invalid": error ? true : false,
185
178
  "aria-errormessage": error ? errorId : undefined,
186
- "aria-required": optional ? "false" : "true"
179
+ "aria-required": !disabled && !optional
187
180
  }), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
188
181
  id: errorId,
189
182
  backgroundType: backgroundType,
@@ -202,7 +195,7 @@ var calculateWidth = function calculateWidth(margin, size) {
202
195
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
203
196
  };
204
197
 
205
- var TextareaContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
198
+ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
206
199
  return calculateWidth(props.margin, props.size);
207
200
  }, function (props) {
208
201
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -250,18 +243,17 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
250
243
  return props.theme.helperTextLineHeight;
251
244
  });
252
245
 
253
- var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n\n padding: 0.5rem 1rem;\n box-shadow: 0 0 0 2px transparent;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n ", "\n\n ", ";\n ", ";\n\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
254
- if (props.verticalGrow === "none") return "resize: none;";else if (props.verticalGrow === "auto") return "resize: none; overflow: hidden;";else if (props.verticalGrow === "manual") return "resize: vertical;";else return "resize: none;";
246
+ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n\n ", "\n\n padding: 0.5rem 1rem;\n box-shadow: 0 0 0 2px transparent;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n\n ", "\n\n ", ";\n\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n\n ::placeholder {\n color: ", ";\n }\n"])), function (_ref2) {
247
+ var verticalGrow = _ref2.verticalGrow;
248
+ if (verticalGrow === "none") return "resize: none;";else if (verticalGrow === "auto") return "resize: none; overflow: hidden;";else if (verticalGrow === "manual") return "resize: vertical;";else return "resize: none;";
255
249
  }, function (props) {
256
250
  if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");else return "background-color: transparent;";
257
251
  }, function (props) {
258
- if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
259
- }, function (props) {
260
- return props.error && !props.disabled && "border-color: transparent;\n box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorBorderColor, ";\n ");
252
+ if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else if (props.error) return "transparent";else if (props.readOnly) return props.theme.readOnlyBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
261
253
  }, function (props) {
262
- return props.disabled && "cursor: not-allowed;";
254
+ return props.error && !props.disabled && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorBorderColor, ";\n ");
263
255
  }, function (props) {
264
- return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:focus-within {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ");
256
+ return !props.disabled ? "&:hover {\n border-color: ".concat(props.error ? "transparent" : props.readOnly ? props.theme.hoverReadOnlyBorderColor : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus, &:focus-within {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }") : "cursor: not-allowed;";
265
257
  }, function (props) {
266
258
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledValueFontColorOnDark : props.theme.disabledValueFontColor : props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
267
259
  }, function (props) {
@@ -4,12 +4,20 @@ import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
5
  import { BackgroundColorProvider } from "../BackgroundColorContext";
6
6
  import DarkContainer from "../../.storybook/components/DarkSection";
7
+ import { HalstackProvider } from "../HalstackContext";
7
8
 
8
9
  export default {
9
10
  title: "Textarea",
10
11
  component: DxcTextarea,
11
12
  };
12
13
 
14
+ const opinionatedTheme = {
15
+ textarea: {
16
+ fontColor: "#000000",
17
+ hoverBorderColor: "#a46ede",
18
+ },
19
+ };
20
+
13
21
  export const Chromatic = () => (
14
22
  <>
15
23
  <>
@@ -35,6 +43,14 @@ export const Chromatic = () => (
35
43
  <Title title="Disabled with value" theme="light" level={4} />
36
44
  <DxcTextarea label="Disabled" defaultValue="Example text" disabled />
37
45
  </ExampleContainer>
46
+ <ExampleContainer>
47
+ <Title title="Read only" theme="light" level={4} />
48
+ <DxcTextarea label="Label" readOnly defaultValue="Example text" verticalGrow="manual" />
49
+ </ExampleContainer>
50
+ <ExampleContainer pseudoState="pseudo-hover">
51
+ <Title title="Hovered read only" theme="light" level={4} />
52
+ <DxcTextarea label="Label" readOnly defaultValue="Example text" verticalGrow="manual" />
53
+ </ExampleContainer>
38
54
  <ExampleContainer>
39
55
  <Title title="With error" theme="light" level={4} />
40
56
  <DxcTextarea
@@ -151,7 +167,58 @@ export const Chromatic = () => (
151
167
  <ExampleContainer>
152
168
  <Title title="Xxlarge margin" theme="light" level={4} />
153
169
  <DxcTextarea label="Xxlarge" margin="xxlarge" />
154
- <hr />
170
+ </ExampleContainer>
171
+ <Title title="Opinionated theme" theme="light" level={2} />
172
+ <ExampleContainer pseudoState="pseudo-hover">
173
+ <Title title="Hovered" theme="light" level={4} />
174
+ <HalstackProvider theme={opinionatedTheme}>
175
+ <DxcTextarea label="Hovered" helperText="Sample text" placeholder="Placeholder" />
176
+ </HalstackProvider>
177
+ </ExampleContainer>
178
+ <ExampleContainer pseudoState="pseudo-focus">
179
+ <Title title="Focused" theme="light" level={4} />
180
+ <HalstackProvider theme={opinionatedTheme}>
181
+ <DxcTextarea label="Focused" helperText="Sample text" />
182
+ </HalstackProvider>
183
+ </ExampleContainer>
184
+ <ExampleContainer>
185
+ <Title title="Disabled" theme="light" level={4} />
186
+ <HalstackProvider theme={opinionatedTheme}>
187
+ <DxcTextarea
188
+ label="Disabled"
189
+ optional
190
+ helperText="Sample text"
191
+ placeholder="Enter your text here..."
192
+ disabled
193
+ />
194
+ </HalstackProvider>
195
+ </ExampleContainer>
196
+ <ExampleContainer>
197
+ <Title title="Disabled with value" theme="light" level={4} />
198
+ <HalstackProvider theme={opinionatedTheme}>
199
+ <DxcTextarea label="Disabled" helperText="Sample text" defaultValue="Example text" disabled />
200
+ </HalstackProvider>
201
+ </ExampleContainer>
202
+ <ExampleContainer>
203
+ <Title title="With error" theme="light" level={4} />
204
+ <HalstackProvider theme={opinionatedTheme}>
205
+ <DxcTextarea
206
+ label="Textarea with error"
207
+ helperText="Helper text"
208
+ placeholder="Enter your text here..."
209
+ error="Error message."
210
+ />
211
+ </HalstackProvider>
212
+ </ExampleContainer>
213
+ <ExampleContainer>
214
+ <Title title="Grow manual" theme="light" level={4} />{" "}
215
+ <HalstackProvider theme={opinionatedTheme}>
216
+ <DxcTextarea
217
+ label="Manual vertical grow"
218
+ verticalGrow="manual"
219
+ defaultValue="Long textttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
220
+ />
221
+ </HalstackProvider>
155
222
  </ExampleContainer>
156
223
  </>
157
224
  );
@@ -8,7 +8,7 @@ var _react2 = require("@testing-library/react");
8
8
 
9
9
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
10
 
11
- var _Textarea = _interopRequireDefault(require("./Textarea"));
11
+ var _Textarea = _interopRequireDefault(require("./Textarea.tsx"));
12
12
 
13
13
  describe("Textarea component tests", function () {
14
14
  test("Renders with correct label", function () {
@@ -78,14 +78,13 @@ describe("Textarea component tests", function () {
78
78
  var textarea = getByLabelText("Example label");
79
79
  expect(textarea.rows).toBe(10);
80
80
  });
81
- test("Renders with correct accesibility attributes", function () {
81
+ test("Renders with correct accessibility attributes", function () {
82
82
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
83
83
  label: "Example label"
84
84
  })),
85
85
  getByLabelText = _render7.getByLabelText;
86
86
 
87
87
  var textarea = getByLabelText("Example label");
88
- expect(textarea.getAttribute("aria-disabled")).toBe("false");
89
88
  expect(textarea.getAttribute("aria-invalid")).toBe("false");
90
89
  expect(textarea.getAttribute("aria-describedBy")).toBeNull();
91
90
  expect(textarea.getAttribute("aria-required")).toBe("true");
@@ -101,7 +100,7 @@ describe("Textarea component tests", function () {
101
100
  var textarea = getByLabelText("Example label");
102
101
  expect(textarea.value).toBe("Example text");
103
102
  });
104
- test("Disabled textarea renders with correct aria and can not be modified", function () {
103
+ test("Disabled textarea can not be modified", function () {
105
104
  var onChange = jest.fn();
106
105
 
107
106
  var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
@@ -112,23 +111,66 @@ describe("Textarea component tests", function () {
112
111
  getByLabelText = _render9.getByLabelText;
113
112
 
114
113
  var textarea = getByLabelText("Example label");
115
- expect(textarea.getAttribute("aria-disabled")).toBe("true");
116
114
 
117
115
  _userEvent["default"].type(textarea, "Test");
118
116
 
119
117
  expect(onChange).not.toHaveBeenCalled();
120
118
  });
119
+ test("Read-only textarea does not trigger onChange function", function () {
120
+ var onChange = jest.fn();
121
+
122
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
123
+ label: "Example label",
124
+ onChange: onChange,
125
+ readOnly: true
126
+ })),
127
+ getByLabelText = _render10.getByLabelText;
128
+
129
+ var textarea = getByLabelText("Example label");
130
+
131
+ _userEvent["default"].type(textarea, "Test");
132
+
133
+ expect(onChange).not.toHaveBeenCalled();
134
+ });
135
+ test("Read-only textarea sends its value on submit", function () {
136
+ var handlerOnSubmit = jest.fn(function (e) {
137
+ e.preventDefault();
138
+ var formData = new FormData(e.target);
139
+ var formProps = Object.fromEntries(formData);
140
+ expect(formProps).toStrictEqual({
141
+ data: "Comments"
142
+ });
143
+ });
144
+
145
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
146
+ onSubmit: handlerOnSubmit
147
+ }, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
148
+ label: "Example label",
149
+ name: "data",
150
+ defaultValue: "Comments",
151
+ readOnly: true
152
+ }), /*#__PURE__*/_react["default"].createElement("button", {
153
+ type: "submit"
154
+ }, "Submit"))),
155
+ getByText = _render11.getByText;
156
+
157
+ var submit = getByText("Submit");
158
+
159
+ _userEvent["default"].click(submit);
160
+
161
+ expect(handlerOnSubmit).toHaveBeenCalled();
162
+ });
121
163
  test("Not optional constraint (onBlur)", function () {
122
164
  var onChange = jest.fn();
123
165
  var onBlur = jest.fn();
124
166
 
125
- var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
167
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
126
168
  label: "Example label",
127
169
  placeholder: "Placeholder",
128
170
  onChange: onChange,
129
171
  onBlur: onBlur
130
172
  })),
131
- getByLabelText = _render10.getByLabelText;
173
+ getByLabelText = _render12.getByLabelText;
132
174
 
133
175
  var textarea = getByLabelText("Example label");
134
176
 
@@ -158,12 +200,12 @@ describe("Textarea component tests", function () {
158
200
  test("Not optional constraint (onChange)", function () {
159
201
  var onChange = jest.fn();
160
202
 
161
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
203
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
162
204
  label: "Example label",
163
205
  placeholder: "Placeholder",
164
206
  onChange: onChange
165
207
  })),
166
- getByLabelText = _render11.getByLabelText;
208
+ getByLabelText = _render13.getByLabelText;
167
209
 
168
210
  var textarea = getByLabelText("Example label");
169
211
 
@@ -192,7 +234,7 @@ describe("Textarea component tests", function () {
192
234
  var onChange = jest.fn();
193
235
  var onBlur = jest.fn();
194
236
 
195
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
237
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
196
238
  label: "Example label",
197
239
  placeholder: "Placeholder",
198
240
  onChange: onChange,
@@ -203,7 +245,7 @@ describe("Textarea component tests", function () {
203
245
  },
204
246
  pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$"
205
247
  })),
206
- getByLabelText = _render12.getByLabelText;
248
+ getByLabelText = _render14.getByLabelText;
207
249
 
208
250
  var textarea = getByLabelText("Example label");
209
251
 
@@ -251,7 +293,7 @@ describe("Textarea component tests", function () {
251
293
  var onChange = jest.fn();
252
294
  var onBlur = jest.fn();
253
295
 
254
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
296
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
255
297
  label: "Example label",
256
298
  placeholder: "Placeholder",
257
299
  onChange: onChange,
@@ -263,7 +305,7 @@ describe("Textarea component tests", function () {
263
305
  minLength: 5,
264
306
  maxLength: 10
265
307
  })),
266
- getByLabelText = _render13.getByLabelText;
308
+ getByLabelText = _render15.getByLabelText;
267
309
 
268
310
  var textarea = getByLabelText("Example label");
269
311
 
@@ -311,7 +353,7 @@ describe("Textarea component tests", function () {
311
353
  var onChange = jest.fn();
312
354
  var onBlur = jest.fn();
313
355
 
314
- var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
356
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
315
357
  label: "Example label",
316
358
  placeholder: "Placeholder",
317
359
  onChange: onChange,
@@ -324,7 +366,7 @@ describe("Textarea component tests", function () {
324
366
  minLength: 5,
325
367
  maxLength: 10
326
368
  })),
327
- getByLabelText = _render14.getByLabelText;
369
+ getByLabelText = _render16.getByLabelText;
328
370
 
329
371
  var textarea = getByLabelText("Example label");
330
372
 
@@ -389,11 +431,11 @@ describe("Textarea component tests", function () {
389
431
  test("onBlur function is called correctly", function () {
390
432
  var onBlur = jest.fn();
391
433
 
392
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
434
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
393
435
  label: "Example label",
394
436
  onBlur: onBlur
395
437
  })),
396
- getByLabelText = _render15.getByLabelText;
438
+ getByLabelText = _render17.getByLabelText;
397
439
 
398
440
  var textarea = getByLabelText("Example label");
399
441
 
@@ -413,12 +455,12 @@ describe("Textarea component tests", function () {
413
455
  test("onChange function is called correctly", function () {
414
456
  var onChange = jest.fn();
415
457
 
416
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
458
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
417
459
  label: "Example label",
418
460
  value: "Test value",
419
461
  onChange: onChange
420
462
  })),
421
- getByLabelText = _render16.getByLabelText;
463
+ getByLabelText = _render18.getByLabelText;
422
464
 
423
465
  var textarea = getByLabelText("Example label");
424
466