@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370

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 (213) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +12 -2
  3. package/HalstackContext.d.ts +1330 -7
  4. package/HalstackContext.js +84 -67
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +74 -55
  7. package/accordion/Accordion.stories.tsx +3 -101
  8. package/accordion/Accordion.test.js +34 -19
  9. package/accordion/types.d.ts +4 -16
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +49 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  13. package/accordion-group/AccordionGroup.test.js +62 -54
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -18
  17. package/alert/Alert.js +47 -20
  18. package/alert/Alert.test.js +46 -29
  19. package/alert/types.d.ts +3 -3
  20. package/badge/Badge.js +14 -2
  21. package/badge/types.d.ts +1 -1
  22. package/bleed/Bleed.js +21 -13
  23. package/bleed/Bleed.stories.tsx +1 -0
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +33 -33
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +7 -2
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +36 -9
  31. package/bulleted-list/BulletedList.stories.tsx +7 -1
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +83 -71
  35. package/button/Button.stories.tsx +4 -4
  36. package/button/Button.test.js +28 -8
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +67 -62
  40. package/card/Card.stories.tsx +12 -42
  41. package/card/Card.test.js +22 -11
  42. package/card/types.d.ts +4 -10
  43. package/checkbox/Checkbox.js +71 -27
  44. package/checkbox/Checkbox.test.js +60 -33
  45. package/checkbox/types.d.ts +4 -4
  46. package/chip/Chip.js +51 -48
  47. package/chip/Chip.stories.tsx +25 -17
  48. package/chip/Chip.test.js +29 -17
  49. package/chip/types.d.ts +4 -4
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +8 -3
  55. package/common/variables.d.ts +226 -175
  56. package/common/variables.js +956 -1133
  57. package/date-input/Calendar.js +55 -12
  58. package/date-input/DateInput.js +82 -35
  59. package/date-input/DateInput.test.js +351 -164
  60. package/date-input/DatePicker.js +38 -8
  61. package/date-input/Icons.js +12 -0
  62. package/date-input/YearPicker.js +30 -5
  63. package/date-input/types.d.ts +7 -7
  64. package/dialog/Dialog.d.ts +1 -1
  65. package/dialog/Dialog.js +83 -86
  66. package/dialog/Dialog.stories.tsx +127 -221
  67. package/dialog/Dialog.test.js +331 -18
  68. package/dialog/types.d.ts +1 -14
  69. package/dropdown/Dropdown.js +86 -32
  70. package/dropdown/Dropdown.test.js +211 -104
  71. package/dropdown/DropdownMenu.js +22 -8
  72. package/dropdown/DropdownMenuItem.js +15 -6
  73. package/dropdown/types.d.ts +8 -8
  74. package/file-input/FileInput.js +218 -134
  75. package/file-input/FileInput.test.js +343 -331
  76. package/file-input/FileItem.js +39 -12
  77. package/file-input/types.d.ts +10 -10
  78. package/flex/Flex.js +39 -25
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +74 -9
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +80 -68
  83. package/footer/Footer.stories.tsx +12 -89
  84. package/footer/Footer.test.js +47 -40
  85. package/footer/Icons.js +4 -0
  86. package/footer/types.d.ts +15 -17
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +4 -3
  92. package/header/Header.js +72 -55
  93. package/header/Header.stories.tsx +7 -71
  94. package/header/Header.test.js +26 -13
  95. package/header/Icons.js +4 -0
  96. package/header/types.d.ts +2 -16
  97. package/heading/Heading.js +28 -7
  98. package/heading/Heading.test.js +88 -71
  99. package/heading/types.d.ts +3 -3
  100. package/inset/Inset.js +21 -13
  101. package/inset/Inset.stories.tsx +2 -1
  102. package/inset/types.d.ts +2 -2
  103. package/layout/ApplicationLayout.d.ts +5 -5
  104. package/layout/ApplicationLayout.js +57 -15
  105. package/layout/Icons.js +10 -0
  106. package/layout/SidenavContext.d.ts +1 -1
  107. package/layout/SidenavContext.js +4 -0
  108. package/layout/types.d.ts +5 -6
  109. package/link/Link.js +41 -21
  110. package/link/Link.test.js +42 -26
  111. package/link/types.d.ts +4 -4
  112. package/main.d.ts +2 -1
  113. package/main.js +55 -0
  114. package/nav-tabs/NavTabs.d.ts +2 -2
  115. package/nav-tabs/NavTabs.js +43 -16
  116. package/nav-tabs/NavTabs.stories.tsx +14 -0
  117. package/nav-tabs/NavTabs.test.js +44 -37
  118. package/nav-tabs/Tab.js +71 -45
  119. package/nav-tabs/types.d.ts +10 -11
  120. package/number-input/NumberInput.js +30 -20
  121. package/number-input/NumberInput.test.js +249 -113
  122. package/number-input/NumberInputContext.js +5 -0
  123. package/number-input/numberInputContextTypes.d.ts +1 -1
  124. package/number-input/types.d.ts +4 -4
  125. package/package.json +7 -7
  126. package/paginator/Icons.js +10 -0
  127. package/paginator/Paginator.js +39 -17
  128. package/paginator/Paginator.test.js +156 -104
  129. package/paginator/types.d.ts +1 -1
  130. package/paragraph/Paragraph.d.ts +3 -4
  131. package/paragraph/Paragraph.js +18 -8
  132. package/password-input/PasswordInput.js +51 -22
  133. package/password-input/PasswordInput.test.js +94 -51
  134. package/password-input/types.d.ts +4 -4
  135. package/progress-bar/ProgressBar.d.ts +2 -2
  136. package/progress-bar/ProgressBar.js +39 -14
  137. package/progress-bar/ProgressBar.test.js +53 -36
  138. package/progress-bar/types.d.ts +4 -3
  139. package/quick-nav/QuickNav.js +24 -2
  140. package/quick-nav/types.d.ts +2 -2
  141. package/radio-group/Radio.js +53 -22
  142. package/radio-group/RadioGroup.js +84 -41
  143. package/radio-group/RadioGroup.test.js +288 -186
  144. package/radio-group/types.d.ts +4 -4
  145. package/resultsetTable/Icons.js +3 -0
  146. package/resultsetTable/ResultsetTable.js +56 -21
  147. package/resultsetTable/ResultsetTable.test.js +75 -42
  148. package/resultsetTable/types.d.ts +5 -5
  149. package/select/Icons.js +3 -0
  150. package/select/Listbox.js +35 -10
  151. package/select/Option.js +24 -8
  152. package/select/Select.js +143 -56
  153. package/select/Select.test.js +839 -456
  154. package/select/types.d.ts +12 -12
  155. package/sidenav/Icons.d.ts +7 -0
  156. package/sidenav/Icons.js +51 -0
  157. package/sidenav/Sidenav.d.ts +2 -2
  158. package/sidenav/Sidenav.js +116 -104
  159. package/sidenav/Sidenav.stories.tsx +60 -60
  160. package/sidenav/Sidenav.test.js +10 -3
  161. package/sidenav/types.d.ts +26 -23
  162. package/slider/Slider.js +84 -38
  163. package/slider/Slider.test.js +104 -76
  164. package/slider/types.d.ts +4 -4
  165. package/spinner/Spinner.js +51 -28
  166. package/spinner/Spinner.stories.jsx +28 -28
  167. package/spinner/Spinner.test.js +35 -26
  168. package/spinner/types.d.ts +3 -3
  169. package/switch/Switch.js +66 -24
  170. package/switch/Switch.test.js +97 -52
  171. package/switch/types.d.ts +4 -4
  172. package/table/Table.js +22 -4
  173. package/table/Table.test.js +7 -2
  174. package/table/types.d.ts +3 -3
  175. package/tabs/Tab.js +39 -22
  176. package/tabs/Tabs.js +131 -62
  177. package/tabs/Tabs.test.js +122 -67
  178. package/tabs/types.d.ts +8 -8
  179. package/tag/Tag.js +54 -27
  180. package/tag/Tag.test.js +31 -20
  181. package/tag/types.d.ts +7 -7
  182. package/text-input/Icons.js +3 -0
  183. package/text-input/Suggestion.js +24 -8
  184. package/text-input/Suggestions.js +36 -11
  185. package/text-input/TextInput.js +144 -59
  186. package/text-input/TextInput.stories.tsx +1 -1
  187. package/text-input/TextInput.test.js +858 -539
  188. package/text-input/types.d.ts +9 -9
  189. package/textarea/Textarea.js +73 -38
  190. package/textarea/Textarea.test.js +173 -98
  191. package/textarea/types.d.ts +4 -4
  192. package/toggle-group/ToggleGroup.d.ts +2 -2
  193. package/toggle-group/ToggleGroup.js +59 -21
  194. package/toggle-group/ToggleGroup.test.js +72 -40
  195. package/toggle-group/types.d.ts +11 -11
  196. package/typography/Typography.d.ts +2 -2
  197. package/typography/Typography.js +23 -110
  198. package/typography/Typography.stories.tsx +1 -1
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +1234 -1
  201. package/useTheme.js +6 -0
  202. package/useTranslatedLabels.d.ts +84 -2
  203. package/useTranslatedLabels.js +5 -0
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +47 -13
  209. package/wizard/Wizard.test.js +81 -54
  210. package/wizard/types.d.ts +7 -8
  211. package/card/ice-cream.jpg +0 -0
  212. package/translatedLabelsType.d.ts +0 -82
  213. /package/{translatedLabelsType.js → grid/types.js} +0 -0
