@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
@@ -8,68 +8,50 @@ var _react2 = require("@testing-library/react");
8
8
 
9
9
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
10
 
11
- var _NumberInput = _interopRequireDefault(require("./NumberInput"));
11
+ var _NumberInput = _interopRequireDefault(require("./NumberInput.tsx"));
12
12
 
13
13
  describe("Number input component tests", function () {
14
- test("Number input renders with label", function () {
14
+ test("Number input renders with label, helper text, placeholder and increment/decrement action buttons", function () {
15
15
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
16
- label: "Number input label"
16
+ label: "Number input label",
17
+ helperText: "Helper text",
18
+ placeholder: "Placeholder"
17
19
  })),
18
- getByText = _render.getByText;
20
+ getByLabelText = _render.getByLabelText,
21
+ getByText = _render.getByText,
22
+ queryAllByRole = _render.queryAllByRole;
19
23
 
24
+ var number = getByLabelText("Number input label");
20
25
  expect(getByText("Number input label")).toBeTruthy();
21
- });
22
- test("Number input renders with helper text", function () {
23
- var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
24
- helperText: "Helper text"
25
- })),
26
- getByText = _render2.getByText;
27
-
28
26
  expect(getByText("Helper text")).toBeTruthy();
29
- });
30
- test("Number input renders with placeholder", function () {
31
- var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
32
- label: "Number label",
33
- placeholder: "Placeholder"
34
- })),
35
- getByLabelText = _render3.getByLabelText;
36
-
37
- var number = getByLabelText("Number label");
38
27
  expect(number.getAttribute("placeholder")).toBe("Placeholder");
39
- });
40
- test("Number input renders increment and decrement buttons", function () {
41
- var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
42
- label: "Number label"
43
- })),
44
- queryAllByRole = _render4.queryAllByRole;
45
-
46
28
  expect(queryAllByRole("button").length).toBe(2);
47
29
  });
48
30
  test("Number input buttons' tooltip is correct", function () {
49
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
31
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
50
32
  label: "Number label"
51
33
  })),
52
- getByTitle = _render5.getByTitle;
34
+ getByTitle = _render2.getByTitle;
53
35
 
54
36
  expect(getByTitle("Decrement value")).toBeTruthy();
55
37
  expect(getByTitle("Increment value")).toBeTruthy();
56
38
  });
57
39
  test("Number input is disabled", function () {
58
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
40
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
59
41
  label: "Number label",
60
42
  disabled: true
61
43
  })),
62
- getByLabelText = _render6.getByLabelText;
44
+ getByLabelText = _render3.getByLabelText;
63
45
 
64
46
  var number = getByLabelText("Number label");
65
47
  expect(number.disabled).toBeTruthy();
66
48
  });
67
49
  test("Number input is optional", function () {
68
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
50
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
69
51
  label: "Number label",
70
52
  optional: true
71
53
  })),
72
- getByText = _render7.getByText;
54
+ getByText = _render4.getByText;
73
55
 
74
56
  expect(getByText("(Optional)")).toBeTruthy();
75
57
  });
@@ -77,19 +59,20 @@ describe("Number input component tests", function () {
77
59
  var onBlur = jest.fn();
78
60
  var onChange = jest.fn();
79
61
 
80
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
62
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
63
+ label: "Number input label",
81
64
  onBlur: onBlur,
82
65
  onChange: onChange
83
66
  })),
84
- getByRole = _render8.getByRole;
67
+ getByLabelText = _render5.getByLabelText;
85
68
 
86
- var input = getByRole("textbox");
69
+ var number = getByLabelText("Number input label");
87
70
 
88
- _userEvent["default"].type(input, "1");
71
+ _userEvent["default"].type(number, "1");
89
72
 
90
- _userEvent["default"].clear(input);
73
+ _userEvent["default"].clear(number);
91
74
 
92
- _react2.fireEvent.blur(input);
75
+ _react2.fireEvent.blur(number);
93
76
 
94
77
  expect(onBlur).toHaveBeenCalled();
