@dxc-technology/halstack-react 0.0.0-89de434 → 0.0.0-8a597df

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 (136) hide show
  1. package/accordion/Accordion.accessibility.test.js +71 -0
  2. package/accordion/Accordion.js +8 -21
  3. package/accordion/Accordion.stories.tsx +4 -36
  4. package/accordion/types.d.ts +1 -1
  5. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  6. package/accordion-group/AccordionGroup.d.ts +2 -3
  7. package/accordion-group/AccordionGroup.js +3 -3
  8. package/accordion-group/AccordionGroupAccordion.js +2 -2
  9. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  10. package/accordion-group/AccordionGroupContext.js +8 -0
  11. package/accordion-group/types.d.ts +1 -1
  12. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  13. package/action-icon/ActionIcon.js +4 -3
  14. package/action-icon/ActionIcon.stories.tsx +3 -3
  15. package/action-icon/types.d.ts +1 -1
  16. package/alert/Alert.accessibility.test.js +95 -0
  17. package/alert/Alert.js +15 -69
  18. package/badge/Badge.accessibility.test.js +129 -0
  19. package/badge/Badge.js +6 -4
  20. package/badge/Badge.stories.tsx +11 -11
  21. package/badge/types.d.ts +1 -1
  22. package/box/Box.accessibility.test.js +33 -0
  23. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  24. package/bulleted-list/BulletedList.js +6 -3
  25. package/bulleted-list/BulletedList.stories.tsx +1 -1
  26. package/button/Button.accessibility.test.js +127 -0
  27. package/button/Button.js +4 -3
  28. package/button/Button.stories.tsx +32 -51
  29. package/button/types.d.ts +1 -1
  30. package/card/Card.accessibility.test.js +36 -0
  31. package/checkbox/Checkbox.accessibility.test.js +87 -0
  32. package/chip/Chip.accessibility.test.js +67 -0
  33. package/chip/Chip.js +8 -5
  34. package/chip/Chip.stories.tsx +5 -24
  35. package/chip/Chip.test.js +4 -4
  36. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  37. package/date-input/DateInput.accessibility.test.js +216 -0
  38. package/date-input/DateInput.js +1 -2
  39. package/date-input/DatePicker.js +12 -6
  40. package/dialog/Dialog.accessibility.test.js +69 -0
  41. package/dialog/Dialog.test.js +1 -1
  42. package/divider/Divider.accessibility.test.js +33 -0
  43. package/divider/types.d.ts +3 -1
  44. package/dropdown/Dropdown.accessibility.test.js +180 -0
  45. package/dropdown/Dropdown.js +12 -29
  46. package/dropdown/Dropdown.stories.tsx +5 -16
  47. package/dropdown/DropdownMenuItem.js +6 -3
  48. package/dropdown/types.d.ts +2 -4
  49. package/file-input/FileInput.accessibility.test.js +160 -0
  50. package/file-input/FileInput.js +3 -39
  51. package/file-input/FileInput.test.js +7 -84
  52. package/file-input/FileItem.js +13 -27
  53. package/footer/Footer.accessibility.test.js +117 -0
  54. package/footer/Footer.js +7 -5
  55. package/footer/Footer.stories.tsx +28 -3
  56. package/footer/types.d.ts +1 -1
  57. package/header/Header.accessibility.test.js +84 -0
  58. package/header/Header.js +9 -20
  59. package/heading/Heading.accessibility.test.js +33 -0
  60. package/icon/Icon.accessibility.test.js +30 -0
  61. package/icon/Icon.js +1 -1
  62. package/icon/Icon.stories.tsx +5 -3
  63. package/image/Image.accessibility.test.js +56 -0
  64. package/layout/ApplicationLayout.js +1 -1
  65. package/layout/Icons.js +0 -2
  66. package/link/Link.accessibility.test.js +112 -0
  67. package/link/Link.js +7 -5
  68. package/link/Link.stories.tsx +2 -2
  69. package/link/types.d.ts +1 -1
  70. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  71. package/nav-tabs/NavTabs.d.ts +1 -2
  72. package/nav-tabs/NavTabs.js +3 -3
  73. package/nav-tabs/NavTabs.stories.tsx +26 -23
  74. package/nav-tabs/NavTabs.test.js +1 -2
  75. package/nav-tabs/NavTabsContext.d.ts +3 -0
  76. package/nav-tabs/NavTabsContext.js +8 -0
  77. package/nav-tabs/Tab.js +13 -14
  78. package/nav-tabs/types.d.ts +1 -1
  79. package/number-input/NumberInput.accessibility.test.js +228 -0
  80. package/number-input/NumberInput.d.ts +0 -7
  81. package/number-input/NumberInput.js +3 -3
  82. package/number-input/NumberInputContext.d.ts +3 -0
  83. package/number-input/NumberInputContext.js +8 -0
  84. package/number-input/types.d.ts +6 -0
  85. package/package.json +11 -11
  86. package/paginator/Paginator.accessibility.test.js +79 -0
  87. package/paragraph/Paragraph.accessibility.test.js +28 -0
  88. package/password-input/PasswordInput.accessibility.test.js +153 -0
  89. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  90. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  91. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  92. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  93. package/resultset-table/ResultsetTable.d.ts +1 -1
  94. package/resultset-table/ResultsetTable.js +10 -6
  95. package/resultset-table/ResultsetTable.stories.tsx +5 -1
  96. package/resultset-table/ResultsetTable.test.js +14 -4
  97. package/resultset-table/types.d.ts +38 -11
  98. package/select/Select.accessibility.test.js +217 -0
  99. package/select/Select.stories.tsx +0 -1
  100. package/sidenav/Sidenav.accessibility.test.js +59 -0
  101. package/sidenav/Sidenav.js +16 -12
  102. package/sidenav/Sidenav.stories.tsx +4 -9
  103. package/sidenav/types.d.ts +2 -2
  104. package/slider/Slider.accessibility.test.js +104 -0
  105. package/spinner/Spinner.accessibility.test.js +96 -0
  106. package/status-light/StatusLight.accessibility.test.js +157 -0
  107. package/switch/Switch.accessibility.test.js +89 -0
  108. package/table/Table.accessibility.test.js +82 -0
  109. package/table/Table.js +1 -10
  110. package/table/Table.stories.tsx +2 -9
  111. package/table/types.d.ts +1 -15
  112. package/tabs/Tabs.accessibility.test.js +56 -0
  113. package/tag/Tag.accessibility.test.js +69 -0
  114. package/tag/Tag.js +6 -6
  115. package/tag/Tag.stories.tsx +4 -7
  116. package/tag/Tag.test.js +4 -12
  117. package/tag/types.d.ts +2 -2
  118. package/text-input/Suggestions.js +5 -3
  119. package/text-input/TextInput.accessibility.test.js +321 -0
  120. package/text-input/TextInput.js +10 -8
  121. package/text-input/TextInput.stories.tsx +1 -1
  122. package/textarea/Textarea.accessibility.test.js +155 -0
  123. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  124. package/toggle-group/ToggleGroup.js +4 -3
  125. package/toggle-group/ToggleGroup.stories.tsx +3 -3
  126. package/toggle-group/types.d.ts +2 -2
  127. package/typography/Typography.accessibility.test.js +339 -0
  128. package/wizard/Wizard.accessibility.test.js +55 -0
  129. package/date-input/Icons.d.ts +0 -6
  130. package/date-input/Icons.js +0 -58
  131. package/sidenav/Icons.d.ts +0 -7
  132. package/sidenav/Icons.js +0 -47
  133. package/text-input/Icons.d.ts +0 -8
  134. package/text-input/Icons.js +0 -56
  135. /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
  136. /package/{layout → sidenav}/SidenavContext.js +0 -0
