@dxc-technology/halstack-react 0.0.0-8b5e703 → 0.0.0-8b61ced

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 (193) hide show
  1. package/HalstackContext.js +7 -11
  2. package/accordion/Accordion.js +122 -103
  3. package/accordion/Accordion.stories.tsx +2 -3
  4. package/accordion/Accordion.test.js +9 -10
  5. package/accordion/types.d.ts +5 -4
  6. package/accordion-group/AccordionGroup.js +2 -21
  7. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  8. package/accordion-group/AccordionGroup.test.js +20 -45
  9. package/accordion-group/types.d.ts +10 -3
  10. package/alert/Alert.js +1 -1
  11. package/bleed/Bleed.js +1 -34
  12. package/bleed/Bleed.stories.tsx +94 -95
  13. package/bleed/types.d.ts +1 -1
  14. package/box/Box.js +23 -33
  15. package/box/types.d.ts +1 -0
  16. package/bulleted-list/BulletedList.d.ts +7 -0
  17. package/bulleted-list/BulletedList.js +123 -0
  18. package/bulleted-list/BulletedList.stories.tsx +200 -0
  19. package/bulleted-list/types.d.ts +11 -0
  20. package/{list → bulleted-list}/types.js +0 -0
  21. package/button/Button.js +43 -61
  22. package/button/Button.stories.tsx +9 -0
  23. package/button/types.d.ts +7 -7
  24. package/card/Card.js +34 -36
  25. package/card/types.d.ts +1 -0
  26. package/checkbox/Checkbox.d.ts +2 -2
  27. package/checkbox/Checkbox.js +92 -99
  28. package/checkbox/Checkbox.stories.tsx +79 -59
  29. package/checkbox/Checkbox.test.js +93 -16
  30. package/checkbox/types.d.ts +6 -2
  31. package/chip/types.d.ts +1 -1
  32. package/common/variables.js +75 -48
  33. package/date-input/Calendar.d.ts +4 -0
  34. package/date-input/Calendar.js +258 -0
  35. package/date-input/DateInput.js +77 -222
  36. package/date-input/DateInput.stories.tsx +30 -17
  37. package/date-input/DateInput.test.js +411 -138
  38. package/date-input/DatePicker.d.ts +4 -0
  39. package/date-input/DatePicker.js +160 -0
  40. package/date-input/YearPicker.d.ts +4 -0
  41. package/date-input/YearPicker.js +115 -0
  42. package/date-input/types.d.ts +53 -0
  43. package/dialog/Dialog.js +52 -28
  44. package/dialog/Dialog.stories.tsx +57 -2
  45. package/dialog/Dialog.test.js +34 -4
  46. package/dialog/types.d.ts +3 -2
  47. package/dropdown/Dropdown.d.ts +1 -1
  48. package/dropdown/Dropdown.js +247 -247
  49. package/dropdown/Dropdown.stories.tsx +126 -63
  50. package/dropdown/Dropdown.test.js +504 -108
  51. package/dropdown/DropdownMenu.d.ts +4 -0
  52. package/dropdown/DropdownMenu.js +80 -0
  53. package/dropdown/DropdownMenuItem.d.ts +4 -0
  54. package/dropdown/DropdownMenuItem.js +92 -0
  55. package/dropdown/types.d.ts +25 -5
  56. package/file-input/FileInput.d.ts +2 -2
  57. package/file-input/FileInput.js +177 -219
  58. package/file-input/FileInput.stories.tsx +38 -10
  59. package/file-input/FileInput.test.js +53 -12
  60. package/file-input/FileItem.d.ts +4 -14
  61. package/file-input/FileItem.js +38 -63
  62. package/file-input/types.d.ts +17 -0
  63. package/flex/Flex.d.ts +4 -0
  64. package/flex/Flex.js +69 -0
  65. package/flex/Flex.stories.tsx +103 -0
  66. package/flex/types.d.ts +32 -0
  67. package/{radio → flex}/types.js +0 -0
  68. package/footer/Footer.stories.tsx +8 -1
  69. package/footer/Icons.js +1 -1
  70. package/footer/types.d.ts +2 -1
  71. package/header/Header.js +74 -72
  72. package/header/Header.stories.tsx +4 -4
  73. package/header/Icons.js +2 -2
  74. package/header/types.d.ts +3 -2
  75. package/inset/Inset.js +1 -34
  76. package/inset/Inset.stories.tsx +36 -36
  77. package/inset/types.d.ts +1 -1
  78. package/layout/ApplicationLayout.d.ts +16 -6
  79. package/layout/ApplicationLayout.js +70 -117
  80. package/layout/ApplicationLayout.stories.tsx +84 -93
  81. package/layout/Icons.d.ts +5 -0
  82. package/layout/Icons.js +13 -2
  83. package/layout/SidenavContext.d.ts +5 -0
  84. package/layout/SidenavContext.js +19 -0
  85. package/layout/types.d.ts +18 -33
  86. package/link/Link.js +12 -5
  87. package/link/Link.stories.tsx +13 -6
  88. package/link/types.d.ts +1 -1
  89. package/main.d.ts +5 -9
  90. package/main.js +28 -60
  91. package/number-input/NumberInput.test.js +43 -7
  92. package/package.json +16 -20
  93. package/paginator/Paginator.js +2 -2
  94. package/paginator/Paginator.test.js +43 -1
  95. package/paragraph/Paragraph.d.ts +6 -0
  96. package/paragraph/Paragraph.js +38 -0
  97. package/paragraph/Paragraph.stories.tsx +44 -0
  98. package/password-input/PasswordInput.test.js +13 -12
  99. package/progress-bar/ProgressBar.d.ts +2 -2
  100. package/progress-bar/ProgressBar.js +56 -50
  101. package/progress-bar/ProgressBar.stories.jsx +3 -1
  102. package/progress-bar/ProgressBar.test.js +67 -22
  103. package/progress-bar/types.d.ts +3 -4
  104. package/quick-nav/QuickNav.js +25 -20
  105. package/quick-nav/QuickNav.stories.tsx +131 -26
  106. package/radio-group/Radio.d.ts +1 -1
  107. package/radio-group/Radio.js +43 -28
  108. package/radio-group/RadioGroup.js +23 -22
  109. package/radio-group/RadioGroup.stories.tsx +1 -0
  110. package/radio-group/RadioGroup.test.js +123 -96
  111. package/radio-group/types.d.ts +2 -2
  112. package/resultsetTable/Icons.d.ts +7 -0
  113. package/resultsetTable/Icons.js +51 -0
  114. package/resultsetTable/ResultsetTable.js +48 -107
  115. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  116. package/resultsetTable/ResultsetTable.test.js +65 -41
  117. package/resultsetTable/types.d.ts +2 -2
  118. package/select/Listbox.d.ts +1 -1
  119. package/select/Listbox.js +53 -7
  120. package/select/Select.js +43 -43
  121. package/select/Select.stories.tsx +133 -103
  122. package/select/Select.test.js +363 -250
  123. package/select/types.d.ts +2 -5
  124. package/sidenav/Sidenav.d.ts +6 -5
  125. package/sidenav/Sidenav.js +184 -52
  126. package/sidenav/Sidenav.stories.tsx +154 -156
  127. package/sidenav/Sidenav.test.js +25 -37
  128. package/sidenav/types.d.ts +50 -27
  129. package/slider/Slider.d.ts +2 -2
  130. package/slider/Slider.js +120 -95
  131. package/slider/Slider.stories.tsx +7 -1
  132. package/slider/Slider.test.js +121 -21
  133. package/slider/types.d.ts +6 -2
  134. package/spinner/Spinner.js +2 -2
  135. package/switch/Switch.d.ts +2 -2
  136. package/switch/Switch.js +135 -68
  137. package/switch/Switch.stories.tsx +8 -30
  138. package/switch/Switch.test.js +144 -17
  139. package/switch/types.d.ts +6 -2
  140. package/table/Table.js +1 -1
  141. package/table/Table.test.js +1 -1
  142. package/tabs/Tab.d.ts +4 -0
  143. package/tabs/Tab.js +135 -0
  144. package/tabs/Tabs.js +360 -104
  145. package/tabs/Tabs.stories.tsx +74 -1
  146. package/tabs/Tabs.test.js +217 -6
  147. package/tabs/types.d.ts +15 -5
  148. package/tabs-nav/NavTabs.d.ts +2 -1
  149. package/tabs-nav/NavTabs.js +40 -21
  150. package/tabs-nav/Tab.js +29 -16
  151. package/tabs-nav/types.d.ts +7 -5
  152. package/tag/Tag.js +1 -1
  153. package/tag/types.d.ts +1 -1
  154. package/text-input/Icons.d.ts +8 -0
  155. package/text-input/Icons.js +60 -0
  156. package/text-input/Suggestion.js +38 -9
  157. package/text-input/Suggestions.d.ts +4 -0
  158. package/text-input/Suggestions.js +134 -0
  159. package/text-input/TextInput.js +189 -282
  160. package/text-input/TextInput.stories.tsx +194 -182
  161. package/text-input/TextInput.test.js +737 -725
  162. package/text-input/types.d.ts +22 -3
  163. package/toggle-group/types.d.ts +1 -1
  164. package/typography/Typography.d.ts +4 -0
  165. package/typography/Typography.js +131 -0
  166. package/typography/Typography.stories.tsx +198 -0
  167. package/typography/types.d.ts +18 -0
  168. package/{row → typography}/types.js +0 -0
  169. package/wizard/Wizard.js +9 -16
  170. package/wizard/Wizard.stories.tsx +20 -1
  171. package/wizard/types.d.ts +5 -4
  172. package/common/RequiredComponent.js +0 -32
  173. package/list/List.d.ts +0 -4
  174. package/list/List.js +0 -47
  175. package/list/List.stories.tsx +0 -95
  176. package/list/types.d.ts +0 -7
  177. package/radio/Radio.d.ts +0 -4
  178. package/radio/Radio.js +0 -173
  179. package/radio/Radio.stories.tsx +0 -192
  180. package/radio/Radio.test.js +0 -71
  181. package/radio/types.d.ts +0 -54
  182. package/row/Row.d.ts +0 -3
  183. package/row/Row.js +0 -127
  184. package/row/Row.stories.tsx +0 -237
  185. package/row/types.d.ts +0 -28
  186. package/stack/Stack.d.ts +0 -3
  187. package/stack/Stack.js +0 -97
  188. package/stack/Stack.stories.tsx +0 -164
  189. package/stack/types.d.ts +0 -24
  190. package/stack/types.js +0 -5
  191. package/text/Text.d.ts +0 -7
  192. package/text/Text.js +0 -30
  193. package/text/Text.stories.tsx +0 -19
