@dxc-technology/halstack-react 0.0.0-98ce7b0 → 0.0.0-996618c
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/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +294 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +121 -123
- package/accordion/Accordion.stories.tsx +13 -14
- package/accordion/Accordion.test.js +71 -0
- package/accordion/types.d.ts +9 -4
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +15 -36
- package/accordion-group/AccordionGroup.stories.tsx +28 -2
- package/accordion-group/AccordionGroup.test.js +126 -0
- package/accordion-group/types.d.ts +14 -3
- package/alert/Alert.js +5 -2
- package/alert/Alert.test.js +92 -0
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +25 -1
- package/box/Box.js +23 -33
- package/box/Box.test.js +18 -0
- package/box/types.d.ts +1 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/{list → bulleted-list}/types.js +0 -0
- package/button/Button.js +53 -68
- package/button/Button.stories.tsx +9 -0
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +7 -7
- package/card/Card.js +24 -27
- package/card/Card.test.js +50 -0
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +106 -109
- package/checkbox/Checkbox.stories.tsx +146 -130
- package/checkbox/Checkbox.test.js +155 -0
- package/checkbox/types.d.ts +13 -5
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +1 -1
- package/common/variables.js +236 -339
- package/date-input/DateInput.js +56 -42
- package/date-input/DateInput.stories.tsx +7 -7
- package/date-input/DateInput.test.js +543 -0
- package/date-input/types.d.ts +16 -9
- package/dialog/Dialog.js +46 -50
- package/dialog/Dialog.stories.tsx +57 -2
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +247 -251
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +585 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +183 -222
- package/file-input/FileInput.stories.tsx +38 -10
- package/file-input/FileInput.test.js +498 -0
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +43 -66
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +69 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/{radio → flex}/types.js +0 -0
- package/footer/Footer.js +15 -88
- package/footer/Footer.stories.tsx +8 -1
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +95 -114
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +79 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/heading/Heading.test.js +186 -0
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +71 -131
- package/layout/ApplicationLayout.stories.tsx +84 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +58 -75
- package/link/Link.stories.tsx +95 -53
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +7 -23
- package/main.d.ts +10 -15
- package/main.js +48 -82
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +542 -0
- package/number-input/types.d.ts +17 -10
- package/package.json +20 -16
- package/paginator/Paginator.js +17 -38
- package/paginator/Paginator.test.js +308 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +181 -0
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +57 -51
- package/progress-bar/ProgressBar.stories.jsx +13 -11
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +117 -0
- package/quick-nav/QuickNav.stories.tsx +342 -0
- package/quick-nav/types.d.ts +21 -0
- package/{row → quick-nav}/types.js +0 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +53 -37
- package/radio-group/RadioGroup.js +67 -57
- package/radio-group/RadioGroup.stories.tsx +61 -39
- package/radio-group/RadioGroup.test.js +563 -89
- package/radio-group/types.d.ts +82 -4
- package/resultsetTable/ResultsetTable.js +1 -3
- package/resultsetTable/ResultsetTable.test.js +348 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +198 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.js +147 -365
- package/select/Select.stories.tsx +231 -176
- package/select/Select.test.js +2233 -0
- package/select/types.d.ts +52 -12
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +184 -52
- package/sidenav/Sidenav.stories.tsx +154 -156
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +122 -96
- package/slider/Slider.stories.tsx +15 -9
- package/slider/Slider.test.js +250 -0
- package/slider/types.d.ts +10 -2
- package/spinner/Spinner.js +1 -1
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +150 -67
- package/switch/Switch.stories.tsx +20 -42
- package/switch/Switch.test.js +225 -0
- package/switch/types.d.ts +12 -4
- package/table/Table.js +1 -1
- package/table/Table.test.js +26 -0
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +362 -108
- package/tabs/Tabs.stories.tsx +74 -8
- package/tabs/Tabs.test.js +351 -0
- package/tabs/types.d.ts +19 -5
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/{stack → tabs-nav}/types.js +0 -0
- package/tag/Tag.js +15 -20
- package/tag/Tag.stories.tsx +12 -8
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +57 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +217 -334
- package/text-input/TextInput.stories.tsx +219 -194
- package/text-input/TextInput.test.js +1624 -0
- package/text-input/types.d.ts +50 -12
- package/textarea/Textarea.js +20 -27
- package/textarea/Textarea.stories.jsx +33 -12
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +18 -11
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +5 -4
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +9 -1
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +58 -54
- package/wizard/Wizard.stories.tsx +33 -24
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +10 -5
- package/ThemeContext.d.ts +0 -15
- package/ThemeContext.js +0 -243
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -10
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
package/accordion/Accordion.js
CHANGED
|
@@ -19,14 +19,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var _ExpansionPanel = _interopRequireDefault(require("@material-ui/core/ExpansionPanel"));
|
|
23
|
-
|
|
24
|
-
var _ExpansionPanelSummary = _interopRequireDefault(require("@material-ui/core/ExpansionPanelSummary"));
|
|
25
|
-
|
|
26
|
-
var _ExpansionPanelDetails = _interopRequireDefault(require("@material-ui/core/ExpansionPanelDetails"));
|
|
27
|
-
|
|
28
|
-
var _ExpandMore = _interopRequireDefault(require("@material-ui/icons/ExpandMore"));
|
|
29
|
-
|
|
30
22
|
var _utils = require("../common/utils.js");
|
|
31
23
|
|
|
32
24
|
var _variables = require("../common/variables.js");
|
|
@@ -35,15 +27,38 @@ var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
|
35
27
|
|
|
36
28
|
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
37
29
|
|
|
38
|
-
var
|
|
30
|
+
var _Typography = _interopRequireDefault(require("../typography/Typography"));
|
|
31
|
+
|
|
32
|
+
var _uuid = require("uuid");
|
|
33
|
+
|
|
34
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
39
35
|
|
|
40
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
37
|
|
|
42
38
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
39
|
|
|
40
|
+
var expandLess = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
41
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
42
|
+
height: "24",
|
|
43
|
+
width: "24",
|
|
44
|
+
fill: "currentColor"
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
46
|
+
d: "m7.4 15.375-1.4-1.4 6-6 6 6-1.4 1.4-4.6-4.6Z"
|
|
47
|
+
}));
|
|
48
|
+
|
|
49
|
+
var expandMore = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
50
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
51
|
+
height: "24",
|
|
52
|
+
width: "24",
|
|
53
|
+
fill: "currentColor"
|
|
54
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
55
|
+
d: "m12 15.375-6-6 1.4-1.4 4.6 4.6 4.6-4.6 1.4 1.4Z"
|
|
56
|
+
}));
|
|
57
|
+
|
|
44
58
|
var DxcAccordion = function DxcAccordion(_ref) {
|
|
45
59
|
var _ref$label = _ref.label,
|
|
46
60
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
61
|
+
defaultIsExpanded = _ref.defaultIsExpanded,
|
|
47
62
|
isExpanded = _ref.isExpanded,
|
|
48
63
|
icon = _ref.icon,
|
|
49
64
|
_ref$assistiveText = _ref.assistiveText,
|
|
@@ -57,79 +72,88 @@ var DxcAccordion = function DxcAccordion(_ref) {
|
|
|
57
72
|
_ref$tabIndex = _ref.tabIndex,
|
|
58
73
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
59
74
|
|
|
60
|
-
var _useState = (0, _react.useState)(
|
|
61
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState,
|
|
62
|
-
|
|
63
|
-
setInnerIsExpanded = _useState2[1];
|
|
75
|
+
var _useState = (0, _react.useState)((0, _uuid.v4)()),
|
|
76
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
77
|
+
id = _useState2[0];
|
|
64
78
|
|
|
65
|
-
var _useState3 = (0, _react.useState)(false),
|
|
79
|
+
var _useState3 = (0, _react.useState)(defaultIsExpanded !== null && defaultIsExpanded !== void 0 ? defaultIsExpanded : false),
|
|
66
80
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
67
|
-
|
|
68
|
-
|
|
81
|
+
innerIsExpanded = _useState4[0],
|
|
82
|
+
setInnerIsExpanded = _useState4[1];
|
|
69
83
|
|
|
70
84
|
var colorsTheme = (0, _useTheme["default"])();
|
|
71
85
|
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
var handleEventListener = function handleEventListener() {
|
|
77
|
-
handleResize(window.innerWidth);
|
|
78
|
-
};
|
|
86
|
+
var handleAccordionState = function handleAccordionState() {
|
|
87
|
+
var _isExpanded;
|
|
79
88
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
window.removeEventListener("resize", handleEventListener);
|
|
85
|
-
};
|
|
86
|
-
}, []);
|
|
87
|
-
|
|
88
|
-
var handlerAccordion = function handlerAccordion() {
|
|
89
|
-
if (isExpanded == null) {
|
|
90
|
-
setInnerIsExpanded(!innerIsExpanded);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (typeof onChange === "function") {
|
|
94
|
-
onChange(isExpanded == null ? !innerIsExpanded : !isExpanded);
|
|
95
|
-
}
|
|
89
|
+
isExpanded !== null && isExpanded !== void 0 ? isExpanded : setInnerIsExpanded(function (innerIsExpanded) {
|
|
90
|
+
return !innerIsExpanded;
|
|
91
|
+
});
|
|
92
|
+
onChange === null || onChange === void 0 ? void 0 : onChange((_isExpanded = !isExpanded) !== null && _isExpanded !== void 0 ? _isExpanded : !innerIsExpanded);
|
|
96
93
|
};
|
|
97
94
|
|
|
98
95
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
99
96
|
theme: colorsTheme.accordion
|
|
100
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement(AccordionContainer, {
|
|
98
|
+
isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
|
|
101
99
|
padding: padding,
|
|
102
|
-
margin: margin
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], {
|
|
100
|
+
margin: margin
|
|
101
|
+
}, /*#__PURE__*/_react["default"].createElement(AccordionHeader, null, /*#__PURE__*/_react["default"].createElement(AccordionTrigger, {
|
|
102
|
+
id: "accordion-".concat(id),
|
|
103
|
+
onClick: disabled ? undefined : handleAccordionState,
|
|
107
104
|
disabled: disabled,
|
|
108
|
-
|
|
109
|
-
expanded: isExpanded
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
tabIndex: disabled ? -1 : tabIndex
|
|
105
|
+
tabIndex: disabled ? -1 : tabIndex,
|
|
106
|
+
"aria-expanded": isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
|
|
107
|
+
"aria-controls": "accordion-panel-".concat(id),
|
|
108
|
+
isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded
|
|
113
109
|
}, /*#__PURE__*/_react["default"].createElement(AccordionInfo, {
|
|
114
110
|
disabled: disabled
|
|
115
|
-
}, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null,
|
|
111
|
+
}, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
116
112
|
disabled: disabled
|
|
117
|
-
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
113
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(IconImg, {
|
|
118
114
|
src: icon
|
|
119
|
-
}) : icon)
|
|
115
|
+
}) : icon), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
116
|
+
color: disabled ? colorsTheme.accordion.disabledTitleLabelFontColor : colorsTheme.accordion.titleLabelFontColor,
|
|
117
|
+
fontFamily: colorsTheme.accordion.titleLabelFontFamily,
|
|
118
|
+
fontSize: colorsTheme.accordion.titleLabelFontSize,
|
|
119
|
+
fontStyle: colorsTheme.accordion.titleLabelFontStyle,
|
|
120
|
+
fontWeight: colorsTheme.accordion.titleLabelFontWeight,
|
|
121
|
+
lineHeight: "1.5em"
|
|
122
|
+
}, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
|
|
120
123
|
disabled: disabled
|
|
121
|
-
},
|
|
124
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
125
|
+
color: disabled ? colorsTheme.accordion.disabledAssistiveTextFontColor : colorsTheme.accordion.assistiveTextFontColor,
|
|
126
|
+
fontFamily: colorsTheme.accordion.assistiveTextFontFamily,
|
|
127
|
+
fontSize: colorsTheme.accordion.assistiveTextFontSize,
|
|
128
|
+
fontStyle: colorsTheme.accordion.assistiveTextFontStyle,
|
|
129
|
+
fontWeight: colorsTheme.accordion.assistiveTextFontWeight,
|
|
130
|
+
letterSpacing: colorsTheme.accordion.assistiveTextLetterSpacing,
|
|
131
|
+
lineHeight: "1.5em"
|
|
132
|
+
}, assistiveText))), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
|
|
122
133
|
disabled: disabled
|
|
134
|
+
}, (isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded) ? expandLess : expandMore))), (isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded) && /*#__PURE__*/_react["default"].createElement(AccordionPanel, {
|
|
135
|
+
id: "accordion-panel-".concat(id),
|
|
136
|
+
role: "region",
|
|
137
|
+
"aria-labelledby": "accordion-".concat(id),
|
|
138
|
+
padding: padding
|
|
123
139
|
}, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
124
140
|
color: colorsTheme.accordion.backgroundColor
|
|
125
|
-
}, children))))
|
|
141
|
+
}, children))));
|
|
126
142
|
};
|
|
127
143
|
|
|
128
144
|
var calculateWidth = function calculateWidth(margin) {
|
|
129
145
|
return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
130
146
|
};
|
|
131
147
|
|
|
132
|
-
var
|
|
148
|
+
var AccordionContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n border-radius: ", ";\n ", "\n box-shadow: ", ";\n min-width: 280px;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n"])), function (props) {
|
|
149
|
+
return props.theme.backgroundColor;
|
|
150
|
+
}, function (props) {
|
|
151
|
+
return props.theme.borderRadius;
|
|
152
|
+
}, function (props) {
|
|
153
|
+
return props.isExpanded && "border-bottom-left-radius: 0; border-bottom-right-radius: 0;";
|
|
154
|
+
}, function (props) {
|
|
155
|
+
return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
|
|
156
|
+
}, function (props) {
|
|
133
157
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
134
158
|
}, function (props) {
|
|
135
159
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
@@ -141,33 +165,27 @@ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templat
|
|
|
141
165
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
142
166
|
}, function (props) {
|
|
143
167
|
return calculateWidth(props.margin);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}, function (props) {
|
|
149
|
-
return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
|
|
150
|
-
}, function (props) {
|
|
151
|
-
return props.theme.borderRadius;
|
|
152
|
-
}, function (props) {
|
|
153
|
-
return props.theme.borderRadius;
|
|
154
|
-
}, function (props) {
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
var AccordionHeader = _styledComponents["default"].h3(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n min-height: 48px;\n margin: 0;\n"])));
|
|
171
|
+
|
|
172
|
+
var AccordionTrigger = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 24px;\n width: 100%;\n background-color: transparent;\n border: none;\n border-radius: ", ";\n ", "\n padding: 12px 16px;\n cursor: ", ";\n\n :focus {\n outline: ", ";\n }\n :hover:enabled {\n background-color: ", ";\n }\n :active:enabled {\n background-color: ", ";\n }\n"])), function (props) {
|
|
155
173
|
return props.theme.borderRadius;
|
|
156
174
|
}, function (props) {
|
|
157
|
-
return props.
|
|
158
|
-
}, function (props) {
|
|
159
|
-
return props.theme.focusBorderStyle;
|
|
175
|
+
return props.isExpanded && "border-bottom-left-radius: 0; border-bottom-right-radius: 0;";
|
|
160
176
|
}, function (props) {
|
|
161
|
-
return props.
|
|
177
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
162
178
|
}, function (props) {
|
|
163
|
-
return props.theme.
|
|
179
|
+
return "".concat(props.theme.focusBorderColor, " ").concat(props.theme.focusBorderStyle, " ").concat(props.theme.focusBorderThickness);
|
|
164
180
|
}, function (props) {
|
|
165
181
|
return "".concat(props.theme.hoverBackgroundColor);
|
|
166
182
|
}, function (props) {
|
|
167
183
|
return "".concat(props.theme.hoverBackgroundColor);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
var AccordionInfo = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: space-between;\n width: 100%;\n"])));
|
|
187
|
+
|
|
188
|
+
var AccordionLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-right: ", ";\n padding-left: ", ";\n"])), function (props) {
|
|
171
189
|
return props.theme.titleLabelPaddingTop;
|
|
172
190
|
}, function (props) {
|
|
173
191
|
return props.theme.titleLabelPaddingBottom;
|
|
@@ -175,73 +193,53 @@ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templat
|
|
|
175
193
|
return props.theme.titleLabelPaddingRight;
|
|
176
194
|
}, function (props) {
|
|
177
195
|
return props.theme.titleLabelPaddingLeft;
|
|
178
|
-
}, function (props) {
|
|
179
|
-
return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
|
|
180
|
-
}, function (props) {
|
|
181
|
-
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
182
|
-
}, function (props) {
|
|
183
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
184
|
-
}, function (props) {
|
|
185
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
|
|
186
|
-
}, function (props) {
|
|
187
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
188
|
-
}, function (props) {
|
|
189
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
190
196
|
});
|
|
191
197
|
|
|
192
|
-
var
|
|
193
|
-
return props.theme.
|
|
194
|
-
}, function (props) {
|
|
195
|
-
return props.theme.titlePaddingRight;
|
|
196
|
-
}, function (props) {
|
|
197
|
-
return props.theme.titleLabelFontFamily;
|
|
198
|
+
var IconContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: ", ";\n width: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n"])), function (props) {
|
|
199
|
+
return props.theme.iconSize;
|
|
198
200
|
}, function (props) {
|
|
199
|
-
return props.theme.
|
|
201
|
+
return props.theme.iconSize;
|
|
200
202
|
}, function (props) {
|
|
201
|
-
return props.theme.
|
|
203
|
+
return props.theme.iconMarginLeft;
|
|
202
204
|
}, function (props) {
|
|
203
|
-
return props.theme.
|
|
205
|
+
return props.theme.iconMarginRigth;
|
|
204
206
|
}, function (props) {
|
|
205
|
-
return props.disabled ? props.theme.
|
|
207
|
+
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
206
208
|
});
|
|
207
209
|
|
|
208
|
-
var
|
|
209
|
-
|
|
210
|
-
|
|
210
|
+
var IconImg = _styledComponents["default"].img(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n"])), function (props) {
|
|
211
|
+
return props.theme.iconSize;
|
|
212
|
+
}, function (props) {
|
|
213
|
+
return props.theme.iconSize;
|
|
214
|
+
});
|
|
211
215
|
|
|
212
|
-
var AccordionAssistiveText = _styledComponents["default"].
|
|
216
|
+
var AccordionAssistiveText = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"])), function (props) {
|
|
217
|
+
return props.theme.assistiveTextMinWidth;
|
|
218
|
+
}, function (props) {
|
|
213
219
|
return props.theme.assistiveTextPaddingLeft;
|
|
214
220
|
}, function (props) {
|
|
215
221
|
return props.theme.assistiveTextPaddingRight;
|
|
216
|
-
}, function (props) {
|
|
217
|
-
return props.theme.assistiveTextFontSize;
|
|
218
|
-
}, function (props) {
|
|
219
|
-
return props.theme.assistiveTextFontFamily;
|
|
220
|
-
}, function (props) {
|
|
221
|
-
return props.theme.assistiveTextFontStyle;
|
|
222
|
-
}, function (props) {
|
|
223
|
-
return props.theme.assistiveTextFontWeight;
|
|
224
|
-
}, function (props) {
|
|
225
|
-
return props.disabled ? props.theme.disabledAssistiveTextFontColor : props.theme.assistiveTextFontColor;
|
|
226
|
-
}, function (props) {
|
|
227
|
-
return props.theme.assistiveTextLetterSpacing;
|
|
228
|
-
}, function (props) {
|
|
229
|
-
return props.theme.assistiveTextMinWidth;
|
|
230
222
|
});
|
|
231
223
|
|
|
232
|
-
var
|
|
233
|
-
return props.theme.
|
|
224
|
+
var CollapseIndicator = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n color: ", ";\n"])), function (props) {
|
|
225
|
+
return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
var AccordionPanel = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
|
|
229
|
+
return props.theme.borderRadius;
|
|
234
230
|
}, function (props) {
|
|
235
|
-
return props.theme.
|
|
231
|
+
return props.theme.borderRadius;
|
|
236
232
|
}, function (props) {
|
|
237
|
-
return props.
|
|
233
|
+
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
238
234
|
}, function (props) {
|
|
239
|
-
return props.
|
|
235
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
240
236
|
}, function (props) {
|
|
241
|
-
return props.
|
|
237
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
|
|
238
|
+
}, function (props) {
|
|
239
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
240
|
+
}, function (props) {
|
|
241
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
242
242
|
});
|
|
243
243
|
|
|
244
|
-
var AccordionIcon = _styledComponents["default"].img(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
245
|
-
|
|
246
244
|
var _default = DxcAccordion;
|
|
247
245
|
exports["default"] = _default;
|
|
@@ -5,7 +5,7 @@ import DxcTextInput from "../text-input/TextInput";
|
|
|
5
5
|
import DxcButton from "../button/Button";
|
|
6
6
|
import Title from "../../.storybook/components/Title";
|
|
7
7
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
8
|
-
import {
|
|
8
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
9
9
|
|
|
10
10
|
export default {
|
|
11
11
|
title: "Accordion",
|
|
@@ -15,7 +15,7 @@ export default {
|
|
|
15
15
|
const folderIcon = (
|
|
16
16
|
<svg
|
|
17
17
|
xmlns="http://www.w3.org/2000/svg"
|
|
18
|
-
|
|
18
|
+
enableBackground="new 0 0 24 24"
|
|
19
19
|
height="24px"
|
|
20
20
|
viewBox="0 0 24 24"
|
|
21
21
|
width="24px"
|
|
@@ -125,31 +125,30 @@ export const Chromatic = () => (
|
|
|
125
125
|
</ExampleContainer>
|
|
126
126
|
<ExampleContainer>
|
|
127
127
|
<Title title="Background color provider over accordion content" theme="light" level={4} />
|
|
128
|
-
<
|
|
128
|
+
<HalstackProvider advancedTheme={advancedTheme}>
|
|
129
129
|
<DxcAccordion
|
|
130
130
|
label="Dark Accordion"
|
|
131
|
-
|
|
131
|
+
defaultIsExpanded
|
|
132
132
|
assistiveText="Assistive text"
|
|
133
133
|
icon={folderIcon}
|
|
134
134
|
padding="medium"
|
|
135
135
|
>
|
|
136
|
-
<div style={{ display: "flex", flexDirection: "column" }}>
|
|
136
|
+
<div style={{ display: "flex", flexDirection: "column", gap: "36px" }}>
|
|
137
137
|
<DxcTextInput
|
|
138
138
|
label="Label"
|
|
139
139
|
helperText="HelperText"
|
|
140
140
|
placeholder="Placeholder"
|
|
141
141
|
size="fillParent"
|
|
142
|
-
margin={{ bottom: "medium" }}
|
|
143
142
|
/>
|
|
144
143
|
<DxcButton label="Submit" size="medium" />
|
|
145
144
|
</div>
|
|
146
145
|
</DxcAccordion>
|
|
147
|
-
</
|
|
146
|
+
</HalstackProvider>
|
|
148
147
|
</ExampleContainer>
|
|
149
148
|
<Title title="Paddings" theme="light" level={2} />
|
|
150
149
|
<ExampleContainer>
|
|
151
150
|
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
152
|
-
<DxcAccordion label="Xxsmall padding"
|
|
151
|
+
<DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
|
|
153
152
|
<div>
|
|
154
153
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
155
154
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -162,7 +161,7 @@ export const Chromatic = () => (
|
|
|
162
161
|
</ExampleContainer>
|
|
163
162
|
<ExampleContainer>
|
|
164
163
|
<Title title="Xsmall padding" theme="light" level={4} />
|
|
165
|
-
<DxcAccordion label="Xsmall padding"
|
|
164
|
+
<DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
|
|
166
165
|
<div>
|
|
167
166
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
168
167
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -175,7 +174,7 @@ export const Chromatic = () => (
|
|
|
175
174
|
</ExampleContainer>
|
|
176
175
|
<ExampleContainer>
|
|
177
176
|
<Title title="Small padding" theme="light" level={4} />
|
|
178
|
-
<DxcAccordion label="Small padding"
|
|
177
|
+
<DxcAccordion label="Small padding" defaultIsExpanded padding="small">
|
|
179
178
|
<div>
|
|
180
179
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
181
180
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -188,7 +187,7 @@ export const Chromatic = () => (
|
|
|
188
187
|
</ExampleContainer>
|
|
189
188
|
<ExampleContainer>
|
|
190
189
|
<Title title="Medium padding" theme="light" level={4} />
|
|
191
|
-
<DxcAccordion label="Medium padding"
|
|
190
|
+
<DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
|
|
192
191
|
<div>
|
|
193
192
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
194
193
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -201,7 +200,7 @@ export const Chromatic = () => (
|
|
|
201
200
|
</ExampleContainer>
|
|
202
201
|
<ExampleContainer>
|
|
203
202
|
<Title title="Large padding" theme="light" level={4} />
|
|
204
|
-
<DxcAccordion label="Large padding"
|
|
203
|
+
<DxcAccordion label="Large padding" defaultIsExpanded padding="large">
|
|
205
204
|
<div>
|
|
206
205
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
207
206
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -214,7 +213,7 @@ export const Chromatic = () => (
|
|
|
214
213
|
</ExampleContainer>
|
|
215
214
|
<ExampleContainer>
|
|
216
215
|
<Title title="Xlarge padding" theme="light" level={4} />
|
|
217
|
-
<DxcAccordion label="Xlarge padding"
|
|
216
|
+
<DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
|
|
218
217
|
<div>
|
|
219
218
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
220
219
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -227,7 +226,7 @@ export const Chromatic = () => (
|
|
|
227
226
|
</ExampleContainer>
|
|
228
227
|
<ExampleContainer>
|
|
229
228
|
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
230
|
-
<DxcAccordion label="Xxlarge padding"
|
|
229
|
+
<DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
|
|
231
230
|
<div>
|
|
232
231
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
233
232
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Accordion = _interopRequireDefault(require("./Accordion"));
|
|
10
|
+
|
|
11
|
+
describe("Accordion component tests", function () {
|
|
12
|
+
test("Renders with correct aria accessibility attributes", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
14
|
+
label: "Accordion",
|
|
15
|
+
defaultIsExpanded: true
|
|
16
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
|
|
17
|
+
getByRole = _render.getByRole;
|
|
18
|
+
|
|
19
|
+
var accordion = getByRole("button");
|
|
20
|
+
var panel = getByRole("region");
|
|
21
|
+
expect(accordion.getAttribute("aria-controls")).toBe(panel.id);
|
|
22
|
+
expect(panel.getAttribute("aria-labelledby")).toBe(accordion.id);
|
|
23
|
+
});
|
|
24
|
+
test("Renders expanded by default when it is uncontrolled", function () {
|
|
25
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
26
|
+
label: "Accordion",
|
|
27
|
+
defaultIsExpanded: true
|
|
28
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
|
|
29
|
+
getByRole = _render2.getByRole;
|
|
30
|
+
|
|
31
|
+
var accordion = getByRole("button");
|
|
32
|
+
expect(accordion.getAttribute("aria-expanded")).toBe("true");
|
|
33
|
+
});
|
|
34
|
+
test("Calls correct function on click", function () {
|
|
35
|
+
var onChange = jest.fn();
|
|
36
|
+
|
|
37
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
38
|
+
label: "Accordion",
|
|
39
|
+
onChange: onChange
|
|
40
|
+
})),
|
|
41
|
+
getByText = _render3.getByText;
|
|
42
|
+
|
|
43
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
44
|
+
|
|
45
|
+
expect(onChange).toHaveBeenCalled();
|
|
46
|
+
});
|
|
47
|
+
test("Controlled accordion", function () {
|
|
48
|
+
var onChange = jest.fn();
|
|
49
|
+
|
|
50
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
51
|
+
label: "Accordion",
|
|
52
|
+
onChange: onChange,
|
|
53
|
+
isExpanded: true
|
|
54
|
+
})),
|
|
55
|
+
getByText = _render4.getByText,
|
|
56
|
+
getByRole = _render4.getByRole;
|
|
57
|
+
|
|
58
|
+
expect(getByRole("button").getAttribute("aria-expanded")).toBe("true");
|
|
59
|
+
|
|
60
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
61
|
+
|
|
62
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
63
|
+
|
|
64
|
+
_react2.fireEvent.click(getByText("Accordion"));
|
|
65
|
+
|
|
66
|
+
expect(onChange).toHaveBeenCalledTimes(3);
|
|
67
|
+
expect(onChange.mock.calls[0][0]).toBe(false);
|
|
68
|
+
expect(onChange.mock.calls[1][0]).toBe(false);
|
|
69
|
+
expect(onChange.mock.calls[2][0]).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
});
|
package/accordion/types.d.ts
CHANGED
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
-
declare type Margin = {
|
|
2
|
+
export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
export declare type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
declare type Padding = {
|
|
9
|
+
export declare type Padding = {
|
|
10
10
|
top?: Space;
|
|
11
11
|
bottom?: Space;
|
|
12
12
|
left?: Space;
|
|
13
13
|
right?: Space;
|
|
14
14
|
};
|
|
15
|
-
declare type SVG = React.SVGProps<SVGSVGElement>;
|
|
15
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
16
16
|
declare type Props = {
|
|
17
17
|
/**
|
|
18
18
|
* The panel label.
|
|
19
19
|
*/
|
|
20
20
|
label: string;
|
|
21
|
+
/**
|
|
22
|
+
* Initial state of the panel, only when it is uncontrolled.
|
|
23
|
+
*/
|
|
24
|
+
defaultIsExpanded?: boolean;
|
|
21
25
|
/**
|
|
22
26
|
* Represents the state of the panel. When true, the component will be
|
|
23
27
|
* expanded. If undefined, the component will be uncontrolled and its
|
|
@@ -52,6 +56,7 @@ declare type Props = {
|
|
|
52
56
|
*/
|
|
53
57
|
margin?: Space | Margin;
|
|
54
58
|
/**
|
|
59
|
+
* @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
|
|
55
60
|
* Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
56
61
|
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
|
|
57
62
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import AccordionGroupPropsType, { AccordionPropsType } from "./types";
|
|
3
3
|
declare const DxcAccordionGroup: {
|
|
4
|
-
({ indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
|
|
4
|
+
({ defaultIndexActive, indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
|
|
5
5
|
Accordion: ({ ...childProps }: AccordionPropsType) => JSX.Element;
|
|
6
6
|
};
|
|
7
7
|
export default DxcAccordionGroup;
|