package/alert/Alert.js CHANGED
@@ -14,72 +14,10 @@ var _variables = require("../common/variables");
14
14
  var _utils = require("../common/utils");
15
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
16
16
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
17
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
17
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
18
19
  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); }
19
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; }
20
- var alertIcons = {
21
- close: /*#__PURE__*/_react["default"].createElement("svg", {
22
- xmlns: "http://www.w3.org/2000/svg",
23
- width: "20",
24
- height: "20",
25
- viewBox: "0 0 24 24",
26
- fill: "currentColor"
27
- }, /*#__PURE__*/_react["default"].createElement("path", {
28
- d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
29
- }), /*#__PURE__*/_react["default"].createElement("path", {
30
- d: "M0 0h24v24H0z",
31
- fill: "none"
32
- })),
33
- info: /*#__PURE__*/_react["default"].createElement("svg", {
34
- xmlns: "http://www.w3.org/2000/svg",
35
- width: "23",
36
- height: "23",
37
- viewBox: "0 0 24 24",
38
- fill: "currentColor"
39
- }, /*#__PURE__*/_react["default"].createElement("path", {
40
- d: "M0 0h24v24H0z",
41
- fill: "none"
42
- }), /*#__PURE__*/_react["default"].createElement("path", {
43
- d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"
44
- })),
45
- success: /*#__PURE__*/_react["default"].createElement("svg", {
46
- xmlns: "http://www.w3.org/2000/svg",
47
- width: "23",
48
- height: "23",
49
- viewBox: "0 0 24 24",
50
- fill: "currentColor"
51
- }, /*#__PURE__*/_react["default"].createElement("path", {
52
- d: "M0 0h24v24H0z",
53
- fill: "none"
54
- }), /*#__PURE__*/_react["default"].createElement("path", {
55
- d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"
56
- })),
57
- warning: /*#__PURE__*/_react["default"].createElement("svg", {
58
- xmlns: "http://www.w3.org/2000/svg",
59
- width: "23",
60
- height: "23",
61
- viewBox: "0 0 24 24",
62
- fill: "currentColor"
63
- }, /*#__PURE__*/_react["default"].createElement("path", {
64
- d: "M0 0h24v24H0z",
65
- fill: "none"
66
- }), /*#__PURE__*/_react["default"].createElement("path", {
67
- d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"
68
- })),
69
- error: /*#__PURE__*/_react["default"].createElement("svg", {
70
- xmlns: "http://www.w3.org/2000/svg",
71
- width: "23",
72
- height: "23",
73
- viewBox: "0 0 24 24",
74
- fill: "currentColor"
75
- }, /*#__PURE__*/_react["default"].createElement("path", {
76
- d: "M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z",
77
- fill: "currentColor"
78
- }), /*#__PURE__*/_react["default"].createElement("path", {
79
- d: "M0 0h24v24H0z",
80
- fill: "none"
81
- }))
82
- };
83
21
  var DxcAlert = function DxcAlert(_ref) {
84
22
  var _ref$type = _ref.type,
85
23
  type = _ref$type === void 0 ? "info" : _ref$type,
@@ -112,10 +50,20 @@ var DxcAlert = function DxcAlert(_ref) {
112
50
  size: size
113
51
  }, /*#__PURE__*/_react["default"].createElement(AlertInfo, null, /*#__PURE__*/_react["default"].createElement(AlertIcon, {
114
52
  type: type
115
- }, type === "info" && alertIcons.info || type === "confirm" && alertIcons.success || type === "warning" && alertIcons.warning || type === "error" && alertIcons.error), /*#__PURE__*/_react["default"].createElement(AlertText, null, /*#__PURE__*/_react["default"].createElement(AlertTitle, null, getTypeText()), inlineText && inlineText !== "" && "-", /*#__PURE__*/_react["default"].createElement(AlertInlineText, null, inlineText)), onClose && /*#__PURE__*/_react["default"].createElement(AlertCloseAction, {
53
+ }, type === "info" && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
54
+ icon: "filled_info"
55
+ }) || type === "confirm" && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
56
+ icon: "filled_check_circle"
57
+ }) || type === "warning" && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
58
+ icon: "filled_warning"
59
+ }) || type === "error" && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
60
+ icon: "filled_cancel"
61
+ })), /*#__PURE__*/_react["default"].createElement(AlertText, null, /*#__PURE__*/_react["default"].createElement(AlertTitle, null, getTypeText()), inlineText && inlineText !== "" && "-", /*#__PURE__*/_react["default"].createElement(AlertInlineText, null, inlineText)), onClose && /*#__PURE__*/_react["default"].createElement(AlertCloseAction, {
116
62
  onClick: onClose,
117
63
  tabIndex: tabIndex
118
- }, alertIcons.close)), children && /*#__PURE__*/_react["default"].createElement(AlertContent, null, children))));
64
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
65
+ icon: "close"
66
+ }))), children && /*#__PURE__*/_react["default"].createElement(AlertContent, null, children))));
119
67
  };