@@ -4,7 +4,7 @@ import { BackgroundColorProvider } from "../BackgroundColorContext";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
6
  import DarkContainer from "../../.storybook/components/DarkSection";
7
- import { userEvent } from "@storybook/testing-library";
7
+ import styled from "styled-components";
8
8
 
9
9
  export default {
10
10
  title: "Checkbox",
@@ -17,29 +17,33 @@ const Checkbox = () => (
17
17
  <Title title="Default" theme="light" level={4} />
18
18
  <DxcCheckbox label="Checkbox" />
19
19
  </ExampleContainer>
20
- <ExampleContainer>
21
- <Title title="Focused" theme="light" level={4} />
22
- <DxcCheckbox label="Focused" />
23
- </ExampleContainer>
24
20
  <ExampleContainer>
25
21
  <Title title="Checked" theme="light" level={4} />
26
22
  <DxcCheckbox label="Checkbox" defaultChecked />
27
23
  </ExampleContainer>
28
24
  <ExampleContainer>
29
- <Title title="Optional" theme="light" level={4} />
30
- <DxcCheckbox label="Checkbox" optional />
25
+ <Title title="Disabled" theme="light" level={4} />
26
+ <DxcCheckbox label="Checkbox" disabled />
31
27
  </ExampleContainer>
32
28
  <ExampleContainer>
33
- <Title title="Disabled and checked" theme="light" level={4} />
34
- <DxcCheckbox label="Checkbox" disabled defaultChecked />
29
+ <Title title="Disabled, checked and optional" theme="light" level={4} />
30
+ <DxcCheckbox label="Checkbox" disabled defaultChecked optional />
35
31
  </ExampleContainer>
36
- <ExampleContainer>
37
- <Title title="Disabled and optional" theme="light" level={4} />
38
- <DxcCheckbox label="Checkbox" disabled optional />
32
+ <ExampleContainer pseudoState="pseudo-focus">
33
+ <Title title="Focused" theme="light" level={4} />
34
+ <DxcCheckbox label="Focused" />
35
+ </ExampleContainer>
36
+ <ExampleContainer pseudoState="pseudo-hover">
37
+ <Title title="Hovered" theme="light" level={4} />
38
+ <DxcCheckbox label="Hovered" />
39
+ </ExampleContainer>
40
+ <ExampleContainer pseudoState="pseudo-hover">
41
+ <Title title="Hovered and checked" theme="light" level={4} />
42
+ <DxcCheckbox label="Hovered" defaultChecked />
39
43
  </ExampleContainer>
40
44
  <ExampleContainer>
41
- <Title title="Disabled, optional and checked" theme="light" level={4} />
42
- <DxcCheckbox label="Checkbox" disabled optional defaultChecked />
45
+ <Title title="Optional" theme="light" level={4} />
46
+ <DxcCheckbox label="Checkbox" optional />
43
47
  </ExampleContainer>
44
48
  <ExampleContainer>
45
49
  <Title title="Label after" theme="light" level={4} />
@@ -53,25 +57,9 @@ const Checkbox = () => (
53
57
  <Title title="Optional with label after" theme="light" level={4} />
54
58
  <DxcCheckbox label="Checkbox" optional labelPosition="after" />
55
59
  </ExampleContainer>
56
- <ExampleContainer>
57
- <Title title="Disabled and checked with label after" theme="light" level={4} />
58
- <DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
59
- </ExampleContainer>
60
60
  <ExampleContainer>
61
61
  <Title title="Disabled and optional with label after" theme="light" level={4} />
62
- <DxcCheckbox label="Checkbox" disabled optional labelPosition="after" />
63
- </ExampleContainer>
64
- <ExampleContainer>
65
- <Title title="Disabled, optional and checked with label after" theme="light" level={4} />
66
- <DxcCheckbox label="Checkbox" disabled optional defaultChecked labelPosition="after" />
67
- </ExampleContainer>
68
- <ExampleContainer pseudoState="pseudo-hover">
69
- <Title title="Hovered" theme="light" level={4} />
70
- <DxcCheckbox label="Hovered" />
71
- </ExampleContainer>
72
- <ExampleContainer pseudoState="pseudo-hover">
73
- <Title title="Hovered and checked" theme="light" level={4} />
74
- <DxcCheckbox label="Hovered" defaultChecked />
62
+ <DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
75
63
  </ExampleContainer>
76
64
  <BackgroundColorProvider color="#333333">
77
65
  <DarkContainer>
@@ -84,20 +72,28 @@ const Checkbox = () => (
84
72
  <DxcCheckbox label="Checkbox" defaultChecked />
85
73
  </ExampleContainer>
86
74
  <ExampleContainer>
87
- <Title title="Optional" theme="dark" level={4} />
88
- <DxcCheckbox label="Checkbox" optional />
75
+ <Title title="Disabled" theme="dark" level={4} />
76
+ <DxcCheckbox label="Checkbox" disabled />
89
77
  </ExampleContainer>
90
78
  <ExampleContainer>
91
- <Title title="Disabled and checked" theme="dark" level={4} />
92
- <DxcCheckbox label="Checkbox" disabled defaultChecked />
79
+ <Title title="Disabled, checked and optional" theme="dark" level={4} />
80
+ <DxcCheckbox label="Checkbox" disabled defaultChecked optional />
93
81
  </ExampleContainer>
94
- <ExampleContainer>
95
- <Title title="Disabled and optional" theme="dark" level={4} />
96
- <DxcCheckbox label="Checkbox" disabled optional />
82
+ <ExampleContainer pseudoState="pseudo-focus">
83
+ <Title title="Focused" theme="dark" level={4} />
84
+ <DxcCheckbox label="Focused" />
85
+ </ExampleContainer>
86
+ <ExampleContainer pseudoState="pseudo-hover">
87
+ <Title title="Hovered" theme="dark" level={4} />
88
+ <DxcCheckbox label="Hovered" />
89
+ </ExampleContainer>
90
+ <ExampleContainer pseudoState="pseudo-hover">
91
+ <Title title="Hovered and checked" theme="dark" level={4} />
92
+ <DxcCheckbox label="Hovered" defaultChecked />
97
93
  </ExampleContainer>
98
94
  <ExampleContainer>
99
- <Title title="Disabled, optional and checked" theme="dark" level={4} />
100
- <DxcCheckbox label="Checkbox" disabled optional defaultChecked />
95
+ <Title title="Optional" theme="dark" level={4} />
96
+ <DxcCheckbox label="Checkbox" optional />
101
97
  </ExampleContainer>
102
98
  <ExampleContainer>
103
99
  <Title title="Label after" theme="dark" level={4} />
@@ -111,25 +107,9 @@ const Checkbox = () => (
111
107
  <Title title="Optional with label after" theme="dark" level={4} />
112
108
  <DxcCheckbox label="Checkbox" optional labelPosition="after" />
113
109
  </ExampleContainer>
114
- <ExampleContainer>
115
- <Title title="Disabled and checked with label after" theme="dark" level={4} />
116
- <DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
117
- </ExampleContainer>
118
110
  <ExampleContainer>
119
111
  <Title title="Disabled and optional with label after" theme="dark" level={4} />
120
- <DxcCheckbox label="Checkbox" disabled optional labelPosition="after" />
121
- </ExampleContainer>
122
- <ExampleContainer>
123
- <Title title="Disabled, optional and checked with label after" theme="dark" level={4} />
124
- <DxcCheckbox label="Checkbox" disabled optional defaultChecked labelPosition="after" />
125
- </ExampleContainer>
126
- <ExampleContainer pseudoState="pseudo-hover">
127
- <Title title="Hovered" theme="dark" level={4} />
128
- <DxcCheckbox label="Hovered" />
129
- </ExampleContainer>
130
- <ExampleContainer pseudoState="pseudo-hover">
131
- <Title title="Hovered and checked" theme="dark" level={4} />
132
- <DxcCheckbox label="Hovered" defaultChecked />
112
+ <DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
133
113
  </ExampleContainer>
134
114
  </DarkContainer>
135
115
  </BackgroundColorProvider>
@@ -178,11 +158,51 @@ const Checkbox = () => (
178
158
  <Title title="Xxlarge" theme="light" level={4} />
179
159
  <DxcCheckbox label="Xxlarge" margin="xxlarge" />
180
160
  </ExampleContainer>
161
+ <ExampleContainer>
162
+ <Title title="Overflow container" theme="light" level={4} />
163
+ <ScrollableContainer id="scroll-container">
164
+ <DxcCheckbox label="Checkbox" defaultChecked />
165
+ <DxcCheckbox label="Checkbox" defaultChecked />
166
+ <DxcCheckbox label="Checkbox" />
167
+ <DxcCheckbox label="Checkbox" defaultChecked />
168
+ <DxcCheckbox label="Checkbox" />
169
+ <DxcCheckbox label="Checkbox" />
170
+ <DxcCheckbox label="Checkbox" />
171
+ <DxcCheckbox label="Checkbox" defaultChecked />
172
+ </ScrollableContainer>
173
+ </ExampleContainer>
174
+ <ExampleContainer>
175
+ <Title title="Label overflow" theme="light" level={4} />
176
+ <SmallContainer>
177
+ <DxcCheckbox label="Very long label to check its overflowing" defaultChecked />
178
+ <DxcCheckbox label="Very long label to check its overflowing" labelPosition="after" />
179
+ </SmallContainer>
180
+ </ExampleContainer>
181
181
  </>
182
182
  );
183
183
 
184
184
  export const Chromatic = Checkbox.bind({});
185
+
185
186
  Chromatic.play = async () => {
186
- await userEvent.tab();
187
- await userEvent.tab();
187
+ const listEl = document.getElementById("scroll-container");
188
+ listEl?.scrollTo?.({ top: 50 });
188
189
  };
190
+
191
+ const ScrollableContainer = styled.div`
192
+ display: flex;
193
+ flex-direction: column;
194
+ gap: 14px;
195
+ width: 200px;
196
+ height: 200px;
197
+ border: 1px solid #000;
198
+ padding: 14px;
199
+ overflow: auto;
200
+ `;
201
+
202
+ const SmallContainer = styled.div`
203
+ display: flex;
204
+ flex-direction: column;
205
+ gap: 14px;
206
+ width: 150px;
207
+ height: 150px;
208
+ `;
@@ -6,25 +6,39 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
+
9
11
  var _Checkbox = _interopRequireDefault(require("./Checkbox"));
10
12
 
11
13
  describe("Checkbox component tests", function () {
12
- test("Checkbox renders with correct text", function () {
14
+ test("Checkbox renders with correct aria-labelledby and aria-required", function () {
13
15
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
14
16
  label: "Checkbox"
15
17
  })),
16
- getByText = _render.getByText;
18
+ getByText = _render.getByText,
19
+ getByRole = _render.getByRole;
17
20
 
18
- expect(getByText("Checkbox")).toBeTruthy();
21
+ var labelId = getByText("Checkbox").getAttribute("id");
22
+ expect(getByRole("checkbox").getAttribute("aria-labelledby")).toBe(labelId);
23
+ expect(getByRole("checkbox").getAttribute("aria-required")).toBe("true");
24
+ });
25
+ test("Optional checkbox renders with correct aria-required", function () {
26
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
27
+ label: "Checkbox",
28
+ optional: true
29
+ })),
30
+ getByRole = _render2.getByRole;
31
+
32
+ expect(getByRole("checkbox").getAttribute("aria-required")).toBe("false");
19
33
  });
20
34
  test("Calls correct function on click", function () {
21
35
  var onChange = jest.fn();
22
36
 
23
- var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
37
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
24
38
  label: "Checkbox",
25
39
  onChange: onChange
26
40
  })),
27
- getByText = _render2.getByText;
41
+ getByText = _render3.getByText;
28
42
 
29
43
  _react2.fireEvent.click(getByText("Checkbox"));
30
44
 
@@ -34,45 +48,108 @@ describe("Checkbox component tests", function () {
34
48
  var onChange = jest.fn();
35
49
  var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
36
50
  label: "Checkbox",
37
- onChange: onChange
51
+ onChange: onChange,
52
+ name: "test"
38
53
  }));
39
54
  var visibleCheckbox = component.getByText("Checkbox");
40
55
  var input = component.getByRole("checkbox");
41
- expect(input.checked).toBe(false);
56
+ var submitInput = component.container.querySelector("input[name=\"test\"]");
57
+ expect(input.getAttribute("aria-checked")).toBe("false");
58
+ expect(submitInput.checked).toBe(false);
42
59
 
43
60
  _react2.fireEvent.click(visibleCheckbox);
44
61
 
45
62
  expect(onChange).toHaveBeenCalled();
46
63
  expect(onChange).toHaveBeenCalledWith(true);
47
- expect(input.checked).toBe(true);
64
+ expect(input.getAttribute("aria-checked")).toBe("true");
65
+ expect(submitInput.checked).toBe(true);
48
66
  });
