@dxc-technology/halstack-react 10.1.0 → 12.0.0

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 (350) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +45 -143
  4. package/HalstackContext.js +10 -35
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +33 -84
  7. package/accordion/Accordion.stories.tsx +8 -64
  8. package/accordion/Accordion.test.js +18 -33
  9. package/accordion/types.d.ts +6 -6
  10. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  11. package/accordion-group/AccordionGroup.d.ts +2 -3
  12. package/accordion-group/AccordionGroup.js +17 -44
  13. package/accordion-group/AccordionGroup.stories.tsx +24 -24
  14. package/accordion-group/AccordionGroup.test.js +42 -60
  15. package/accordion-group/AccordionGroupAccordion.js +11 -23
  16. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  17. package/accordion-group/AccordionGroupContext.js +8 -0
  18. package/accordion-group/types.d.ts +7 -7
  19. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  20. package/action-icon/ActionIcon.d.ts +4 -0
  21. package/action-icon/ActionIcon.js +48 -0
  22. package/action-icon/ActionIcon.stories.tsx +41 -0
  23. package/action-icon/ActionIcon.test.js +64 -0
  24. package/action-icon/types.d.ts +26 -0
  25. package/alert/Alert.accessibility.test.js +95 -0
  26. package/alert/Alert.js +34 -120
  27. package/alert/Alert.test.js +28 -45
  28. package/alert/types.d.ts +5 -5
  29. package/badge/Badge.accessibility.test.js +129 -0
  30. package/badge/Badge.d.ts +1 -1
  31. package/badge/Badge.js +142 -42
  32. package/badge/Badge.stories.tsx +210 -0
  33. package/badge/Badge.test.js +30 -0
  34. package/badge/types.d.ts +52 -3
  35. package/bleed/Bleed.js +13 -21
  36. package/bleed/types.d.ts +2 -2
  37. package/box/Box.accessibility.test.js +33 -0
  38. package/box/Box.js +11 -33
  39. package/box/Box.test.js +1 -6
  40. package/box/types.d.ts +3 -3
  41. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  42. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  43. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  44. package/breadcrumbs/Breadcrumbs.js +79 -0
  45. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  46. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  47. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  48. package/breadcrumbs/Item.d.ts +4 -0
  49. package/breadcrumbs/Item.js +52 -0
  50. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  51. package/breadcrumbs/dropdownTheme.js +62 -0
  52. package/breadcrumbs/types.d.ts +16 -0
  53. package/breadcrumbs/types.js +5 -0
  54. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  55. package/bulleted-list/BulletedList.js +22 -55
  56. package/bulleted-list/BulletedList.stories.tsx +2 -93
  57. package/bulleted-list/types.d.ts +5 -5
  58. package/button/Button.accessibility.test.js +127 -0
  59. package/button/Button.js +36 -59
  60. package/button/Button.stories.tsx +35 -135
  61. package/button/Button.test.js +13 -21
  62. package/button/types.d.ts +5 -5
  63. package/card/Card.accessibility.test.js +36 -0
  64. package/card/Card.js +23 -45
  65. package/card/Card.test.js +10 -21
  66. package/card/types.d.ts +5 -5
  67. package/checkbox/Checkbox.accessibility.test.js +87 -0
  68. package/checkbox/Checkbox.js +88 -123
  69. package/checkbox/Checkbox.stories.tsx +16 -54
  70. package/checkbox/Checkbox.test.js +107 -63
  71. package/checkbox/types.d.ts +8 -4
  72. package/chip/Chip.accessibility.test.js +67 -0
  73. package/chip/Chip.js +22 -36
  74. package/chip/Chip.stories.tsx +10 -25
  75. package/chip/Chip.test.js +17 -30
  76. package/chip/types.d.ts +4 -4
  77. package/common/coreTokens.d.ts +105 -14
  78. package/common/coreTokens.js +40 -23
  79. package/common/utils.js +2 -8
  80. package/common/variables.d.ts +46 -144
  81. package/common/variables.js +120 -225
  82. package/container/Container.d.ts +4 -0
  83. package/container/Container.js +194 -0
  84. package/container/Container.stories.tsx +214 -0
  85. package/container/types.d.ts +74 -0
  86. package/container/types.js +5 -0
  87. package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
  88. package/contextual-menu/ContextualMenu.d.ts +5 -0
  89. package/contextual-menu/ContextualMenu.js +88 -0
  90. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  91. package/contextual-menu/ContextualMenu.test.js +205 -0
  92. package/contextual-menu/GroupItem.d.ts +4 -0
  93. package/contextual-menu/GroupItem.js +67 -0
  94. package/contextual-menu/ItemAction.d.ts +4 -0
  95. package/contextual-menu/ItemAction.js +51 -0
  96. package/contextual-menu/MenuItem.d.ts +4 -0
  97. package/contextual-menu/MenuItem.js +29 -0
  98. package/contextual-menu/SingleItem.d.ts +4 -0
  99. package/contextual-menu/SingleItem.js +38 -0
  100. package/contextual-menu/types.d.ts +58 -0
  101. package/contextual-menu/types.js +5 -0
  102. package/date-input/Calendar.js +13 -57
  103. package/date-input/DateInput.accessibility.test.js +228 -0
  104. package/date-input/DateInput.js +53 -100
  105. package/date-input/DateInput.stories.tsx +19 -31
  106. package/date-input/DateInput.test.js +674 -701
  107. package/date-input/DatePicker.js +23 -48
  108. package/date-input/YearPicker.js +8 -34
  109. package/date-input/types.d.ts +28 -22
  110. package/dialog/Dialog.accessibility.test.js +69 -0
  111. package/dialog/Dialog.js +21 -59
  112. package/dialog/Dialog.stories.tsx +176 -0
  113. package/dialog/Dialog.test.js +126 -188
  114. package/dialog/types.d.ts +18 -13
  115. package/divider/Divider.accessibility.test.js +33 -0
  116. package/divider/Divider.d.ts +4 -0
  117. package/divider/Divider.js +36 -0
  118. package/divider/Divider.stories.tsx +223 -0
  119. package/divider/Divider.test.js +38 -0
  120. package/divider/types.d.ts +21 -0
  121. package/divider/types.js +5 -0
  122. package/dropdown/Dropdown.accessibility.test.js +180 -0
  123. package/dropdown/Dropdown.js +63 -130
  124. package/dropdown/Dropdown.stories.tsx +15 -26
  125. package/dropdown/Dropdown.test.js +402 -389
  126. package/dropdown/DropdownMenu.js +12 -23
  127. package/dropdown/DropdownMenuItem.js +13 -21
  128. package/dropdown/types.d.ts +20 -24
  129. package/file-input/FileInput.accessibility.test.js +160 -0
  130. package/file-input/FileInput.js +180 -284
  131. package/file-input/FileInput.stories.tsx +1 -1
  132. package/file-input/FileInput.test.js +279 -354
  133. package/file-input/FileItem.js +29 -66
  134. package/file-input/types.d.ts +9 -9
  135. package/flex/Flex.js +25 -39
  136. package/flex/types.d.ts +6 -6
  137. package/footer/Footer.accessibility.test.js +125 -0
  138. package/footer/Footer.d.ts +1 -1
  139. package/footer/Footer.js +43 -68
  140. package/footer/Footer.stories.tsx +58 -2
  141. package/footer/Footer.test.js +18 -32
  142. package/footer/Icons.d.ts +3 -2
  143. package/footer/Icons.js +53 -22
  144. package/footer/types.d.ts +17 -17
  145. package/grid/Grid.js +1 -16
  146. package/grid/types.d.ts +10 -10
  147. package/header/Header.accessibility.test.js +93 -0
  148. package/header/Header.d.ts +1 -1
  149. package/header/Header.js +38 -104
  150. package/header/Header.stories.tsx +16 -0
  151. package/header/Header.test.js +12 -25
  152. package/header/Icons.d.ts +2 -2
  153. package/header/Icons.js +3 -13
  154. package/header/types.d.ts +7 -8
  155. package/heading/Heading.accessibility.test.js +33 -0
  156. package/heading/Heading.js +9 -31
  157. package/heading/Heading.test.js +70 -87
  158. package/heading/types.d.ts +7 -7
  159. package/icon/Icon.accessibility.test.js +30 -0
  160. package/icon/Icon.d.ts +4 -0
  161. package/icon/Icon.js +33 -0
  162. package/icon/Icon.stories.tsx +28 -0
  163. package/icon/types.d.ts +4 -0
  164. package/icon/types.js +5 -0
  165. package/image/Image.accessibility.test.js +56 -0
  166. package/image/Image.d.ts +2 -2
  167. package/image/Image.js +17 -32
  168. package/image/Image.stories.tsx +3 -1
  169. package/image/types.d.ts +2 -2
  170. package/inset/Inset.js +13 -21
  171. package/inset/types.d.ts +2 -2
  172. package/layout/ApplicationLayout.d.ts +2 -2
  173. package/layout/ApplicationLayout.js +23 -60
  174. package/layout/Icons.d.ts +4 -5
  175. package/layout/Icons.js +2 -16
  176. package/layout/types.d.ts +3 -3
  177. package/link/Link.accessibility.test.js +108 -0
  178. package/link/Link.js +28 -47
  179. package/link/Link.stories.tsx +4 -4
  180. package/link/Link.test.js +23 -41
  181. package/link/types.d.ts +14 -14
  182. package/main.d.ts +8 -4
  183. package/main.js +39 -60
  184. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  185. package/nav-tabs/NavTabs.d.ts +1 -2
  186. package/nav-tabs/NavTabs.js +19 -48
  187. package/nav-tabs/NavTabs.stories.tsx +30 -25
  188. package/nav-tabs/NavTabs.test.js +45 -50
  189. package/nav-tabs/NavTabsContext.d.ts +3 -0
  190. package/nav-tabs/NavTabsContext.js +8 -0
  191. package/nav-tabs/Tab.js +38 -67
  192. package/nav-tabs/types.d.ts +10 -10
  193. package/number-input/NumberInput.accessibility.test.js +228 -0
  194. package/number-input/NumberInput.d.ts +0 -7
  195. package/number-input/NumberInput.js +47 -39
  196. package/number-input/NumberInput.stories.tsx +42 -26
  197. package/number-input/NumberInput.test.js +839 -575
  198. package/number-input/NumberInputContext.d.ts +3 -0
  199. package/number-input/NumberInputContext.js +8 -0
  200. package/number-input/types.d.ts +17 -5
  201. package/package.json +41 -37
  202. package/paginator/Paginator.accessibility.test.js +79 -0
  203. package/paginator/Paginator.js +27 -52
  204. package/paginator/Paginator.test.js +224 -207
  205. package/paginator/types.d.ts +3 -3
  206. package/paragraph/Paragraph.accessibility.test.js +28 -0
  207. package/paragraph/Paragraph.js +3 -19
  208. package/paragraph/Paragraph.stories.tsx +0 -17
  209. package/password-input/PasswordInput.accessibility.test.js +153 -0
  210. package/password-input/PasswordInput.js +32 -54
  211. package/password-input/PasswordInput.stories.tsx +1 -34
  212. package/password-input/PasswordInput.test.js +153 -129
  213. package/password-input/types.d.ts +8 -7
  214. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  215. package/progress-bar/ProgressBar.js +26 -56
  216. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  217. package/progress-bar/ProgressBar.test.js +35 -52
  218. package/progress-bar/types.d.ts +3 -3
  219. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  220. package/quick-nav/QuickNav.js +4 -27
  221. package/quick-nav/QuickNav.stories.tsx +1 -1
  222. package/quick-nav/types.d.ts +10 -10
  223. package/radio-group/Radio.d.ts +1 -1
  224. package/radio-group/Radio.js +22 -54
  225. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  226. package/radio-group/RadioGroup.js +38 -83
  227. package/radio-group/RadioGroup.stories.tsx +10 -10
  228. package/radio-group/RadioGroup.test.js +504 -470
  229. package/radio-group/types.d.ts +8 -8
  230. package/resultset-table/Icons.d.ts +7 -0
  231. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  232. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  233. package/resultset-table/ResultsetTable.d.ts +7 -0
  234. package/{resultsetTable → resultset-table}/ResultsetTable.js +45 -69
  235. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +118 -5
  236. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +148 -92
  237. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  238. package/resultset-table/types.js +5 -0
  239. package/select/Listbox.js +40 -54
  240. package/select/Option.js +28 -36
  241. package/select/Select.accessibility.test.js +228 -0
  242. package/select/Select.js +107 -171
  243. package/select/Select.stories.tsx +59 -111
  244. package/select/Select.test.js +1895 -1858
  245. package/select/types.d.ts +15 -16
  246. package/sidenav/Sidenav.accessibility.test.js +59 -0
  247. package/sidenav/Sidenav.js +44 -81
  248. package/sidenav/Sidenav.stories.tsx +4 -9
  249. package/sidenav/Sidenav.test.js +3 -10
  250. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  251. package/{layout → sidenav}/SidenavContext.js +3 -9
  252. package/sidenav/types.d.ts +20 -20
  253. package/slider/Slider.accessibility.test.js +104 -0
  254. package/slider/Slider.js +70 -126
  255. package/slider/Slider.test.js +107 -103
  256. package/slider/types.d.ts +4 -4
  257. package/spinner/Spinner.accessibility.test.js +96 -0
  258. package/spinner/Spinner.js +21 -55
  259. package/spinner/Spinner.test.js +25 -34
  260. package/spinner/types.d.ts +3 -3
  261. package/status-light/StatusLight.accessibility.test.js +157 -0
  262. package/status-light/StatusLight.d.ts +4 -0
  263. package/status-light/StatusLight.js +51 -0
  264. package/status-light/StatusLight.stories.tsx +74 -0
  265. package/status-light/StatusLight.test.js +25 -0
  266. package/status-light/types.d.ts +17 -0
  267. package/status-light/types.js +5 -0
  268. package/switch/Switch.accessibility.test.js +98 -0
  269. package/switch/Switch.js +49 -97
  270. package/switch/Switch.stories.tsx +12 -34
  271. package/switch/Switch.test.js +51 -96
  272. package/switch/types.d.ts +4 -4
  273. package/table/DropdownTheme.js +62 -0
  274. package/table/Table.accessibility.test.js +93 -0
  275. package/table/Table.d.ts +6 -2
  276. package/table/Table.js +76 -33
  277. package/table/{Table.stories.jsx → Table.stories.tsx} +309 -2
  278. package/table/Table.test.js +93 -6
  279. package/table/types.d.ts +34 -6
  280. package/tabs/Tab.js +22 -37
  281. package/tabs/Tabs.accessibility.test.js +56 -0
  282. package/tabs/Tabs.js +59 -147
  283. package/tabs/Tabs.stories.tsx +8 -4
  284. package/tabs/Tabs.test.js +57 -131
  285. package/tabs/types.d.ts +21 -21
  286. package/tag/Tag.accessibility.test.js +69 -0
  287. package/tag/Tag.js +27 -57
  288. package/tag/Tag.stories.tsx +4 -7
  289. package/tag/Tag.test.js +17 -36
  290. package/tag/types.d.ts +9 -9
  291. package/text-input/Suggestion.js +9 -26
  292. package/text-input/Suggestions.d.ts +1 -1
  293. package/text-input/Suggestions.js +30 -70
  294. package/text-input/TextInput.accessibility.test.js +321 -0
  295. package/text-input/TextInput.js +203 -289
  296. package/text-input/TextInput.stories.tsx +65 -160
  297. package/text-input/TextInput.test.js +1227 -1194
  298. package/text-input/types.d.ts +25 -17
  299. package/textarea/Textarea.accessibility.test.js +155 -0
  300. package/textarea/Textarea.js +68 -109
  301. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  302. package/textarea/Textarea.test.js +150 -179
  303. package/textarea/types.d.ts +9 -5
  304. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  305. package/toggle-group/ToggleGroup.js +25 -64
  306. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  307. package/toggle-group/ToggleGroup.test.js +48 -81
  308. package/toggle-group/types.d.ts +12 -12
  309. package/typography/Typography.accessibility.test.js +339 -0
  310. package/typography/Typography.js +4 -13
  311. package/typography/types.d.ts +1 -1
  312. package/useTheme.d.ts +43 -141
  313. package/useTheme.js +1 -8
  314. package/useTranslatedLabels.js +1 -7
  315. package/utils/BaseTypography.d.ts +2 -2
  316. package/utils/BaseTypography.js +16 -30
  317. package/utils/FocusLock.js +25 -39
  318. package/wizard/Wizard.accessibility.test.js +55 -0
  319. package/wizard/Wizard.js +27 -73
  320. package/wizard/Wizard.stories.tsx +19 -0
  321. package/wizard/Wizard.test.js +53 -80
  322. package/wizard/types.d.ts +8 -8
  323. package/common/OpenSans.css +0 -69
  324. package/common/fonts/OpenSans-Bold.ttf +0 -0
  325. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  326. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  327. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  328. package/common/fonts/OpenSans-Italic.ttf +0 -0
  329. package/common/fonts/OpenSans-Light.ttf +0 -0
  330. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  331. package/common/fonts/OpenSans-Regular.ttf +0 -0
  332. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  333. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  334. package/date-input/Icons.d.ts +0 -6
  335. package/date-input/Icons.js +0 -75
  336. package/paginator/Icons.d.ts +0 -5
  337. package/paginator/Icons.js +0 -54
  338. package/password-input/Icons.d.ts +0 -6
  339. package/password-input/Icons.js +0 -39
  340. package/resultsetTable/Icons.d.ts +0 -7
  341. package/resultsetTable/ResultsetTable.d.ts +0 -4
  342. package/select/Icons.d.ts +0 -10
  343. package/select/Icons.js +0 -93
  344. package/sidenav/Icons.d.ts +0 -7
  345. package/sidenav/Icons.js +0 -51
  346. package/slider/Slider.stories.tsx +0 -240
  347. package/text-input/Icons.d.ts +0 -8
  348. package/text-input/Icons.js +0 -60
  349. /package/{resultsetTable → action-icon}/types.js +0 -0
  350. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