120
68
  var sizes = {
121
69
  small: "280px",
@@ -229,7 +177,7 @@ var AlertInlineText = _styledComponents["default"].div(_templateObject6 || (_tem
229
177
  }, function (props) {
230
178
  return props.theme.inlineTextFontColor;
231
179
  });
232
- var AlertIcon = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 12px;\n padding-right: ", ";\n padding-left: ", ";\n\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
180
+ var AlertIcon = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 12px;\n padding-right: ", ";\n padding-left: ", ";\n\n color: ", ";\n\n font-size: ", ";\n"])), function (props) {
233
181
  return props.theme.iconPaddingRight;
234
182
  }, function (props) {
235
183
  return props.theme.iconPaddingLeft;
@@ -237,14 +185,12 @@ var AlertIcon = _styledComponents["default"].span(_templateObject7 || (_template
237
185
  return props.type === "info" && props.theme.infoIconColor || props.type === "confirm" && props.theme.successIconColor || props.type === "warning" && props.theme.warningIconColor || props.type === "error" && props.theme.errorIconColor;
238
186
  }, function (props) {
239
187
  return props.theme.iconSize;
240
- }, function (props) {
241
- return props.theme.iconSize;
242
188
  });
243
189
  var AlertText = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n align-items: center;\n overflow: hidden;\n"])));
244
190
  var AlertContent = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1 1 auto;\n padding: ", ";\n overflow-y: auto;\n"])), function (props) {
245
191
  return "".concat(props.theme.contentPaddingTop, " ").concat(props.theme.contentPaddingRight, " ").concat(props.theme.contentPaddingBottom, " ").concat(props.theme.contentPaddingLeft);
246
192
  });