49
67
  test("Controlled checkbox", function () {
50
68
  var onChange = jest.fn();
51
69
  var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
52
70
  label: "Checkbox",
53
71
  checked: false,
54
- onChange: onChange
72
+ onChange: onChange,
73
+ name: "test"
55
74
  }));
56
75
  var input = component.getByRole("checkbox");
57
76
  var visibleCheckbox = component.getByText("Checkbox");
77
+ var submitInput = component.container.querySelector("input[name=\"test\"]");
58
78
 
59
79
  _react2.fireEvent.click(visibleCheckbox);
60
80
 
61
81
  expect(onChange).toHaveBeenCalled();
62
82
  expect(onChange).toHaveBeenCalledWith(true);
63
- expect(input.checked).toBe(false);
83
+ expect(input.getAttribute("aria-checked")).toBe("false");
84
+ expect(submitInput.checked).toBe(false);
64
85
  });
65
86
  test("Renders with correct initial value and initial state when it is uncontrolled", function () {
66
- var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
87
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
67
88
  label: "Default label",
68
89
  defaultChecked: true,
69
- value: "test-defaultChecked"
90
+ value: "test-defaultChecked",
91
+ name: "test"
92
+ })),
93
+ getByRole = _render4.getByRole,
94
+ container = _render4.container;
95
+
96
+ var checkbox = getByRole("checkbox");
97
+ var submitInput = container.querySelector("input[name=\"test\"]");
98
+ expect(submitInput.value).toBe("test-defaultChecked");
99
+ expect(checkbox.getAttribute("aria-checked")).toBe("true");
100
+ expect(submitInput.checked).toBe(true);
101
+ });
102
+ test("Test disable keyboard and mouse interactions", function () {
103
+ var onChange = jest.fn();
104
+
105
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
106
+ label: "Checkbox",
107
+ onChange: onChange,
108
+ disabled: true,
109
+ name: "test"
70
110
  })),