@@ -1,43 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
5
6
  var _react = _interopRequireDefault(require("react"));
6
-
7
7
  var _react2 = require("@testing-library/react");
8
-
9
8
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
-
11
9
  var _Textarea = _interopRequireDefault(require("./Textarea.tsx"));
12
-
13
10
  describe("Textarea component tests", function () {
14
11
  test("Renders with correct label", function () {
15
12
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
16
- label: "Example label"
17
- })),
18
- getByText = _render.getByText;
19
-
13
+ label: "Example label"
14
+ })),
15
+ getByText = _render.getByText;
20
16
  expect(getByText("Example label")).toBeTruthy();
21
17
  });
22
18
  test("Renders with correct label and helper text", function () {
23
19
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
24
- label: "Example label",
25
- helperText: "Example helper text"
26
- })),
27
- getByText = _render2.getByText;
28
-
20
+ label: "Example label",
21
+ helperText: "Example helper text"
22
+ })),
23
+ getByText = _render2.getByText;
29
24
  expect(getByText("Example label")).toBeTruthy();
30
25
  expect(getByText("Example helper text")).toBeTruthy();
31
26
  });
32
27
  test("Renders with correct label and optional", function () {
33
28
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
34
- label: "Example label",
35
- helperText: "Example helper text",
36
- optional: true
37
- })),
38
- getByText = _render3.getByText,
39
- getByRole = _render3.getByRole;
40
-
29
+ label: "Example label",
30
+ helperText: "Example helper text",
31
+ optional: true
32
+ })),
33
+ getByText = _render3.getByText,
34
+ getByRole = _render3.getByRole;
41
35
  var textarea = getByRole("textbox");