95
78
  expect(onBlur).toHaveBeenCalledWith({
@@ -102,87 +85,85 @@ describe("Number input component tests", function () {
102
85
  error: "This field is required. Please, enter a value."
103
86
  });
104
87
  });
105
- test("Suffix and prefix must be shown)", function () {
106
- var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
88
+ test("Suffix and prefix must be shown", function () {
89
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
107
90
  label: "Number input label",
108
91
  prefix: "+34",
109
92
  suffix: "USD"
110
93
  })),
111
- getByText = _render9.getByText;
94
+ getByText = _render6.getByText;
112
95
 
113
96
  expect(getByText("+34")).toBeTruthy();
114
97
  expect(getByText("USD")).toBeTruthy();
115
98
  });
116
99
  test("Invalid number input renders error", function () {
117
- var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
100
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
118
101
  error: "Error message."
119
102
  })),
120
- getByText = _render10.getByText;
103
+ getByText = _render7.getByText;
121
104
 
122
105
  expect(getByText("Error message.")).toBeTruthy();
123
106
  });
124
107
  test("onChange function is called correctly", function () {
125
108
  var onChange = jest.fn();
126
109
 
127
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
110
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
128
111
  label: "Number input label",
129
112
  onChange: onChange
130
113
  })),
131
- getByLabelText = _render11.getByLabelText;
114
+ getByLabelText = _render8.getByLabelText;
132
115
 
133
116
  var number = getByLabelText("Number input label");
134
117
 
135
118
  _userEvent["default"].type(number, "t");
136
119
 
137
120
  expect(onChange).not.toHaveBeenCalledWith({
138
- value: "t",
139
- error: null
121
+ value: "t"
140
122
  });
141
123
  expect(number.value).toBe("");
142
124
 
143
125
  _userEvent["default"].type(number, "1");
144
126
 
145
127
  expect(onChange).toHaveBeenCalledWith({
146
- value: "1",
147
- error: null
128
+ value: "1"
148
129
  });
149
130
  expect(number.value).toBe("1");
150
131
  });
151
- test("Error message is shown if the value is less than the min value", function () {
132
+ test("Error message is shown if the typed value is less than the min value", function () {
152
133
  var onChange = jest.fn(function (_ref) {
153
134
  var value = _ref.value,
154
135
  error = _ref.error;
155
- expect(value).toBe("1");
156
- expect(error).toBe("Value must be greater than or equal to 5.");
136
+ expect(value).toBe("-1");
137
+ expect(error).toBe("Value must be greater than or equal to 0.");
157
138
  });
158
139
  var onBlur = jest.fn(function (_ref2) {
159
140
  var value = _ref2.value,
160
141
  error = _ref2.error;
161
- expect(value).toBe("1");
162
- expect(error).toBe("Value must be greater than or equal to 5.");
142
+ expect(value).toBe("-1");
143
+ expect(error).toBe("Value must be greater than or equal to 0.");
163
144
  });
164
145
 
165
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
146
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
166
147
  label: "Number input label",
167
- min: 5,
148
+ min: 0,
168
149
  onBlur: onBlur,
169
150
  onChange: onChange
170
151
  })),
171
- getByLabelText = _render12.getByLabelText;
152
+ getByLabelText = _render9.getByLabelText;
172
153
 
173
154
  var number = getByLabelText("Number input label");
174
155
 
175
- _userEvent["default"].type(number, "1");
156
+ _userEvent["default"].type(number, "-1");
176
157
 
177
158
  _react2.fireEvent.blur(number);
178
159
  });
179
160
  test("Cannot decrement the value if it is less than the min value", function () {
180
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
161
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
181
162
  label: "Number input label",
182
163
  min: 5
183
164
  })),
184
- getByLabelText = _render13.getByLabelText,
185
- getAllByRole = _render13.getAllByRole;
165
+ getByLabelText = _render10.getByLabelText,
166
+ getAllByRole = _render10.getAllByRole;
186
167
 
187
168
  var number = getByLabelText("Number input label");
188
169
 
@@ -198,12 +179,12 @@ describe("Number input component tests", function () {
198
179
  expect(number.value).toBe("1");
199
180
  });
