@dxc-technology/halstack-react 0.0.0-5908eb4 → 0.0.0-5b2ad05

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 (182) hide show
  1. package/dist/ThemeContext.js +134 -100
  2. package/dist/V3Select/V3Select.js +549 -0
  3. package/dist/V3Textarea/V3Textarea.js +264 -0
  4. package/dist/accordion/Accordion.js +66 -59
  5. package/dist/accordion-group/AccordionGroup.js +1 -3
  6. package/dist/alert/Alert.js +126 -111
  7. package/dist/alert/index.d.ts +51 -0
  8. package/dist/box/Box.js +1 -9
  9. package/dist/button/Button.js +33 -27
  10. package/dist/checkbox/Checkbox.js +26 -21
  11. package/dist/chip/Chip.js +21 -25
  12. package/dist/common/variables.js +808 -535
  13. package/dist/date/Date.js +13 -15
  14. package/dist/{new-date/NewDate.js → date-input/DateInput.js} +85 -76
  15. package/dist/date-input/index.d.ts +95 -0
  16. package/dist/dialog/Dialog.js +15 -32
  17. package/dist/dropdown/Dropdown.js +117 -66
  18. package/dist/file-input/FileInput.js +644 -0
  19. package/dist/file-input/FileItem.js +280 -0
  20. package/dist/file-input/index.d.ts +81 -0
  21. package/dist/footer/Footer.js +63 -49
  22. package/dist/footer/Icons.js +77 -0
  23. package/dist/header/Header.js +123 -84
  24. package/dist/header/Icons.js +59 -0
  25. package/dist/heading/Heading.js +13 -5
  26. package/dist/input-text/Icons.js +22 -0
  27. package/dist/input-text/InputText.js +96 -63
  28. package/dist/layout/ApplicationLayout.js +5 -9
  29. package/dist/layout/Icons.js +55 -0
  30. package/dist/link/Link.js +4 -8
  31. package/dist/main.d.ts +8 -0
  32. package/dist/main.js +45 -29
  33. package/dist/{number/Number.js → number-input/NumberInput.js} +28 -19
  34. package/dist/{number/NumberContext.js → number-input/NumberInputContext.js} +2 -2
  35. package/dist/number-input/index.d.ts +113 -0
  36. package/dist/paginator/Icons.js +66 -0
  37. package/dist/paginator/Paginator.js +17 -17
  38. package/dist/password-input/PasswordInput.js +198 -0
  39. package/dist/password-input/index.d.ts +94 -0
  40. package/dist/progress-bar/ProgressBar.js +63 -27
  41. package/dist/select/Select.js +869 -347
  42. package/dist/select/index.d.ts +53 -0
  43. package/dist/sidenav/Sidenav.js +11 -15
  44. package/dist/slider/Slider.js +155 -66
  45. package/dist/spinner/Spinner.js +225 -58
  46. package/dist/table/Table.js +5 -1
  47. package/dist/tag/Tag.js +37 -35
  48. package/dist/{new-input-text/NewInputText.js → text-input/TextInput.js} +241 -199
  49. package/dist/text-input/index.d.ts +135 -0
  50. package/dist/textarea/Textarea.js +233 -124
  51. package/dist/textarea/index.d.ts +117 -0
  52. package/dist/toggle-group/ToggleGroup.js +130 -44
  53. package/dist/upload/Upload.js +3 -3
  54. package/dist/upload/buttons-upload/ButtonsUpload.js +12 -12
  55. package/dist/upload/buttons-upload/Icons.js +40 -0
  56. package/dist/upload/dragAndDropArea/DragAndDropArea.js +23 -19
  57. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  58. package/dist/upload/file-upload/FileToUpload.js +27 -22
  59. package/dist/upload/file-upload/Icons.js +66 -0
  60. package/dist/upload/transaction/Icons.js +160 -0
  61. package/dist/upload/transaction/Transaction.js +18 -41
  62. package/dist/upload/transactions/Transactions.js +11 -11
  63. package/dist/wizard/Icons.js +65 -0
  64. package/dist/wizard/Wizard.js +11 -17
  65. package/package.json +6 -9
  66. package/test/Date.test.js +48 -44
  67. package/test/{NewDate.test.js → DateInput.test.js} +86 -33
  68. package/test/Dropdown.test.js +15 -0
  69. package/test/FileInput.test.js +201 -0
  70. package/test/Footer.test.js +2 -7
  71. package/test/Header.test.js +5 -10
  72. package/test/Heading.test.js +60 -12
  73. package/test/InputText.test.js +24 -16
  74. package/test/NumberInput.test.js +259 -0
  75. package/test/Paginator.test.js +1 -1
  76. package/test/PasswordInput.test.js +83 -0
  77. package/test/ResultsetTable.test.js +1 -2
  78. package/test/Slider.test.js +9 -17
  79. package/test/Spinner.test.js +5 -0
  80. package/test/TextInput.test.js +732 -0
  81. package/test/Textarea.test.js +193 -0
  82. package/test/ToggleGroup.test.js +5 -1
  83. package/test/Upload.test.js +5 -5
  84. package/test/{Select.test.js → V3Select.test.js} +56 -36
  85. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  86. package/dist/accordion/Accordion.stories.js +0 -207
  87. package/dist/accordion/readme.md +0 -96
  88. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  89. package/dist/accordion-group/readme.md +0 -70
  90. package/dist/alert/Alert.stories.js +0 -158
  91. package/dist/alert/close.svg +0 -4
  92. package/dist/alert/error.svg +0 -4
  93. package/dist/alert/info.svg +0 -4
  94. package/dist/alert/readme.md +0 -43
  95. package/dist/alert/success.svg +0 -4
  96. package/dist/alert/warning.svg +0 -4
  97. package/dist/button/Button.stories.js +0 -224
  98. package/dist/button/readme.md +0 -93
  99. package/dist/checkbox/Checkbox.stories.js +0 -144
  100. package/dist/checkbox/readme.md +0 -116
  101. package/dist/date/Date.stories.js +0 -205
  102. package/dist/date/readme.md +0 -73
  103. package/dist/dialog/Dialog.stories.js +0 -217
  104. package/dist/dialog/readme.md +0 -32
  105. package/dist/dropdown/Dropdown.stories.js +0 -249
  106. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  107. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  108. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  109. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  110. package/dist/dropdown/readme.md +0 -69
  111. package/dist/footer/Footer.stories.js +0 -94
  112. package/dist/footer/dxc_logo.svg +0 -15
  113. package/dist/footer/readme.md +0 -41
  114. package/dist/header/Header.stories.js +0 -176
  115. package/dist/header/close_icon.svg +0 -1
  116. package/dist/header/dxc_logo_black.svg +0 -8
  117. package/dist/header/hamb_menu_black.svg +0 -1
  118. package/dist/header/hamb_menu_white.svg +0 -1
  119. package/dist/header/readme.md +0 -33
  120. package/dist/input-text/InputText.stories.js +0 -209
  121. package/dist/input-text/error.svg +0 -1
  122. package/dist/input-text/readme.md +0 -91
  123. package/dist/layout/facebook.svg +0 -45
  124. package/dist/layout/linkedin.svg +0 -50
  125. package/dist/layout/twitter.svg +0 -53
  126. package/dist/link/readme.md +0 -51
  127. package/dist/paginator/images/next.svg +0 -3
  128. package/dist/paginator/images/nextPage.svg +0 -3
  129. package/dist/paginator/images/previous.svg +0 -3
  130. package/dist/paginator/images/previousPage.svg +0 -3
  131. package/dist/paginator/readme.md +0 -50
  132. package/dist/password/Password.js +0 -139
  133. package/dist/password/styles.css +0 -3
  134. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  135. package/dist/progress-bar/readme.md +0 -63
  136. package/dist/radio/Radio.stories.js +0 -166
  137. package/dist/radio/readme.md +0 -70
  138. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  139. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  140. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  141. package/dist/select/Select.stories.js +0 -235
  142. package/dist/select/readme.md +0 -72
  143. package/dist/slider/Slider.stories.js +0 -241
  144. package/dist/slider/readme.md +0 -64
  145. package/dist/spinner/Spinner.stories.js +0 -183
  146. package/dist/spinner/readme.md +0 -65
  147. package/dist/switch/Switch.stories.js +0 -134
  148. package/dist/switch/readme.md +0 -133
  149. package/dist/tabs/Tabs.stories.js +0 -130
  150. package/dist/tabs/readme.md +0 -78
  151. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  152. package/dist/tabs-for-sections/readme.md +0 -78
  153. package/dist/toggle/Toggle.stories.js +0 -297
  154. package/dist/toggle/readme.md +0 -80
  155. package/dist/toggle-group/readme.md +0 -82
  156. package/dist/upload/Upload.stories.js +0 -72
  157. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  158. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  159. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  160. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  161. package/dist/upload/file-upload/audio-icon.svg +0 -4
  162. package/dist/upload/file-upload/close.svg +0 -4
  163. package/dist/upload/file-upload/file-icon.svg +0 -4
  164. package/dist/upload/file-upload/video-icon.svg +0 -4
  165. package/dist/upload/readme.md +0 -37
  166. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  167. package/dist/upload/transaction/audio-icon.svg +0 -4
  168. package/dist/upload/transaction/error-icon.svg +0 -4
  169. package/dist/upload/transaction/file-icon-err.svg +0 -4
  170. package/dist/upload/transaction/file-icon.svg +0 -4
  171. package/dist/upload/transaction/image-icon-err.svg +0 -4
  172. package/dist/upload/transaction/image-icon.svg +0 -4
  173. package/dist/upload/transaction/success-icon.svg +0 -4
  174. package/dist/upload/transaction/video-icon-err.svg +0 -4
  175. package/dist/upload/transaction/video-icon.svg +0 -4
  176. package/dist/wizard/invalid_icon.svg +0 -5
  177. package/dist/wizard/valid_icon.svg +0 -5
  178. package/dist/wizard/validation-wrong.svg +0 -6
  179. package/test/NewInputText.test.js +0 -663
  180. package/test/Number.test.js +0 -205
  181. package/test/Password.test.js +0 -63
  182. package/test/TabsForSections.test.js +0 -34