42
36
  expect(getByText("Example label")).toBeTruthy();
43
37
  expect(getByText("(Optional)")).toBeTruthy();
@@ -46,21 +40,19 @@ describe("Textarea component tests", function () {
46
40
  });
47
41
  test("Renders with correct placeholder", function () {
48
42
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
49
- placeholder: "Placeholder"
50
- })),
51
- getByRole = _render4.getByRole;
52
-
43
+ placeholder: "Placeholder"
44
+ })),
45
+ getByRole = _render4.getByRole;
53
46
  var textarea = getByRole("textbox");
54
47
  expect(textarea.getAttribute("placeholder")).toBe("Placeholder");
55
48
  });
56
49
  test("Renders with error message and correct aria attributes", function () {
57
50
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
58
- label: "Example label",
59
- error: "Error message."
60
- })),
61
- getByText = _render5.getByText,
62
- getByLabelText = _render5.getByLabelText;
63
-
51
+ label: "Example label",
52
+ error: "Error message."
53
+ })),
54
+ getByText = _render5.getByText,
55
+ getByLabelText = _render5.getByLabelText;
64
56
  var textarea = getByLabelText("Example label");
65
57
  var errorMessage = getByText("Error message.");
66
58
  expect(errorMessage).toBeTruthy();
@@ -70,20 +62,18 @@ describe("Textarea component tests", function () {
70
62
  });
