@dxc-technology/halstack-react 0.0.0-74c93cf → 0.0.0-74dd241

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 (322) hide show
  1. package/BackgroundColorContext.js +1 -1
  2. package/HalstackContext.d.ts +2 -5
  3. package/HalstackContext.js +6 -6
  4. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +9 -10
  7. package/accordion/Accordion.stories.tsx +4 -15
  8. package/accordion/Accordion.test.d.ts +1 -0
  9. package/accordion/Accordion.test.js +3 -3
  10. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  11. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  12. package/accordion-group/AccordionGroup.js +1 -1
  13. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  14. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  15. package/accordion-group/AccordionGroup.test.js +5 -9
  16. package/accordion-group/AccordionGroupAccordion.js +1 -1
  17. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  18. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  19. package/action-icon/ActionIcon.test.d.ts +1 -0
  20. package/action-icon/ActionIcon.test.js +1 -1
  21. package/alert/Alert.accessibility.test.d.ts +1 -0
  22. package/alert/Alert.accessibility.test.js +95 -0
  23. package/alert/Alert.js +21 -72
  24. package/alert/Alert.test.d.ts +1 -0
  25. package/alert/Alert.test.js +1 -1
  26. package/badge/Badge.accessibility.test.d.ts +1 -0
  27. package/badge/Badge.accessibility.test.js +129 -0
  28. package/badge/Badge.js +6 -4
  29. package/badge/Badge.stories.tsx +11 -11
  30. package/badge/Badge.test.d.ts +1 -0
  31. package/badge/Badge.test.js +2 -2
  32. package/badge/types.d.ts +1 -1
  33. package/box/Box.accessibility.test.d.ts +1 -0
  34. package/box/Box.accessibility.test.js +33 -0
  35. package/box/Box.js +1 -1
  36. package/box/Box.test.d.ts +1 -0
  37. package/box/Box.test.js +1 -1
  38. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  39. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  40. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  41. package/breadcrumbs/Breadcrumbs.js +79 -0
  42. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  43. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  44. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  45. package/breadcrumbs/Item.d.ts +4 -0
  46. package/breadcrumbs/Item.js +52 -0
  47. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  48. package/breadcrumbs/dropdownTheme.js +62 -0
  49. package/breadcrumbs/types.d.ts +16 -0
  50. package/breadcrumbs/types.js +5 -0
  51. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  52. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  53. package/bulleted-list/BulletedList.js +7 -4
  54. package/bulleted-list/BulletedList.stories.tsx +1 -1
  55. package/button/Button.accessibility.test.d.ts +1 -0
  56. package/button/Button.accessibility.test.js +127 -0
  57. package/button/Button.js +1 -1
  58. package/button/Button.stories.tsx +3 -4
  59. package/button/Button.test.d.ts +1 -0
  60. package/button/Button.test.js +1 -1
  61. package/card/Card.accessibility.test.d.ts +1 -0
  62. package/card/Card.accessibility.test.js +36 -0
  63. package/card/Card.js +3 -2
  64. package/card/Card.stories.tsx +1 -1
  65. package/card/Card.test.d.ts +1 -0
  66. package/card/Card.test.js +1 -1
  67. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  68. package/checkbox/Checkbox.accessibility.test.js +87 -0
  69. package/checkbox/Checkbox.js +10 -13
  70. package/checkbox/Checkbox.test.d.ts +1 -0
  71. package/checkbox/Checkbox.test.js +1 -1
  72. package/chip/Chip.accessibility.test.d.ts +1 -0
  73. package/chip/Chip.accessibility.test.js +67 -0
  74. package/chip/Chip.js +11 -6
  75. package/chip/Chip.stories.tsx +6 -25
  76. package/chip/Chip.test.d.ts +1 -0
  77. package/chip/Chip.test.js +5 -5
  78. package/common/coreTokens.js +3 -3
  79. package/common/variables.d.ts +2 -5
  80. package/common/variables.js +68 -71
  81. package/container/Container.stories.tsx +3 -3
  82. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  83. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  84. package/contextual-menu/ContextualMenu.d.ts +3 -5
  85. package/contextual-menu/ContextualMenu.js +89 -52
  86. package/contextual-menu/ContextualMenu.stories.tsx +115 -74
  87. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  88. package/contextual-menu/ContextualMenu.test.js +200 -24
  89. package/contextual-menu/GroupItem.d.ts +4 -0
  90. package/contextual-menu/GroupItem.js +67 -0
  91. package/contextual-menu/ItemAction.d.ts +4 -0
  92. package/contextual-menu/ItemAction.js +50 -0
  93. package/contextual-menu/MenuItem.d.ts +4 -0
  94. package/contextual-menu/MenuItem.js +29 -0
  95. package/contextual-menu/SingleItem.d.ts +4 -0
  96. package/contextual-menu/SingleItem.js +38 -0
  97. package/contextual-menu/types.d.ts +50 -11
  98. package/date-input/Calendar.js +47 -31
  99. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  100. package/date-input/DateInput.accessibility.test.js +229 -0
  101. package/date-input/DateInput.js +28 -23
  102. package/date-input/DateInput.stories.tsx +18 -12
  103. package/date-input/DateInput.test.d.ts +1 -0
  104. package/date-input/DateInput.test.js +39 -39
  105. package/date-input/DatePicker.js +13 -7
  106. package/date-input/YearPicker.js +10 -5
  107. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  108. package/dialog/Dialog.accessibility.test.js +69 -0
  109. package/dialog/Dialog.js +9 -20
  110. package/dialog/Dialog.stories.tsx +8 -4
  111. package/dialog/Dialog.test.d.ts +1 -0
  112. package/dialog/Dialog.test.js +112 -49
  113. package/divider/Divider.accessibility.test.d.ts +1 -0
  114. package/divider/Divider.accessibility.test.js +33 -0
  115. package/divider/Divider.test.d.ts +1 -0
  116. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  117. package/dropdown/Dropdown.accessibility.test.js +183 -0
  118. package/dropdown/Dropdown.js +16 -15
  119. package/dropdown/Dropdown.stories.tsx +11 -11
  120. package/dropdown/Dropdown.test.d.ts +1 -0
  121. package/dropdown/Dropdown.test.js +101 -72
  122. package/dropdown/DropdownMenu.js +4 -4
  123. package/dropdown/DropdownMenuItem.js +2 -1
  124. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  125. package/file-input/FileInput.accessibility.test.js +167 -0
  126. package/file-input/FileInput.js +6 -47
  127. package/file-input/FileInput.test.d.ts +1 -0
  128. package/file-input/FileInput.test.js +51 -106
  129. package/file-input/FileItem.js +18 -28
  130. package/file-input/types.d.ts +0 -4
  131. package/footer/Footer.accessibility.test.d.ts +1 -0
  132. package/footer/Footer.accessibility.test.js +125 -0
  133. package/footer/Footer.js +8 -6
  134. package/footer/Footer.stories.tsx +40 -3
  135. package/footer/Footer.test.d.ts +1 -0
  136. package/footer/Footer.test.js +1 -1
  137. package/footer/Icons.js +2 -30
  138. package/footer/types.d.ts +1 -1
  139. package/grid/Grid.stories.tsx +3 -1
  140. package/header/Header.accessibility.test.d.ts +1 -0
  141. package/header/Header.accessibility.test.js +94 -0
  142. package/header/Header.js +12 -22
  143. package/header/Header.stories.tsx +17 -1
  144. package/header/Header.test.d.ts +1 -0
  145. package/header/Header.test.js +1 -1
  146. package/header/Icons.js +1 -6
  147. package/heading/Heading.accessibility.test.d.ts +1 -0
  148. package/heading/Heading.accessibility.test.js +33 -0
  149. package/heading/Heading.js +1 -1
  150. package/heading/Heading.test.d.ts +1 -0
  151. package/heading/Heading.test.js +1 -14
  152. package/icon/Icon.accessibility.test.d.ts +1 -0
  153. package/icon/Icon.accessibility.test.js +30 -0
  154. package/icon/Icon.js +1 -1
  155. package/image/Image.accessibility.test.d.ts +1 -0
  156. package/image/Image.accessibility.test.js +56 -0
  157. package/image/Image.js +1 -1
  158. package/layout/ApplicationLayout.js +9 -6
  159. package/layout/Icons.d.ts +0 -1
  160. package/layout/Icons.js +1 -11
  161. package/link/Link.accessibility.test.d.ts +1 -0
  162. package/link/Link.accessibility.test.js +108 -0
  163. package/link/Link.js +8 -6
  164. package/link/Link.stories.tsx +4 -4
  165. package/link/Link.test.d.ts +1 -0
  166. package/link/Link.test.js +1 -1
  167. package/link/types.d.ts +1 -1
  168. package/main.d.ts +2 -1
  169. package/main.js +8 -1
  170. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  171. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  172. package/nav-tabs/NavTabs.js +19 -4
  173. package/nav-tabs/NavTabs.stories.tsx +41 -23
  174. package/nav-tabs/NavTabs.test.d.ts +1 -0
  175. package/nav-tabs/NavTabs.test.js +10 -9
  176. package/nav-tabs/Tab.js +17 -18
  177. package/nav-tabs/types.d.ts +1 -1
  178. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  179. package/number-input/NumberInput.accessibility.test.js +227 -0
  180. package/number-input/NumberInput.js +1 -1
  181. package/number-input/NumberInput.stories.tsx +2 -16
  182. package/number-input/NumberInput.test.d.ts +1 -0
  183. package/number-input/NumberInput.test.js +6 -7
  184. package/package.json +31 -27
  185. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  186. package/paginator/Paginator.accessibility.test.js +78 -0
  187. package/paginator/Paginator.js +13 -10
  188. package/paginator/Paginator.test.d.ts +1 -0
  189. package/paginator/Paginator.test.js +2 -3
  190. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  191. package/paragraph/Paragraph.accessibility.test.js +28 -0
  192. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  193. package/password-input/PasswordInput.accessibility.test.js +152 -0
  194. package/password-input/PasswordInput.js +7 -7
  195. package/password-input/PasswordInput.stories.tsx +1 -1
  196. package/password-input/PasswordInput.test.d.ts +1 -0
  197. package/password-input/PasswordInput.test.js +6 -7
  198. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  199. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  200. package/progress-bar/ProgressBar.js +6 -4
  201. package/progress-bar/ProgressBar.test.d.ts +1 -0
  202. package/progress-bar/ProgressBar.test.js +1 -1
  203. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  204. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  205. package/quick-nav/QuickNav.js +1 -1
  206. package/radio-group/Radio.js +6 -9
  207. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  208. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  209. package/radio-group/RadioGroup.js +14 -16
  210. package/radio-group/RadioGroup.test.d.ts +1 -0
  211. package/radio-group/RadioGroup.test.js +3 -5
  212. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  213. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  214. package/resultset-table/ResultsetTable.js +3 -2
  215. package/resultset-table/ResultsetTable.stories.tsx +13 -1
  216. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  217. package/resultset-table/ResultsetTable.test.js +2 -4
  218. package/select/Listbox.js +24 -16
  219. package/select/Option.js +12 -10
  220. package/select/Select.accessibility.test.d.ts +1 -0
  221. package/select/Select.accessibility.test.js +227 -0
  222. package/select/Select.js +38 -28
  223. package/select/Select.stories.tsx +60 -112
  224. package/select/Select.test.d.ts +1 -0
  225. package/select/Select.test.js +371 -474
  226. package/select/types.d.ts +1 -1
  227. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  228. package/sidenav/Sidenav.accessibility.test.js +59 -0
  229. package/sidenav/Sidenav.js +16 -12
  230. package/sidenav/Sidenav.stories.tsx +5 -10
  231. package/sidenav/Sidenav.test.d.ts +1 -0
  232. package/sidenav/Sidenav.test.js +1 -1
  233. package/sidenav/types.d.ts +2 -2
  234. package/slider/Slider.accessibility.test.d.ts +1 -0
  235. package/slider/Slider.accessibility.test.js +103 -0
  236. package/slider/Slider.js +11 -13
  237. package/slider/Slider.stories.tsx +180 -0
  238. package/slider/Slider.test.d.ts +1 -0
  239. package/slider/Slider.test.js +13 -11
  240. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  241. package/spinner/Spinner.accessibility.test.js +96 -0
  242. package/spinner/Spinner.js +6 -2
  243. package/spinner/Spinner.test.d.ts +1 -0
  244. package/spinner/Spinner.test.js +1 -1
  245. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  246. package/status-light/StatusLight.accessibility.test.js +157 -0
  247. package/status-light/StatusLight.test.d.ts +1 -0
  248. package/status-light/StatusLight.test.js +1 -1
  249. package/switch/Switch.accessibility.test.d.ts +1 -0
  250. package/switch/Switch.accessibility.test.js +98 -0
  251. package/switch/Switch.js +6 -9
  252. package/switch/Switch.stories.tsx +12 -0
  253. package/switch/Switch.test.d.ts +1 -0
  254. package/switch/Switch.test.js +1 -1
  255. package/table/Table.accessibility.test.d.ts +1 -0
  256. package/table/Table.accessibility.test.js +92 -0
  257. package/table/Table.js +1 -1
  258. package/table/Table.stories.tsx +13 -1
  259. package/table/Table.test.d.ts +1 -0
  260. package/table/Table.test.js +2 -4
  261. package/tabs/Tab.js +6 -5
  262. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  263. package/tabs/Tabs.accessibility.test.js +56 -0
  264. package/tabs/Tabs.js +9 -20
  265. package/tabs/Tabs.stories.tsx +7 -3
  266. package/tabs/Tabs.test.d.ts +1 -0
  267. package/tabs/Tabs.test.js +20 -38
  268. package/tabs/types.d.ts +2 -2
  269. package/tag/Tag.accessibility.test.d.ts +1 -0
  270. package/tag/Tag.accessibility.test.js +69 -0
  271. package/tag/Tag.js +7 -7
  272. package/tag/Tag.stories.tsx +5 -8
  273. package/tag/Tag.test.d.ts +1 -0
  274. package/tag/Tag.test.js +5 -13
  275. package/tag/types.d.ts +2 -2
  276. package/text-input/Suggestion.js +1 -1
  277. package/text-input/Suggestions.js +17 -7
  278. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  279. package/text-input/TextInput.accessibility.test.js +320 -0
  280. package/text-input/TextInput.js +34 -30
  281. package/text-input/TextInput.stories.tsx +10 -7
  282. package/text-input/TextInput.test.d.ts +1 -0
  283. package/text-input/TextInput.test.js +2 -3
  284. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  285. package/textarea/Textarea.accessibility.test.js +155 -0
  286. package/textarea/Textarea.js +14 -13
  287. package/textarea/Textarea.test.d.ts +1 -0
  288. package/textarea/Textarea.test.js +1 -1
  289. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  290. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  291. package/toggle-group/ToggleGroup.js +10 -12
  292. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  293. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  294. package/toggle-group/ToggleGroup.test.js +1 -1
  295. package/toggle-group/types.d.ts +2 -2
  296. package/typography/Typography.accessibility.test.d.ts +1 -0
  297. package/typography/Typography.accessibility.test.js +339 -0
  298. package/typography/Typography.stories.tsx +1 -3
  299. package/useTheme.d.ts +2 -5
  300. package/utils/BaseTypography.js +1 -1
  301. package/utils/FocusLock.js +3 -2
  302. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  303. package/wizard/Wizard.accessibility.test.js +55 -0
  304. package/wizard/Wizard.js +14 -25
  305. package/wizard/Wizard.stories.tsx +20 -1
  306. package/wizard/Wizard.test.d.ts +1 -0
  307. package/wizard/Wizard.test.js +1 -1
  308. package/wizard/types.d.ts +1 -1
  309. package/contextual-menu/MenuItemAction.d.ts +0 -4
  310. package/contextual-menu/MenuItemAction.js +0 -46
  311. package/date-input/Icons.d.ts +0 -6
  312. package/date-input/Icons.js +0 -58
  313. package/paginator/Icons.d.ts +0 -5
  314. package/paginator/Icons.js +0 -40
  315. package/password-input/Icons.d.ts +0 -6
  316. package/password-input/Icons.js +0 -35
  317. package/select/Icons.d.ts +0 -10
  318. package/select/Icons.js +0 -89
  319. package/sidenav/Icons.d.ts +0 -7
  320. package/sidenav/Icons.js +0 -47
  321. package/text-input/Icons.d.ts +0 -8
  322. package/text-input/Icons.js +0 -56
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
11
+ var _Table = _interopRequireDefault(require("./Table"));
12
+ var _disabledRules = require("../../test/accessibility/rules/specific/table/disabledRules.js");
13
+ // TODO: REMOVE
14
+
15
+ var disabledRules = {
16
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
17
+ rulesObj[rule] = {
18
+ enabled: false
19
+ };
20
+ return rulesObj;
21
+ }, {})
22
+ };
23
+ global.globalThis = global;
24
+ global.DOMRect = {
25
+ fromRect: function fromRect() {
26
+ return {
27
+ top: 0,
28
+ left: 0,
29
+ bottom: 0,
30
+ right: 0,
31
+ width: 0,
32
+ height: 0
33
+ };
34
+ }
35
+ };
36
+ global.ResizeObserver = /*#__PURE__*/function () {
37
+ function ResizeObserver() {
38
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
39
+ }
40
+ return (0, _createClass2["default"])(ResizeObserver, [{
41
+ key: "observe",
42
+ value: function observe() {}
43
+ }, {
44
+ key: "unobserve",
45
+ value: function unobserve() {}
46
+ }, {
47
+ key: "disconnect",
48
+ value: function disconnect() {}
49
+ }]);
50
+ }();
51
+ describe("Table component accessibility tests", function () {
52
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
53
+ var _render, container, results;
54
+ return _regenerator["default"].wrap(function _callee$(_context) {
55
+ while (1) switch (_context.prev = _context.next) {
56
+ case 0:
57
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], {
58
+ margin: "medium",
59
+ mode: "default"
60
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6"))))), container = _render.container;
61
+ _context.next = 3;
62
+ return (0, _axeHelper.axe)(container, disabledRules);
63
+ case 3:
64
+ results = _context.sent;
65
+ expect(results).toHaveNoViolations();
66
+ case 5:
67
+ case "end":
68
+ return _context.stop();
69
+ }
70
+ }, _callee);
71
+ })));
72
+ it("Should not have basic accessibility issues for reduced mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
73
+ var _render2, container, results;
74
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
75
+ while (1) switch (_context2.prev = _context2.next) {
76
+ case 0:
77
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], {
78
+ margin: "medium",
79
+ mode: "reduced"
80
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6"))))), container = _render2.container;
81
+ _context2.next = 3;
82
+ return (0, _axeHelper.axe)(container, disabledRules);
83
+ case 3:
84
+ results = _context2.sent;
85
+ expect(results).toHaveNoViolations();
86
+ case 5:
87
+ case "end":
88
+ return _context2.stop();
89
+ }
90
+ }, _callee2);
91
+ })));
92
+ });
package/table/Table.js CHANGED
@@ -20,7 +20,7 @@ var _HalstackContext = require("../HalstackContext");
20
20
  var _ActionIcon = _interopRequireDefault(require("../action-icon/ActionIcon"));