71
- getByRole = _render3.getByRole;
111
+ getByRole = _render5.getByRole,
112
+ getByText = _render5.getByText,
113
+ container = _render5.container;
72
114
 
73
115
  var input = getByRole("checkbox");
74
- expect(input.checked).toBe(true);
75
- expect(input.value).toBe("test-defaultChecked");
76
- expect(input.getAttribute("aria-checked")).toBe("true");
116
+ var visibleCheckbox = getByText("Checkbox");
117
+ var submitInput = container.querySelector("input[name=\"test\"]");
118
+
119
+ _react2.fireEvent.click(visibleCheckbox);
120
+
121
+ expect(onChange).toHaveBeenCalledTimes(0);
122
+ expect(input.getAttribute("aria-checked")).toBe("false");
123
+ expect(input.getAttribute("aria-disabled")).toBe("true");
124
+ expect(submitInput.checked).toBe(false);
125
+
126
+ _userEvent["default"].tab();
127
+
128
+ expect(document.activeElement === input).toBeFalsy();
129
+ });
130
+ test("Test keyboard interactions", function () {
131
+ var onChange = jest.fn();
132
+
133
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
134
+ label: "Checkbox",
135
+ name: "test",
136
+ onChange: onChange
137
+ })),
138
+ getByRole = _render6.getByRole;
139
+
140
+ var checkbox = getByRole("checkbox");
141
+
142
+ _userEvent["default"].tab();
143
+
144
+ expect(document.activeElement === checkbox).toBeTruthy();
145
+
146
+ _react2.fireEvent.keyDown(checkbox, {
147
+ key: " ",
148
+ code: "Space",
149
+ keyCode: 32,
150
+ charCode: 32
151
+ });
152
+
153
+ expect(onChange).toHaveBeenCalledWith(true);
77
154
  });