247
- var AlertCloseAction = _styledComponents["default"].button(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n border: 1px solid transparent;\n border-radius: 2px;\n box-shadow: 0 0 0 2px transparent;\n padding: 3px;\n margin-left: 12px;\n background-color: transparent;\n color: #000000;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus,\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
193
+ var AlertCloseAction = _styledComponents["default"].button(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n font-size: 20px;\n border: 1px solid transparent;\n border-radius: 2px;\n box-shadow: 0 0 0 2px transparent;\n padding: 3px;\n margin-left: 12px;\n background-color: transparent;\n color: #000000;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus,\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
248
194
  return props.theme.hoverActionBackgroundColor;
249
195
  }, function (props) {
250
196
  return props.theme.focusActionBorderColor;
@@ -0,0 +1,129 @@
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 _jestAxe = require("jest-axe");
9
+ var _Badge = _interopRequireDefault(require("./Badge.tsx"));
10
+ var _Flex = _interopRequireDefault(require("../flex/Flex.tsx"));
11
+ var icon = /*#__PURE__*/_react["default"].createElement("svg", {
12
+ width: "24",
13
+ height: "24",
14
+ viewBox: "0 0 24 24",
15
+ xmlns: "http://www.w3.org/2000/svg",
16
+ fill: "currentColor"
17
+ }, /*#__PURE__*/_react["default"].createElement("path", {
18
+ d: "M11 17H13V11H11V17ZM12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM11 9H13V7H11V9Z"
19
+ }), /*#__PURE__*/_react["default"].createElement("path", {
20
+ d: "M11 7H13V9H11V7ZM11 11H13V17H11V11Z"
21
+ }), /*#__PURE__*/_react["default"].createElement("path", {
22
+ d: "M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20Z"
23
+ }));
24
+ describe("Badge component accessibility tests", function () {
25
+ it("Should not have basic accessibility issues for contextual mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
26
+ var _render, container, results;
27
+ return _regenerator["default"].wrap(function _callee$(_context) {
28
+ while (1) switch (_context.prev = _context.next) {
29
+ case 0:
30
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
31
+ color: "blue",
32
+ mode: "contextual",
33
+ label: "Label",
34
+ size: "small",
35
+ icon: icon,
36
+ title: "Badge1"
37
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
38
+ color: "green",
39
+ mode: "contextual",
40
+ label: "Label",
41
+ size: "small",
42
+ icon: icon,
43
+ title: "Badge1"
44
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
45
+ color: "grey",
46
+ mode: "contextual",
47
+ label: "Label",
48
+ size: "small",
49
+ icon: icon,
50
+ title: "Badge1"
51
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
52
+ color: "orange",
53
+ mode: "contextual",
54
+ label: "Label",
55
+ size: "small",
56
+ icon: icon,
57
+ title: "Badge1"
58
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
59
+ color: "purple",
60
+ mode: "contextual",
61
+ label: "Label",
62
+ size: "small",
63
+ icon: icon,
64
+ title: "Badge1"
65
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
66
+ color: "red",
67
+ mode: "contextual",
68
+ label: "Label",
69
+ size: "small",
70
+ icon: icon,
71
+ title: "Badge1"
72
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
73
+ color: "yellow",
74
+ mode: "contextual",
75
+ label: "Label",
76
+ size: "small",
77
+ icon: icon,
78
+ title: "Badge1"
79
+ }))), container = _render.container;
80
+ _context.next = 3;
81
+ return (0, _jestAxe.axe)(container);
82
+ case 3:
83
+ results = _context.sent;
84
+ expect(results).toHaveNoViolations();
85
+ case 5:
86
+ case "end":
87
+ return _context.stop();
88
+ }
89
+ }, _callee);
90
+ })));
91
+ it("Should not have basic accessibility issues for notification mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
92
+ var _render2, container, results;
93
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
94
+ while (1) switch (_context2.prev = _context2.next) {
95
+ case 0:
96
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
97
+ mode: "notification",
98
+ label: 100,
99
+ size: "large",
100
+ icon: icon,
101
+ notificationLimit: 99,
102
+ title: "Badge2"
103
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
104
+ mode: "notification",
105
+ label: 50,
106
+ size: "large",
107
+ icon: icon,
108
+ notificationLimit: 99,
109
+ title: "Badge2"
110
+ }), /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
111
+ mode: "notification",
112
+ label: 1000000,
113
+ size: "large",
114
+ icon: icon,
115
+ notificationLimit: 99999999,
116
+ title: "Badge2"
117
+ }))), container = _render2.container;
118
+ _context2.next = 3;
119
+ return (0, _jestAxe.axe)(container);
120
+ case 3:
121
+ results = _context2.sent;
122
+ expect(results).toHaveNoViolations();
123
+ case 5:
124
+ case "end":
125
+ return _context2.stop();
126
+ }
127
+ }, _callee2);
128
+ })));
129
+ });
package/badge/Badge.js CHANGED
@@ -10,6 +10,7 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
  var _Flex = _interopRequireDefault(require("../flex/Flex"));
