@dxc-technology/halstack-react 0.0.0-4845f79 → 0.0.0-48526b5

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 (196) hide show
  1. package/README.md +27 -47
  2. package/dist/index.d.mts +4007 -0
  3. package/dist/index.d.ts +4007 -0
  4. package/dist/index.js +14916 -0
  5. package/dist/index.mjs +14827 -0
  6. package/package.json +92 -67
  7. package/babel.config.js +0 -8
  8. package/dist/BackgroundColorContext.js +0 -46
  9. package/dist/ThemeContext.js +0 -216
  10. package/dist/accordion/Accordion.js +0 -348
  11. package/dist/accordion/Accordion.stories.js +0 -207
  12. package/dist/accordion/readme.md +0 -96
  13. package/dist/accordion-group/AccordionGroup.js +0 -188
  14. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  15. package/dist/accordion-group/readme.md +0 -70
  16. package/dist/alert/Alert.js +0 -403
  17. package/dist/badge/Badge.js +0 -63
  18. package/dist/box/Box.js +0 -156
  19. package/dist/button/Button.js +0 -231
  20. package/dist/button/Button.stories.js +0 -224
  21. package/dist/button/readme.md +0 -93
  22. package/dist/card/Card.js +0 -254
  23. package/dist/checkbox/Checkbox.js +0 -300
  24. package/dist/checkbox/Checkbox.stories.js +0 -144
  25. package/dist/checkbox/readme.md +0 -116
  26. package/dist/chip/Chip.js +0 -265
  27. package/dist/common/OpenSans.css +0 -81
  28. package/dist/common/RequiredComponent.js +0 -40
  29. package/dist/common/fonts/OpenSans-Bold.ttf +0 -0
  30. package/dist/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  31. package/dist/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  32. package/dist/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  33. package/dist/common/fonts/OpenSans-Italic.ttf +0 -0
  34. package/dist/common/fonts/OpenSans-Light.ttf +0 -0
  35. package/dist/common/fonts/OpenSans-LightItalic.ttf +0 -0
  36. package/dist/common/fonts/OpenSans-Regular.ttf +0 -0
  37. package/dist/common/fonts/OpenSans-SemiBold.ttf +0 -0
  38. package/dist/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  39. package/dist/common/utils.js +0 -22
  40. package/dist/common/variables.js +0 -1436
  41. package/dist/date/Date.js +0 -381
  42. package/dist/date/Date.stories.js +0 -205
  43. package/dist/date/readme.md +0 -73
  44. package/dist/dialog/Dialog.js +0 -240
  45. package/dist/dialog/Dialog.stories.js +0 -217
  46. package/dist/dialog/readme.md +0 -32
  47. package/dist/dropdown/Dropdown.js +0 -504
  48. package/dist/dropdown/Dropdown.stories.js +0 -249
  49. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  50. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  51. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  52. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  53. package/dist/dropdown/readme.md +0 -69
  54. package/dist/footer/Footer.js +0 -395
  55. package/dist/footer/Footer.stories.js +0 -94
  56. package/dist/footer/dxc_logo.svg +0 -15
  57. package/dist/footer/readme.md +0 -41
  58. package/dist/header/Header.js +0 -423
  59. package/dist/header/Header.stories.js +0 -176
  60. package/dist/header/close_icon.svg +0 -1
  61. package/dist/header/dxc_logo_black.svg +0 -8
  62. package/dist/header/hamb_menu_black.svg +0 -1
  63. package/dist/header/hamb_menu_white.svg +0 -1
  64. package/dist/header/readme.md +0 -33
  65. package/dist/heading/Heading.js +0 -218
  66. package/dist/input-text/InputText.js +0 -707
  67. package/dist/input-text/InputText.stories.js +0 -209
  68. package/dist/input-text/error.svg +0 -1
  69. package/dist/input-text/readme.md +0 -91
  70. package/dist/layout/ApplicationLayout.js +0 -331
  71. package/dist/layout/facebook.svg +0 -45
  72. package/dist/layout/linkedin.svg +0 -50
  73. package/dist/layout/twitter.svg +0 -53
  74. package/dist/link/Link.js +0 -241
  75. package/dist/link/readme.md +0 -51
  76. package/dist/main.js +0 -351
  77. package/dist/new-date/NewDate.js +0 -403
  78. package/dist/new-input-text/NewInputText.js +0 -961
  79. package/dist/new-textarea/NewTextarea.js +0 -346
  80. package/dist/number/Number.js +0 -138
  81. package/dist/number/NumberContext.js +0 -16
  82. package/dist/paginator/Paginator.js +0 -289
  83. package/dist/paginator/images/next.svg +0 -3
  84. package/dist/paginator/images/nextPage.svg +0 -3
  85. package/dist/paginator/images/previous.svg +0 -3
  86. package/dist/paginator/images/previousPage.svg +0 -3
  87. package/dist/paginator/readme.md +0 -50
  88. package/dist/password/Password.js +0 -200
  89. package/dist/password/styles.css +0 -3
  90. package/dist/progress-bar/ProgressBar.js +0 -206
  91. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  92. package/dist/progress-bar/readme.md +0 -63
  93. package/dist/radio/Radio.js +0 -209
  94. package/dist/radio/Radio.stories.js +0 -166
  95. package/dist/radio/readme.md +0 -70
  96. package/dist/resultsetTable/ResultsetTable.js +0 -358
  97. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  98. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  99. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  100. package/dist/select/Select.js +0 -585
  101. package/dist/select/Select.stories.js +0 -235
  102. package/dist/select/readme.md +0 -72
  103. package/dist/sidenav/Sidenav.js +0 -177
  104. package/dist/slider/Slider.js +0 -319
  105. package/dist/slider/Slider.stories.js +0 -241
  106. package/dist/slider/readme.md +0 -64
  107. package/dist/spinner/Spinner.js +0 -218
  108. package/dist/spinner/Spinner.stories.js +0 -183
  109. package/dist/spinner/readme.md +0 -65
  110. package/dist/switch/Switch.js +0 -222
  111. package/dist/switch/Switch.stories.js +0 -134
  112. package/dist/switch/readme.md +0 -133
  113. package/dist/table/Table.js +0 -132
  114. package/dist/tabs/Tabs.js +0 -343
  115. package/dist/tabs/Tabs.stories.js +0 -130
  116. package/dist/tabs/readme.md +0 -78
  117. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  118. package/dist/tabs-for-sections/readme.md +0 -78
  119. package/dist/tag/Tag.js +0 -288
  120. package/dist/textarea/Textarea.js +0 -264
  121. package/dist/toggle/Toggle.js +0 -220
  122. package/dist/toggle/Toggle.stories.js +0 -297
  123. package/dist/toggle/readme.md +0 -80
  124. package/dist/toggle-group/ToggleGroup.js +0 -223
  125. package/dist/upload/Upload.js +0 -205
  126. package/dist/upload/Upload.stories.js +0 -72
  127. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -139
  128. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  129. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  130. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  131. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  132. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  133. package/dist/upload/file-upload/FileToUpload.js +0 -184
  134. package/dist/upload/file-upload/audio-icon.svg +0 -4
  135. package/dist/upload/file-upload/close.svg +0 -4
  136. package/dist/upload/file-upload/file-icon.svg +0 -4
  137. package/dist/upload/file-upload/video-icon.svg +0 -4
  138. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  139. package/dist/upload/readme.md +0 -37
  140. package/dist/upload/transaction/Transaction.js +0 -175
  141. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  142. package/dist/upload/transaction/audio-icon.svg +0 -4
  143. package/dist/upload/transaction/error-icon.svg +0 -4
  144. package/dist/upload/transaction/file-icon-err.svg +0 -4
  145. package/dist/upload/transaction/file-icon.svg +0 -4
  146. package/dist/upload/transaction/image-icon-err.svg +0 -4
  147. package/dist/upload/transaction/image-icon.svg +0 -4
  148. package/dist/upload/transaction/success-icon.svg +0 -4
  149. package/dist/upload/transaction/video-icon-err.svg +0 -4
  150. package/dist/upload/transaction/video-icon.svg +0 -4
  151. package/dist/upload/transactions/Transactions.js +0 -138
  152. package/dist/useTheme.js +0 -22
  153. package/dist/wizard/Wizard.js +0 -411
  154. package/dist/wizard/invalid_icon.svg +0 -5
  155. package/dist/wizard/valid_icon.svg +0 -5
  156. package/dist/wizard/validation-wrong.svg +0 -6
  157. package/test/Accordion.test.js +0 -33
  158. package/test/AccordionGroup.test.js +0 -125
  159. package/test/Alert.test.js +0 -53
  160. package/test/Box.test.js +0 -10
  161. package/test/Button.test.js +0 -18
  162. package/test/Card.test.js +0 -30
  163. package/test/Checkbox.test.js +0 -45
  164. package/test/Chip.test.js +0 -25
  165. package/test/Date.test.js +0 -393
  166. package/test/Dialog.test.js +0 -23
  167. package/test/Dropdown.test.js +0 -145
  168. package/test/Footer.test.js +0 -99
  169. package/test/Header.test.js +0 -39
  170. package/test/Heading.test.js +0 -35
  171. package/test/InputText.test.js +0 -240
  172. package/test/Link.test.js +0 -43
  173. package/test/NewDate.test.js +0 -203
  174. package/test/NewInputText.test.js +0 -817
  175. package/test/NewTextarea.test.js +0 -201
  176. package/test/Number.test.js +0 -241
  177. package/test/Paginator.test.js +0 -177
  178. package/test/Password.test.js +0 -76
  179. package/test/ProgressBar.test.js +0 -35
  180. package/test/Radio.test.js +0 -37
  181. package/test/ResultsetTable.test.js +0 -330
  182. package/test/Select.test.js +0 -189
  183. package/test/Sidenav.test.js +0 -45
  184. package/test/Slider.test.js +0 -82
  185. package/test/Spinner.test.js +0 -27
  186. package/test/Switch.test.js +0 -45
  187. package/test/Table.test.js +0 -36
  188. package/test/Tabs.test.js +0 -109
  189. package/test/TabsForSections.test.js +0 -34
  190. package/test/Tag.test.js +0 -32
  191. package/test/TextArea.test.js +0 -52
  192. package/test/ToggleGroup.test.js +0 -81
  193. package/test/Upload.test.js +0 -60
  194. package/test/Wizard.test.js +0 -130
  195. package/test/mocks/pngMock.js +0 -1
  196. package/test/mocks/svgMock.js +0 -1
