@dxc-technology/halstack-react 11.0.0 → 12.0.0
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.
- package/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +3 -8
- package/HalstackContext.d.ts +32 -142
- package/HalstackContext.js +2 -2
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +13 -27
- package/accordion/Accordion.stories.tsx +7 -49
- package/accordion/types.d.ts +1 -1
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -3
- package/accordion-group/AccordionGroup.js +4 -4
- package/accordion-group/AccordionGroup.stories.tsx +23 -23
- package/accordion-group/AccordionGroupAccordion.js +3 -3
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +1 -1
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/action-icon/types.js +5 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +21 -75
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +141 -28
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.js +2 -5
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +169 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/breadcrumbs/types.js +5 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +16 -23
- package/bulleted-list/BulletedList.stories.tsx +1 -2
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.js +16 -16
- package/button/Button.stories.tsx +34 -53
- package/button/Button.test.js +3 -1
- package/button/types.d.ts +1 -1
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.js +3 -2
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +31 -36
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +11 -6
- package/chip/Chip.stories.tsx +10 -25
- package/chip/Chip.test.js +4 -4
- package/common/coreTokens.d.ts +105 -14
- package/common/coreTokens.js +40 -22
- package/common/variables.d.ts +31 -138
- package/common/variables.js +103 -210
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/container/types.js +5 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +51 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/contextual-menu/types.js +5 -0
- package/date-input/Calendar.js +1 -1
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +4 -5
- package/date-input/DateInput.stories.tsx +15 -8
- package/date-input/DatePicker.js +13 -7
- package/date-input/YearPicker.js +1 -1
- package/date-input/types.d.ts +2 -2
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.js +11 -25
- package/dialog/Dialog.stories.tsx +176 -0
- package/dialog/Dialog.test.js +1 -1
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/divider/types.js +5 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.js +26 -39
- package/dropdown/Dropdown.stories.tsx +15 -26
- package/dropdown/Dropdown.test.js +18 -18
- package/dropdown/DropdownMenu.js +4 -4
- package/dropdown/DropdownMenuItem.js +8 -4
- package/dropdown/types.d.ts +3 -5
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.js +126 -141
- package/file-input/FileInput.test.js +84 -110
- package/file-input/FileItem.js +18 -28
- package/file-input/types.d.ts +1 -1
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +36 -31
- package/footer/Footer.stories.tsx +58 -2
- package/footer/Icons.d.ts +1 -0
- package/footer/Icons.js +52 -16
- package/footer/types.d.ts +8 -8
- package/header/Header.accessibility.test.js +93 -0
- package/header/Header.js +20 -41
- package/header/Header.stories.tsx +16 -0
- package/header/Icons.js +1 -6
- package/header/types.d.ts +4 -3
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +1 -1
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.js +1 -1
- package/image/Image.stories.tsx +3 -1
- package/layout/ApplicationLayout.d.ts +1 -1
- package/layout/ApplicationLayout.js +10 -7
- package/layout/Icons.d.ts +0 -1
- package/layout/Icons.js +1 -11
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +8 -6
- package/link/Link.stories.tsx +4 -4
- package/link/types.d.ts +1 -1
- package/main.d.ts +7 -3
- package/main.js +37 -9
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +1 -2
- package/nav-tabs/NavTabs.js +10 -7
- package/nav-tabs/NavTabs.stories.tsx +29 -24
- package/nav-tabs/NavTabs.test.js +11 -9
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +23 -23
- package/nav-tabs/types.d.ts +1 -1
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.d.ts +0 -7
- package/number-input/NumberInput.js +24 -5
- package/number-input/NumberInput.test.js +165 -6
- package/number-input/NumberInputContext.d.ts +3 -0
- package/number-input/NumberInputContext.js +8 -0
- package/number-input/types.d.ts +6 -0
- package/package.json +16 -14
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +14 -14
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.js +2 -7
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +7 -7
- package/password-input/PasswordInput.stories.tsx +0 -1
- package/password-input/PasswordInput.test.js +4 -4
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +11 -15
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +1 -1
- package/radio-group/Radio.js +1 -1
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +3 -2
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +4 -1
- package/resultset-table/ResultsetTable.js +25 -13
- package/resultset-table/ResultsetTable.stories.tsx +118 -5
- package/resultset-table/ResultsetTable.test.js +76 -0
- package/resultset-table/types.d.ts +40 -7
- package/select/Listbox.js +28 -16
- package/select/Option.js +19 -10
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +57 -37
- package/select/Select.stories.tsx +59 -111
- package/select/Select.test.js +387 -456
- package/select/types.d.ts +3 -3
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.js +21 -19
- package/sidenav/Sidenav.stories.tsx +4 -9
- package/sidenav/types.d.ts +2 -2
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.js +40 -48
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +12 -16
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.accessibility.test.js +98 -0
- package/switch/Switch.js +24 -29
- package/switch/Switch.stories.tsx +12 -0
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +74 -12
- package/table/Table.stories.tsx +309 -2
- package/table/Table.test.js +92 -0
- package/table/types.d.ts +28 -0
- package/tabs/Tab.js +13 -9
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +12 -24
- package/tabs/Tabs.stories.tsx +8 -4
- package/tabs/Tabs.test.js +19 -37
- package/tabs/types.d.ts +2 -2
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +7 -7
- package/tag/Tag.stories.tsx +4 -7
- package/tag/Tag.test.js +4 -12
- package/tag/types.d.ts +2 -2
- package/text-input/Suggestion.js +1 -1
- package/text-input/Suggestions.js +19 -14
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +84 -105
- package/text-input/TextInput.stories.tsx +17 -8
- package/text-input/TextInput.test.js +96 -79
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +12 -17
- package/textarea/Textarea.stories.tsx +0 -1
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.js +6 -8
- package/toggle-group/ToggleGroup.stories.tsx +3 -3
- package/toggle-group/types.d.ts +2 -2
- package/typography/Typography.accessibility.test.js +339 -0
- package/useTheme.d.ts +31 -138
- package/utils/BaseTypography.js +1 -1
- package/utils/FocusLock.js +16 -6
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +14 -25
- package/wizard/Wizard.stories.tsx +19 -0
- package/wizard/types.d.ts +2 -2
- package/common/OpenSans.css +0 -69
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/date-input/Icons.d.ts +0 -6
- package/date-input/Icons.js +0 -58
- package/paginator/Icons.d.ts +0 -5
- package/paginator/Icons.js +0 -40
- package/password-input/Icons.d.ts +0 -6
- package/password-input/Icons.js +0 -35
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -89
- package/sidenav/Icons.d.ts +0 -7
- package/sidenav/Icons.js +0 -47
- package/text-input/Icons.d.ts +0 -8
- package/text-input/Icons.js +0 -56
- /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
- /package/{layout → sidenav}/SidenavContext.js +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
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 _Spinner = _interopRequireDefault(require("./Spinner.tsx"));
|
|
10
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex.tsx"));
|
|
11
|
+
describe("Spinner component accessibility tests", function () {
|
|
12
|
+
it("Should not have basic accessibility issues for overlay mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
13
|
+
var _render, container, results;
|
|
14
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
15
|
+
while (1) switch (_context.prev = _context.next) {
|
|
16
|
+
case 0:
|
|
17
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
18
|
+
label: "test-loading",
|
|
19
|
+
margin: "medium",
|
|
20
|
+
mode: "overlay",
|
|
21
|
+
value: 50,
|
|
22
|
+
showValue: true
|
|
23
|
+
}), /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
24
|
+
label: "test-loading",
|
|
25
|
+
margin: "medium",
|
|
26
|
+
mode: "overlay",
|
|
27
|
+
value: 50
|
|
28
|
+
}))), container = _render.container;
|
|
29
|
+
_context.next = 3;
|
|
30
|
+
return (0, _axeHelper.axe)(container);
|
|
31
|
+
case 3:
|
|
32
|
+
results = _context.sent;
|
|
33
|
+
expect(results).toHaveNoViolations();
|
|
34
|
+
case 5:
|
|
35
|
+
case "end":
|
|
36
|
+
return _context.stop();
|
|
37
|
+
}
|
|
38
|
+
}, _callee);
|
|
39
|
+
})));
|
|
40
|
+
it("Should not have basic accessibility issues for large mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
41
|
+
var _render2, container, results;
|
|
42
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
43
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
44
|
+
case 0:
|
|
45
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
46
|
+
label: "test-loading",
|
|
47
|
+
margin: "medium",
|
|
48
|
+
mode: "large",
|
|
49
|
+
value: 50,
|
|
50
|
+
showValue: true
|
|
51
|
+
}), /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
52
|
+
label: "test-loading",
|
|
53
|
+
margin: "medium",
|
|
54
|
+
mode: "large",
|
|
55
|
+
value: 50
|
|
56
|
+
}))), container = _render2.container;
|
|
57
|
+
_context2.next = 3;
|
|
58
|
+
return (0, _axeHelper.axe)(container);
|
|
59
|
+
case 3:
|
|
60
|
+
results = _context2.sent;
|
|
61
|
+
expect(results).toHaveNoViolations();
|
|
62
|
+
case 5:
|
|
63
|
+
case "end":
|
|
64
|
+
return _context2.stop();
|
|
65
|
+
}
|
|
66
|
+
}, _callee2);
|
|
67
|
+
})));
|
|
68
|
+
it("Should not have basic accessibility issues for small mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
69
|
+
var _render3, container, results;
|
|
70
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
71
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
72
|
+
case 0:
|
|
73
|
+
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
74
|
+
label: "test-loading",
|
|
75
|
+
margin: "medium",
|
|
76
|
+
mode: "small",
|
|
77
|
+
value: 50,
|
|
78
|
+
showValue: true
|
|
79
|
+
}), /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
80
|
+
label: "test-loading",
|
|
81
|
+
margin: "medium",
|
|
82
|
+
mode: "small",
|
|
83
|
+
value: 50
|
|
84
|
+
}))), container = _render3.container;
|
|
85
|
+
_context3.next = 3;
|
|
86
|
+
return (0, _axeHelper.axe)(container);
|
|
87
|
+
case 3:
|
|
88
|
+
results = _context3.sent;
|
|
89
|
+
expect(results).toHaveNoViolations();
|
|
90
|
+
case 5:
|
|
91
|
+
case "end":
|
|
92
|
+
return _context3.stop();
|
|
93
|
+
}
|
|
94
|
+
}, _callee3);
|
|
95
|
+
})));
|
|
96
|
+
});
|
package/spinner/Spinner.js
CHANGED
|
@@ -8,14 +8,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
var _react =
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
12
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
13
13
|
var _variables = require("../common/variables");
|
|
14
14
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
15
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
16
15
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
17
16
|
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); }
|
|
18
|
-
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 &&
|
|
17
|
+
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; }
|
|
19
18
|
var DxcSpinner = function DxcSpinner(_ref) {
|
|
20
19
|
var _ref$label = _ref.label,
|
|
21
20
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
@@ -26,7 +25,6 @@ var DxcSpinner = function DxcSpinner(_ref) {
|
|
|
26
25
|
mode = _ref$mode === void 0 ? "large" : _ref$mode,
|
|
27
26
|
margin = _ref.margin;
|
|
28
27
|
var colorsTheme = (0, _useTheme["default"])();
|
|
29
|
-
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
30
28
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
31
29
|
theme: colorsTheme.spinner
|
|
32
30
|
}, /*#__PURE__*/_react["default"].createElement(DXCSpinner, {
|
|
@@ -49,7 +47,11 @@ var DxcSpinner = function DxcSpinner(_ref) {
|
|
|
49
47
|
r: "6",
|
|
50
48
|
mode: mode
|
|
51
49
|
}))), value >= 0 && value <= 100 ? /*#__PURE__*/_react["default"].createElement(Spinner, {
|
|
52
|
-
role: "progressbar"
|
|
50
|
+
role: "progressbar",
|
|
51
|
+
"aria-valuenow": showValue ? value : undefined,
|
|
52
|
+
"aria-valuemin": 0,
|
|
53
|
+
"aria-valuemax": 100,
|
|
54
|
+
"aria-label": label || "Spinner"
|
|
53
55
|
}, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGSpinner, {
|
|
54
56
|
viewBox: "0 0 140 140",
|
|
55
57
|
isDeterminated: true
|
|
@@ -57,7 +59,6 @@ var DxcSpinner = function DxcSpinner(_ref) {
|
|
|
57
59
|
cx: "70",
|
|
58
60
|
cy: "70",
|
|
59
61
|
r: "65",
|
|
60
|
-
backgroundType: backgroundType,
|
|
61
62
|
mode: mode,
|
|
62
63
|
isDeterminated: true,
|
|
63
64
|
value: value
|
|
@@ -68,7 +69,6 @@ var DxcSpinner = function DxcSpinner(_ref) {
|
|
|
68
69
|
cx: "8",
|
|
69
70
|
cy: "8",
|
|
70
71
|
r: "6",
|
|
71
|
-
backgroundType: backgroundType,
|
|
72
72
|
mode: mode,
|
|
73
73
|
isDeterminated: true,
|
|
74
74
|
value: value
|
|
@@ -81,7 +81,6 @@ var DxcSpinner = function DxcSpinner(_ref) {
|
|
|
81
81
|
cx: "70",
|
|
82
82
|
cy: "70",
|
|
83
83
|
r: "65",
|
|
84
|
-
backgroundType: backgroundType,
|
|
85
84
|
mode: mode,
|
|
86
85
|
isDeterminated: false,
|
|
87
86
|
value: value
|
|
@@ -92,21 +91,18 @@ var DxcSpinner = function DxcSpinner(_ref) {
|
|
|
92
91
|
cx: "8",
|
|
93
92
|
cy: "8",
|
|
94
93
|
r: "6",
|
|
95
|
-
backgroundType: backgroundType,
|
|
96
94
|
mode: mode,
|
|
97
95
|
isDeterminated: false,
|
|
98
96
|
value: value
|
|
99
97
|
}))), mode !== "small" && /*#__PURE__*/_react["default"].createElement(LabelsContainer, null, /*#__PURE__*/_react["default"].createElement(SpinnerLabel, {
|
|
100
|
-
backgroundType: backgroundType,
|
|
101
98
|
mode: mode
|
|
102
99
|
}, label), (value || value === 0) && showValue && /*#__PURE__*/_react["default"].createElement(SpinnerProgress, {
|
|
103
100
|
value: value,
|
|
104
|
-
backgroundType: backgroundType,
|
|
105
101
|
mode: mode,
|
|
106
102
|
showValue: showValue
|
|
107
103
|
}, value, "%")))));
|
|
108
104
|
};
|
|
109
|
-
var
|
|
105
|
+
var determinateValue = function determinateValue(value, strokeDashArray) {
|
|
110
106
|
var val = 0;
|
|
111
107
|
if (value >= 0 && value <= 100) {
|
|
112
108
|
val = strokeDashArray * (1 - value / 100);
|
|
@@ -168,7 +164,7 @@ var SVGSpinner = _styledComponents["default"].svg(_templateObject8 || (_template
|
|
|
168
164
|
var CircleSpinner = _styledComponents["default"].circle(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n fill: transparent;\n stroke-linecap: initial;\n vector-effect: non-scaling-stroke;\n animation: ", ";\n stroke: ", ";\n transform-origin: ", ";\n stroke-dasharray: ", ";\n stroke-width: ", ";\n stroke-dashoffset: ", ";\n"])), function (props) {
|
|
169
165
|
return props.isDeterminated ? "none" : props.mode !== "small" ? "1.4s ease-in-out infinite both svg-circle-large" : "1.4s ease-in-out infinite both svg-circle-small";
|
|
170
166
|
}, function (props) {
|
|
171
|
-
return props.
|
|
167
|
+
return props.mode === "overlay" ? props.theme.trackCircleColorOverlay : props.theme.trackCircleColor;
|
|
172
168
|
}, function (props) {
|
|
173
169
|
return !props.isDeterminated ? "50% 50%" : "";
|
|
174
170
|
}, function (props) {
|
|
@@ -176,7 +172,7 @@ var CircleSpinner = _styledComponents["default"].circle(_templateObject9 || (_te
|
|
|
176
172
|
}, function (props) {
|
|
177
173
|
return props.mode !== "small" ? "8.5px" : "2px";
|
|
178
174
|
}, function (props) {
|
|
179
|
-
return props.isDeterminated ? props.mode !== "small" ?
|
|
175
|
+
return props.isDeterminated ? props.mode !== "small" ? determinateValue(props.value, 409) : determinateValue(props.value, 38) : "";
|
|
180
176
|
});
|
|
181
177
|
var LabelsContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: block;\n margin: 0 auto;\n position: absolute;\n text-align: center;\n width: 110px;\n"])));
|
|
182
178
|
var SpinnerLabel = _styledComponents["default"].p(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n font-style: ", ";\n color: ", ";\n text-align: ", ";\n letter-spacing: ", ";\n"])), function (props) {
|
|
@@ -188,7 +184,7 @@ var SpinnerLabel = _styledComponents["default"].p(_templateObject11 || (_templat
|
|
|
188
184
|
}, function (props) {
|
|
189
185
|
return props.mode === "overlay" ? props.theme.overlayLabelFontStyle : props.theme.labelFontStyle;
|
|
190
186
|
}, function (props) {
|
|
191
|
-
return props.mode === "overlay" ? props.theme.overlayLabelFontColor : props.
|
|
187
|
+
return props.mode === "overlay" ? props.theme.overlayLabelFontColor : props.theme.labelFontColor;
|
|
192
188
|
}, function (props) {
|
|
193
189
|
return props.mode === "overlay" ? props.theme.overlayLabelTextAlign : props.theme.labelTextAlign;
|
|
194
190
|
}, function (props) {
|
|
@@ -205,7 +201,7 @@ var SpinnerProgress = _styledComponents["default"].p(_templateObject12 || (_temp
|
|
|
205
201
|
}, function (props) {
|
|
206
202
|
return props.mode === "overlay" ? props.theme.overlayProgressValueFontStyle : props.theme.progressValueFontStyle;
|
|
207
203
|
}, function (props) {
|
|
208
|
-
return props.mode === "overlay" ? props.theme.overlayProgressValueFontColor : props.
|
|
204
|
+
return props.mode === "overlay" ? props.theme.overlayProgressValueFontColor : props.theme.progressValueFontColor;
|
|
209
205
|
}, function (props) {
|
|
210
206
|
return props.mode === "overlay" ? props.theme.overlayProgressValueTextAlign : props.theme.progressValueTextAlign;
|
|
211
207
|
}, function (props) {
|
|
@@ -0,0 +1,157 @@
|
|
|
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 _StatusLight = _interopRequireDefault(require("./StatusLight.tsx"));
|
|
10
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex.tsx"));
|
|
11
|
+
describe("StatusLight component accessibility tests", function () {
|
|
12
|
+
it("Should not have basic accessibility issues for default mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
13
|
+
var _render, container, results;
|
|
14
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
15
|
+
while (1) switch (_context.prev = _context.next) {
|
|
16
|
+
case 0:
|
|
17
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
18
|
+
label: "Status Light Test",
|
|
19
|
+
mode: "default",
|
|
20
|
+
size: "large"
|
|
21
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
22
|
+
label: "Status Light Test",
|
|
23
|
+
mode: "default",
|
|
24
|
+
size: "medium"
|
|
25
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
26
|
+
label: "Status Light Test",
|
|
27
|
+
mode: "default",
|
|
28
|
+
size: "small"
|
|
29
|
+
}))), container = _render.container;
|
|
30
|
+
_context.next = 3;
|
|
31
|
+
return (0, _axeHelper.axe)(container);
|
|
32
|
+
case 3:
|
|
33
|
+
results = _context.sent;
|
|
34
|
+
expect(results).toHaveNoViolations();
|
|
35
|
+
case 5:
|
|
36
|
+
case "end":
|
|
37
|
+
return _context.stop();
|
|
38
|
+
}
|
|
39
|
+
}, _callee);
|
|
40
|
+
})));
|
|
41
|
+
it("Should not have basic accessibility issues for error mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
42
|
+
var _render2, container, results;
|
|
43
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
44
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
45
|
+
case 0:
|
|
46
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
47
|
+
label: "Status Light Test",
|
|
48
|
+
mode: "error",
|
|
49
|
+
size: "large"
|
|
50
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
51
|
+
label: "Status Light Test",
|
|
52
|
+
mode: "error",
|
|
53
|
+
size: "medium"
|
|
54
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
55
|
+
label: "Status Light Test",
|
|
56
|
+
mode: "error",
|
|
57
|
+
size: "small"
|
|
58
|
+
}))), container = _render2.container;
|
|
59
|
+
_context2.next = 3;
|
|
60
|
+
return (0, _axeHelper.axe)(container);
|
|
61
|
+
case 3:
|
|
62
|
+
results = _context2.sent;
|
|
63
|
+
expect(results).toHaveNoViolations();
|
|
64
|
+
case 5:
|
|
65
|
+
case "end":
|
|
66
|
+
return _context2.stop();
|
|
67
|
+
}
|
|
68
|
+
}, _callee2);
|
|
69
|
+
})));
|
|
70
|
+
it("Should not have basic accessibility issues for info mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
71
|
+
var _render3, container, results;
|
|
72
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
73
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
74
|
+
case 0:
|
|
75
|
+
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
76
|
+
label: "Status Light Test",
|
|
77
|
+
mode: "info",
|
|
78
|
+
size: "large"
|
|
79
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
80
|
+
label: "Status Light Test",
|
|
81
|
+
mode: "info",
|
|
82
|
+
size: "medium"
|
|
83
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
84
|
+
label: "Status Light Test",
|
|
85
|
+
mode: "info",
|
|
86
|
+
size: "small"
|
|
87
|
+
}))), container = _render3.container;
|
|
88
|
+
_context3.next = 3;
|
|
89
|
+
return (0, _axeHelper.axe)(container);
|
|
90
|
+
case 3:
|
|
91
|
+
results = _context3.sent;
|
|
92
|
+
expect(results).toHaveNoViolations();
|
|
93
|
+
case 5:
|
|
94
|
+
case "end":
|
|
95
|
+
return _context3.stop();
|
|
96
|
+
}
|
|
97
|
+
}, _callee3);
|
|
98
|
+
})));
|
|
99
|
+
it("Should not have basic accessibility issues for success mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
100
|
+
var _render4, container, results;
|
|
101
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
102
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
103
|
+
case 0:
|
|
104
|
+
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
105
|
+
label: "Status Light Test",
|
|
106
|
+
mode: "success",
|
|
107
|
+
size: "large"
|
|
108
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
109
|
+
label: "Status Light Test",
|
|
110
|
+
mode: "success",
|
|
111
|
+
size: "medium"
|
|
112
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
113
|
+
label: "Status Light Test",
|
|
114
|
+
mode: "success",
|
|
115
|
+
size: "small"
|
|
116
|
+
}))), container = _render4.container;
|
|
117
|
+
_context4.next = 3;
|
|
118
|
+
return (0, _axeHelper.axe)(container);
|
|
119
|
+
case 3:
|
|
120
|
+
results = _context4.sent;
|
|
121
|
+
expect(results).toHaveNoViolations();
|
|
122
|
+
case 5:
|
|
123
|
+
case "end":
|
|
124
|
+
return _context4.stop();
|
|
125
|
+
}
|
|
126
|
+
}, _callee4);
|
|
127
|
+
})));
|
|
128
|
+
it("Should not have basic accessibility issues for warning mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
129
|
+
var _render5, container, results;
|
|
130
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
131
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
132
|
+
case 0:
|
|
133
|
+
_render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
134
|
+
label: "Status Light Test",
|
|
135
|
+
mode: "warning",
|
|
136
|
+
size: "large"
|
|
137
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
138
|
+
label: "Status Light Test",
|
|
139
|
+
mode: "warning",
|
|
140
|
+
size: "medium"
|
|
141
|
+
}), /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
142
|
+
label: "Status Light Test",
|
|
143
|
+
mode: "warning",
|
|
144
|
+
size: "small"
|
|
145
|
+
}))), container = _render5.container;
|
|
146
|
+
_context5.next = 3;
|
|
147
|
+
return (0, _axeHelper.axe)(container);
|
|
148
|
+
case 3:
|
|
149
|
+
results = _context5.sent;
|
|
150
|
+
expect(results).toHaveNoViolations();
|
|
151
|
+
case 5:
|
|
152
|
+
case "end":
|
|
153
|
+
return _context5.stop();
|
|
154
|
+
}
|
|
155
|
+
}, _callee5);
|
|
156
|
+
})));
|
|
157
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
|
|
12
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
13
|
+
var DxcStatusLight = function DxcStatusLight(_ref) {
|
|
14
|
+
var _ref$mode = _ref.mode,
|
|
15
|
+
mode = _ref$mode === void 0 ? "default" : _ref$mode,
|
|
16
|
+
label = _ref.label,
|
|
17
|
+
_ref$size = _ref.size,
|
|
18
|
+
size = _ref$size === void 0 ? "medium" : _ref$size;
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement(StatusLightContainer, {
|
|
20
|
+
size: size,
|
|
21
|
+
"aria-label": "".concat(mode, ": ").concat(label),
|
|
22
|
+
"data-testid": "status_light-container"
|
|
23
|
+
}, /*#__PURE__*/_react["default"].createElement(StatusDot, {
|
|
24
|
+
mode: mode,
|
|
25
|
+
size: size,
|
|
26
|
+
"aria-hidden": "true",
|
|
27
|
+
"data-testid": "status-dot"
|
|
28
|
+
}), /*#__PURE__*/_react["default"].createElement(StatusLabel, {
|
|
29
|
+
mode: mode,
|
|
30
|
+
size: size
|
|
31
|
+
}, label));
|
|
32
|
+
};
|
|
33
|
+
var StatusLightContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: ", ";\n"])), _coreTokens["default"].spacing_8);
|
|
34
|
+
var StatusDot = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n border-radius: 50%;\n background-color: ", ";\n"])), function (_ref2) {
|
|
35
|
+
var size = _ref2.size;
|
|
36
|
+
return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
|
|
37
|
+
}, function (_ref3) {
|
|
38
|
+
var size = _ref3.size;
|
|
39
|
+
return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
|
|
40
|
+
}, function (_ref4) {
|
|
41
|
+
var mode = _ref4.mode;
|
|
42
|
+
return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
|
|
43
|
+
});
|
|
44
|
+
var StatusLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (_ref5) {
|
|
45
|
+
var size = _ref5.size;
|
|
46
|
+
return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
|
|
47
|
+
}, _coreTokens["default"].type_sans, _coreTokens["default"].type_normal, _coreTokens["default"].type_semibold, function (_ref6) {
|
|
48
|
+
var mode = _ref6.mode;
|
|
49
|
+
return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
|
|
50
|
+
});
|
|
51
|
+
var _default = exports["default"] = DxcStatusLight;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Title from "../../.storybook/components/Title";
|
|
3
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
4
|
+
import DxcStatusLight from "./StatusLight";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: "Status Light",
|
|
8
|
+
component: DxcStatusLight,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const Chromatic = () => (
|
|
12
|
+
<>
|
|
13
|
+
<ExampleContainer>
|
|
14
|
+
<Title title="Default light small" theme="light" level={4} />
|
|
15
|
+
<DxcStatusLight label="StatusLight" size="small" />
|
|
16
|
+
</ExampleContainer>
|
|
17
|
+
<ExampleContainer>
|
|
18
|
+
<Title title="Default light medium" theme="light" level={4} />
|
|
19
|
+
<DxcStatusLight label="StatusLight" />
|
|
20
|
+
</ExampleContainer>
|
|
21
|
+
<ExampleContainer>
|
|
22
|
+
<Title title="Default light large" theme="light" level={4} />
|
|
23
|
+
<DxcStatusLight label="StatusLight" size="large" />
|
|
24
|
+
</ExampleContainer>
|
|
25
|
+
<ExampleContainer>
|
|
26
|
+
<Title title="Info light small" theme="light" level={4} />
|
|
27
|
+
<DxcStatusLight label="StatusLight" mode="info" size="small" />
|
|
28
|
+
</ExampleContainer>
|
|
29
|
+
<ExampleContainer>
|
|
30
|
+
<Title title="Info light medium" theme="light" level={4} />
|
|
31
|
+
<DxcStatusLight label="StatusLight" mode="info" />
|
|
32
|
+
</ExampleContainer>
|
|
33
|
+
<ExampleContainer>
|
|
34
|
+
<Title title="Info light large" theme="light" level={4} />
|
|
35
|
+
<DxcStatusLight label="StatusLight" mode="info" size="large" />
|
|
36
|
+
</ExampleContainer>
|
|
37
|
+
<ExampleContainer>
|
|
38
|
+
<Title title="Success light small" theme="light" level={4} />
|
|
39
|
+
<DxcStatusLight label="StatusLight" mode="success" size="small" />
|
|
40
|
+
</ExampleContainer>
|
|
41
|
+
<ExampleContainer>
|
|
42
|
+
<Title title="Success lights medium" theme="light" level={4} />
|
|
43
|
+
<DxcStatusLight label="StatusLight" mode="success" />
|
|
44
|
+
</ExampleContainer>
|
|
45
|
+
<ExampleContainer>
|
|
46
|
+
<Title title="Success lights large" theme="light" level={4} />
|
|
47
|
+
<DxcStatusLight label="StatusLight" mode="success" size="large" />
|
|
48
|
+
</ExampleContainer>
|
|
49
|
+
<ExampleContainer>
|
|
50
|
+
<Title title="Warning light small" theme="light" level={4} />
|
|
51
|
+
<DxcStatusLight label="StatusLight" mode="warning" size="small" />
|
|
52
|
+
</ExampleContainer>
|
|
53
|
+
<ExampleContainer>
|
|
54
|
+
<Title title="Warning light medium" theme="light" level={4} />
|
|
55
|
+
<DxcStatusLight label="StatusLight" mode="warning" />
|
|
56
|
+
</ExampleContainer>
|
|
57
|
+
<ExampleContainer>
|
|
58
|
+
<Title title="Warning light large" theme="light" level={4} />
|
|
59
|
+
<DxcStatusLight label="StatusLight" mode="warning" size="large" />
|
|
60
|
+
</ExampleContainer>
|
|
61
|
+
<ExampleContainer>
|
|
62
|
+
<Title title="Error light small" theme="light" level={4} />
|
|
63
|
+
<DxcStatusLight label="StatusLight" mode="error" size="small" />
|
|
64
|
+
</ExampleContainer>
|
|
65
|
+
<ExampleContainer>
|
|
66
|
+
<Title title="Error lights medium" theme="light" level={4} />
|
|
67
|
+
<DxcStatusLight label="StatusLight" mode="error" />
|
|
68
|
+
</ExampleContainer>
|
|
69
|
+
<ExampleContainer>
|
|
70
|
+
<Title title="Error lights large" theme="light" level={4} />
|
|
71
|
+
<DxcStatusLight label="StatusLight" mode="error" size="large" />
|
|
72
|
+
</ExampleContainer>
|
|
73
|
+
</>
|
|
74
|
+
);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _StatusLight = _interopRequireDefault(require("./StatusLight.tsx"));
|
|
7
|
+
describe("StatusLight component tests", function () {
|
|
8
|
+
test("StatusLight renders with correct label", function () {
|
|
9
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
10
|
+
label: "Status Light Test"
|
|
11
|
+
})),
|
|
12
|
+
getByText = _render.getByText;
|
|
13
|
+
expect(getByText("Status Light Test")).toBeTruthy();
|
|
14
|
+
});
|
|
15
|
+
test("StatusLight applies accessibility attributes", function () {
|
|
16
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
17
|
+
label: "Status Light Test"
|
|
18
|
+
})),
|
|
19
|
+
getByTestId = _render2.getByTestId;
|
|
20
|
+
var statusLightContainer = getByTestId("status_light-container");
|
|
21
|
+
var statusDot = getByTestId("status-dot");
|
|
22
|
+
expect(statusLightContainer.getAttribute("aria-label")).toBe("default: Status Light Test");
|
|
23
|
+
expect(statusDot.getAttribute("aria-hidden")).toBe("true");
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type Mode = "default" | "info" | "success" | "warning" | "error";
|
|
2
|
+
type Size = "small" | "medium" | "large";
|
|
3
|
+
type Props = {
|
|
4
|
+
/**
|
|
5
|
+
* It will define the color of the light based on its semantic meaning.
|
|
6
|
+
*/
|
|
7
|
+
mode?: Mode;
|
|
8
|
+
/**
|
|
9
|
+
* An auxiliar text that will add some context to the status.
|
|
10
|
+
*/
|
|
11
|
+
label: string;
|
|
12
|
+
/**
|
|
13
|
+
* Size of the component. Should be defined based on its importance and/or available space.
|
|
14
|
+
*/
|
|
15
|
+
size?: Size;
|
|
16
|
+
};
|
|
17
|
+
export default Props;
|