71
63
  test("Renders with correct default rows", function () {
72
64
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
73
- label: "Example label",
74
- rows: 10
75
- })),
76
- getByLabelText = _render6.getByLabelText;
77
-
65
+ label: "Example label",
66
+ rows: 10
67
+ })),
68
+ getByLabelText = _render6.getByLabelText;
78
69
  var textarea = getByLabelText("Example label");
79
70
  expect(textarea.rows).toBe(10);
80
71
  });
81
- test("Renders with correct accesibility attributes", function () {
72
+ test("Renders with correct accessibility attributes", function () {
82
73
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
83
- label: "Example label"
84
- })),
85
- getByLabelText = _render7.getByLabelText;
86
-
74
+ label: "Example label"
75
+ })),
76
+ getByLabelText = _render7.getByLabelText;
87
77
  var textarea = getByLabelText("Example label");
88
78
  expect(textarea.getAttribute("aria-invalid")).toBe("false");
89
79
  expect(textarea.getAttribute("aria-describedBy")).toBeNull();
@@ -91,63 +81,96 @@ describe("Textarea component tests", function () {
91
81
  });
92
82
  test("Renders with correct initial value", function () {
93
83
  var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
94
- label: "Example label",
95
- placeholder: "Placeholder",
96
- defaultValue: "Example text"
97
- })),
98
- getByLabelText = _render8.getByLabelText;
99
-
84
+ label: "Example label",
85
+ placeholder: "Placeholder",
86
+ defaultValue: "Example text"
87
+ })),
88
+ getByLabelText = _render8.getByLabelText;
100
89
  var textarea = getByLabelText("Example label");