21
21
  var _templateObject, _templateObject2;
22
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
24
24
  var overwriteTheme = function overwriteTheme(theme) {
25
25
  var newTheme = _DropdownTheme["default"];
26
26
  newTheme.dropdown.buttonBackgroundColor = theme.table.actionBackgroundColor;
@@ -3,11 +3,23 @@ import DxcTable from "./Table";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
5
  import { HalstackProvider } from "../HalstackContext";
6
- import { userEvent, within } from "@storybook/testing-library";
6
+ import { userEvent, within } from "@storybook/test";
7
+ import { disabledRules } from "../../test/accessibility/rules/specific/table/disabledRules";
8
+ import preview from "../../.storybook/preview";
7
9
 
8
10
  export default {
9
11
  title: "Table",
10
12
  component: DxcTable,
13
+ parameters: {
14
+ a11y: {
15
+ config: {
16
+ rules: [
17
+ ...disabledRules.map((ruleId) => ({ id: ruleId, reviewOnFail: true })),
18
+ ...preview?.parameters?.a11y?.config?.rules,
19
+ ],
20
+ },
21
+ },
22
+ },
11
23
  };
12
24
 
13
25
  const opinionatedTheme = {
@@ -0,0 +1 @@
1
+ export {};
@@ -7,7 +7,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
7
7
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@testing-library/react");
10
- var _Table = _interopRequireDefault(require("./Table.tsx"));
10
+ var _Table = _interopRequireDefault(require("./Table"));
11
11
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
12
12
  global.globalThis = global;
13
13
  global.DOMRect = {
@@ -26,7 +26,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
26
26
  function ResizeObserver() {
27
27
  (0, _classCallCheck2["default"])(this, ResizeObserver);
28
28
  }
29
- (0, _createClass2["default"])(ResizeObserver, [{
29
+ return (0, _createClass2["default"])(ResizeObserver, [{
30
30
  key: "observe",
31
31
  value: function observe() {}
32
32
  }, {
@@ -36,7 +36,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
36
36
  key: "disconnect",
37
37
  value: function disconnect() {}
38
38
  }]);
39
- return ResizeObserver;
40
39
  }();
41
40
  var icon = /*#__PURE__*/_react["default"].createElement("svg", {
42
41
  xmlns: "http://www.w3.org/2000/svg",
@@ -72,7 +71,6 @@ describe("Table component tests", function () {
72
71
  onSelectOption = jest.fn();
73
72
  onClick = jest.fn();
74
73
  actions = [{
75
- icon: icon,
76
74
  title: "icon1",
77
75
  onClick: onSelectOption,
78
76
  options: [{
package/tabs/Tab.js CHANGED
@@ -12,9 +12,10 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
12
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
13
13
  var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
14
14
  var _useTheme = _interopRequireDefault(require("../useTheme"));
15
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
15
16
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
16
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
19
  var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
19
20
  var active = _ref.active,
20
21
  tab = _ref.tab,
@@ -51,8 +52,8 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
51
52
  }, tab.icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
52
53
  hasLabelAndIcon: hasLabelAndIcon,
53
54
  iconPosition: iconPosition
54
- }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
55
- src: tab.icon
55
+ }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
56
+ icon: tab.icon
56
57
  }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
57
58
  color: tab.isDisabled ? colorsTheme.tabs.disabledFontColor : active ? colorsTheme.tabs.selectedFontColor : colorsTheme.tabs.unselectedFontColor,
58
59
  fontFamily: colorsTheme.tabs.fontFamily,
@@ -71,7 +72,7 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
71
72
  label: typeof tab.notificationNumber === "number" && tab.notificationNumber
72
73
  })));
73
74
  });
74
- var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n svg {\n color: ", ";\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg {\n color: ", ";\n }\n opacity: 1;\n }\n\n &:disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n outline: none !important;\n\n svg {\n color: ", ";\n }\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
75
+ var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n\n svg,\n span:before {\n color: ", ";\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg,\n span:before {\n color: ", ";\n }\n opacity: 1;\n }\n\n &:disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n outline: none !important;\n\n svg,\n span:before {\n color: ", ";\n }\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
75
76
  return props.theme.fontTextTransform;
76
77
  }, function (props) {
77
78
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "12px 16px" || "8px 16px";
@@ -108,7 +109,7 @@ var MainLabelContainer = _styledComponents["default"].div(_templateObject3 || (_
108
109
  }, function (props) {
109
110
  return props.notificationNumber && !props.disabled ? typeof props.notificationNumber === "number" ? "36px" : "18px" : "unset";
110
111
  });
111
- var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-bottom: ", ";\n margin-right: ", ";\n\n img,\n svg {\n height: 22px;\n width: 22px;\n }\n"])), function (props) {
112
+ var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-bottom: ", ";\n margin-right: ", ";\n font-size: 22px;\n\n svg {\n height: 22px;\n width: 22px;\n }\n"])), function (props) {
112
113
  return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
113
114
  }, function (props) {
114
115
  return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _Tabs = _interopRequireDefault(require("./Tabs"));
10
+ var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ viewBox: "0 0 20 20",
13
+ height: "20",
14
+ width: "20",
15
+ fill: "currentColor"
16
+ }, /*#__PURE__*/_react["default"].createElement("path", {
17
+ d: "m10 17-1.042-.938q-2.083-1.854-3.437-3.177-1.354-1.323-2.136-2.354Q2.604 9.5 2.302 8.646 2 7.792 2 6.896q0-1.854 1.271-3.125T6.396 2.5q1.021 0 1.979.438.958.437 1.625 1.229.667-.792 1.625-1.229.958-.438 1.979-.438 1.854 0 3.125 1.271T18 6.896q0 .896-.292 1.729-.291.833-1.073 1.854-.781 1.021-2.145 2.365-1.365 1.344-3.49 3.26Zm0-2.021q1.938-1.729 3.188-2.948 1.25-1.219 1.989-2.125.74-.906 1.031-1.614.292-.709.292-1.396 0-1.229-.833-2.063Q14.833 4 13.604 4q-.729 0-1.364.302-.636.302-1.094.844L10.417 6h-.834l-.729-.854q-.458-.542-1.114-.844Q7.083 4 6.396 4q-1.229 0-2.063.833-.833.834-.833 2.063 0 .687.271 1.364.271.678.989 1.573.719.896 1.98 2.125Q8 13.188 10 14.979Zm0-5.5Z"
18
+ }));
19
+ var sampleTabs = [{
20
+ label: "Tab-1",
21
+ icon: iconSVG,
22
+ notificationNumber: 10
23
+ }, {
24
+ label: "Tab-2",
25
+ icon: iconSVG
26
+ }, {
27
+ label: "Tab-3",
28
+ notificationNumber: 20
29
+ }, {
30
+ label: "Tab-4",
31
+ isDisabled: true
32
+ }];
33
+ describe("Tabs component accessibility tests", function () {
34
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
35
+ var _render, container, results;
36
+ return _regenerator["default"].wrap(function _callee$(_context) {
37
+ while (1) switch (_context.prev = _context.next) {
38
+ case 0:
39
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
40
+ tabs: sampleTabs,
41
+ margin: "medium",
42
+ iconPosition: "left",
43
+ defaultActiveTabIndex: 0
44
+ })), container = _render.container;
45
+ _context.next = 3;
46
+ return (0, _axeHelper.axe)(container);
47
+ case 3:
48
+ results = _context.sent;
49
+ expect(results).toHaveNoViolations();
50
+ case 5:
51
+ case "end":
52
+ return _context.stop();
53
+ }
54
+ }, _callee);
55
+ })));
56
+ });
package/tabs/Tabs.js CHANGED
@@ -15,25 +15,10 @@ var _variables = require("../common/variables");
15
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
16
16
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
17
17
  var _Tab = _interopRequireDefault(require("./Tab"));
