@dxc-technology/halstack-react 0.0.0-4e9134c → 0.0.0-4ec6fe9

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 (212) hide show
  1. package/README.md +1 -1
  2. package/dist/ThemeContext.js +134 -100
  3. package/dist/V3Select/V3Select.js +549 -0
  4. package/dist/V3Select/index.d.ts +27 -0
  5. package/dist/V3Textarea/V3Textarea.js +264 -0
  6. package/dist/V3Textarea/index.d.ts +27 -0
  7. package/dist/accordion/Accordion.js +66 -59
  8. package/dist/accordion/index.d.ts +28 -0
  9. package/dist/accordion-group/AccordionGroup.js +1 -3
  10. package/dist/accordion-group/index.d.ts +16 -0
  11. package/dist/alert/Alert.js +126 -111
  12. package/dist/alert/index.d.ts +51 -0
  13. package/dist/box/Box.js +1 -9
  14. package/dist/box/index.d.ts +25 -0
  15. package/dist/button/Button.js +33 -27
  16. package/dist/button/index.d.ts +24 -0
  17. package/dist/card/index.d.ts +22 -0
  18. package/dist/checkbox/Checkbox.js +26 -21
  19. package/dist/checkbox/index.d.ts +24 -0
  20. package/dist/chip/Chip.js +21 -25
  21. package/dist/chip/index.d.ts +22 -0
  22. package/dist/common/variables.js +771 -547
  23. package/dist/date/Date.js +7 -9
  24. package/dist/date/index.d.ts +27 -0
  25. package/dist/{new-date/NewDate.js → date-input/DateInput.js} +77 -72
  26. package/dist/date-input/index.d.ts +95 -0
  27. package/dist/dialog/Dialog.js +15 -32
  28. package/dist/dialog/index.d.ts +18 -0
  29. package/dist/dropdown/Dropdown.js +108 -68
  30. package/dist/dropdown/index.d.ts +26 -0
  31. package/dist/file-input/FileInput.js +644 -0
  32. package/dist/file-input/FileItem.js +287 -0
  33. package/dist/file-input/index.d.ts +81 -0
  34. package/dist/footer/Footer.js +63 -49
  35. package/dist/footer/Icons.js +77 -0
  36. package/dist/footer/index.d.ts +25 -0
  37. package/dist/header/Header.js +123 -84
  38. package/dist/header/Icons.js +59 -0
  39. package/dist/header/index.d.ts +25 -0
  40. package/dist/heading/Heading.js +13 -5
  41. package/dist/heading/index.d.ts +17 -0
  42. package/dist/input-text/Icons.js +22 -0
  43. package/dist/input-text/InputText.js +93 -60
  44. package/dist/input-text/index.d.ts +36 -0
  45. package/dist/layout/ApplicationLayout.js +5 -9
  46. package/dist/layout/Icons.js +55 -0
  47. package/dist/link/Link.js +4 -8
  48. package/dist/link/index.d.ts +23 -0
  49. package/dist/main.d.ts +40 -0
  50. package/dist/main.js +38 -30
  51. package/dist/{number/Number.js → number-input/NumberInput.js} +13 -11
  52. package/dist/{number/NumberContext.js → number-input/NumberInputContext.js} +2 -2
  53. package/dist/number-input/index.d.ts +113 -0
  54. package/dist/paginator/Icons.js +66 -0
  55. package/dist/paginator/Paginator.js +60 -38
  56. package/dist/paginator/index.d.ts +20 -0
  57. package/dist/{password/Password.js → password-input/PasswordInput.js} +21 -14
  58. package/dist/password-input/index.d.ts +94 -0
  59. package/dist/progress-bar/ProgressBar.js +62 -26
  60. package/dist/progress-bar/index.d.ts +18 -0
  61. package/dist/radio/index.d.ts +23 -0
  62. package/dist/resultsetTable/index.d.ts +19 -0
  63. package/dist/select/Select.js +872 -339
  64. package/dist/select/index.d.ts +53 -0
  65. package/dist/sidenav/Sidenav.js +11 -15
  66. package/dist/sidenav/index.d.ts +13 -0
  67. package/dist/slider/Slider.js +155 -66
  68. package/dist/slider/index.d.ts +29 -0
  69. package/dist/spinner/Spinner.js +225 -58
  70. package/dist/spinner/index.d.ts +17 -0
  71. package/dist/switch/index.d.ts +24 -0
  72. package/dist/table/Table.js +5 -1
  73. package/dist/table/index.d.ts +13 -0
  74. package/dist/tabs/index.d.ts +19 -0
  75. package/dist/tag/Tag.js +37 -35
  76. package/dist/tag/index.d.ts +24 -0
  77. package/dist/{new-input-text/NewInputText.js → text-input/TextInput.js} +192 -175
  78. package/dist/text-input/index.d.ts +135 -0
  79. package/dist/textarea/Textarea.js +233 -124
  80. package/dist/textarea/index.d.ts +117 -0
  81. package/dist/toggle/index.d.ts +21 -0
  82. package/dist/toggle-group/ToggleGroup.js +130 -44
  83. package/dist/toggle-group/index.d.ts +21 -0
  84. package/dist/upload/buttons-upload/ButtonsUpload.js +12 -12
  85. package/dist/upload/buttons-upload/Icons.js +40 -0
  86. package/dist/upload/dragAndDropArea/DragAndDropArea.js +23 -19
  87. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  88. package/dist/upload/file-upload/FileToUpload.js +27 -22
  89. package/dist/upload/file-upload/Icons.js +66 -0
  90. package/dist/upload/index.d.ts +15 -0
  91. package/dist/upload/transaction/Icons.js +160 -0
  92. package/dist/upload/transaction/Transaction.js +18 -41
  93. package/dist/upload/transactions/Transactions.js +11 -11
  94. package/dist/wizard/Icons.js +65 -0
  95. package/dist/wizard/Wizard.js +11 -17
  96. package/dist/wizard/index.d.ts +18 -0
  97. package/package.json +6 -9
  98. package/test/Date.test.js +13 -11
  99. package/test/{NewDate.test.js → DateInput.test.js} +71 -29
  100. package/test/FileInput.test.js +201 -0
  101. package/test/Footer.test.js +2 -7
  102. package/test/Header.test.js +5 -10
  103. package/test/Heading.test.js +60 -12
  104. package/test/{Number.test.js → NumberInput.test.js} +85 -67
  105. package/test/Paginator.test.js +6 -2
  106. package/test/PasswordInput.test.js +83 -0
  107. package/test/ResultsetTable.test.js +6 -6
  108. package/test/Select.test.js +371 -148
  109. package/test/Slider.test.js +9 -17
  110. package/test/Spinner.test.js +5 -0
  111. package/test/{NewInputText.test.js → TextInput.test.js} +149 -234
  112. package/test/Textarea.test.js +193 -0
  113. package/test/ToggleGroup.test.js +5 -1
  114. package/test/Upload.test.js +1 -1
  115. package/test/V3Select.test.js +212 -0
  116. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  117. package/dist/accordion/Accordion.stories.js +0 -207
  118. package/dist/accordion/readme.md +0 -96
  119. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  120. package/dist/accordion-group/readme.md +0 -70
  121. package/dist/alert/Alert.stories.js +0 -158
  122. package/dist/alert/close.svg +0 -4
  123. package/dist/alert/error.svg +0 -4
  124. package/dist/alert/info.svg +0 -4
  125. package/dist/alert/readme.md +0 -43
  126. package/dist/alert/success.svg +0 -4
  127. package/dist/alert/warning.svg +0 -4
  128. package/dist/button/Button.stories.js +0 -224
  129. package/dist/button/readme.md +0 -93
  130. package/dist/checkbox/Checkbox.stories.js +0 -144
  131. package/dist/checkbox/readme.md +0 -116
  132. package/dist/date/Date.stories.js +0 -205
  133. package/dist/date/readme.md +0 -73
  134. package/dist/dialog/Dialog.stories.js +0 -217
  135. package/dist/dialog/readme.md +0 -32
  136. package/dist/dropdown/Dropdown.stories.js +0 -249
  137. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  138. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  139. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  140. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  141. package/dist/dropdown/readme.md +0 -69
  142. package/dist/footer/Footer.stories.js +0 -94
  143. package/dist/footer/dxc_logo.svg +0 -15
  144. package/dist/footer/readme.md +0 -41
  145. package/dist/header/Header.stories.js +0 -176
  146. package/dist/header/close_icon.svg +0 -1
  147. package/dist/header/dxc_logo_black.svg +0 -8
  148. package/dist/header/hamb_menu_black.svg +0 -1
  149. package/dist/header/hamb_menu_white.svg +0 -1
  150. package/dist/header/readme.md +0 -33
  151. package/dist/input-text/InputText.stories.js +0 -209
  152. package/dist/input-text/error.svg +0 -1
  153. package/dist/input-text/readme.md +0 -91
  154. package/dist/layout/facebook.svg +0 -45
  155. package/dist/layout/linkedin.svg +0 -50
  156. package/dist/layout/twitter.svg +0 -53
  157. package/dist/link/readme.md +0 -51
  158. package/dist/new-textarea/NewTextarea.js +0 -342
  159. package/dist/paginator/images/next.svg +0 -3
  160. package/dist/paginator/images/nextPage.svg +0 -3
  161. package/dist/paginator/images/previous.svg +0 -3
  162. package/dist/paginator/images/previousPage.svg +0 -3
  163. package/dist/paginator/readme.md +0 -50
  164. package/dist/password/styles.css +0 -3
  165. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  166. package/dist/progress-bar/readme.md +0 -63
  167. package/dist/radio/Radio.stories.js +0 -166
  168. package/dist/radio/readme.md +0 -70
  169. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  170. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  171. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  172. package/dist/select/Select.stories.js +0 -235
  173. package/dist/select/readme.md +0 -72
  174. package/dist/slider/Slider.stories.js +0 -241
  175. package/dist/slider/readme.md +0 -64
  176. package/dist/spinner/Spinner.stories.js +0 -183
  177. package/dist/spinner/readme.md +0 -65
  178. package/dist/switch/Switch.stories.js +0 -134
  179. package/dist/switch/readme.md +0 -133
  180. package/dist/tabs/Tabs.stories.js +0 -130
  181. package/dist/tabs/readme.md +0 -78
  182. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  183. package/dist/tabs-for-sections/readme.md +0 -78
  184. package/dist/toggle/Toggle.stories.js +0 -297
  185. package/dist/toggle/readme.md +0 -80
  186. package/dist/toggle-group/readme.md +0 -82
  187. package/dist/upload/Upload.stories.js +0 -72
  188. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  189. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  190. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  191. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  192. package/dist/upload/file-upload/audio-icon.svg +0 -4
  193. package/dist/upload/file-upload/close.svg +0 -4
  194. package/dist/upload/file-upload/file-icon.svg +0 -4
  195. package/dist/upload/file-upload/video-icon.svg +0 -4
  196. package/dist/upload/readme.md +0 -37
  197. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  198. package/dist/upload/transaction/audio-icon.svg +0 -4
  199. package/dist/upload/transaction/error-icon.svg +0 -4
  200. package/dist/upload/transaction/file-icon-err.svg +0 -4
  201. package/dist/upload/transaction/file-icon.svg +0 -4
  202. package/dist/upload/transaction/image-icon-err.svg +0 -4
  203. package/dist/upload/transaction/image-icon.svg +0 -4
  204. package/dist/upload/transaction/success-icon.svg +0 -4
  205. package/dist/upload/transaction/video-icon-err.svg +0 -4
  206. package/dist/upload/transaction/video-icon.svg +0 -4
  207. package/dist/wizard/invalid_icon.svg +0 -5
  208. package/dist/wizard/valid_icon.svg +0 -5
  209. package/dist/wizard/validation-wrong.svg +0 -6
  210. package/test/NewTextarea.test.js +0 -202
  211. package/test/Password.test.js +0 -76
  212. package/test/TabsForSections.test.js +0 -34