101
90
  expect(textarea.value).toBe("Example text");
102
91
  });
103
92
  test("Disabled textarea can not be modified", function () {
104
93
  var onChange = jest.fn();
105
-
106
94
  var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
107
- label: "Example label",
108
- onChange: onChange,
109
- disabled: true
110
- })),
111
- getByLabelText = _render9.getByLabelText;
112
-
95
+ label: "Example label",
96
+ onChange: onChange,
97
+ disabled: true
98
+ })),
99
+ getByLabelText = _render9.getByLabelText;
100
+ var textarea = getByLabelText("Example label");
101
+ _userEvent["default"].type(textarea, "Test");
102
+ expect(onChange).not.toHaveBeenCalled();
103
+ });
104
+ test("Read-only textarea does not trigger onChange function", function () {
105
+ var onChange = jest.fn();
106
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
107
+ label: "Example label",
108
+ onChange: onChange,
109
+ readOnly: true
110
+ })),
111
+ getByLabelText = _render10.getByLabelText;
113
112
  var textarea = getByLabelText("Example label");
114
-
115
113
  _userEvent["default"].type(textarea, "Test");
116
-
117
114
  expect(onChange).not.toHaveBeenCalled();
118
115
  });
116
+ test("Read-only textarea sends its value on submit", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
117
+ var handlerOnSubmit, _render11, getByText, submit;
118
+ return _regenerator["default"].wrap(function _callee$(_context) {
119
+ while (1) switch (_context.prev = _context.next) {
120
+ case 0:
121
+ handlerOnSubmit = jest.fn(function (e) {
122
+ e.preventDefault();
123
+ var formData = new FormData(e.target);
124
+ var formProps = Object.fromEntries(formData);
125
+ expect(formProps).toStrictEqual({
126
+ data: "Comments"
127
+ });
128
+ });
129
+ _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
130
+ onSubmit: handlerOnSubmit
131
+ }, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
132
+ label: "Example label",
133
+ name: "data",
134
+ defaultValue: "Comments",
135
+ readOnly: true
136
+ }), /*#__PURE__*/_react["default"].createElement("button", {
137
+ type: "submit"
138
+ }, "Submit"))), getByText = _render11.getByText;
139
+ submit = getByText("Submit");
140
+ _context.next = 5;
141
+ return _userEvent["default"].click(submit);
142
+ case 5:
143
+ expect(handlerOnSubmit).toHaveBeenCalled();
144
+ case 6:
145
+ case "end":
146
+ return _context.stop();
147
+ }
148
+ }, _callee);
149
+ })));
119
150
  test("Not optional constraint (onBlur)", function () {
120
151
  var onChange = jest.fn();
121
152
  var onBlur = jest.fn();
122
-
123
- var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
124
- label: "Example label",
125
- placeholder: "Placeholder",
126
- onChange: onChange,
127
- onBlur: onBlur
128
- })),
129
- getByLabelText = _render10.getByLabelText;
130
-
153
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
154
+ label: "Example label",
155
+ placeholder: "Placeholder",
156
+ onChange: onChange,
157
+ onBlur: onBlur
158
+ })),
159
+ getByLabelText = _render12.getByLabelText;
131
160
  var textarea = getByLabelText("Example label");