18
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
18
19
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
19
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
- var arrowIcons = {
22
- left: /*#__PURE__*/_react["default"].createElement("svg", {
23
- focusable: "false",
24
- viewBox: "0 0 24 24",
25
- "aria-hidden": "true"
26
- }, /*#__PURE__*/_react["default"].createElement("path", {
27
- d: "M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"
28
- })),
29
- right: /*#__PURE__*/_react["default"].createElement("svg", {
30
- focusable: "false",
31
- viewBox: "0 0 24 24",
32
- "aria-hidden": "true"
33
- }, /*#__PURE__*/_react["default"].createElement("path", {
34
- d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"
35
- }))
36
- };
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
37
22
  var useResize = function useResize(refTabList) {
38
23
  var _useState = (0, _react.useState)(0),
39
24
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -281,7 +266,9 @@ var DxcTabs = function DxcTabs(_ref) {
281
266
  "aria-label": translatedLabels.tabs.scrollLeft,
282
267
  tabIndex: scrollLeftEnabled ? tabIndex : -1,
283
268
  minHeightTabs: minHeightTabs
284
- }, arrowIcons.left), /*#__PURE__*/_react["default"].createElement(TabsContent, null, /*#__PURE__*/_react["default"].createElement(TabsContentScroll, {
269
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
270
+ icon: "keyboard_arrow_left"
271
+ })), /*#__PURE__*/_react["default"].createElement(TabsContent, null, /*#__PURE__*/_react["default"].createElement(TabsContentScroll, {
285
272
  translateScroll: translateScroll,
286
273
  ref: refTabList,
287
274
  enabled: enabledIndicator
@@ -323,7 +310,9 @@ var DxcTabs = function DxcTabs(_ref) {
323
310
  "aria-label": translatedLabels.tabs.scrollRight,
324
311
  tabIndex: scrollRightEnabled ? tabIndex : -1,
325
312
  minHeightTabs: minHeightTabs
326
- }, arrowIcons.right))));
313
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
314
+ icon: "keyboard_arrow_right"
315
+ })))));
327
316
  };
