@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
package/tabs/Tabs.js
CHANGED
|
@@ -15,39 +15,23 @@ 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 &&
|
|
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),
|
|
40
25
|
viewWidth = _useState2[0],
|
|
41
26
|
setViewWidth = _useState2[1];
|
|
42
27
|
var handleWindowSizeChange = (0, _react.useCallback)(function () {
|
|
43
|
-
var _refTabList$current;
|
|
44
|
-
setViewWidth(refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current = refTabList.current) === null || _refTabList$current === void 0 ? void 0 : _refTabList$current.offsetWidth);
|
|
28
|
+
var _refTabList$current$o, _refTabList$current;
|
|
29
|
+
setViewWidth((_refTabList$current$o = refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current = refTabList.current) === null || _refTabList$current === void 0 ? void 0 : _refTabList$current.offsetWidth) !== null && _refTabList$current$o !== void 0 ? _refTabList$current$o : 0);
|
|
45
30
|
}, [refTabList]);
|
|
46
31
|
(0, _react.useEffect)(function () {
|
|
47
|
-
|
|
32
|
+
handleWindowSizeChange();
|
|
48
33
|
window.addEventListener("resize", handleWindowSizeChange);
|
|
49
34
|
return function () {
|
|
50
|
-
window.removeEventListener("load", handleWindowSizeChange);
|
|
51
35
|
window.removeEventListener("resize", handleWindowSizeChange);
|
|
52
36
|
};
|
|
53
37
|
}, [handleWindowSizeChange]);
|
|
@@ -282,7 +266,9 @@ var DxcTabs = function DxcTabs(_ref) {
|
|
|
282
266
|
"aria-label": translatedLabels.tabs.scrollLeft,
|
|
283
267
|
tabIndex: scrollLeftEnabled ? tabIndex : -1,
|
|
284
268
|
minHeightTabs: minHeightTabs
|
|
285
|
-
},
|
|
269
|
+
}, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
270
|
+
icon: "keyboard_arrow_left"
|
|
271
|
+
})), /*#__PURE__*/_react["default"].createElement(TabsContent, null, /*#__PURE__*/_react["default"].createElement(TabsContentScroll, {
|
|
286
272
|
translateScroll: translateScroll,
|
|
287
273
|
ref: refTabList,
|
|
288
274
|
enabled: enabledIndicator
|
|
@@ -324,7 +310,9 @@ var DxcTabs = function DxcTabs(_ref) {
|
|
|
324
310
|
"aria-label": translatedLabels.tabs.scrollRight,
|
|
325
311
|
tabIndex: scrollRightEnabled ? tabIndex : -1,
|
|
326
312
|
minHeightTabs: minHeightTabs
|
|
327
|
-
},
|
|
313
|
+
}, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
314
|
+
icon: "keyboard_arrow_right"
|
|
315
|
+
})))));
|
|
328
316
|
};
|
|
329
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) {
|
|
330
318
|
return props.theme.dividerThickness;
|
|
@@ -349,7 +337,7 @@ var Tabs = _styledComponents["default"].div(_templateObject3 || (_templateObject
|
|
|
349
337
|
}, function (props) {
|
|
350
338
|
return props.theme.unselectedBackgroundColor;
|
|
351
339
|
});
|
|
352
|
-
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 svg {\n visibility: hidden;\n }\n &:focus {\n outline: none;\n }\n &:hover,\n &:active {\n background-color: transparent !important;\n }\n }\n\n
|
|
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) {
|
|
353
341
|
return props.enabled ? "flex" : "none";
|
|
354
342
|
}, function (props) {
|
|
355
343
|
return props.theme.scrollButtonsWidth;
|
package/tabs/Tabs.stories.tsx
CHANGED
|
@@ -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 = (
|
|
@@ -71,13 +77,11 @@ const firstDisabledTabs: any = [
|
|
|
71
77
|
|
|
72
78
|
const tabsNotification = tabs.map((tab, index) => ({
|
|
73
79
|
...tab,
|
|
74
|
-
notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 200),
|
|
80
|
+
notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 100) || (index === 3 && 200),
|
|
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 }));
|
package/tabs/Tabs.test.js
CHANGED
|
@@ -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
|
|
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 =
|
|
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
|
|
91
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
110
92
|
tabs: sampleTabs,
|
|
111
93
|
onTabClick: onTabClick
|
|
112
94
|
})),
|
|
113
|
-
getByText =
|
|
114
|
-
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
|
|
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 =
|
|
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
|
|
133
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
152
134
|
tabs: sampleTabsLastTabNonDisabled,
|
|
153
135
|
onTabClick: onTabClick
|
|
154
136
|
})),
|
|
155
|
-
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
|
|
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 =
|
|
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
|
|
172
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
191
173
|
tabs: sampleTabs,
|
|
192
174
|
onTabClick: onTabClick
|
|
193
175
|
})),
|
|
194
|
-
getByText =
|
|
195
|
-
getByRole =
|
|
196
|
-
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
|
|
250
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
269
251
|
tabs: sampleTabsMiddleDisabled,
|
|
270
252
|
onTabClick: onTabClick
|
|
271
253
|
})),
|
|
272
|
-
getByText =
|
|
273
|
-
getByRole =
|
|
274
|
-
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
|
-
*
|
|
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
|
-
*
|
|
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,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.tsx"));
|
|
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
|
+
});
|
package/tag/Tag.js
CHANGED
|
@@ -15,9 +15,10 @@ var _variables = require("../common/variables");
|
|
|
15
15
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
16
16
|
var _utils = require("../common/utils");
|
|
17
17
|
var _Box = _interopRequireDefault(require("../box/Box"));
|
|
18
|
-
var
|
|
18
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
19
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
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 &&
|
|
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; }
|
|
21
22
|
var DxcTag = function DxcTag(_ref) {
|
|
22
23
|
var icon = _ref.icon,
|
|
23
24
|
_ref$label = _ref.label,
|
|
@@ -48,8 +49,8 @@ var DxcTag = function DxcTag(_ref) {
|
|
|
48
49
|
shadowDepth: isHovered && (onClick || linkHref) && 2 || 1
|
|
49
50
|
}, /*#__PURE__*/_react["default"].createElement(TagContent, null, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
50
51
|
iconBgColor: iconBgColor
|
|
51
|
-
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
52
|
-
|
|
52
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
53
|
+
icon: icon
|
|
53
54
|
}) : icon), labelPosition === "after" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
|
|
54
55
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
55
56
|
theme: colorsTheme.tag
|
|
@@ -114,7 +115,7 @@ var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateOb
|
|
|
114
115
|
var StyledButton = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background: none;\n border-radius: 4px;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n }\n"])), function (props) {
|
|
115
116
|
return props.theme.focusColor;
|
|
116
117
|
});
|
|
117
|
-
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n
|
|
118
|
+
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n font-size: 24px;\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (_ref8) {
|
|
118
119
|
var iconBgColor = _ref8.iconBgColor;
|
|
119
120
|
return iconBgColor;
|
|
120
121
|
}, function (props) {
|
|
@@ -128,8 +129,7 @@ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
128
129
|
}, function (props) {
|
|
129
130
|
return props.theme.iconHeight;
|
|
130
131
|
});
|
|
131
|
-
var
|
|
132
|
-
var TagLabel = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n flex-grow: 1;\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
|
|
132
|
+
var TagLabel = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n flex-grow: 1;\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
|
|
133
133
|
return props.theme.fontFamily;
|
|
134
134
|
}, function (props) {
|
|
135
135
|
return props.theme.fontSize;
|
package/tag/Tag.stories.tsx
CHANGED
|
@@ -47,14 +47,11 @@ export const Chromatic = () => (
|
|
|
47
47
|
</ExampleContainer>
|
|
48
48
|
<ExampleContainer>
|
|
49
49
|
<Title title="With label and icon" theme="light" level={4} />
|
|
50
|
-
<DxcTag
|
|
51
|
-
label="Tag"
|
|
52
|
-
icon="https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png"
|
|
53
|
-
/>
|
|
50
|
+
<DxcTag label="Tag" icon="person" />
|
|
54
51
|
</ExampleContainer>
|
|
55
52
|
<ExampleContainer>
|
|
56
53
|
<Title title="With right icon" theme="light" level={4} />
|
|
57
|
-
<DxcTag label="Tag" icon=
|
|
54
|
+
<DxcTag label="Tag" icon="group" labelPosition="before" />
|
|
58
55
|
</ExampleContainer>
|
|
59
56
|
<ExampleContainer>
|
|
60
57
|
<Title title="Icon background color" theme="light" level={4} />
|
|
@@ -67,7 +64,7 @@ export const Chromatic = () => (
|
|
|
67
64
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
68
65
|
<Title title="With action focused" theme="light" level={4} />
|
|
69
66
|
<DxcTag
|
|
70
|
-
icon=
|
|
67
|
+
icon="done"
|
|
71
68
|
label="Tag"
|
|
72
69
|
onClick={() => {
|
|
73
70
|
console.log("click");
|
|
@@ -110,7 +107,7 @@ export const Chromatic = () => (
|
|
|
110
107
|
</ExampleContainer>
|
|
111
108
|
<ExampleContainer>
|
|
112
109
|
<Title title="Medium size" theme="light" level={4} />
|
|
113
|
-
<DxcTag label="Medium size medium s" size="medium" icon=
|
|
110
|
+
<DxcTag label="Medium size medium s" size="medium" icon="person" />
|
|
114
111
|
</ExampleContainer>
|
|
115
112
|
<ExampleContainer>
|
|
116
113
|
<Title title="Medium size with ellipsis" theme="light" level={4} />
|
package/tag/Tag.test.js
CHANGED
|
@@ -20,29 +20,21 @@ describe("Tag component tests", function () {
|
|
|
20
20
|
getByText = _render2.getByText;
|
|
21
21
|
expect(getByText("tag-test")).toBeTruthy();
|
|
22
22
|
});
|
|
23
|
-
test("Tag renders with correct icon", function () {
|
|
24
|
-
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
25
|
-
label: "tag-test",
|
|
26
|
-
icon: "/test-icon.jpg"
|
|
27
|
-
})),
|
|
28
|
-
getByRole = _render3.getByRole;
|
|
29
|
-
expect(getByRole("img").getAttribute("src")).toBe("/test-icon.jpg");
|
|
30
|
-
});
|
|
31
23
|
test("Tag renders with link href", function () {
|
|
32
|
-
var
|
|
24
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
33
25
|
label: "tag-test",
|
|
34
26
|
linkHref: "/test/page"
|
|
35
27
|
})),
|
|
36
|
-
getByRole =
|
|
28
|
+
getByRole = _render3.getByRole;
|
|
37
29
|
expect(getByRole("link").getAttribute("href")).toBe("/test/page");
|
|
38
30
|
});
|
|
39
31
|
test("Call correct function on click", function () {
|
|
40
32
|
var onClick = jest.fn();
|
|
41
|
-
var
|
|
33
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
42
34
|
label: "tag-test",
|
|
43
35
|
onClick: onClick
|
|
44
36
|
})),
|
|
45
|
-
getByText =
|
|
37
|
+
getByText = _render4.getByText;
|
|
46
38
|
_react2.fireEvent.click(getByText("tag-test"));
|
|
47
39
|
expect(onClick).toHaveBeenCalled();
|
|
48
40
|
});
|
package/tag/types.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ type TagCommonProps = {
|
|
|
47
47
|
};
|
|
48
48
|
type TagLabelProps = TagCommonProps & {
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* Material Symbol name or SVG element used as the icon that will be placed next to the label.
|
|
51
51
|
*/
|
|
52
52
|
icon?: string | SVG;
|
|
53
53
|
/**
|
|
@@ -57,7 +57,7 @@ type TagLabelProps = TagCommonProps & {
|
|
|
57
57
|
};
|
|
58
58
|
type TagIconProps = TagCommonProps & {
|
|
59
59
|
/**
|
|
60
|
-
*
|
|
60
|
+
* Material Symbol name or SVG element used as the icon that will be placed next to the label.
|
|
61
61
|
*/
|
|
62
62
|
icon: string | SVG;
|
|
63
63
|
/**
|
package/text-input/Suggestion.js
CHANGED
|
@@ -11,7 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
12
|
var _templateObject, _templateObject2;
|
|
13
13
|
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); }
|
|
14
|
-
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 &&
|
|
14
|
+
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; }
|
|
15
15
|
var transformSpecialChars = function transformSpecialChars(str) {
|
|
16
16
|
var specialCharsRegex = /[\\*()\[\]{}+?/]/;
|
|
17
17
|
var value = str;
|
|
@@ -10,12 +10,11 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
12
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
13
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
14
13
|
var _Suggestion = _interopRequireDefault(require("./Suggestion"));
|
|
15
|
-
var
|
|
14
|
+
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
16
15
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
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" != _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 &&
|
|
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 && {}.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 Suggestions = function Suggestions(_ref) {
|
|
20
19
|
var id = _ref.id,
|
|
21
20
|
value = _ref.value,
|
|
@@ -27,7 +26,6 @@ var Suggestions = function Suggestions(_ref) {
|
|
|
27
26
|
suggestionOnClick = _ref.suggestionOnClick,
|
|
28
27
|
styles = _ref.styles;
|
|
29
28
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
30
|
-
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
31
29
|
var listboxRef = (0, _react.useRef)(null);
|
|
32
30
|
(0, _react.useEffect)(function () {
|
|
33
31
|
var _listboxRef$current, _visualFocusedOptionE;
|
|
@@ -45,12 +43,12 @@ var Suggestions = function Suggestions(_ref) {
|
|
|
45
43
|
},
|
|
46
44
|
ref: listboxRef,
|
|
47
45
|
role: "listbox",
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
style: styles,
|
|
47
|
+
"aria-label": "Suggestions"
|
|
50
48
|
}, !isSearching && !searchHasErrors && suggestions.length > 0 && suggestions.map(function (suggestion, index) {
|
|
51
49
|
return /*#__PURE__*/_react["default"].createElement(_Suggestion["default"], {
|
|
52
|
-
key: "suggestion-".concat(index),
|
|
53
|
-
id: "suggestion-".concat(index),
|
|
50
|
+
key: "".concat(id, "-suggestion-").concat(index),
|
|
51
|
+
id: "".concat(id, "-suggestion-").concat(index),
|
|
54
52
|
value: value,
|
|
55
53
|
onClick: suggestionOnClick,
|
|
56
54
|
suggestion: suggestion,
|
|
@@ -58,14 +56,21 @@ var Suggestions = function Suggestions(_ref) {
|
|
|
58
56
|
visuallyFocused: visualFocusIndex === index,
|
|
59
57
|
highlighted: highlightedSuggestions
|
|
60
58
|
});
|
|
61
|
-
}), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage,
|
|
62
|
-
|
|
63
|
-
},
|
|
59
|
+
}), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, {
|
|
60
|
+
role: "option"
|
|
61
|
+
}, translatedLabels.textInput.searchingMessage), searchHasErrors && /*#__PURE__*/_react["default"].createElement("span", {
|
|
62
|
+
role: "option"
|
|
63
|
+
}, /*#__PURE__*/_react["default"].createElement(SuggestionsError, {
|
|
64
|
+
role: "alert",
|
|
65
|
+
"aria-live": "assertive"
|
|
66
|
+
}, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, null, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
|
|
67
|
+
icon: "filled_error"
|
|
68
|
+
})), translatedLabels.textInput.fetchingDataErrorMessage)));
|
|
64
69
|
};
|
|
65
70
|
var SuggestionsContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid\n ", ";\n\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
66
71
|
return props.error ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
|
|
67
72
|
}, function (props) {
|
|
68
|
-
return props.error ? props.
|
|
73
|
+
return props.error ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
|
|
69
74
|
}, function (props) {
|
|
70
75
|
return props.theme.listOptionFontColor;
|
|
71
76
|
}, function (props) {
|
|
@@ -80,8 +85,8 @@ var SuggestionsContainer = _styledComponents["default"].ul(_templateObject || (_
|
|
|
80
85
|
var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
|
|
81
86
|
return props.theme.systemMessageFontColor;
|
|
82
87
|
});
|
|
83
|
-
var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n color: ", ";\n"])), function (props) {
|
|
84
|
-
return props.
|
|
88
|
+
var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n font-size: 18px;\n color: ", ";\n"])), function (props) {
|
|
89
|
+
return props.theme.errorIconColor;
|
|
85
90
|
});
|
|
86
91
|
var SuggestionsError = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
|
|
87
92
|
return props.theme.errorListDialogFontColor;
|