132
-
133
161
  _react2.fireEvent.focus(textarea);
134
-
135
162
  _react2.fireEvent.blur(textarea);
136
-
137
163
  expect(onBlur).toHaveBeenCalled();
138
164
  expect(onBlur).toHaveBeenCalledWith({
139
165
  value: "",
140
166
  error: "This field is required. Please, enter a value."
141
167
  });
142
-
143
168
  _react2.fireEvent.change(textarea, {
144
169
  target: {
145
170
  value: "Test"
146
171
  }
147
172
  });
148
-
149
173
  _react2.fireEvent.blur(textarea);
150
-
151
174
  expect(onBlur).toHaveBeenCalled();
152
175
  expect(onBlur).toHaveBeenCalledWith({
153
176
  value: "Test"
@@ -155,31 +178,24 @@ describe("Textarea component tests", function () {
155
178
  });
156
179
  test("Not optional constraint (onChange)", function () {
157
180
  var onChange = jest.fn();
158
-
159
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
160
- label: "Example label",
161
- placeholder: "Placeholder",
162
- onChange: onChange
163
- })),
164
- getByLabelText = _render11.getByLabelText;
165
-
181
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
182
+ label: "Example label",
183
+ placeholder: "Placeholder",
184
+ onChange: onChange
185
+ })),
186
+ getByLabelText = _render13.getByLabelText;
166
187
  var textarea = getByLabelText("Example label");
167
-
168
188
  _react2.fireEvent.focus(textarea);
169
-
170
189
  _react2.fireEvent.change(textarea, {
171
190
  target: {
172
191
  value: "Test"
173
192
  }
174
193
  });
175
-
176
194
  expect(onChange).toHaveBeenCalled();
177
195
  expect(onChange).toHaveBeenCalledWith({
178
196
  value: "Test"
179
197
  });
180
-
181
198
  _userEvent["default"].clear(textarea);
182
-
183
199
  expect(onChange).toHaveBeenCalled();
184
200
  expect(onChange).toHaveBeenCalledWith({
185
201
  value: "",
@@ -189,57 +205,46 @@ describe("Textarea component tests", function () {
189
205
  test("Pattern constraint", function () {
190
206
  var onChange = jest.fn();
191
207
  var onBlur = jest.fn();
192
-
193
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
194
- label: "Example label",
195
- placeholder: "Placeholder",
196
- onChange: onChange,
197
- onBlur: onBlur,
198
- margin: {
199
- left: "medium",
200
- right: "medium"
201
- },
202
- pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$"
203
- })),
204
- getByLabelText = _render12.getByLabelText;
205
-
208
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
209
+ label: "Example label",
210
+ placeholder: "Placeholder",
211
+ onChange: onChange,
212
+ onBlur: onBlur,
213
+ margin: {
214
+ left: "medium",
215
+ right: "medium"
216
+ },
217
+ pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$"
218
+ })),
219
+ getByLabelText = _render14.getByLabelText;
206
220
  var textarea = getByLabelText("Example label");
207
-
208
221
  _react2.fireEvent.change(textarea, {
209
222
  target: {
210
223
  value: "pattern test"
211
224
  }
212
225
  });