328
317
  var Underline = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n height: ", ";\n background-color: ", ";\n"])), function (props) {
329
318
  return props.theme.dividerThickness;
@@ -348,7 +337,7 @@ var Tabs = _styledComponents["default"].div(_templateObject3 || (_templateObject
348
337
  }, function (props) {
349
338
  return props.theme.unselectedBackgroundColor;
350
339
  });
351
- var ScrollIndicator = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: ", ";\n justify-content: center;\n min-width: ", ";\n height: ", "px;\n padding: 0;\n border: none;\n background-color: #ffffff;\n font-size: 1.25rem;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n &:active {\n background-color: ", ";\n }\n &:disabled {\n cursor: default;\n display: none;\n svg {\n visibility: hidden;\n }\n &:focus {\n outline: none;\n }\n &:hover,\n &:active {\n background-color: transparent !important;\n }\n }\n\n svg {\n align-self: center;\n height: 20px;\n width: 20px;\n fill: ", ";\n }\n"])), function (props) {
340
+ var ScrollIndicator = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: ", ";\n justify-content: center;\n min-width: ", ";\n height: ", "px;\n padding: 0;\n border: none;\n background-color: #ffffff;\n font-size: 1.25rem;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n &:active {\n background-color: ", ";\n }\n &:disabled {\n cursor: default;\n display: none;\n svg {\n visibility: hidden;\n }\n &:focus {\n outline: none;\n }\n &:hover,\n &:active {\n background-color: transparent !important;\n }\n }\n\n span {\n align-self: center;\n height: 20px;\n width: 20px;\n }\n\n span::before {\n color: ", ";\n }\n"])), function (props) {
352
341
  return props.enabled ? "flex" : "none";