package/tabs/Tabs.test.js CHANGED
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _react = _interopRequireDefault(require("react"));
6
+
5
7
  var _react2 = require("@testing-library/react");
6
- var _Tabs = _interopRequireDefault(require("./Tabs"));
8
+
9
+ var _Tabs = _interopRequireDefault(require("./Tabs.tsx"));
10
+
7
11
  var sampleTabs = [{
8
12
  label: "Tab-1"
9
13
  }, {
@@ -13,13 +17,13 @@ var sampleTabs = [{
13
17
  }];
14
18
  var sampleTabsWithBadge = [{
15
19
  label: "Tab-1",
16
- notificationNumber: "10"
20
+ notificationNumber: 10
17
21
  }, {
18
22
  label: "Tab-2",
19
- notificationNumber: "20"
23
+ notificationNumber: 20
20
24
  }, {
21
25
  label: "Tab-3",
22
- notificationNumber: "101"
26
+ notificationNumber: 101
23
27
  }];
24
28
  var sampleTabsMiddleDisabled = [{
25
29
  label: "Tab-1"
@@ -41,10 +45,11 @@ var sampleTabsLastTabNonDisabled = [{
41
45
  describe("Tabs component tests", function () {
42
46
  test("Tabs render with correct labels", function () {
43
47
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
44
- tabs: sampleTabs
45
- })),
46
- getByText = _render.getByText,
47
- getAllByRole = _render.getAllByRole;
48
+ tabs: sampleTabs
49
+ })),
50
+ getByText = _render.getByText,
51
+ getAllByRole = _render.getAllByRole;
52
+
48
53
  var tabs = getAllByRole("tab");
49
54
  expect(getByText("Tab-1")).toBeTruthy();
50
55
  expect(getByText("Tab-2")).toBeTruthy();
@@ -55,19 +60,21 @@ describe("Tabs component tests", function () {
55
60
  });
56
61
  test("Tabs render with correct labels and badges", function () {
57
62
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
58
- tabs: sampleTabsWithBadge
59
- })),
60
- getByText = _render2.getByText;
63
+ tabs: sampleTabsWithBadge
64
+ })),
65
+ getByText = _render2.getByText;
66
+
61
67
  expect(getByText("10")).toBeTruthy();