213
-
214
226
  expect(onChange).toHaveBeenCalled();
215
227
  expect(onChange).toHaveBeenCalledWith({
216
228
  value: "pattern test",
217
229
  error: "Please match the format requested."
218
230
  });
219
-
220
231
  _react2.fireEvent.blur(textarea);
221
-
222
232
  expect(onBlur).toHaveBeenCalled();
223
233
  expect(onBlur).toHaveBeenCalledWith({
224
234
  value: "pattern test",
225
235
  error: "Please match the format requested."
226
236
  });
227
-
228
237
  _userEvent["default"].clear(textarea);
229
-
230
238
  _react2.fireEvent.change(textarea, {
231
239
  target: {
232
240
  value: "pattern4&"
233
241
  }
234
242
  });
235
-
236
243
  expect(onChange).toHaveBeenCalled();
237
244
  expect(onChange).toHaveBeenCalledWith({
238
245
  value: "pattern4&"
239
246
  });
240
-
241
247
  _react2.fireEvent.blur(textarea);
242
-
243
248
  expect(onBlur).toHaveBeenCalled();
244
249
  expect(onBlur).toHaveBeenCalledWith({
245
250
  value: "pattern4&"
@@ -248,58 +253,47 @@ describe("Textarea component tests", function () {
248
253
  test("Length constraint", function () {
249
254
  var onChange = jest.fn();
250
255
  var onBlur = jest.fn();
251
-
252
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
253
- label: "Example label",
254
- placeholder: "Placeholder",
255
- onChange: onChange,
256
- onBlur: onBlur,
257
- margin: {
258
- left: "medium",
259
- right: "medium"
260
- },
261
- minLength: 5,
262
- maxLength: 10
263
- })),
264
- getByLabelText = _render13.getByLabelText;
265
-
256
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
257
+ label: "Example label",
258
+ placeholder: "Placeholder",
259
+ onChange: onChange,
260
+ onBlur: onBlur,
261
+ margin: {
262
+ left: "medium",
263
+ right: "medium"
264
+ },
265
+ minLength: 5,
266
+ maxLength: 10
267
+ })),
268
+ getByLabelText = _render15.getByLabelText;
266
269
  var textarea = getByLabelText("Example label");
267
-
268
270
  _react2.fireEvent.change(textarea, {
269
271
  target: {
270
272
  value: "test"
271
273
  }
272
274
  });
273
-
274
275
  expect(onChange).toHaveBeenCalled();
275
276
  expect(onChange).toHaveBeenCalledWith({
276
277
  value: "test",
277
278
  error: "Min length 5, max length 10."
278
279
  });
279
-
280
280
  _react2.fireEvent.blur(textarea);
281
-
282
281
  expect(onBlur).toHaveBeenCalled();
283
282
  expect(onBlur).toHaveBeenCalledWith({
284
283
  value: "test",
285
284
  error: "Min length 5, max length 10."
286
285
  });
287
-
288
286
  _userEvent["default"].clear(textarea);
289
-
290
287
  _react2.fireEvent.change(textarea, {
291
288
  target: {
292
289
  value: "length"
293
290
  }
294
291
  });
295
-
296
292
  expect(onChange).toHaveBeenCalled();
297
293
  expect(onChange).toHaveBeenCalledWith({
298
294
  value: "length"
299
295
  });
300
-
301
296
  _react2.fireEvent.blur(textarea);
302
-
303
297
  expect(onBlur).toHaveBeenCalled();
304
298
  expect(onBlur).toHaveBeenCalledWith({
305
299
  value: "length"
@@ -308,77 +302,63 @@ describe("Textarea component tests", function () {
308
302
  test("Pattern and length constraints", function () {
309
303
  var onChange = jest.fn();
310
304
  var onBlur = jest.fn();
311
-
312
- var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
313
- label: "Example label",
314
- placeholder: "Placeholder",
315
- onChange: onChange,
316
- onBlur: onBlur,
317
- margin: {
318
- left: "medium",
319
- right: "medium"
320
- },
321
- pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$",
322
- minLength: 5,
323
- maxLength: 10
324
- })),
325
- getByLabelText = _render14.getByLabelText;
326
-
305
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
306
+ label: "Example label",
307
+ placeholder: "Placeholder",
308
+ onChange: onChange,
309
+ onBlur: onBlur,
310
+ margin: {
311
+ left: "medium",
312
+ right: "medium"
313
+ },
314
+ pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$",
315
+ minLength: 5,
316
+ maxLength: 10
317
+ })),
318
+ getByLabelText = _render16.getByLabelText;
327
319
  var textarea = getByLabelText("Example label");
328
-
329
320
  _react2.fireEvent.change(textarea, {
330
321
  target: {
331
322
  value: "test"
332
323
  }
333
324
  });
334
-
335
325
  expect(onChange).toHaveBeenCalled();