353
342
  }, function (props) {
354
343
  return props.theme.scrollButtonsWidth;
@@ -3,10 +3,16 @@ import DxcTabs from "./Tabs";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
5
  import { HalstackProvider } from "../HalstackContext";
6
+ import { INITIAL_VIEWPORTS } from "@storybook/addon-viewport";
6
7
 
7
8
  export default {
8
9
  title: "Tabs",
9
10
  component: DxcTabs,
11
+ parameters: {
12
+ viewport: {
13
+ viewports: INITIAL_VIEWPORTS,
14
+ },
15
+ },
10
16
  };
11
17
 
12
18
  const iconSVG = (
@@ -75,9 +81,7 @@ const tabsNotification = tabs.map((tab, index) => ({
75
81
  }));
76
82
 
77
83
  const tabsIcon = tabs.map((tab, index) =>
78
- index <= tabs.length / 2
79
- ? { ...tab, icon: "https://cdn-icons-png.flaticon.com/512/5039/5039041.png" }
80
- : { ...tab, icon: iconSVG }
84
+ index <= tabs.length / 2 ? { ...tab, icon: "mail" } : { ...tab, icon: iconSVG },
81
85
  );
82
86
 
83
87
  const tabsNotificationIcon = tabsNotification.map((tab) => ({ ...tab, icon: iconSVG }));
@@ -0,0 +1 @@
1
+ export {};
package/tabs/Tabs.test.js CHANGED
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  var _react = _interopRequireDefault(require("react"));
5
5
  var _react2 = require("@testing-library/react");
6
- var _Tabs = _interopRequireDefault(require("./Tabs.tsx"));
6
+ var _Tabs = _interopRequireDefault(require("./Tabs"));
7
7
  var sampleTabs = [{
8
8
  label: "Tab-1"
9
9
  }, {
@@ -73,26 +73,8 @@ describe("Tabs component tests", function () {
73
73
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
74
74
  expect(tabs[2].getAttribute("aria-selected")).toBe("true");
75
75
  });
76
- test("Tabs render with correct icons", function () {
77
- 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;
90
- expect(getAllByRole("img")[0].getAttribute("src")).toBe("/testIcon1.png");
91
- expect(getAllByRole("img")[1].getAttribute("src")).toBe("/testIcon2.png");
92
- expect(getAllByRole("img")[2].getAttribute("src")).toBe("/testIcon3.png");
93
- });
94
76
  test("Tabs render with disabled tab", function () {
95
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
77
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
96
78
  tabs: [{
97
79
  label: "Tab-1",
98
80
  isDisabled: true
@@ -100,18 +82,18 @@ describe("Tabs component tests", function () {
100
82
  label: "Tab-2"
101
83
  }]
102
84
  })),
103
- getAllByRole = _render5.getAllByRole;
85
+ getAllByRole = _render4.getAllByRole;
104
86
  expect(getAllByRole("tab")[0].hasAttribute("disabled")).toBeTruthy();
105
87
  expect(getAllByRole("tab")[1].hasAttribute("disabled")).toBeFalsy();
106
88
  });
107
89
  test("Uncontrolled tabs", function () {
108
90
  var onTabClick = jest.fn();
109
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
91
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
110
92
  tabs: sampleTabs,
111
93
  onTabClick: onTabClick
112
94
  })),
113
- getByText = _render6.getByText,
114
- getAllByRole = _render6.getAllByRole;
95
+ getByText = _render5.getByText,
96
+ getAllByRole = _render5.getAllByRole;
115
97
  var tabs = getAllByRole("tab");
116
98
  var tab1 = getByText("Tab-1");
117
99
  var tab2 = getByText("Tab-2");
@@ -128,12 +110,12 @@ describe("Tabs component tests", function () {
128
110
  });
129
111
  test("Controlled tabs", function () {
130
112
  var onTabClick = jest.fn();
131
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
113
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
132
114
  tabs: sampleTabs,
133
115
  onTabClick: onTabClick,
134
116
  activeTabIndex: 0
135
117
  })),
136
- getAllByRole = _render7.getAllByRole;
118
+ getAllByRole = _render6.getAllByRole;
137
119
  var tabs = getAllByRole("tab");
138
120
  _react2.fireEvent.click(tabs[1]);
139
121
  expect(onTabClick).toHaveBeenCalledWith(1);
@@ -148,11 +130,11 @@ describe("Tabs component tests", function () {
148
130
  });
149
131
  test("Uncontrolled tabs should have focus in the first non-disabled tab", function () {
150
132
  var onTabClick = jest.fn();
151
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
133
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
152
134
  tabs: sampleTabsLastTabNonDisabled,
153
135
  onTabClick: onTabClick
154
136
  })),