62
68
  expect(getByText("20")).toBeTruthy();
63
69
  expect(getByText("+99")).toBeTruthy();
64
70
  });
65
71
  test("Tabs render with an initially active tab", function () {
66
72
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
67
- defaultActiveTabIndex: 2,
68
- tabs: sampleTabsWithBadge
69
- })),
70
- getAllByRole = _render3.getAllByRole;
73
+ defaultActiveTabIndex: 2,
74
+ tabs: sampleTabsWithBadge
75
+ })),
76
+ getAllByRole = _render3.getAllByRole;
77
+
71
78
  var tabs = getAllByRole("tab");
72
79
  expect(tabs[0].getAttribute("aria-selected")).toBe("false");
73
80
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
@@ -75,52 +82,60 @@ describe("Tabs component tests", function () {
75
82
  });
76
83
  test("Tabs render with correct icons", function () {
77
84
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
78
- tabs: [{
79
- label: "Tab-1",
80
- icon: "/testIcon1.png"
81
- }, {
82
- label: "Tab-2",
83
- icon: "/testIcon2.png"
84
- }, {
85
- label: "Tab-3",
86
- icon: "/testIcon3.png"
87
- }]
88
- })),
89
- getAllByRole = _render4.getAllByRole;
85
+ tabs: [{
86
+ label: "Tab-1",
87
+ icon: "/testIcon1.png"
88
+ }, {
89
+ label: "Tab-2",
90
+ icon: "/testIcon2.png"
91
+ }, {
92
+ label: "Tab-3",
93
+ icon: "/testIcon3.png"
94
+ }]
95
+ })),
96
+ getAllByRole = _render4.getAllByRole;
97
+
90
98
  expect(getAllByRole("img")[0].getAttribute("src")).toBe("/testIcon1.png");