@@ -0,0 +1,83 @@
1
+ import React from "react";
2
+ import { render, fireEvent } from "@testing-library/react";
3
+ import userEvent from "@testing-library/user-event";
4
+ import DxcPasswordInput from "../src/password-input/PasswordInput";
5
+
6
+ describe("Password input component tests", () => {
7
+ test("Password input renders with label", () => {
8
+ const { getByText } = render(<DxcPasswordInput label="Password input label" />);
9
+ expect(getByText("Password input label")).toBeTruthy();
10
+ });
11
+
12
+ test("Password input renders with helper text", () => {
13
+ const { getByText } = render(<DxcPasswordInput helperText="Helper text" />);
14
+ expect(getByText("Helper text")).toBeTruthy();
15
+ });
16
+
17
+ test("Password input renders error", () => {
18
+ const { getByText } = render(<DxcPasswordInput error="Error message." />);
19
+ expect(getByText("Error message.")).toBeTruthy();
20
+ });
21
+
22
+ test("onChange function is called correctly", () => {
23
+ const onChange = jest.fn();
24
+ const { getByRole } = render(<DxcPasswordInput label="Password input" onChange={onChange} />);
25
+ const passwordInput = getByRole("textbox");
26
+ userEvent.type(passwordInput, "Pa$$w0rd");
27
+ expect(onChange).toHaveBeenCalledWith({ value: "P", error: null });
28
+ expect(passwordInput.value).toBe("Pa$$w0rd");
29
+ });
30
+
31
+ test("onBlur function is called correctly", () => {
32
+ const onBlur = jest.fn();
33
+ const { getByRole } = render(<DxcPasswordInput label="Password input" onBlur={onBlur} />);
34
+ const passwordInput = getByRole("textbox");
35
+ userEvent.type(passwordInput, "Pa$$w0rd");
36
+ fireEvent.blur(passwordInput);
37
+ expect(onBlur).toHaveBeenCalledWith({ value: "Pa$$w0rd", error: null });
38
+ expect(passwordInput.value).toBe("Pa$$w0rd");
39
+ });
40
+
41
+ test("Clear password input value", () => {
42
+ const { getAllByRole, getByRole } = render(<DxcPasswordInput label="Password input" clearable />);
43
+ const passwordInput = getByRole("textbox");
44
+ userEvent.type(passwordInput, "Pa$$w0rd");
45
+ expect(passwordInput.value).toBe("Pa$$w0rd");
46
+ const clearButton = getAllByRole("button")[0];
47
+ userEvent.click(clearButton);
48
+ expect(passwordInput.value).toBe("");
49
+ });
50
+
51
+ test("Non clearable password input has no clear icon", () => {
52
+ const { getAllByRole, getByRole } = render(<DxcPasswordInput label="Password input" />);
53
+ const passwordInput = getByRole("textbox");
54
+ userEvent.type(passwordInput, "Pa$$w0rd");
55
+ expect(passwordInput.value).toBe("Pa$$w0rd");
56
+ const buttons = getAllByRole("button");
57
+ expect(buttons.length).toBe(1);
58
+ });
59
+
60
+ test("Show/hide password input button works correctly", () => {
61
+ const { getAllByRole, getByRole } = render(<DxcPasswordInput label="Password input" clearable />);
62
+ const passwordInput = getByRole("textbox");
63
+ userEvent.type(passwordInput, "Pa$$w0rd");
64
+ expect(passwordInput.value).toBe("Pa$$w0rd");
65
+ expect(passwordInput.type).toBe("password");
66
+ const showButton = getAllByRole("button")[1];
67
+ userEvent.click(showButton);
68
+ expect(passwordInput.type).toBe("text");
69
+ });
70
+
71
+ test("Password input has correct accesibility attributes", () => {
72
+ const { getByRole } = render(<DxcPasswordInput label="Password input" />);
73
+ const passwordInput = getByRole("textbox");
74
+ expect(passwordInput.getAttribute("aria-autocomplete")).toBeNull();
75
+ expect(passwordInput.getAttribute("aria-controls")).toBeNull();
76
+ const showButton = getByRole("button");
77
+ expect(showButton.getAttribute("aria-expanded")).toBe("false");
78
+ expect(showButton.getAttribute("aria-label")).toBe("Show");
79
+ userEvent.click(showButton);
80
+ expect(showButton.getAttribute("aria-expanded")).toBe("true");
81
+ expect(showButton.getAttribute("aria-label")).toBe("Hide");
82
+ });
83
+ });
@@ -244,7 +244,7 @@ describe("ResultsetTable component tests", () => {
244
244
  expect(getByText("Louis")).toBeTruthy();
245
245
  expect(getByText("Lana")).toBeTruthy();
246
246
  expect(getAllByRole("row").length - 1).toEqual(3);
247
- const nextButton = getAllByRole("button")[3];
247
+ const nextButton = getAllByRole("button")[2];
248
248
  fireEvent.click(nextButton);
249
249
  expect(getByText("4 to 6 of 10")).toBeTruthy();
250
250
  // expect(getByText("Page: 2 of 4")).toBeTruthy();
@@ -255,6 +255,8 @@ describe("ResultsetTable component tests", () => {
255
255
  });
256
256
 
257
257
  test("Resultsettable goToPage works as expected", () => {
258
+ window.HTMLElement.prototype.scrollIntoView = () => {};
259
+ window.HTMLElement.prototype.scrollTo = () => {};
258
260
  const { getByText, getAllByRole, getByRole } = render(
259
261
  <DxcResultsetTable columns={columns} showGoToPage={true} rows={rows} itemsPerPage={3}></DxcResultsetTable>
260
262
  );
@@ -266,13 +268,12 @@ describe("ResultsetTable component tests", () => {
266
268
  act(() => {
267
269
  userEvent.click(goToPageSelect);
268
270
  });
269
- const goToPageOption = getByRole("option", { name: /2/i });
271
+ const goToPageOption = getByText("2");
270
272
  act(() => {
271
273
  userEvent.click(goToPageOption);
272
274
  });
273
275
 
274
276
  expect(getByText("4 to 6 of 10")).toBeTruthy();
275
- // expect(getByText("Page: 2 of 4")).toBeTruthy();
276
277
  expect(getByText("Rick")).toBeTruthy();
277
278
  expect(getByText("Mark")).toBeTruthy();
278
279
  expect(getByText("Cris")).toBeTruthy();
@@ -283,8 +284,7 @@ describe("ResultsetTable component tests", () => {
283
284
  const { getByText, getAllByRole } = render(
284
285
  <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
285
286
  );
286
- debugger;
287
- const lastButton = getAllByRole("button")[4];
287
+ const lastButton = getAllByRole("button")[3];
288
288
  fireEvent.click(lastButton);
289
289
  expect(getByText("10 to 10 of 10")).toBeTruthy();
290
290
  expect(getAllByRole("row")).toHaveLength(2);
@@ -320,7 +320,7 @@ describe("ResultsetTable component tests", () => {
320
320
  itemsPerPageOptions={[2, 3]}
321
321
  ></DxcResultsetTable>
322
322
  );
323
- const lastButton = getAllByRole("button")[5];
323
+ const lastButton = getAllByRole("button")[3];
324
324
  fireEvent.click(lastButton);
325
325
  expect(getAllByRole("row").length - 1).toEqual(1);
326
326
  rerender(<DxcResultsetTable columns={columns} rows={rows} itemsPerPage={6}></DxcResultsetTable>);