336
326
  expect(onChange).toHaveBeenCalledWith({
337
327
  value: "test",
338
328
  error: "Min length 5, max length 10."
339
329
  });
340
-
341
330
  _react2.fireEvent.blur(textarea);
342
-
343
331
  expect(onBlur).toHaveBeenCalled();
344
332
  expect(onBlur).toHaveBeenCalledWith({
345
333
  value: "test",
346
334
  error: "Min length 5, max length 10."
347
335
  });
348
-
349
336
  _react2.fireEvent.change(textarea, {
350
337
  target: {
351
338
  value: "tests"
352
339
  }
353
340
  });
354
-
355
341
  expect(onChange).toHaveBeenCalled();
356
342
  expect(onChange).toHaveBeenCalledWith({
357
343
  value: "tests",
358
344
  error: "Please match the format requested."
359
345
  });
360
-
361
346
  _react2.fireEvent.blur(textarea);
362
-
363
347
  expect(onBlur).toHaveBeenCalled();
364
348
  expect(onBlur).toHaveBeenCalledWith({
365
349
  value: "tests",
366
350
  error: "Please match the format requested."
367
351
  });
368
-
369
352
  _react2.fireEvent.change(textarea, {
370
353
  target: {
371
354
  value: "tests4&"
372
355
  }
373
356
  });
374
-
375
357
  expect(onChange).toHaveBeenCalled();
376
358
  expect(onChange).toHaveBeenCalledWith({
377
359
  value: "tests4&"
378
360
  });
379
-
380
361
  _react2.fireEvent.blur(textarea);
381
-
382
362
  expect(onBlur).toHaveBeenCalled();
383
363
  expect(onBlur).toHaveBeenCalledWith({
384
364
  value: "tests4&"
@@ -386,23 +366,18 @@ describe("Textarea component tests", function () {
386
366
  });
387
367
  test("onBlur function is called correctly", function () {
388
368
  var onBlur = jest.fn();
389
-
390
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
391
- label: "Example label",
392
- onBlur: onBlur
393
- })),
394
- getByLabelText = _render15.getByLabelText;
395
-
369
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
370
+ label: "Example label",
371
+ onBlur: onBlur
372
+ })),
373
+ getByLabelText = _render17.getByLabelText;
396
374
  var textarea = getByLabelText("Example label");
397
-
398
375
  _react2.fireEvent.change(textarea, {
399
376
  target: {
400
377
  value: "Blur test"
401
378
  }
402
379
  });
403
-
404
380
  _react2.fireEvent.blur(textarea);
405
-
406
381
  expect(onBlur).toHaveBeenCalled();
407
382
  expect(onBlur).toHaveBeenCalledWith({
408
383
  value: "Blur test"
@@ -410,22 +385,18 @@ describe("Textarea component tests", function () {
410
385
  });
411
386
  test("onChange function is called correctly", function () {
412
387
  var onChange = jest.fn();
413
-
414
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
415
- label: "Example label",
416
- value: "Test value",
417
- onChange: onChange
418
- })),
419
- getByLabelText = _render16.getByLabelText;
420
-
388
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
389
+ label: "Example label",
390
+ value: "Test value",
391
+ onChange: onChange
392
+ })),
393
+ getByLabelText = _render18.getByLabelText;
421
394
  var textarea = getByLabelText("Example label");
422
-
423
395
  _react2.fireEvent.change(textarea, {
424
396
  target: {
425
397
  value: "Controlled test"
426
398
  }
427
399
  });
428
-
429
400
  expect(onChange).toHaveBeenCalled();
430
401
  expect(onChange).toHaveBeenCalledWith({
431
402
  value: "Controlled test"
@@ -1,11 +1,11 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Margin = {
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- declare type Props = {
8
+ type Props = {
9
9
  /**
10
10
  * Text to be placed above the textarea.
11
11
  */
@@ -34,6 +34,10 @@ declare type Props = {
34
34
  * If true, the component will be disabled.
35
35
  */
36
36
  disabled?: boolean;
37
+ /**
38
+ * If true, the component will not be mutable, meaning the user can not edit the control.
39
+ */
40
+ readOnly?: boolean;
37
41
  /**
38
42
  * If true, the textarea will be optional, showing '(Optional)'
39
43
  * next to the label. Otherwise, the field will be considered required
@@ -92,7 +96,7 @@ declare type Props = {
92
96
  */
93
97
  pattern?: string;
94
98
  /**
95
- * Specifies the minimun length allowed by the textarea.
99
+ * Specifies the minimum length allowed by the textarea.
96
100
  * This will be checked both when the textarea loses the
97
101
  * focus and while typing within it. If the string entered does not
98
102
  * comply the minimum length, the onBlur and onChange functions will be called
@@ -133,5 +137,5 @@ declare type Props = {
133
137
  /**
134
138
  * Reference to the component.
135
139
  */
136
- export declare type RefType = HTMLDivElement;
140
+ export type RefType = HTMLDivElement;
137
141
  export default Props;