91
99
  expect(getAllByRole("img")[1].getAttribute("src")).toBe("/testIcon2.png");
92
100
  expect(getAllByRole("img")[2].getAttribute("src")).toBe("/testIcon3.png");
93
101
  });
94
102
  test("Tabs render with disabled tab", function () {
95
103
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
96
- tabs: [{
97
- label: "Tab-1",
98
- isDisabled: true
99
- }, {
100
- label: "Tab-2"
101
- }]
102
- })),
103
- getAllByRole = _render5.getAllByRole;
104
+ tabs: [{
105
+ label: "Tab-1",
106
+ isDisabled: true
107
+ }, {
108
+ label: "Tab-2"
109
+ }]
110
+ })),
111
+ getAllByRole = _render5.getAllByRole;
112
+
104
113
  expect(getAllByRole("tab")[0].hasAttribute("disabled")).toBeTruthy();
105
114
  expect(getAllByRole("tab")[1].hasAttribute("disabled")).toBeFalsy();
106
115
  });
107
116
  test("Uncontrolled tabs", function () {
108
117
  var onTabClick = jest.fn();
118
+
109
119
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
110
- tabs: sampleTabs,
111
- onTabClick: onTabClick
112
- })),
113
- getByText = _render6.getByText,
114
- getAllByRole = _render6.getAllByRole;
120
+ tabs: sampleTabs,
121
+ onTabClick: onTabClick
122
+ })),
123
+ getByText = _render6.getByText,
124
+ getAllByRole = _render6.getAllByRole;
125
+
115
126
  var tabs = getAllByRole("tab");
116
127
  var tab1 = getByText("Tab-1");
117
128
  var tab2 = getByText("Tab-2");
129
+
118
130
  _react2.fireEvent.click(tab2);
131
+
119
132
  expect(onTabClick).toHaveBeenCalledWith(1);
120
133
  expect(tabs[0].getAttribute("aria-selected")).toBe("false");
121
134
  expect(tabs[1].getAttribute("aria-selected")).toBe("true");
122
135
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
136
+
123
137
  _react2.fireEvent.click(tab1);
138
+
124
139
  expect(onTabClick).toHaveBeenCalledWith(0);
125
140
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
126
141
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
@@ -128,20 +143,25 @@ describe("Tabs component tests", function () {
128
143
  });
129
144
  test("Controlled tabs", function () {
130
145
  var onTabClick = jest.fn();
146
+
131
147
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
132
- tabs: sampleTabs,
133
- onTabClick: onTabClick,
134
- activeTabIndex: 0
135
- })),
136
- getByText = _render7.getByText,
137
- getAllByRole = _render7.getAllByRole;
148
+ tabs: sampleTabs,
149
+ onTabClick: onTabClick,
150
+ activeTabIndex: 0
151
+ })),
152
+ getAllByRole = _render7.getAllByRole;
153
+
138
154
  var tabs = getAllByRole("tab");