78
155
  });
@@ -1,5 +1,5 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Margin = {
1
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ export declare type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
@@ -61,4 +61,8 @@ declare type Props = {
61
61
  */
62
62
  tabIndex?: number;
63
63
  };
64
+ /**
65
+ * Reference to the component.
66
+ */
67
+ export declare type RefType = HTMLDivElement;
64
68
  export default Props;
package/chip/types.d.ts CHANGED
@@ -6,7 +6,7 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement>;
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
10
  declare type Props = {
11
11
  /**
12
12
  * Text to be placed on the chip.
@@ -179,13 +179,13 @@ var componentTokens = {
179
179
  titleLabelFontStyle: globalTokens.type_normal,
180
180
  titleLabelFontColor: globalTokens.hal_black,
181
181
  disabledTitleLabelFontColor: globalTokens.hal_grey_l_60,
182
- titleLabelPaddingLeft: "0px",
183
- titleLabelPaddingRight: "16px",
184
182
  titleLabelPaddingTop: "0px",
185
183
  titleLabelPaddingBottom: "0px",
184
+ titleLabelPaddingLeft: "0px",
185
+ titleLabelPaddingRight: "16px",
186
+ focusBorderColor: globalTokens.hal_blue_l_50,
186
187
  focusBorderStyle: "solid",
187
188
  focusBorderThickness: "2px",
188
- focusBorderColor: globalTokens.hal_blue_l_50,
189
189
  borderRadius: "4px",
190
190
  boxShadowOffsetX: "0px",
191
191
  boxShadowOffsetY: "6px",
@@ -267,6 +267,15 @@ var componentTokens = {
267
267
  twoShadowDepthShadowSpread: "0px",
268
268
  twoShadowDepthShadowColor: globalTokens.color_grey_a_300
269
269
  },
270
+ bulletedList: {
271
+ fontColor: globalTokens.hal_black,
272
+ fontColorOnDark: globalTokens.hal_white,
273
+ bulletIconHeight: "1.5rem",
274
+ bulletIconWidth: "1.5rem",
275
+ bulletHeight: "5px",
276
+ bulletWidth: "5px",
277
+ bulletMarginRight: "0.5rem"
278
+ },
270
279
  button: {
271
280
  labelFontLineHeight: globalTokens.type_leading_normal,
272
281
  labelLetterSpacing: globalTokens.type_spacing_wide_01,
@@ -345,7 +354,7 @@ var componentTokens = {
345
354
  backgroundColorChecked: globalTokens.hal_blue_s_35,
346
355
  backgroundColorCheckedOnDark: globalTokens.hal_grey_l_90,
347
356
  hoverBackgroundColorChecked: globalTokens.hal_blue_d_20,
348
- hoverBackgroundColorCheckedOnDark: global.hal_white,
357
+ hoverBackgroundColorCheckedOnDark: globalTokens.hal_white,
349
358
  disabledBackgroundColorChecked: globalTokens.hal_grey_l_60,
350
359
  disabledBackgroundColorCheckedOnDark: globalTokens.color_grey_800,
351
360
  borderColor: globalTokens.hal_blue_s_35,
@@ -399,7 +408,7 @@ var componentTokens = {
399
408
  pickerHoverDateBackgroundColor: globalTokens.hal_purple_l_90,
400
409
  pickerSelectedDateColor: globalTokens.hal_white,
401
410
  pickerSelectedDateBackgroundColor: globalTokens.hal_purple_s_38,
402
- pickerActualDateFontColor: globalTokens.hal_grey_l_60,
411
+ pickerActualDateFontColor: globalTokens.hal_black,
403
412
  pickerYearFontColor: globalTokens.hal_black,
404
413
  pickerMonthFontColor: globalTokens.hal_black,
405
414
  pickerWeekFontColor: globalTokens.hal_black,
@@ -407,7 +416,8 @@ var componentTokens = {
407
416
  pickerMonthArrowsBackgroundColor: globalTokens.transparent,
408
417
  pickerFocusColor: globalTokens.hal_blue_l_50,
409
418
  pickerHeight: "316px",
410
- pickerWidth: "290px"
419
+ // not referenced in the actual implementation
420
+ pickerWidth: "292px"
411
421
  },
412
422
  dialog: {
413
423
  overlayColor: globalTokens.hal_black,
@@ -426,7 +436,10 @@ var componentTokens = {
426
436
  boxShadowOffsetY: "1px",
427
437
  boxShadowBlur: "3px",
428
438
  boxShadowColor: "rgba(0, 0, 0, 0.2)",
429
- overlayOpacity: "0.7"
439
+ overlayOpacity: "0.7",
440
+ fontFamily: globalTokens.type_sans,
441
+ fontSize: globalTokens.type_scale_03,
442
+ fontWeight: globalTokens.type_regular
430
443
  },
431
444
  dropdown: {
432
445
  buttonBackgroundColor: globalTokens.hal_white,
@@ -734,6 +747,13 @@ var componentTokens = {
734
747
  activeUnderlineColor: globalTokens.black,
735
748
  focusColor: globalTokens.hal_blue_l_50
736
749
  },
750
+ paragraph: {
751
+ fontColor: globalTokens.hal_black,
752
+ fontColorOnDark: globalTokens.hal_white,
753
+ display: "block",
754
+ fontSize: globalTokens.type_scale_03,
755
+ fontWeight: globalTokens.type_regular
756
+ },
737
757
  paginator: {
738
758
  backgroundColor: globalTokens.darkWhite,
739
759
  fontColor: globalTokens.hal_black,
@@ -744,13 +764,13 @@ var componentTokens = {
744
764
  fontTextTransform: "none",
745
765
  verticalPadding: "0.75rem",
746
766
  horizontalPadding: "2rem",
747
- marginRight: "2rem",
748
- marginLeft: "2rem",
767
+ marginRight: "40px",
768
+ marginLeft: "20px",
749
769
  itemsPerPageSelectorMarginLeft: "0px",
750
- itemsPerPageSelectorMarginRight: "1rem",
770
+ itemsPerPageSelectorMarginRight: "0.5rem",
751
771
  pageSelectorMarginRight: "30px",
752
772
  pageSelectorMarginLeft: "0px",
753
- totalItemsContainerMarginRight: "3rem",
773
+ totalItemsContainerMarginRight: "2.5rem",
754
774
  totalItemsContainerMarginLeft: "0px"
755
775
  },
756
776
  progressBar: {
@@ -785,7 +805,6 @@ var componentTokens = {
785
805
  quickNav: {
786
806
  fontColor: globalTokens.hal_grey_s_40,
787
807
  hoverFontColor: globalTokens.hal_purple_d_70,
788
- selectedFontColor: globalTokens.hal_purple_s_38,
789
808
  dividerBorderColor: globalTokens.hal_grey_l_75,
790
809
  focusBorderColor: globalTokens.hal_blue_l_50,
791
810
  focusBorderStyle: globalTokens.border_solid,
@@ -800,24 +819,6 @@ var componentTokens = {
800
819
  fontStyle: globalTokens.type_normal,
801
820
  fontWeight: globalTokens.type_regular
802
821
  },
803
- radio: {
804
- circleLabelSpacing: "10px",
805
- circleSize: "24px",
806
- color: globalTokens.black,
807
- colorOnDark: globalTokens.white,
808
- disabledColor: globalTokens.lighterBlack,
809
- disabledColorOnDark: "#575757",
810
- disabledFontColor: globalTokens.lighterBlack,
811
- disabledFontColorOnDark: "#575757",
812
- focusColor: globalTokens.hal_blue_l_50,
813
- focusColorOnDark: "#1682FF",
814
- fontColor: globalTokens.inherit,
815
- fontColorOnDark: globalTokens.white,
816
- fontFamily: globalTokens.type_sans,
817
- fontSize: globalTokens.type_scale_root,
818
- fontStyle: globalTokens.type_normal,
819
- fontWeight: globalTokens.type_regular
820
- },
821
822
  radioGroup: {
822
823
  fontFamily: globalTokens.type_sans,
823
824
  radioInputColor: globalTokens.hal_blue_l_45,
@@ -928,24 +929,35 @@ var componentTokens = {
928
929
  arrowContainerColor: globalTokens.hal_grey_l_90,
929
930
  arrowColor: globalTokens.hal_black,
930
931
  titleFontFamily: globalTokens.type_sans,
931
- titleFontSize: globalTokens.type_scale_05,
932
+ titleFontSize: globalTokens.type_scale_04,
932
933
  titleFontStyle: globalTokens.type_normal,
933
- titleFontWeight: globalTokens.type_regular,
934
- titleFontColor: globalTokens.hal_black,
934
+ titleFontWeight: globalTokens.type_semibold,
935
+ titleFontColor: globalTokens.color_grey_800,
935
936
  titleFontTextTransform: "none",
936
937
  titleFontLetterSpacing: globalTokens.type_spacing_normal,
937
- subtitleFontFamily: globalTokens.type_sans,
938
- subtitleFontSize: globalTokens.type_scale_03,
939
- subtitleFontStyle: globalTokens.type_normal,
940
- subtitleFontWeight: globalTokens.type_regular,
941
- subtitleFontColor: globalTokens.color_grey_800,
942
- subtitleFontTextTransform: globalTokens.type_uppercase,
943
- subtitleFontLetterSpacing: globalTokens.type_spacing_wide_02,
938
+ groupTitleFontFamily: globalTokens.type_sans,
939
+ groupTitleFontSize: globalTokens.type_scale_02,
940
+ groupTitleFontStyle: globalTokens.type_normal,
941
+ groupTitleFontWeight: globalTokens.type_semibold,
942
+ groupTitleFontColor: globalTokens.black,
943
+ groupTitleHoverBackgroundColor: globalTokens.hal_grey_l_90,
944
+ groupTitleActiveBackgroundColor: globalTokens.hal_grey_l_80,
945
+ groupTitleSelectedFontColor: globalTokens.white,
946
+ groupTitleSelectedBackgroundColor: globalTokens.color_grey_800,
947
+ groupTitleSelectedHoverFontColor: globalTokens.white,
948
+ groupTitleSelectedHoverBackgroundColor: globalTokens.color_grey_600,
949
+ groupTitleFontTextTransform: globalTokens.type_uppercase,
950
+ groupTitleFontLetterSpacing: globalTokens.type_spacing_wide_02,
944
951
  linkFontFamily: globalTokens.type_sans,
945
952
  linkFontSize: globalTokens.type_scale_02,
946
953
  linkFontStyle: globalTokens.type_normal,
947
954
  linkFontWeight: globalTokens.type_regular,
948
955
  linkFontColor: globalTokens.color_grey_800,
956
+ linkHoverBackgroundColor: globalTokens.hal_grey_l_90,
957
+ linkSelectedFontColor: globalTokens.white,
958
+ linkSelectedBackgroundColor: globalTokens.color_grey_800,
959
+ linkSelectedHoverFontColor: globalTokens.white,
960
+ linkSelectedHoverBackgroundColor: globalTokens.color_grey_600,
949
961
  linkFontTextTransform: "none",
950
962
  linkFontLetterSpacing: globalTokens.type_spacing_wide_01,
951
963
  linkTextDecoration: globalTokens.type_no_line,
@@ -1013,7 +1025,7 @@ var componentTokens = {
1013
1025
  trackLineColorOnDark: globalTokens.hal_blue_l_50,
1014
1026
  totalLineThickness: "2px",
1015
1027
  totalLineVerticalPosition: "50%",
1016
- totalLineColor: globalTokens.hal_grey_l_90,
1028
+ totalLineColor: "#0000001a",
1017
1029
  totalLineColorOnDark: globalTokens.hal_grey_l_75,
1018
1030
  disabledThumbVerticalPosition: "10px",
1019
1031
  disabledThumbBackgroundColor: globalTokens.hal_grey_l_60,
@@ -1094,10 +1106,10 @@ var componentTokens = {
1094
1106
  thumbFocusColorOnDark: "#1682FF",
1095
1107
  thumbHeight: "24px",
1096
1108
  thumbWidth: "24px",
1097
- thumbShift: "40%",
1109
+ thumbShift: "1.25rem",
1098
1110
  trackHeight: "12px",
1099
- trackWidth: "60px",
1100
- spaceBetweenLabelSwitch: "0px"
1111
+ trackWidth: "36px",
1112
+ spaceBetweenLabelSwitch: "8px"
1101
1113
  },
1102
1114
  tag: {
1103
1115
  fontFamily: globalTokens.type_sans,
@@ -1412,6 +1424,9 @@ var defaultTranslatedComponentLabels = {
1412
1424
  },
1413
1425
  logoAlternativeText: "Logo"
1414
1426
  },
1427
+ applicationLayout: {
1428
+ visibilityToggleTitle: "Toggle visibility sidenav"
1429
+ },
1415
1430
  alert: {
1416
1431
  infoTitleText: "information",
1417
1432
  successTitleText: "success",
@@ -1428,13 +1443,18 @@ var defaultTranslatedComponentLabels = {
1428
1443
  singleButtonLabelDefault: "Select file",
1429
1444
  dropAreaButtonLabelDefault: "Select",
1430
1445
  multipleDropAreaLabelDefault: "or drop files",
1431
- singleDropAreaLabelDefault: "or drop a file"
1446
+ singleDropAreaLabelDefault: "or drop a file",
1447
+ deleteFileActionTitle: "Remove file"
1432
1448
  },
1433
1449
  footer: {
1434
1450
  copyrightText: function copyrightText(year) {
1435
1451
  return "\xA9 DXC Technology ".concat(year, ". All rights reserved.");
1436
1452
  }
1437
1453
  },
1454
+ header: {
1455
+ closeIcon: "Close menu",
1456
+ hamburguerTitle: "Menu"
1457
+ },
1438
1458
  numberInput: {
1439
1459
  valueGreaterThanOrEqualToErrorMessage: function valueGreaterThanOrEqualToErrorMessage(value) {
1440
1460
  return "Value must be greater than or equal to ".concat(value, ".");
@@ -1446,7 +1466,7 @@ var defaultTranslatedComponentLabels = {
1446
1466
  incrementValueTitle: "Increment value"
1447
1467
  },
1448
1468
  paginator: {
1449
- itemsPerPageText: "Items per page ",
1469
+ itemsPerPageText: "Items per page: ",
1450
1470
  minToMaxOfText: function minToMaxOfText(minNumberOfItems, maxNumberOfItems, totalItems) {
1451
1471
  return "".concat(minNumberOfItems, " to ").concat(maxNumberOfItems, " of ").concat(totalItems);
1452
1472
  },
@@ -1470,6 +1490,10 @@ var defaultTranslatedComponentLabels = {
1470
1490
  actionClearSelectionTitle: "Clear selection",
1471
1491
  actionClearSearchTitle: "Clear search"
1472
1492
  },
1493
+ tabs: {
1494
+ scrollLeft: "Scroll left",
1495
+ scrollRight: "Scroll right"
1496
+ },
1473
1497
  textInput: {
1474
1498
  clearFieldActionTitle: "Clear field",
1475
1499
  searchingMessage: "Searching...",
@@ -1477,9 +1501,12 @@ var defaultTranslatedComponentLabels = {
1477
1501
  },
1478
1502
  calendar: {
1479
1503
  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
1480
- daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
1504
+ daysShort: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
1481
1505
  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
1482
- monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
1506
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
1507
+ previousMonthTitle: "Previous month",
1508
+ nextMonthTitle: "Next month",
1509
+ openCalendar: "Open calendar"
1483
1510
  }
1484
1511
  };
1485
1512
  exports.defaultTranslatedComponentLabels = defaultTranslatedComponentLabels;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { CalendarPropsType } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ selectedDate, innerDate, onInnerDateChange, onDaySelect }: CalendarPropsType) => JSX.Element>;
4
+ export default _default;