12
12
  var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
13
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
13
14
  var _templateObject, _templateObject2, _templateObject3;
14
15
  var contextualColorMap = {
15
16
  grey: {
@@ -111,9 +112,8 @@ var DxcBadge = function DxcBadge(_ref2) {
111
112
  alignItems: "center"
112
113
  }, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
113
114
  size: size
114
- }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
115
- src: icon,
116
- alt: title
115
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
116
+ icon: icon
117
117
  }) : icon), /*#__PURE__*/_react["default"].createElement(Label, {
118
118
  label: label,
119
119
  notificationLimit: notificationLimit,
@@ -148,7 +148,9 @@ var BadgeContainer = _styledComponents["default"].div(_templateObject || (_templ
148
148
  }, function (props) {
149
149
  return props.label ? getPadding(props.mode, props.size) : "";
150
150
  });
151
- var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n img,\n svg {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
151
+ var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-size: ", ";\n\n svg {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
152
+ return sizeMap[props.size].iconSize;
153
+ }, function (props) {
152
154
  return sizeMap[props.size].iconSize;
153
155
  }, function (props) {
154
156
  return sizeMap[props.size].iconSize;
@@ -63,14 +63,14 @@ export const Chromatic = () => (
63
63
  <Title title="Medium" theme="light" level={4} />
64
64
  <DxcFlex gap="3rem" alignItems="center">
65
65
  <DxcBadge label="Label" />
66
- <DxcBadge label="Label" icon={icon} />
66
+ <DxcBadge label="Label" icon="done" />
67
67
  </DxcFlex>
68
68
  </ExampleContainer>
69
69
  <ExampleContainer>
70
70
  <Title title="Large" theme="light" level={4} />
71
71
  <DxcFlex gap="3rem" alignItems="center">
72
72
  <DxcBadge label="Label" size="large" />
73
- <DxcBadge label="Label" size="large" icon={icon} />
73
+ <DxcBadge label="Label" size="large" icon="done" />
74
74
  </DxcFlex>
75
75
  </ExampleContainer>
76
76
  <Title title="Blue" theme="light" level={3} />
@@ -78,7 +78,7 @@ export const Chromatic = () => (
78
78
  <Title title="Small" theme="light" level={4} />
79
79
  <DxcFlex gap="3rem" alignItems="center">
80
80
  <DxcBadge color="blue" label="Label" size="small" />
81
- <DxcBadge color="blue" label="Label" size="small" icon={icon} />
81
+ <DxcBadge color="blue" label="Label" size="small" icon="done" />
82
82
  </DxcFlex>
83
83
  </ExampleContainer>
84
84
  <ExampleContainer>
@@ -100,14 +100,14 @@ export const Chromatic = () => (
100
100
  <Title title="Small" theme="light" level={4} />
101
101
  <DxcFlex gap="3rem" alignItems="center">
102
102
  <DxcBadge color="green" label="Label" size="small" />
103
- <DxcBadge color="green" label="Label" size="small" icon={icon} />
103
+ <DxcBadge color="green" label="Label" size="small" icon="done" />
104
104
  </DxcFlex>
105
105
  </ExampleContainer>
106
106
  <ExampleContainer>
107
107
  <Title title="Medium" theme="light" level={4} />
108
108
  <DxcFlex gap="3rem" alignItems="center">
109
109
  <DxcBadge color="green" label="Label" />
110
- <DxcBadge color="green" label="Label" icon={icon} />
110
+ <DxcBadge color="green" label="Label" icon="done" />
111
111
  </DxcFlex>
112
112
  </ExampleContainer>
113
113
  <ExampleContainer>
@@ -123,7 +123,7 @@ export const Chromatic = () => (
123
123
  <Title title="Small" theme="light" level={4} />
124
124
  <DxcFlex gap="3rem" alignItems="center">
125
125
  <DxcBadge color="orange" label="Label" size="small" />
126
- <DxcBadge color="orange" label="Label" size="small" icon={icon} />
126
+ <DxcBadge color="orange" label="Label" size="small" icon="done" />
127
127
  </DxcFlex>
128
128
  </ExampleContainer>
129
129
  <ExampleContainer>
@@ -145,14 +145,14 @@ export const Chromatic = () => (
145
145
  <Title title="Small" theme="light" level={4} />
146
146
  <DxcFlex gap="3rem" alignItems="center">
147
147
  <DxcBadge color="red" label="Label" size="small" />
148
- <DxcBadge color="red" label="Label" size="small" icon={icon} />
148
+ <DxcBadge color="red" label="Label" size="small" icon="done" />
149
149
  </DxcFlex>
150
150
  </ExampleContainer>
151
151
  <ExampleContainer>
152
152
  <Title title="Medium" theme="light" level={4} />
153
153
  <DxcFlex gap="3rem" alignItems="center">
154
154
  <DxcBadge color="red" label="Label" />
155
- <DxcBadge color="red" label="Label" icon={icon} />
155
+ <DxcBadge color="red" label="Label" icon="done" />
156
156
  </DxcFlex>
157
157
  </ExampleContainer>
158
158
  <ExampleContainer>
@@ -167,7 +167,7 @@ export const Chromatic = () => (
167
167
  <Title title="Small" theme="light" level={4} />
168
168
  <DxcFlex gap="3rem" alignItems="center">
169
169
  <DxcBadge color="yellow" label="Label" size="small" />
170
- <DxcBadge color="yellow" label="Label" size="small" icon={icon} />
170
+ <DxcBadge color="yellow" label="Label" size="small" icon="done" />
171
171
  </DxcFlex>
172
172
  </ExampleContainer>
173
173
  <ExampleContainer>
@@ -181,7 +181,7 @@ export const Chromatic = () => (
181
181
  <Title title="Large" theme="light" level={4} />
182
182
  <DxcFlex gap="3rem" alignItems="center">
183
183
  <DxcBadge color="yellow" label="Label" size="large" />
184
- <DxcBadge color="yellow" label="Label" size="large" icon={icon} />
184
+ <DxcBadge color="yellow" label="Label" size="large" icon="done" />
185
185
  </DxcFlex>
186
186
  </ExampleContainer>
187
187
  <Title title="Purple" theme="light" level={3} />
@@ -189,7 +189,7 @@ export const Chromatic = () => (
189
189
  <Title title="Small" theme="light" level={4} />
190
190
  <DxcFlex gap="3rem" alignItems="center">
191
191
  <DxcBadge color="purple" label="Label" size="small" />
192
- <DxcBadge color="purple" label="Label" size="small" icon={icon} />
192
+ <DxcBadge color="purple" label="Label" size="small" icon="done" />
193
193
  </DxcFlex>
194
194
  </ExampleContainer>
195
195
  <ExampleContainer>
package/badge/types.d.ts CHANGED
@@ -42,7 +42,7 @@ export type CommonProps = {
42
42
  */
43
43
  title?: string;
44
44
  /**
45
- * Element or path used as the icon that will be placed next to the badge label in contextual mode.
45
+ * Material Symbol name or SVG element used as the icon that will be placed next to the badge label in contextual mode.
46
46
  */
47
47
  icon?: string | SVG;
48
48
  /**
@@ -0,0 +1,33 @@
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 _jestAxe = require("jest-axe");
9
+ var _Box = _interopRequireDefault(require("../box/Box.tsx"));
10
+ describe("Box component accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, container, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Box["default"], {
17
+ shadowDepth: 0,
18
+ margin: "medium",
19
+ size: "small",
20
+ display: "flex"
21
+ }, "Box")), container = _render.container;
22
+ _context.next = 3;
23
+ return (0, _jestAxe.axe)(container);
24
+ case 3:
25
+ results = _context.sent;
26
+ expect(results).toHaveNoViolations();
27
+ case 5:
28
+ case "end":
29
+ return _context.stop();
30
+ }
31
+ }, _callee);
32
+ })));
33
+ });
@@ -0,0 +1,107 @@
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 _jestAxe = require("jest-axe");
9
+ var _BulletedList = _interopRequireDefault(require("./BulletedList"));
10
+ describe("Bulleted List component accessibility tests", function () {
11
+ it("Should not have basic accessibility issues for disc mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, container, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_BulletedList["default"], {
17
+ type: "disc"
18
+ }, /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Code"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Usage"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Specifications"))), container = _render.container;
19
+ _context.next = 3;
20
+ return (0, _jestAxe.axe)(container);
21
+ case 3:
22
+ results = _context.sent;
23
+ expect(results).toHaveNoViolations();
24
+ case 5:
25
+ case "end":
26
+ return _context.stop();
27
+ }
28
+ }, _callee);
29
+ })));
30
+ it("Should not have basic accessibility issues for icon mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
31
+ var _render2, container, results;
32
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
33
+ while (1) switch (_context2.prev = _context2.next) {
34
+ case 0:
35
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_BulletedList["default"], {
36
+ type: "icon",
37
+ icon: icon
38
+ }, /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Code"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Usage"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Specifications"))), container = _render2.container;
39
+ _context2.next = 3;
40
+ return (0, _jestAxe.axe)(container);
41
+ case 3:
42
+ results = _context2.sent;
43
+ expect(results).toHaveNoViolations();
44
+ case 5:
45
+ case "end":
46
+ return _context2.stop();
47
+ }
48
+ }, _callee2);
49
+ })));
50
+ it("Should not have basic accessibility issues for number mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
51
+ var _render3, container, results;
52
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
53
+ while (1) switch (_context3.prev = _context3.next) {
54
+ case 0:
55
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_BulletedList["default"], {
56
+ type: "number"
57
+ }, /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Code"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Usage"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Specifications"))), container = _render3.container;
58
+ _context3.next = 3;
59
+ return (0, _jestAxe.axe)(container);
60
+ case 3:
61
+ results = _context3.sent;
62
+ expect(results).toHaveNoViolations();
63
+ case 5:
64
+ case "end":
65
+ return _context3.stop();
66
+ }
67
+ }, _callee3);
68
+ })));
69
+ it("Should not have basic accessibility issues for square mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
70
+ var _render4, container, results;
71
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
72
+ while (1) switch (_context4.prev = _context4.next) {
73
+ case 0:
74
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_BulletedList["default"], {
75
+ type: "square"
76
+ }, /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Code"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Usage"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Specifications"))), container = _render4.container;
77
+ _context4.next = 3;
78
+ return (0, _jestAxe.axe)(container);
79
+ case 3:
80
+ results = _context4.sent;
81
+ expect(results).toHaveNoViolations();
82
+ case 5:
83
+ case "end":
84
+ return _context4.stop();
85
+ }
86
+ }, _callee4);
87
+ })));
88
+ it("Should not have basic accessibility issues for circle mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
89
+ var _render5, container, results;
90
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
91
+ while (1) switch (_context5.prev = _context5.next) {
92
+ case 0:
93
+ _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_BulletedList["default"], {
94
+ type: "circle"
95
+ }, /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Code"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Usage"), /*#__PURE__*/_react["default"].createElement(_BulletedList["default"].Item, null, "Specifications"))), container = _render5.container;
96
+ _context5.next = 3;
97
+ return (0, _jestAxe.axe)(container);
98
+ case 3:
99
+ results = _context5.sent;
100
+ expect(results).toHaveNoViolations();
101
+ case 5:
102
+ case "end":
103
+ return _context5.stop();
104
+ }
105
+ }, _callee5);
106
+ })));
107
+ });
@@ -12,6 +12,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
12
12
  var _Flex = _interopRequireDefault(require("../flex/Flex"));
13
13
  var _Typography = _interopRequireDefault(require("../typography/Typography"));
14
14
  var _useTheme = _interopRequireDefault(require("../useTheme"));
15
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
15
16
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
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
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 && 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; }
@@ -35,8 +36,8 @@ var DxcBulletedList = function DxcBulletedList(_ref2) {
35
36
  }, _react["default"].Children.map(children, function (child, index) {
36
37
  return /*#__PURE__*/_react["default"].createElement(ListItem, null, /*#__PURE__*/_react["default"].createElement(GeneralContent, null, type === "number" ? /*#__PURE__*/_react["default"].createElement(Number, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
37
38
  color: colorsTheme.bulletedList.fontColor
38
- }, index + 1, ".")) : type === "square" ? /*#__PURE__*/_react["default"].createElement(Bullet, null, /*#__PURE__*/_react["default"].createElement(Square, null)) : type === "circle" ? /*#__PURE__*/_react["default"].createElement(Bullet, null, /*#__PURE__*/_react["default"].createElement(Circle, null)) : type === "icon" ? /*#__PURE__*/_react["default"].createElement(Bullet, null, /*#__PURE__*/_react["default"].createElement(Icon, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
39
- src: icon
39
+ }, index + 1, ".")) : type === "square" ? /*#__PURE__*/_react["default"].createElement(Bullet, null, /*#__PURE__*/_react["default"].createElement(Square, null)) : type === "circle" ? /*#__PURE__*/_react["default"].createElement(Bullet, null, /*#__PURE__*/_react["default"].createElement(Circle, null)) : type === "icon" ? /*#__PURE__*/_react["default"].createElement(Bullet, null, /*#__PURE__*/_react["default"].createElement(Icon, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
40
+ icon: icon
40
41
  }) : icon)) : /*#__PURE__*/_react["default"].createElement(Bullet, null, /*#__PURE__*/_react["default"].createElement(Disc, null)), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