155
+
139
156
  _react2.fireEvent.click(tabs[1]);
157
+
140
158
  expect(onTabClick).toHaveBeenCalledWith(1);
141
159
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
142
160
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
143
161
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
162
+
144
163
  _react2.fireEvent.click(tabs[2]);
164
+
145
165
  expect(onTabClick).toHaveBeenCalledWith(2);
146
166
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
147
167
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
@@ -149,11 +169,13 @@ describe("Tabs component tests", function () {
149
169
  });
150
170
  test("Uncontrolled tabs should have focus in the first non-disabled tab", function () {
151
171
  var onTabClick = jest.fn();
172
+
152
173
  var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
153
- tabs: sampleTabsLastTabNonDisabled,
154
- onTabClick: onTabClick
155
- })),
156
- getAllByRole = _render8.getAllByRole;
174
+ tabs: sampleTabsLastTabNonDisabled,
175
+ onTabClick: onTabClick
176
+ })),
177
+ getAllByRole = _render8.getAllByRole;
178
+
157
179
  var tabs = getAllByRole("tab");
158
180
  expect(tabs[0].hasAttribute("disabled")).toBeTruthy();
159
181
  expect(tabs[1].hasAttribute("disabled")).toBeTruthy();
@@ -164,12 +186,14 @@ describe("Tabs component tests", function () {
164
186
  });
165
187
  test("Controlled tabs with active index in disabled tab should not change focus to the first available tab", function () {
166
188
  var onTabClick = jest.fn();
189
+
167
190
  var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
168
- tabs: sampleTabsLastTabNonDisabled,
169
- onTabClick: onTabClick,
170
- activeTabIndex: 0
171
- })),
172
- getAllByRole = _render9.getAllByRole;
191
+ tabs: sampleTabsLastTabNonDisabled,
192
+ onTabClick: onTabClick,
193
+ activeTabIndex: 0
194
+ })),
195
+ getAllByRole = _render9.getAllByRole;
196
+
173
197
  var tabs = getAllByRole("tab");
174
198
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
175
199
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
@@ -177,7 +201,9 @@ describe("Tabs component tests", function () {
177
201
  expect(tabs[0].hasAttribute("disabled")).toBeTruthy();
178
202
  expect(tabs[1].hasAttribute("disabled")).toBeTruthy();
179
203
  expect(tabs[2].hasAttribute("disabled")).toBeFalsy();
204
+
180
205
  _react2.fireEvent.click(tabs[2]);
206
+
181
207
  expect(onTabClick).toHaveBeenCalledWith(2);
182
208
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
183
209
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
@@ -188,77 +214,99 @@ describe("Tabs component tests", function () {
188
214
  });
189
215
  test("Select tabs with keyboard event arrows", function () {
190
216
  var onTabClick = jest.fn();
217
+
191
218
  var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
192
- tabs: sampleTabs,
193
- onTabClick: onTabClick
194
- })),
195
- getByText = _render10.getByText,
196
- getByRole = _render10.getByRole,
197
- getAllByRole = _render10.getAllByRole;
219
+ tabs: sampleTabs,
220
+ onTabClick: onTabClick
221
+ })),
222
+ getByText = _render10.getByText,
223
+ getByRole = _render10.getByRole,
224
+ getAllByRole = _render10.getAllByRole;
225
+
198
226
  var tabList = getByRole("tablist");
199
227
  var tab1 = getByText("Tab-1");
200
228
  var tabs = getAllByRole("tab");
229
+
201
230
  _react2.fireEvent.click(tab1);
231
+
202
232
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
203
233
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
204
234
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
205
235
  expect(onTabClick).toHaveBeenCalledWith(0);
236
+
206
237
  _react2.fireEvent.keyDown(tabList, {
207
238
  key: "ArrowRight"
208
239
  });
240
+
209
241
  _react2.fireEvent.keyDown(tabList, {
210
242
  key: "Enter"
211
243
  });
244
+
212
245
  expect(tabs[0].getAttribute("aria-selected")).toBe("false");