@@ -1,203 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
-
5
- import DxcNewDate from "../src/new-date/NewDate";
6
-
7
- describe("NewDate component tests", () => {
8
- test("Renders with correct label, helper text, optional, placeholder and clearable action", () => {
9
- const { getByText, getByRole, getAllByRole } = render(
10
- <DxcNewDate label="Example label" helperText="Example of helper text" placeholder optional clearable />
11
- );
12
- const input = getByRole("textbox");
13
- expect(getByText("Example label")).toBeTruthy();
14
- expect(getByText("Example of helper text")).toBeTruthy();
15
- expect(getByText("(Optional)")).toBeTruthy();
16
- expect(input.getAttribute("placeholder")).toBe("DD-MM-YYYY");
17
- userEvent.type(input, "10/90/2010");
18
- const closeAction = getAllByRole("button")[0];
19
- userEvent.click(closeAction);
20
- expect(input.value).toBe("");
21
- });
22
-
23
- test("Renders with personalized error", () => {
24
- const { getByText } = render(<DxcNewDate error="Personalized error." />);
25
-
26
- expect(getByText("Personalized error.")).toBeTruthy();
27
- });
28
-
29
- test("Renders with correct format: user typed date but it's invalid", () => {
30
- const { getByText, getByRole } = render(<DxcNewDate label="With format MM/dd/yyyy" format="MM/dd/yyyy" />);
31
- const input = getByRole("textbox");
32
-
33
- userEvent.type(input, "10/90/2010");
34
- fireEvent.blur(input);
35
- expect(getByText("Invalid date.")).toBeTruthy();
36
- });
37
-
38
- test("Calendar renders with correct date: today's date", () => {
39
- const { getByText, getByRole } = render(<DxcNewDate />);
40
- const calendarAction = getByRole("button");
41
- const d = new Date();
42
- const options = { weekday: "short", month: "short", day: "numeric" };
43
-
44
- userEvent.click(calendarAction);
45
- expect(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
46
- });
47
-
48
- test("Calendar renders with correct date: value prop", () => {
49
- const { getByText, getByRole } = render(<DxcNewDate value="20-10-2019" />);
50
- const calendarAction = getByRole("button");
51
- const d = new Date(2019, 9, 20);
52
- const options = { weekday: "short", month: "short", day: "numeric" };
53
-
54
- userEvent.click(calendarAction);
55
- expect(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
56
- });
57
-
58
- test("Calendar renders with correct date: user typed value", () => {
59
- const { getByText, getByRole } = render(<DxcNewDate />);
60
- const calendarAction = getByRole("button");
61
- const d = new Date(2010, 0, 1);
62
- const options = { weekday: "short", month: "short", day: "numeric" };
63
- const input = getByRole("textbox");
64
-
65
- userEvent.type(input, "01-01-2010");
66
- userEvent.click(calendarAction);
67
- expect(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
68
- });
69
-
70
- test("Calendar renders with correct date: invalid date, renders with today's date", () => {
71
- const { getByText, getByRole } = render(<DxcNewDate />);
72
- const calendarAction = getByRole("button");
73
- const d = new Date();
74
- const options = { weekday: "short", month: "short", day: "numeric" };
75
- const input = getByRole("textbox");
76
-
77
- userEvent.type(input, "01-01-xxxx");
78
- fireEvent.blur(input);
79
- expect(getByText("Invalid date.")).toBeTruthy();
80
- userEvent.click(calendarAction);
81
- expect(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
82
- });
83
-
84
- test("Selecting a date from the calendar with an specific format", () => {
85
- const { getByText, getByRole } = render(<DxcNewDate label="With format M-dd-yyyy" format="M-dd-yyyy" />);
86
- const input = getByRole("textbox");
87
- const calendarAction = getByRole("button");
88
- userEvent.click(calendarAction);
89
- const dayButton = getByRole("button", { name: "10" });
90
- fireEvent.click(dayButton);
91
- const d = new Date();
92
- d.setDate(10);
93
- const options = { weekday: "short", month: "short", day: "numeric" };
94
- expect(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
95
- fireEvent.keyDown(document, { key: "Esc", code: "Esc", keyCode: 27, charCode: 27 });
96
- expect(input.value).toBe(`${d.getMonth() + 1}-10-${d.getFullYear()}`);
97
- });
98
-
99
- test("Selecting a date from the calendar (using keyboard presses)", () => {
100
- const { getByRole } = render(<DxcNewDate />);
101
- const calendarAction = getByRole("button");
102
- const input = getByRole("textbox");
103
-
104
- userEvent.type(input, "01-01-2010");
105
- userEvent.click(calendarAction);
106
- fireEvent.keyDown(document, { key: "ArrowRight", code: "ArrowRight", keyCode: 39, charCode: 39 });
107
- fireEvent.keyDown(document, { key: "ArrowRight", code: "ArrowRight", keyCode: 39, charCode: 39 });
108
- fireEvent.keyDown(document, { key: "ArrowRight", code: "ArrowRight", keyCode: 39, charCode: 39 });
109
- fireEvent.keyDown(document, { key: "ArrowLeft", code: "ArrowLeft", keyCode: 37, charCode: 37 });
110
- fireEvent.keyDown(document, { key: "Esc", code: "Esc", keyCode: 27, charCode: 27 });
111
- expect(input.value).toBe("03-01-2010");
112
- });
113
-
114
- test("onChange & onBlur functions are called correctly", () => {
115
- const onBlur = jest.fn();
116
- const onChange = jest.fn();
117
- const { getByRole } = render(<DxcNewDate onChange={onChange} onBlur={onBlur} />);
118
- const input = getByRole("textbox");
119
- const d = new Date(2011, 9, 10);
120
-
121
- userEvent.type(input, "10-10-2011");
122
- expect(input.value).toBe("10-10-2011");
123
- expect(onChange).toHaveBeenCalledTimes(10);
124
- expect(onChange).toHaveBeenCalledWith({ value: "10-10-2011", date: d });
125
- fireEvent.blur(input);
126
- expect(onBlur).toHaveBeenCalled();
127
- expect(onBlur).toHaveBeenCalledWith({ value: "10-10-2011", error: null, date: d });
128
- });
129
-
130
- test("onChange & onBlur functions are called correctly, also with errors", () => {
131
- const onBlur = jest.fn();
132
- const onChange = jest.fn();
133
- const { getByRole } = render(<DxcNewDate onChange={onChange} onBlur={onBlur} />);
134
- const input = getByRole("textbox");
135
- const d = new Date(2011, 9, 10);
136
-
137
- userEvent.type(input, "10-10-");
138
- expect(input.value).toBe("10-10-");
139
- expect(onChange).toHaveBeenCalledTimes(6);
140
- expect(onChange).toHaveBeenCalledWith({ value: "10-10-", date: null });
141
- fireEvent.blur(input);
142
- expect(onBlur).toHaveBeenCalled();
143
- expect(onBlur).toHaveBeenCalledWith({ value: "10-10-", error: "Invalid date.", date: null });
144
- });
145
-
146
- test("onBlur function removes the error when it is fixed", () => {
147
- const onBlur = jest.fn();
148
- const { getByRole } = render(<DxcNewDate onBlur={onBlur} />);
149
- const input = getByRole("textbox");
150
- const d = new Date(2002, 1, 20);
151
-
152
- userEvent.type(input, "test");
153
- expect(input.value).toBe("test");
154
- fireEvent.blur(input);
155
- expect(onBlur).toHaveBeenCalled();
156
- expect(onBlur).toHaveBeenCalledWith({ value: "test", error: "Invalid date.", date: null });
157
- userEvent.clear(input);
158
- userEvent.type(input, "20-02-2002");
159
- expect(input.value).toBe("20-02-2002");
160
- fireEvent.blur(input);
161
- expect(onBlur).toHaveBeenCalled();
162
- expect(onBlur).toHaveBeenCalledWith({ value: "20-02-2002", error: null, date: d });
163
- });
164
-
165
- test("onBlur function removes the error when the input is empty", () => {
166
- const onBlur = jest.fn();
167
- const { getByRole } = render(<DxcNewDate onBlur={onBlur} />);
168
- const input = getByRole("textbox");
169
-
170
- userEvent.type(input, "test");
171
- expect(input.value).toBe("test");
172
- fireEvent.blur(input);
173
- expect(onBlur).toHaveBeenCalled();
174
- expect(onBlur).toHaveBeenCalledWith({ value: "test", error: "Invalid date.", date: null });
175
- userEvent.clear(input);
176
- fireEvent.blur(input);
177
- expect(onBlur).toHaveBeenCalled();
178
- expect(onBlur).toHaveBeenCalledWith({ value: "", error: null, date: null });
179
- });
180
-
181
- test("Disabled date (calendar action must be shown but not clickable)", () => {
182
- const { getByRole, queryByText } = render(<DxcNewDate disabled />);
183
- const calendarAction = getByRole("button");
184
- const d = new Date();
185
- const options = { weekday: "short", month: "short", day: "numeric" };
186
-
187
- expect(getByRole("textbox").disabled).toBeTruthy();
188
- userEvent.click(calendarAction);
189
- expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
190
- });
191
-
192
- test("Input has correct accesibility attributes", () => {
193
- const { getByRole } = render(<DxcNewDate label="Date label" />);
194
- const input = getByRole("textbox");
195
- expect(input.getAttribute("aria-autocomplete")).toBeNull();
196
- expect(input.getAttribute("aria-controls")).toBeNull();
197
- expect(input.getAttribute("aria-expanded")).toBeNull();
198
- const calendarAction = getByRole("button");
199
- userEvent.click(calendarAction);
200
- const datePicker = getByRole("dialog");
201
- expect(datePicker.getAttribute("aria-modal")).toBe("true");
202
- });
203
- });