41
42
  color: colorsTheme.bulletedList.fontColor
42
43
  }, child)));
@@ -46,10 +47,12 @@ DxcBulletedList.Item = BulletedListItem;
46
47
  var ListContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ul,\n ol {\n padding: 0;\n margin: 0;\n }\n"])));
47
48
  var Bullet = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: flex-start;\n align-items: center;\n height: 1.5rem;\n"])));
48
49
  var GeneralContent = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: center;\n"])));
49
- var Icon = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: 1.5rem;\n width: auto;\n margin-right: ", ";\n align-content: center;\n color: ", ";\n\n svg,\n img {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
50
+ var Icon = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: 1.5rem;\n width: auto;\n margin-right: ", ";\n align-content: center;\n color: ", ";\n\n font-size: ", ";\n svg {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
50
51
  return props.theme.bulletMarginRight;
51
52
  }, function (props) {
52
53
  return props.theme.fontColor;
54
+ }, function (props) {
55
+ return props.theme.bulletIconWidth;
53
56
  }, function (props) {
54
57
  return props.theme.bulletIconHeight;
55
58
  }, function (props) {
@@ -26,7 +26,7 @@ export const Chromatic = () => (
26
26
  <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
27
27
  </DxcBulletedList>
28
28
  <Title title="Icon list (path)" level={4} />
29
- <DxcBulletedList type="icon" icon="https://upload.wikimedia.org/wikipedia/commons/e/e0/Check_green_icon.svg">
29
+ <DxcBulletedList type="icon" icon="filled_check_circle">
30
30
  <DxcBulletedList.Item>Code</DxcBulletedList.Item>
31
31
  <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
32
32
  <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>