213
246
  expect(tabs[1].getAttribute("aria-selected")).toBe("true");
214
247
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
215
248
  expect(onTabClick).toHaveBeenCalledWith(1);
249
+
216
250
  _react2.fireEvent.keyDown(tabList, {
217
251
  key: "ArrowRight"
218
252
  });
253
+
219
254
  _react2.fireEvent.keyDown(tabList, {
220
255
  key: "Enter"
221
256
  });
257
+
222
258
  expect(tabs[0].getAttribute("aria-selected")).toBe("false");
223
259
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
224
260
  expect(tabs[2].getAttribute("aria-selected")).toBe("true");
225
261
  expect(onTabClick).toHaveBeenCalledWith(2);
262
+
226
263
  _react2.fireEvent.keyDown(tabList, {
227
264
  key: "ArrowLeft"
228
265
  });
266
+
229
267
  _react2.fireEvent.keyDown(tabList, {
230
268
  key: "Enter"
231
269
  });
270
+
232
271
  expect(tabs[0].getAttribute("aria-selected")).toBe("false");
233
272
  expect(tabs[1].getAttribute("aria-selected")).toBe("true");
234
273
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
235
274
  expect(onTabClick).toHaveBeenCalledWith(1);
275
+
236
276
  _react2.fireEvent.keyDown(tabList, {
237
277
  key: "ArrowLeft"
238
278
  });
279
+
239
280
  _react2.fireEvent.keyDown(tabList, {
240
281
  key: "Enter"
241
282
  });
283
+
242
284
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
243
285
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
244
286
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
245
287
  expect(onTabClick).toHaveBeenCalledWith(0);
288
+
246
289
  _react2.fireEvent.keyDown(tabList, {
247
290
  key: "ArrowLeft"
248
291
  });
292
+
249
293
  _react2.fireEvent.keyDown(tabList, {
250
294
  key: "Enter"
251
295
  });
296
+
252
297
  expect(tabs[0].getAttribute("aria-selected")).toBe("false");
253
298
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
254
299
  expect(tabs[2].getAttribute("aria-selected")).toBe("true");
255
300
  expect(onTabClick).toHaveBeenCalledWith(2);
301
+
256
302
  _react2.fireEvent.keyDown(tabList, {
257
303
  key: "ArrowRight"
258
304
  });
305
+
259
306
  _react2.fireEvent.keyDown(tabList, {
260
307
  key: "Enter"
261
308
  });
309
+
262
310
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
263
311
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
264
312
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
@@ -266,27 +314,34 @@ describe("Tabs component tests", function () {
266
314
  });
267
315
  test("Skip disabled tab with keyboard event arrows", function () {
268
316
  var onTabClick = jest.fn();
317
+
269
318
  var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
270
- tabs: sampleTabsMiddleDisabled,
271
- onTabClick: onTabClick
272
- })),
273
- getByText = _render11.getByText,
274
- getByRole = _render11.getByRole,
275
- getAllByRole = _render11.getAllByRole;
319
+ tabs: sampleTabsMiddleDisabled,
320
+ onTabClick: onTabClick
321
+ })),
322
+ getByText = _render11.getByText,
323
+ getByRole = _render11.getByRole,
324
+ getAllByRole = _render11.getAllByRole;
325
+
276
326
  var tabList = getByRole("tablist");
277
327
  var tab1 = getByText("Tab-1");
278
328
  var tabs = getAllByRole("tab");
329
+
279
330
  _react2.fireEvent.click(tab1);
331
+
280
332
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
281
333
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
282
334
  expect(tabs[2].getAttribute("aria-selected")).toBe("false");
283
335
  expect(onTabClick).toHaveBeenCalledWith(0);
336
+
284
337
  _react2.fireEvent.keyDown(tabList, {
285
338
  key: "ArrowRight"
286
339
  });
340
+
287
341
  _react2.fireEvent.keyDown(tabList, {
288
342
  key: " "
289
343
  });
344
+
290
345
  expect(tabs[0].getAttribute("aria-selected")).toBe("false");
291
346
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
292
347
  expect(tabs[2].getAttribute("aria-selected")).toBe("true");