@@ -1,205 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import DxcNumber from "../src/number/Number";
5
-
6
- describe("Number component tests", () => {
7
- test("Number renders with label", () => {
8
- const { getByText } = render(<DxcNumber label="Number label" />);
9
- expect(getByText("Number label")).toBeTruthy();
10
- });
11
-
12
- test("Number renders with helper text", () => {
13
- const { getByText } = render(<DxcNumber helperText="Helper text" />);
14
- expect(getByText("Helper text")).toBeTruthy();
15
- });
16
-
17
- test("Number renders with placeholder", () => {
18
- const { getByLabelText } = render(<DxcNumber label="Number label" placeholder="Placeholder" />);
19
- const number = getByLabelText("Number label");
20
- expect(number.getAttribute("placeholder")).toBe("Placeholder");
21
- });
22
-
23
- test("Number renders increment and decrement buttons", () => {
24
- const { queryAllByRole } = render(<DxcNumber label="Number label" />);
25
- expect(queryAllByRole("button").length).toBe(2);
26
- });
27
-
28
- test("Number is disabled", () => {
29
- const { getByLabelText } = render(<DxcNumber label="Number label" disabled />);
30
- const number = getByLabelText("Number label");
31
- expect(number.disabled).toBeTruthy();
32
- });
33
-
34
- test("Number is optional", () => {
35
- const { getByText } = render(<DxcNumber label="Number label" optional />);
36
- expect(getByText("(Optional)")).toBeTruthy();
37
- });
38
-
39
- test("Suffix and prefix must be shown)", () => {
40
- const { getByText } = render(<DxcNumber label="Number label" prefix="+34" suffix="USD" />);
41
- expect(getByText("+34")).toBeTruthy();
42
- expect(getByText("USD")).toBeTruthy();
43
- });
44
-
45
- test("Invalid number renders error", () => {
46
- const { getByText } = render(<DxcNumber error="Error message" />);
47
- expect(getByText("Error message")).toBeTruthy();
48
- });
49
-
50
- test("onChange function is called correctly", () => {
51
- const onChange = jest.fn();
52
- const { getByLabelText } = render(<DxcNumber label="Number label" onChange={onChange} />);
53
- const number = getByLabelText("Number label");
54
- userEvent.type(number, "t");
55
- expect(onChange).not.toHaveBeenCalledWith("t");
56
- expect(number.value).toBe("");
57
- userEvent.type(number, "1");
58
- expect(onChange).toHaveBeenCalledWith("1");
59
- expect(number.value).toBe("1");
60
- });
61
-
62
- test("Error message is shown if the value is less than the min value", () => {
63
- const { getByLabelText, getByText } = render(<DxcNumber label="Number label" min={5} />);
64
- const number = getByLabelText("Number label");
65
- userEvent.type(number, "1");
66
- fireEvent.blur(number);
67
- expect(getByText("Value must be greater than or equal to 5.")).toBeTruthy();
68
- });
69
-
70
- test("Cannot decrement the value if it is less than the min value", () => {
71
- const { getByLabelText, getAllByRole } = render(<DxcNumber label="Number label" min={5} />);
72
- const number = getByLabelText("Number label");
73
- userEvent.type(number, "1");
74
- fireEvent.blur(number);
75
- expect(number.value).toBe("1");
76
- const decrement = getAllByRole("button")[0];
77
- userEvent.click(decrement);
78
- expect(number.value).toBe("1");
79
- });
80
-
81
- test("Increment the value when it is less than the min value", () => {
82
- const { getByLabelText, getAllByRole } = render(<DxcNumber label="Number label" min={5} />);
83
- const number = getByLabelText("Number label");
84
- userEvent.type(number, "1");
85
- fireEvent.blur(number);
86
- expect(number.value).toBe("1");
87
- const increment = getAllByRole("button")[1];
88
- userEvent.click(increment);
89
- expect(number.value).toBe("5");
90
- });
91
-
92
- test("Error message is shown if the value is greater than the max value", () => {
93
- const { getByLabelText, getByText } = render(<DxcNumber label="Number label" max={10} />);
94
- const number = getByLabelText("Number label");
95
- userEvent.type(number, "12");
96
- fireEvent.blur(number);
97
- expect(getByText("Value must be less than or equal to 10.")).toBeTruthy();
98
- });
99
-
100
- test("Cannot increment the value if it is greater than the max value", () => {
101
- const { getByLabelText, getAllByRole } = render(<DxcNumber label="Number label" max={10} />);
102
- const number = getByLabelText("Number label");
103
- userEvent.type(number, "12");
104
- fireEvent.blur(number);
105
- expect(number.value).toBe("12");
106
- const decrement = getAllByRole("button")[1];
107
- userEvent.click(decrement);
108
- expect(number.value).toBe("12");
109
- });
110
-
111
- test("Decrement the value when it is greater than the max value", () => {
112
- const { getByLabelText, getAllByRole } = render(<DxcNumber label="Number label" max={10} />);
113
- const number = getByLabelText("Number label");
114
- userEvent.type(number, "12");
115
- fireEvent.blur(number);
116
- expect(number.value).toBe("12");
117
- const decrement = getAllByRole("button")[0];
118
- userEvent.click(decrement);
119
- expect(number.value).toBe("10");
120
- });
121
-
122
- test("Increment and decrement the value with min and max values", () => {
123
- const { getByLabelText, getAllByRole } = render(<DxcNumber label="Number label" min={5} max={10} />);
124
- const number = getByLabelText("Number label");
125
- userEvent.type(number, "1");
126
- fireEvent.blur(number);
127
- expect(number.value).toBe("1");
128
- const decrement = getAllByRole("button")[0];
129
- userEvent.click(decrement);
130
- expect(number.value).toBe("1");
131
- const increment = getAllByRole("button")[1];
132
- userEvent.click(increment);
133
- expect(number.value).toBe("5");
134
- userEvent.click(increment);
135
- userEvent.click(increment);
136
- userEvent.click(increment);
137
- userEvent.click(increment);
138
- userEvent.click(increment);
139
- expect(number.value).toBe("10");
140
- userEvent.click(increment);
141
- expect(number.value).toBe("10");
142
- });
143
-
144
- test("Increment and decrement the value with step", () => {
145
- const { getByLabelText, getAllByRole } = render(<DxcNumber label="Number label" step={5} />);
146
- const number = getByLabelText("Number label");
147
- userEvent.type(number, "10");
148
- fireEvent.blur(number);
149
- expect(number.value).toBe("10");
150
- const increment = getAllByRole("button")[1];
151
- userEvent.click(increment);
152
- expect(number.value).toBe("15");
153
- userEvent.click(increment);
154
- expect(number.value).toBe("20");
155
- const decrement = getAllByRole("button")[0];
156
- userEvent.click(decrement);
157
- expect(number.value).toBe("15");
158
- userEvent.click(decrement);
159
- expect(number.value).toBe("10");
160
- });
161
-
162
- test("Increment and decrement the value with min, max and step", () => {
163
- const { getByLabelText, getByText, getAllByRole } = render(
164
- <DxcNumber label="Number label" min={5} max={20} step={8} />
165
- );
166
- const number = getByLabelText("Number label");
167
- userEvent.type(number, "1");
168
- fireEvent.blur(number);
169
- expect(getByText("Value must be greater than or equal to 5.")).toBeTruthy();
170
- const increment = getAllByRole("button")[1];
171
- userEvent.click(increment);
172
- expect(number.value).toBe("5");
173
- userEvent.click(increment);
174
- expect(number.value).toBe("13");
175
- userEvent.click(increment);
176
- expect(number.value).toBe("20");
177
- userEvent.click(increment);
178
- expect(number.value).toBe("20");
179
- const decrement = getAllByRole("button")[0];
180
- userEvent.click(decrement);
181
- expect(number.value).toBe("12");
182
- userEvent.click(decrement);
183
- expect(number.value).toBe("5");
184
- userEvent.click(decrement);
185
- expect(number.value).toBe("5");
186
- });
187
-
188
- test("Custom error messages", () => {
189
- const onChange = jest.fn((value) => {
190
- expect(value).toBe("2");
191
- });
192
-
193
- const onBlur = jest.fn(({ value, error }) => {
194
- expect(value).toBe("2");
195
- expect(error).toBe("Value must be greater than or equal to 5.");
196
- });
197
-
198
- const { getByLabelText } = render(
199
- <DxcNumber label="Number label" min={5} step={8} onChange={onChange} onBlur={onBlur} />
200
- );
201
- const number = getByLabelText("Number label");
202
- userEvent.type(number, "2");
203
- fireEvent.blur(number);
204
- });
205
- });
@@ -1,63 +0,0 @@
1
- import React from "react";
2
- import { render } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import DxcPassword from "../src/password/Password";
5
-
6
- describe("Password component tests", () => {
7
- test("Password renders with label", () => {
8
- const { getByText } = render(<DxcPassword label="Password label" />);
9
- expect(getByText("Password label")).toBeTruthy();
10
- });
11
-
12
- test("Password renders with helper text", () => {
13
- const { getByText } = render(<DxcPassword helperText="Helper text" />);
14
- expect(getByText("Helper text")).toBeTruthy();
15
- });
16
-
17
- test("Password renders error", () => {
18
- const { getByText } = render(<DxcPassword 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 { getByLabelText } = render(<DxcPassword label="Password" onChange={onChange} />);
25
- const password = getByLabelText("Password");
26
- userEvent.type(password, "Pa$$w0rd");
27
- expect(onChange).toHaveBeenCalledWith("P");
28
- expect(password.value).toBe("Pa$$w0rd");
29
- });
30
-
31
- test("Clear password value", () => {
32
- const onChange = jest.fn();
33
- const { getAllByRole, getByLabelText } = render(<DxcPassword label="Password" onChange={onChange} clearable />);
34
- const password = getByLabelText("Password");
35
- userEvent.type(password, "Pa$$w0rd");
36
- expect(password.value).toBe("Pa$$w0rd");
37
- const clearButton = getAllByRole("button")[0];
38
- userEvent.click(clearButton);
39
- expect(password.value).toBe("");
40
- });
41
-
42
- test("Non clearable password has no clear icon", () => {
43
- const onChange = jest.fn();
44
- const { getAllByRole, getByLabelText } = render(<DxcPassword label="Password" onChange={onChange} />);
45
- const password = getByLabelText("Password");
46
- userEvent.type(password, "Pa$$w0rd");
47
- expect(password.value).toBe("Pa$$w0rd");
48
- const buttons = getAllByRole("button");
49
- expect(buttons.length).toBe(1);
50
- });
51
-
52
- test("Show/hide password button works correctly", () => {
53
- const onChange = jest.fn();
54
- const { getAllByRole, getByLabelText } = render(<DxcPassword label="Password" clearable onChange={onChange} />);
55
- const password = getByLabelText("Password");
56
- userEvent.type(password, "Pa$$w0rd");
57
- expect(password.value).toBe("Pa$$w0rd");
58
- expect(password.type).toBe("password");
59
- const showButton = getAllByRole("button")[1];
60
- userEvent.click(showButton);
61
- expect(password.type).toBe("text");
62
- });
63
- });
@@ -1,34 +0,0 @@
1
- import React from "react";
2
- import { render } from "@testing-library/react";
3
- import DxcTabsForSections from "../src/tabs-for-sections/TabsForSections";
4
-
5
- const sections = [
6
- {
7
- tabLabel: "S1",
8
- section: () => <div>test-section-1</div>,
9
- },
10
- {
11
- tabLabel: "S2",
12
- section: () => <div>test-section-2</div>,
13
- },
14
- {
15
- tabLabel: "S3",
16
- section: () => <div>test-section-3</div>,
17
- },
18
- ];
19
-
20
- describe("TabsForSections component tests", () => {
21
- test("TabsForSections renders with correct sections label", () => {
22
- const { getByText } = render(<DxcTabsForSections sections={sections}></DxcTabsForSections>);
23
- expect(getByText("S1")).toBeTruthy();
24
- expect(getByText("S2")).toBeTruthy();
25
- expect(getByText("S3")).toBeTruthy();
26
- });
27
-
28
- test("TabsForSections renders with correct sections content", () => {
29
- const { getByText } = render(<DxcTabsForSections sections={sections}></DxcTabsForSections>);
30
- expect(getByText("test-section-1")).toBeTruthy();
31
- expect(getByText("test-section-2")).toBeTruthy();
32
- expect(getByText("test-section-3")).toBeTruthy();
33
- });
34
- });