155
- getAllByRole = _render8.getAllByRole;
137
+ getAllByRole = _render7.getAllByRole;
156
138
  var tabs = getAllByRole("tab");
157
139
  expect(tabs[0].hasAttribute("disabled")).toBeTruthy();
158
140
  expect(tabs[1].hasAttribute("disabled")).toBeTruthy();
@@ -163,12 +145,12 @@ describe("Tabs component tests", function () {
163
145
  });
164
146
  test("Controlled tabs with active index in disabled tab should not change focus to the first available tab", function () {
165
147
  var onTabClick = jest.fn();
166
- var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
148
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
167
149
  tabs: sampleTabsLastTabNonDisabled,
168
150
  onTabClick: onTabClick,
169
151
  activeTabIndex: 0
170
152
  })),
171
- getAllByRole = _render9.getAllByRole;
153
+ getAllByRole = _render8.getAllByRole;
172
154
  var tabs = getAllByRole("tab");
173
155
  expect(tabs[0].getAttribute("aria-selected")).toBe("true");
174
156
  expect(tabs[1].getAttribute("aria-selected")).toBe("false");
@@ -187,13 +169,13 @@ describe("Tabs component tests", function () {
187
169
  });
188
170
  test("Select tabs with keyboard event arrows", function () {
189
171
  var onTabClick = jest.fn();
190
- var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
172
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
191
173
  tabs: sampleTabs,
192
174
  onTabClick: onTabClick
193
175
  })),