200
181
  test("Increment the value when it is less than the min value", function () {
201
- var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
182
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
202
183
  label: "Number input label",
203
184
  min: 5
204
185
  })),
205
- getByLabelText = _render14.getByLabelText,
206
- getAllByRole = _render14.getAllByRole;
186
+ getByLabelText = _render11.getByLabelText,
187
+ getAllByRole = _render11.getAllByRole;
207
188
 
208
189
  var number = getByLabelText("Number input label");
209
190
 
@@ -218,17 +199,17 @@ describe("Number input component tests", function () {
218
199
 
219
200
  expect(number.value).toBe("5");
220
201
  });
221
- test("Error message is shown if the value is greater than the max value", function () {
202
+ test("Error message is shown if the typed value is greater than the max value", function () {
222
203
  var onChange = jest.fn();
223
204
  var onBlur = jest.fn();
224
205
 
225
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
206
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
226
207
  label: "Number input label",
227
208
  max: 10,
228
209
  onBlur: onBlur,
229
210
  onChange: onChange
230
211
  })),
231
- getByLabelText = _render15.getByLabelText;
212
+ getByLabelText = _render12.getByLabelText;
232
213
 
233
214
  var number = getByLabelText("Number input label");
234
215
 
@@ -249,12 +230,12 @@ describe("Number input component tests", function () {
249
230
  });
250
231
  });
251
232
  test("Cannot increment the value if it is greater than the max value", function () {
252
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
233
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
253
234
  label: "Number input label",
254
235
  max: 10
255
236
  })),
256
- getByLabelText = _render16.getByLabelText,
257
- getAllByRole = _render16.getAllByRole;
237
+ getByLabelText = _render13.getByLabelText,
238
+ getAllByRole = _render13.getAllByRole;
258
239
 
259
240
  var number = getByLabelText("Number input label");
260
241
 
@@ -270,20 +251,20 @@ describe("Number input component tests", function () {
270
251
  expect(number.value).toBe("12");
271
252
  });
272
253
  test("Decrement the value when it is greater than the max value", function () {
273
- var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
254
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
274
255
  label: "Number input label",
275
256
  max: 10
276
257
  })),
277
- getByLabelText = _render17.getByLabelText,
278
- getAllByRole = _render17.getAllByRole;
258
+ getByLabelText = _render14.getByLabelText,
259
+ getAllByRole = _render14.getAllByRole;
279
260
 
280
261
  var number = getByLabelText("Number input label");
281
262
 
282
- _userEvent["default"].type(number, "12");
263
+ _userEvent["default"].type(number, "120");
283
264
 
284
265
  _react2.fireEvent.blur(number);
285
266
 
286
- expect(number.value).toBe("12");
267
+ expect(number.value).toBe("120");
287
268
  var decrement = getAllByRole("button")[0];
288
269
 
289
270
  _userEvent["default"].click(decrement);
@@ -291,13 +272,13 @@ describe("Number input component tests", function () {
291
272
  expect(number.value).toBe("10");
292
273
  });
293
274
  test("Increment and decrement the value with min and max values", function () {
294
- var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
275
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
295
276
  label: "Number input label",
296
277
  min: 5,
297
278
  max: 10
298
279
  })),
299
- getByLabelText = _render18.getByLabelText,
300
- getAllByRole = _render18.getAllByRole;
280
+ getByLabelText = _render15.getByLabelText,
281
+ getAllByRole = _render15.getAllByRole;
301
282
 
302
283
  var number = getByLabelText("Number input label");
303
284
 
@@ -333,13 +314,13 @@ describe("Number input component tests", function () {
333
314
 
334
315
  expect(number.value).toBe("10");
335
316
  });