package/tabs/types.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  /// <reference types="react" />
2
- export type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- export type Margin = {
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
- type TabCommonProps = {
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ declare type TabCommonProps = {
11
11
  /**
12
12
  * Whether the tab is disabled or not.
13
13
  */
@@ -21,7 +21,7 @@ type TabCommonProps = {
21
21
  */
22
22
  notificationNumber?: boolean | number;
23
23
  };
24
- export type TabLabelProps = TabCommonProps & {
24
+ export declare type TabLabelProps = TabCommonProps & {
25
25
  /**
26
26
  * Tab label.
27
27
  */
@@ -31,7 +31,7 @@ export type TabLabelProps = TabCommonProps & {
31
31
  */
32
32
  icon?: string | SVG;
33
33
  };
34
- export type TabIconProps = TabCommonProps & {
34
+ export declare type TabIconProps = TabCommonProps & {
35
35
  /**
36
36
  * Tab label.
37
37
  */
@@ -41,7 +41,7 @@ export type TabIconProps = TabCommonProps & {
41
41
  */
42
42
  icon: string | SVG;
43
43
  };
44
- export type TabProps = {
44
+ export declare type TabProps = {
45
45
  tab: TabLabelProps | TabIconProps;
46
46
  active: boolean;
47
47
  tabIndex: number;
@@ -51,7 +51,7 @@ export type TabProps = {
51
51
  onMouseEnter: () => void;
52
52
  onMouseLeave: () => void;
53
53
  };
54
- type Props = {
54
+ declare type Props = {
55
55
  /**
56
56
  * An array of objects representing the tabs.
57
57
  */
package/tag/Tag.js CHANGED
@@ -1,60 +1,77 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
10
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
11
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
12
18
  var _react = _interopRequireWildcard(require("react"));
19
+
13
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
14
22
  var _variables = require("../common/variables");
23
+
15
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
16
- var _utils = require("../common/utils.js");
25
+
26
+ var _utils = require("../common/utils");
27
+
17
28
  var _Box = _interopRequireDefault(require("../box/Box"));
29
+
18
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
31
+
19
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
20
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
21
36
  var DxcTag = function DxcTag(_ref) {
22
37
  var icon = _ref.icon,
23
- _ref$label = _ref.label,
24
- label = _ref$label === void 0 ? "" : _ref$label,
25
- linkHref = _ref.linkHref,
26
- onClick = _ref.onClick,
27
- _ref$iconBgColor = _ref.iconBgColor,
28
- iconBgColor = _ref$iconBgColor === void 0 ? "#5f249f" : _ref$iconBgColor,
29
- _ref$labelPosition = _ref.labelPosition,
30
- labelPosition = _ref$labelPosition === void 0 ? "after" : _ref$labelPosition,
31
- _ref$newWindow = _ref.newWindow,
32
- newWindow = _ref$newWindow === void 0 ? false : _ref$newWindow,
33
- margin = _ref.margin,
34
- _ref$size = _ref.size,
35
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
36
- _ref$tabIndex = _ref.tabIndex,
37
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
38
+ _ref$label = _ref.label,
39
+ label = _ref$label === void 0 ? "" : _ref$label,
40
+ linkHref = _ref.linkHref,
41
+ onClick = _ref.onClick,
42
+ _ref$iconBgColor = _ref.iconBgColor,
43
+ iconBgColor = _ref$iconBgColor === void 0 ? "#5f249f" : _ref$iconBgColor,
44
+ _ref$labelPosition = _ref.labelPosition,
45
+ labelPosition = _ref$labelPosition === void 0 ? "after" : _ref$labelPosition,
46
+ _ref$newWindow = _ref.newWindow,
47
+ newWindow = _ref$newWindow === void 0 ? false : _ref$newWindow,
48
+ margin = _ref.margin,
49
+ _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
51
+ _ref$tabIndex = _ref.tabIndex,
52
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
38
53
  var colorsTheme = (0, _useTheme["default"])();
54
+
39
55
  var _useState = (0, _react.useState)(false),
40
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
41
- isHovered = _useState2[0],
42
- changeIsHovered = _useState2[1];
56
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
57
+ isHovered = _useState2[0],
58
+ changeIsHovered = _useState2[1];
59
+
43
60
  var clickHandler = function clickHandler() {
44
61
  onClick && onClick();
45
62
  };
63
+
46
64
  var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
47
65
  size: size,
48
66
  shadowDepth: isHovered && (onClick || linkHref) && 2 || 1
49
- }, /*#__PURE__*/_react["default"].createElement(TagContent, {
50
- labelPosition: labelPosition
51
- }, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
67
+ }, /*#__PURE__*/_react["default"].createElement(TagContent, null, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
52
68
  iconBgColor: iconBgColor
53
69
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(TagIcon, {
54
70
  src: icon
55
71
  }) : icon), labelPosition === "after" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
72
+
56
73
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
57
- theme: colorsTheme["tag"]
74
+ theme: colorsTheme.tag
58
75
  }, /*#__PURE__*/_react["default"].createElement(StyledDxcTag, {
59
76
  margin: margin,
60
77
  size: size,
@@ -74,6 +91,7 @@ var DxcTag = function DxcTag(_ref) {
74
91
  target: newWindow ? "_blank" : "_self"
75
92
  }, tagContent) : tagContent));
76
93
  };
94
+
77
95
  var sizes = {
78
96
  small: "42px",
79
97
  medium: "240px",
@@ -81,9 +99,11 @@ var sizes = {
81
99
  fillParent: "100%",
82
100
  fitContent: "fit-content"
83
101
  };
102
+
84
103
  var calculateWidth = function calculateWidth(margin, size) {
85
104
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
86
105
  };
106
+
87
107
  var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n height: ", ";\n"])), function (_ref2) {
88
108
  var hasAction = _ref2.hasAction;
89
109
  return hasAction && "pointer" || "unset";
@@ -92,30 +112,34 @@ var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templat
92
112
  return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
93
113
  }, function (_ref4) {
94
114
  var margin = _ref4.margin;
95
- return margin && margin.top ? _variables.spaces[margin.top] : "";
115
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.top ? _variables.spaces[margin.top] : "";
96
116
  }, function (_ref5) {
97
117
  var margin = _ref5.margin;
98
- return margin && margin.right ? _variables.spaces[margin.right] : "";
118
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.right ? _variables.spaces[margin.right] : "";
99
119
  }, function (_ref6) {
100
120
  var margin = _ref6.margin;
101
- return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
121
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.bottom ? _variables.spaces[margin.bottom] : "";
102
122
  }, function (_ref7) {
103
123
  var margin = _ref7.margin;
104
- return margin && margin.left ? _variables.spaces[margin.left] : "";
124
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.left ? _variables.spaces[margin.left] : "";
105
125
  }, function (props) {
106
126
  return calculateWidth(props.margin, props.size);
107
127
  }, function (props) {
108
128
  return props.theme.height;
109
129
  });
130
+
110
131
  var TagContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: 100%;\n height: ", ";\n"])), function (props) {
111
132
  return props.theme.height;
112
133
  });
134
+
113
135
  var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n border-radius: 4px;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n outline-offset: 0px;\n }\n"])), function (props) {
114
136
  return props.theme.focusColor;
115
137
  });
138
+
116
139
  var StyledButton = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background: none;\n border-radius: 4px;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n }\n"])), function (props) {
117
140
  return props.theme.focusColor;
118
141
  });
142
+
119
143
  var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (_ref8) {
120
144
  var iconBgColor = _ref8.iconBgColor;
121
145
  return iconBgColor;
@@ -130,7 +154,9 @@ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templ
130
154
  }, function (props) {
131
155
  return props.theme.iconHeight;
132
156
  });
157
+
133
158
  var TagIcon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
159
+
134
160
  var TagLabel = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n flex-grow: 1;\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
135
161
  return props.theme.fontFamily;
136
162
  }, function (props) {
@@ -150,5 +176,6 @@ var TagLabel = _styledComponents["default"].div(_templateObject7 || (_templateOb
150
176
  }, function (props) {
151
177
  return props.theme.labelPaddingRight;
152
178
  });
179
+
153
180
  var _default = DxcTag;
154
181
  exports["default"] = _default;