194
- getByText = _render10.getByText,
195
- getByRole = _render10.getByRole,
196
- getAllByRole = _render10.getAllByRole;
176
+ getByText = _render9.getByText,
177
+ getByRole = _render9.getByRole,
178
+ getAllByRole = _render9.getAllByRole;
197
179
  var tabList = getByRole("tablist");
198
180
  var tab1 = getByText("Tab-1");
199
181
  var tabs = getAllByRole("tab");
@@ -265,13 +247,13 @@ describe("Tabs component tests", function () {
265
247
  });
266
248
  test("Skip disabled tab with keyboard event arrows", function () {
267
249
  var onTabClick = jest.fn();
268
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
250
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
269
251
  tabs: sampleTabsMiddleDisabled,
270
252
  onTabClick: onTabClick
271
253
  })),
272
- getByText = _render11.getByText,
273
- getByRole = _render11.getByRole,
274
- getAllByRole = _render11.getAllByRole;
254
+ getByText = _render10.getByText,
255
+ getByRole = _render10.getByRole,
256
+ getAllByRole = _render10.getAllByRole;
275
257
  var tabList = getByRole("tablist");
276
258
  var tab1 = getByText("Tab-1");
277
259
  var tabs = getAllByRole("tab");
package/tabs/types.d.ts CHANGED
@@ -27,7 +27,7 @@ export type TabLabelProps = TabCommonProps & {
27
27
  */
28
28
  label: string;
29
29
  /**
30
- * Element or path used as the icon that will be displayed in the tab.
30
+ * Material Symbol name or SVG element used as the icon that will be displayed in the tab.
31
31
  */
32
32
  icon?: string | SVG;
33
33
  };