336
- test("Increment and decrement the value with step", function () {
337
- var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
317
+ test("Increment and decrement the value with an integer step", function () {
318
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
338
319
  label: "Number input label",
339
320
  step: 5
340
321
  })),
341
- getByLabelText = _render19.getByLabelText,
342
- getAllByRole = _render19.getAllByRole;
322
+ getByLabelText = _render16.getByLabelText,
323
+ getAllByRole = _render16.getAllByRole;
343
324
 
344
325
  var number = getByLabelText("Number input label");
345
326
 
@@ -367,23 +348,56 @@ describe("Number input component tests", function () {
367
348
 
368
349
  expect(number.value).toBe("10");
369
350
  });
351
+ test("Increment and decrement the value with a decimal step", function () {
352
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
353
+ label: "Number input label",
354
+ step: 0.5
355
+ })),
356
+ getByLabelText = _render17.getByLabelText,
357
+ getAllByRole = _render17.getAllByRole;
358
+
359
+ var number = getByLabelText("Number input label");
360
+
361
+ _userEvent["default"].type(number, "-9");
362
+
363
+ _react2.fireEvent.blur(number);
364
+
365
+ expect(number.value).toBe("-9");
366
+ var increment = getAllByRole("button")[1];
367
+
368
+ _userEvent["default"].click(increment);
369
+
370
+ expect(number.value).toBe("-8.5");
371
+
372
+ _userEvent["default"].click(increment);
373
+
374
+ expect(number.value).toBe("-8");
375
+ var decrement = getAllByRole("button")[0];
376
+
377
+ _userEvent["default"].click(decrement);
378
+
379
+ _userEvent["default"].click(decrement);
380
+
381
+ _userEvent["default"].click(decrement);
382
+
383
+ expect(number.value).toBe("-9.5");
384
+
385
+ _userEvent["default"].click(decrement);
386
+
387
+ expect(number.value).toBe("-10");
388
+ });
370
389
  test("Increment and decrement the value with min, max and step", function () {
371
- var onBlur = jest.fn(function (_ref3) {
372
- var value = _ref3.value,
373
- error = _ref3.error;
374
- expect(value).toBe("1");
375
- expect(error).toBe("Value must be greater than or equal to 5.");
376
- });
390
+ var onBlur = jest.fn();
377
391
 
378
- var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
392
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
379
393
  label: "Number input label",
380
394
  min: 5,
381
395
  max: 20,
382
396
  step: 8,
383
397
  onBlur: onBlur
384
398
  })),
385
- getByLabelText = _render20.getByLabelText,
386
- getAllByRole = _render20.getAllByRole;
399
+ getByLabelText = _render18.getByLabelText,
400
+ getAllByRole = _render18.getAllByRole;
387
401
 
388
402
  var number = getByLabelText("Number input label");
389
403
 
@@ -391,6 +405,10 @@ describe("Number input component tests", function () {
391
405
 
392
406
  _react2.fireEvent.blur(number);
393
407
 
408
+ expect(onBlur).toHaveBeenCalledWith({
409
+ value: "1",
410
+ error: "Value must be greater than or equal to 5."
411
+ });
394
412
  var increment = getAllByRole("button")[1];
395
413
 
396
414
  _userEvent["default"].click(increment);
@@ -403,33 +421,194 @@ describe("Number input component tests", function () {
403
421
 
404
422
  _userEvent["default"].click(increment);
405
423
 
406
- expect(number.value).toBe("20");
424
+ expect(number.value).toBe("13");
407
425
 
408
426
  _userEvent["default"].click(increment);
409
427
 
410
- expect(number.value).toBe("20");
428
+ expect(number.value).toBe("13");
411
429
  var decrement = getAllByRole("button")[0];
412
430
 
413
431
  _userEvent["default"].click(decrement);
414
432
 
415
- expect(number.value).toBe("12");
433
+ expect(number.value).toBe("5");
416
434
 
417
435
  _userEvent["default"].click(decrement);
418
436
 
419
437
  expect(number.value).toBe("5");
420
438
 
421
439
  _userEvent["default"].click(decrement);
440
+ });
441
+ test("Start incrementing from 0 when the min value is less than 0 and the max value is bigger than 0", function () {
442
+ var onBlur = jest.fn();
422
443
 
423
- expect(number.value).toBe("5");
444
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
445
+ label: "Number input label",
446
+ min: -10,
447
+ max: 10,
448
+ step: 1,
449
+ onBlur: onBlur
450
+ })),
451
+ getByLabelText = _render19.getByLabelText,
452
+ getAllByRole = _render19.getAllByRole;
453
+
454
+ var number = getByLabelText("Number input label");
455
+ var increment = getAllByRole("button")[1];
456
+
457
+ _userEvent["default"].click(increment);
458
+
459
+ expect(number.value).toBe("1");
460
+
461
+ _userEvent["default"].click(increment);
462
+
463
+ expect(number.value).toBe("2");
424
464
  });
425
- test("Increment and decrement the value with min, max and step using the arrows in keyboard", function () {
465
+ test("Start incrementing from 0 when the min value is less than 0 and the max is 0", function () {
466
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
467
+ label: "Number input label",
468
+ min: -10,
469
+ max: 0,
470
+ step: 1
471
+ })),
472
+ getByLabelText = _render20.getByLabelText,
473
+ getAllByRole = _render20.getAllByRole;
474
+
475
+ var number = getByLabelText("Number input label");
476
+ var increment = getAllByRole("button")[1];
477
+
478
+ _userEvent["default"].click(increment);
479
+
480
+ expect(number.value).toBe("0");
481
+
482
+ _userEvent["default"].click(increment);
483
+
484
+ expect(number.value).toBe("0");
485
+ });
486
+ test("Start incrementing from the min value when it is bigger than 0", function () {
426
487
  var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
488
+ label: "Number input label",
489
+ min: 2,
490
+ max: 10,
491
+ step: 0.5
492
+ })),
493
+ getByLabelText = _render21.getByLabelText,
494
+ getAllByRole = _render21.getAllByRole;
495
+
496
+ var number = getByLabelText("Number input label");
497
+ var increment = getAllByRole("button")[1];
498
+
499
+ _userEvent["default"].click(increment);
500
+
501
+ expect(number.value).toBe("2");
502
+
503
+ _userEvent["default"].click(increment);
504
+
505
+ expect(number.value).toBe("2.5");
506
+ });
507
+ test("Start incrementing from the max value when it is less than 0", function () {
508
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
509
+ label: "Number input label",
510
+ min: -10,
511
+ max: -1,
512
+ step: 0.5
513
+ })),
514
+ getByLabelText = _render22.getByLabelText,
515
+ getAllByRole = _render22.getAllByRole;
516
+
517
+ var number = getByLabelText("Number input label");
518
+ var increment = getAllByRole("button")[1];
519
+
520
+ _userEvent["default"].click(increment);
521
+
522
+ expect(number.value).toBe("-1");
523
+
524
+ _userEvent["default"].click(increment);
525
+
526
+ expect(number.value).toBe("-1");
527
+ });
528
+ test("Start decrementing from 0 when the min value is less than 0 and the max value is bigger than 0", function () {
529
+ var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
530
+ label: "Number input label",
531
+ min: -10,
532
+ max: 10,
533
+ step: 1
534
+ })),
535
+ getByLabelText = _render23.getByLabelText,
536
+ getAllByRole = _render23.getAllByRole;
537
+
538
+ var number = getByLabelText("Number input label");
539
+ var decrement = getAllByRole("button")[0];
540
+
541
+ _userEvent["default"].click(decrement);
542
+
543
+ expect(number.value).toBe("-1");
544
+ });
545
+ test("Start decrementing from 0 when the min value is 0 and the max value is bigger than 0", function () {
546
+ var _render24 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
547
+ label: "Number input label",
548
+ min: 0,
549
+ max: 10,
550
+ step: 1
551
+ })),
552
+ getByLabelText = _render24.getByLabelText,
553
+ getAllByRole = _render24.getAllByRole;
554
+
555
+ var number = getByLabelText("Number input label");
556
+ var decrement = getAllByRole("button")[0];
557
+
558
+ _userEvent["default"].click(decrement);
559
+
560
+ expect(number.value).toBe("0");
561
+ });
562
+ test("Start decrementing from the min value when it is bigger than 0", function () {
563
+ var _render25 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
564
+ label: "Number input label",
565
+ min: 2,
566
+ max: 10,
567
+ step: 0.5
568
+ })),
569
+ getByLabelText = _render25.getByLabelText,
570
+ getAllByRole = _render25.getAllByRole;
571
+
572
+ var number = getByLabelText("Number input label");
573
+ var decrement = getAllByRole("button")[0];
574
+
575
+ _userEvent["default"].click(decrement);
576
+
577
+ expect(number.value).toBe("2");
578
+
579
+ _userEvent["default"].click(decrement);
580
+
581
+ expect(number.value).toBe("2");
582
+ });
583
+ test("Start decrementing from the max value when it is less than 0", function () {
584
+ var _render26 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
585
+ label: "Number input label",
586
+ min: -10,
587
+ max: -1,
588
+ step: 0.5
589
+ })),
590
+ getByLabelText = _render26.getByLabelText,
591
+ getAllByRole = _render26.getAllByRole;
592
+
593
+ var number = getByLabelText("Number input label");
594
+ var decrement = getAllByRole("button")[0];
595
+
596
+ _userEvent["default"].click(decrement);
597
+
598
+ expect(number.value).toBe("-1");
599
+
600
+ _userEvent["default"].click(decrement);
601
+
602
+ expect(number.value).toBe("-1.5");
603
+ });
604
+ test("Increment and decrement the value with min, max and step using the arrows in keyboard", function () {
605
+ var _render27 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
427
606
  label: "Number input label",
428
607
  min: 5,
429
608
  max: 20,
430
609
  step: 5
431
610
  })),