@@ -37,7 +37,7 @@ export type TabIconProps = TabCommonProps & {
37
37
  */
38
38
  label?: string;
39
39
  /**
40
- * Element or path used as the icon that will be displayed in the tab.
40
+ * Material Symbol name or SVG element used as the icon that will be displayed in the tab.
41
41
  */
42
42
  icon: string | SVG;
43
43
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _Tag = _interopRequireDefault(require("./Tag"));
10
+ var icon = /*#__PURE__*/_react["default"].createElement("svg", {
11
+ viewBox: "0 0 24 24",
12
+ fill: "currentColor"
13
+ }, /*#__PURE__*/_react["default"].createElement("path", {
14
+ d: "M0 0h24v24H0z",
15
+ fill: "none"
16
+ }), /*#__PURE__*/_react["default"].createElement("path", {
17
+ d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"
18
+ }));
19
+ describe("Tag component accessibility tests", function () {
20
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
21
+ var _render, container, results;
22
+ return _regenerator["default"].wrap(function _callee$(_context) {
23
+ while (1) switch (_context.prev = _context.next) {
24
+ case 0:
25
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
26
+ label: "tag-test",
27
+ icon: icon,
28
+ iconBgColor: "#fabada",
29
+ margin: "medium",
30
+ size: "medium",
31
+ labelPosition: "before"
32
+ })), container = _render.container;
33
+ _context.next = 3;
34
+ return (0, _axeHelper.axe)(container);
35
+ case 3:
36
+ results = _context.sent;
37
+ expect(results).toHaveNoViolations();
38
+ case 5:
39
+ case "end":
40
+ return _context.stop();
41
+ }
42
+ }, _callee);
43
+ })));
44
+ it("Should not have basic accessibility issues for new-window mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
45
+ var _render2, container, results;
46
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
47
+ while (1) switch (_context2.prev = _context2.next) {
48
+ case 0:
49
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
50
+ label: "tag-test",
51
+ icon: icon,
52
+ iconBgColor: "#fabada",
53
+ margin: "medium",
54
+ size: "medium",
55
+ labelPosition: "before",
56
+ newWindow: true
57
+ })), container = _render2.container;
58
+ _context2.next = 3;
59
+ return (0, _axeHelper.axe)(container);
60
+ case 3:
61
+ results = _context2.sent;
62
+ expect(results).toHaveNoViolations();
63
+ case 5:
64
+ case "end":
65
+ return _context2.stop();
66
+ }
67
+ }, _callee2);
68
+ })));
69
+ });