432
- getByLabelText = _render21.getByLabelText;
611
+ getByLabelText = _render27.getByLabelText;
433
612
 
434
613
  var number = getByLabelText("Number input label");
435
614
 
@@ -489,14 +668,15 @@ describe("Number input component tests", function () {
489
668
 
490
669
  expect(number.value).toBe("5");
491
670
  });
492
- test("Number has correct accesibility attributes", function () {
493
- var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
671
+ test("Number has correct accessibility attributes", function () {
672
+ var _render28 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
494
673
  label: "Number input label"
495
674
  })),
496
- getByLabelText = _render22.getByLabelText,
497
- getAllByRole = _render22.getAllByRole;
675
+ getByLabelText = _render28.getByLabelText,
676
+ getAllByRole = _render28.getAllByRole;
498
677
 
499
678
  var number = getByLabelText("Number input label");
679
+ expect(number.getAttribute("type")).toBe("number");
500
680
  expect(number.getAttribute("aria-autocomplete")).toBeNull();
501
681
  expect(number.getAttribute("aria-controls")).toBeNull();
502
682
  expect(number.getAttribute("aria-expanded")).toBeNull();
@@ -505,4 +685,41 @@ describe("Number input component tests", function () {
505
685
  var increment = getAllByRole("button")[1];
506
686
  expect(increment.getAttribute("aria-label")).toBe("Increment value");
507
687
  });
688
+ test("Number input submits correct values inside a form and actions don't trigger the submit event", function () {
689
+ var handlerOnSubmit = jest.fn(function (e) {
690
+ e.preventDefault();
691
+ var formData = new FormData(e.target);
692
+ var formProps = Object.fromEntries(formData);
693
+ expect(formProps).toStrictEqual({
694
+ data: "0"
695
+ });
696
+ });
697
+
698
+ var _render29 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
699
+ onSubmit: handlerOnSubmit
700
+ }, /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
701
+ label: "Number input label",
702
+ name: "data"
703
+ }), /*#__PURE__*/_react["default"].createElement("button", {
704
+ type: "submit"
705
+ }, "Submit"))),
706
+ getByText = _render29.getByText,
707
+ getAllByRole = _render29.getAllByRole;
708
+
709
+ var less = getAllByRole("button")[0];
710
+ var more = getAllByRole("button")[1];
711
+ var submit = getByText("Submit");
712
+
713
+ _userEvent["default"].click(more);
714
+
715
+ expect(handlerOnSubmit).not.toHaveBeenCalled();
716
+
717
+ _userEvent["default"].click(less);
718
+
719
+ expect(handlerOnSubmit).not.toHaveBeenCalled();
720
+
721
+ _userEvent["default"].click(submit);
722
+
723
+ expect(handlerOnSubmit).toHaveBeenCalled();
724
+ });
508
725
  });