@dxc-technology/halstack-react 0.0.0-df9dd3c → 0.0.0-dfb16f5
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 +295 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +122 -135
- package/accordion/Accordion.stories.tsx +20 -14
- package/accordion/Accordion.test.js +71 -0
- package/accordion/types.d.ts +11 -10
- 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 +16 -9
- package/alert/Alert.js +5 -2
- package/alert/Alert.test.js +92 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +5 -0
- package/{radio → badge}/types.js +0 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +51 -0
- package/bleed/Bleed.stories.tsx +341 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- 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/bulleted-list/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +57 -80
- package/button/Button.stories.tsx +15 -8
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +8 -12
- package/card/Card.js +24 -27
- package/card/Card.stories.tsx +1 -1
- 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.d.ts +1 -1
- package/chip/Chip.js +14 -52
- package/chip/Chip.stories.tsx +6 -8
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +5 -13
- package/common/variables.js +250 -346
- package/date-input/DateInput.js +62 -48
- package/date-input/DateInput.stories.tsx +7 -7
- package/date-input/DateInput.test.js +479 -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 -273
- package/dropdown/Dropdown.stories.tsx +144 -79
- 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 +29 -18
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +179 -220
- package/file-input/FileInput.stories.tsx +39 -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/flex/types.js +5 -0
- package/footer/Footer.js +24 -99
- 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.stories.tsx +3 -2
- package/heading/Heading.test.js +186 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +51 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +71 -125
- 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 +60 -85
- package/link/Link.stories.tsx +99 -52
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +9 -29
- package/main.d.ts +11 -15
- package/main.js +53 -79
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +543 -0
- package/number-input/types.d.ts +17 -10
- package/package.json +14 -12
- 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.stories.tsx +3 -3
- 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/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +79 -32
- package/radio-group/RadioGroup.js +153 -36
- package/radio-group/RadioGroup.stories.tsx +64 -19
- package/radio-group/RadioGroup.test.js +722 -0
- package/radio-group/types.d.ts +90 -13
- package/resultsetTable/ResultsetTable.js +6 -5
- package/resultsetTable/ResultsetTable.stories.tsx +7 -8
- 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 -139
- 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.stories.jsx +1 -0
- 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 +21 -43
- package/switch/Switch.test.js +225 -0
- package/switch/types.d.ts +12 -4
- package/table/Table.js +1 -1
- package/table/Table.stories.jsx +2 -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 +364 -110
- package/tabs/Tabs.stories.tsx +81 -16
- package/tabs/Tabs.test.js +351 -0
- package/tabs/types.d.ts +39 -17
- 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/tabs-nav/types.js +5 -0
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +18 -28
- package/tag/Tag.stories.tsx +26 -29
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +23 -14
- 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 +213 -322
- package/text-input/TextInput.stories.tsx +218 -193
- package/text-input/TextInput.test.js +1771 -0
- package/text-input/types.d.ts +51 -13
- package/textarea/Textarea.js +20 -27
- package/textarea/Textarea.stories.jsx +37 -15
- 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 -8
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -85
- 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 -11
- package/row/Row.js +0 -124
- package/row/Row.stories.tsx +0 -223
- package/stack/Stack.d.ts +0 -10
- package/stack/Stack.js +0 -94
- package/stack/Stack.stories.tsx +0 -150
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- 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
|
@@ -9,24 +9,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
13
|
|
|
14
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
+
|
|
16
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
17
|
|
|
18
18
|
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,17 +27,39 @@ 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
|
-
iconSrc = _ref.iconSrc,
|
|
49
63
|
icon = _ref.icon,
|
|
50
64
|
_ref$assistiveText = _ref.assistiveText,
|
|
51
65
|
assistiveText = _ref$assistiveText === void 0 ? "" : _ref$assistiveText,
|
|
@@ -58,79 +72,88 @@ var DxcAccordion = function DxcAccordion(_ref) {
|
|
|
58
72
|
_ref$tabIndex = _ref.tabIndex,
|
|
59
73
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
60
74
|
|
|
61
|
-
var _useState = (0, _react.useState)(
|
|
62
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState,
|
|
63
|
-
|
|
64
|
-
setInnerIsExpanded = _useState2[1];
|
|
75
|
+
var _useState = (0, _react.useState)((0, _uuid.v4)()),
|
|
76
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
77
|
+
id = _useState2[0];
|
|
65
78
|
|
|
66
|
-
var _useState3 = (0, _react.useState)(false),
|
|
79
|
+
var _useState3 = (0, _react.useState)(defaultIsExpanded !== null && defaultIsExpanded !== void 0 ? defaultIsExpanded : false),
|
|
67
80
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
68
|
-
|
|
69
|
-
|
|
81
|
+
innerIsExpanded = _useState4[0],
|
|
82
|
+
setInnerIsExpanded = _useState4[1];
|
|
70
83
|
|
|
71
84
|
var colorsTheme = (0, _useTheme["default"])();
|
|
72
85
|
|
|
73
|
-
var
|
|
74
|
-
|
|
75
|
-
};
|
|
86
|
+
var handleAccordionState = function handleAccordionState() {
|
|
87
|
+
var _isExpanded;
|
|
76
88
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
(0, _react.useEffect)(function () {
|
|
82
|
-
window.addEventListener("resize", handleEventListener);
|
|
83
|
-
handleResize(window.innerWidth);
|
|
84
|
-
return function () {
|
|
85
|
-
window.removeEventListener("resize", handleEventListener);
|
|
86
|
-
};
|
|
87
|
-
}, []);
|
|
88
|
-
|
|
89
|
-
var handlerAccordion = function handlerAccordion() {
|
|
90
|
-
if (isExpanded == null) {
|
|
91
|
-
setInnerIsExpanded(!innerIsExpanded);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (typeof onChange === "function") {
|
|
95
|
-
onChange(isExpanded == null ? !innerIsExpanded : !isExpanded);
|
|
96
|
-
}
|
|
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);
|
|
97
93
|
};
|
|
98
94
|
|
|
99
95
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
100
96
|
theme: colorsTheme.accordion
|
|
101
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement(AccordionContainer, {
|
|
98
|
+
isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
|
|
102
99
|
padding: padding,
|
|
103
|
-
margin: margin
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}, /*#__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,
|
|
108
104
|
disabled: disabled,
|
|
109
|
-
|
|
110
|
-
expanded: isExpanded
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
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
|
|
114
109
|
}, /*#__PURE__*/_react["default"].createElement(AccordionInfo, {
|
|
115
110
|
disabled: disabled
|
|
116
|
-
}, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null,
|
|
111
|
+
}, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
117
112
|
disabled: disabled
|
|
118
|
-
},
|
|
119
|
-
src:
|
|
120
|
-
})),
|
|
113
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(IconImg, {
|
|
114
|
+
src: 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, {
|
|
121
123
|
disabled: disabled
|
|
122
|
-
},
|
|
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, {
|
|
123
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
|
|
124
139
|
}, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
125
140
|
color: colorsTheme.accordion.backgroundColor
|
|
126
|
-
}, children))))
|
|
141
|
+
}, children))));
|
|
127
142
|
};
|
|
128
143
|
|
|
129
144
|
var calculateWidth = function calculateWidth(margin) {
|
|
130
145
|
return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
131
146
|
};
|
|
132
147
|
|
|
133
|
-
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) {
|
|
134
157
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
135
158
|
}, function (props) {
|
|
136
159
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
@@ -142,33 +165,27 @@ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templat
|
|
|
142
165
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
143
166
|
}, function (props) {
|
|
144
167
|
return calculateWidth(props.margin);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}, function (props) {
|
|
150
|
-
return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
|
|
151
|
-
}, function (props) {
|
|
152
|
-
return props.theme.borderRadius;
|
|
153
|
-
}, function (props) {
|
|
154
|
-
return props.theme.borderRadius;
|
|
155
|
-
}, 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) {
|
|
156
173
|
return props.theme.borderRadius;
|
|
157
174
|
}, function (props) {
|
|
158
|
-
return props.
|
|
159
|
-
}, function (props) {
|
|
160
|
-
return props.theme.focusBorderStyle;
|
|
175
|
+
return props.isExpanded && "border-bottom-left-radius: 0; border-bottom-right-radius: 0;";
|
|
161
176
|
}, function (props) {
|
|
162
|
-
return props.
|
|
177
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
163
178
|
}, function (props) {
|
|
164
|
-
return props.theme.
|
|
179
|
+
return "".concat(props.theme.focusBorderColor, " ").concat(props.theme.focusBorderStyle, " ").concat(props.theme.focusBorderThickness);
|
|
165
180
|
}, function (props) {
|
|
166
181
|
return "".concat(props.theme.hoverBackgroundColor);
|
|
167
182
|
}, function (props) {
|
|
168
183
|
return "".concat(props.theme.hoverBackgroundColor);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
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) {
|
|
172
189
|
return props.theme.titleLabelPaddingTop;
|
|
173
190
|
}, function (props) {
|
|
174
191
|
return props.theme.titleLabelPaddingBottom;
|
|
@@ -176,82 +193,52 @@ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templat
|
|
|
176
193
|
return props.theme.titleLabelPaddingRight;
|
|
177
194
|
}, function (props) {
|
|
178
195
|
return props.theme.titleLabelPaddingLeft;
|
|
179
|
-
}, function (props) {
|
|
180
|
-
return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
|
|
181
|
-
}, function (props) {
|
|
182
|
-
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
183
|
-
}, function (props) {
|
|
184
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
185
|
-
}, function (props) {
|
|
186
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
|
|
187
|
-
}, function (props) {
|
|
188
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
189
|
-
}, function (props) {
|
|
190
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
191
196
|
});
|
|
192
197
|
|
|
193
|
-
var
|
|
194
|
-
return props.theme.
|
|
195
|
-
}, function (props) {
|
|
196
|
-
return props.theme.titlePaddingRight;
|
|
197
|
-
}, function (props) {
|
|
198
|
-
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;
|
|
199
200
|
}, function (props) {
|
|
200
|
-
return props.theme.
|
|
201
|
+
return props.theme.iconSize;
|
|
201
202
|
}, function (props) {
|
|
202
|
-
return props.theme.
|
|
203
|
+
return props.theme.iconMarginLeft;
|
|
203
204
|
}, function (props) {
|
|
204
|
-
return props.theme.
|
|
205
|
+
return props.theme.iconMarginRigth;
|
|
205
206
|
}, function (props) {
|
|
206
|
-
return props.disabled ? props.theme.
|
|
207
|
+
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
207
208
|
});
|
|
208
209
|
|
|
209
|
-
var
|
|
210
|
-
|
|
211
|
-
|
|
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
|
+
});
|
|
212
215
|
|
|
213
|
-
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) {
|
|
214
219
|
return props.theme.assistiveTextPaddingLeft;
|
|
215
220
|
}, function (props) {
|
|
216
221
|
return props.theme.assistiveTextPaddingRight;
|
|
217
|
-
}, function (props) {
|
|
218
|
-
return props.theme.assistiveTextFontSize;
|
|
219
|
-
}, function (props) {
|
|
220
|
-
return props.theme.assistiveTextFontFamily;
|
|
221
|
-
}, function (props) {
|
|
222
|
-
return props.theme.assistiveTextFontStyle;
|
|
223
|
-
}, function (props) {
|
|
224
|
-
return props.theme.assistiveTextFontWeight;
|
|
225
|
-
}, function (props) {
|
|
226
|
-
return props.disabled ? props.theme.disabledAssistiveTextFontColor : props.theme.assistiveTextFontColor;
|
|
227
|
-
}, function (props) {
|
|
228
|
-
return props.theme.assistiveTextLetterSpacing;
|
|
229
|
-
}, function (props) {
|
|
230
|
-
return props.theme.assistiveTextMinWidth;
|
|
231
222
|
});
|
|
232
223
|
|
|
233
|
-
var
|
|
234
|
-
return props.theme.
|
|
235
|
-
}, function (props) {
|
|
236
|
-
return props.theme.iconSize;
|
|
237
|
-
}, function (props) {
|
|
238
|
-
return props.theme.iconMarginLeft;
|
|
239
|
-
}, function (props) {
|
|
240
|
-
return props.theme.iconMarginRigth;
|
|
241
|
-
}, function (props) {
|
|
242
|
-
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
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;
|
|
243
226
|
});
|
|
244
227
|
|
|
245
|
-
var
|
|
246
|
-
return props.theme.
|
|
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;
|
|
247
230
|
}, function (props) {
|
|
248
|
-
return props.theme.
|
|
231
|
+
return props.theme.borderRadius;
|
|
249
232
|
}, function (props) {
|
|
250
|
-
return props.
|
|
233
|
+
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
251
234
|
}, function (props) {
|
|
252
|
-
return props.
|
|
235
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
253
236
|
}, function (props) {
|
|
254
|
-
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] : "";
|
|
255
242
|
});
|
|
256
243
|
|
|
257
244
|
var _default = DxcAccordion;
|
|
@@ -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,25 +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" }}>
|
|
137
|
-
<DxcTextInput
|
|
136
|
+
<div style={{ display: "flex", flexDirection: "column", gap: "36px" }}>
|
|
137
|
+
<DxcTextInput
|
|
138
|
+
label="Label"
|
|
139
|
+
helperText="HelperText"
|
|
140
|
+
placeholder="Placeholder"
|
|
141
|
+
size="fillParent"
|
|
142
|
+
/>
|
|
138
143
|
<DxcButton label="Submit" size="medium" />
|
|
139
144
|
</div>
|
|
140
145
|
</DxcAccordion>
|
|
141
|
-
</
|
|
146
|
+
</HalstackProvider>
|
|
142
147
|
</ExampleContainer>
|
|
143
148
|
<Title title="Paddings" theme="light" level={2} />
|
|
144
149
|
<ExampleContainer>
|
|
145
150
|
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
146
|
-
<DxcAccordion label="Xxsmall padding"
|
|
151
|
+
<DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
|
|
147
152
|
<div>
|
|
148
153
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
149
154
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -156,7 +161,7 @@ export const Chromatic = () => (
|
|
|
156
161
|
</ExampleContainer>
|
|
157
162
|
<ExampleContainer>
|
|
158
163
|
<Title title="Xsmall padding" theme="light" level={4} />
|
|
159
|
-
<DxcAccordion label="Xsmall padding"
|
|
164
|
+
<DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
|
|
160
165
|
<div>
|
|
161
166
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
162
167
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -169,7 +174,7 @@ export const Chromatic = () => (
|
|
|
169
174
|
</ExampleContainer>
|
|
170
175
|
<ExampleContainer>
|
|
171
176
|
<Title title="Small padding" theme="light" level={4} />
|
|
172
|
-
<DxcAccordion label="Small padding"
|
|
177
|
+
<DxcAccordion label="Small padding" defaultIsExpanded padding="small">
|
|
173
178
|
<div>
|
|
174
179
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
175
180
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -182,7 +187,7 @@ export const Chromatic = () => (
|
|
|
182
187
|
</ExampleContainer>
|
|
183
188
|
<ExampleContainer>
|
|
184
189
|
<Title title="Medium padding" theme="light" level={4} />
|
|
185
|
-
<DxcAccordion label="Medium padding"
|
|
190
|
+
<DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
|
|
186
191
|
<div>
|
|
187
192
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
188
193
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -195,7 +200,7 @@ export const Chromatic = () => (
|
|
|
195
200
|
</ExampleContainer>
|
|
196
201
|
<ExampleContainer>
|
|
197
202
|
<Title title="Large padding" theme="light" level={4} />
|
|
198
|
-
<DxcAccordion label="Large padding"
|
|
203
|
+
<DxcAccordion label="Large padding" defaultIsExpanded padding="large">
|
|
199
204
|
<div>
|
|
200
205
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
201
206
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -208,7 +213,7 @@ export const Chromatic = () => (
|
|
|
208
213
|
</ExampleContainer>
|
|
209
214
|
<ExampleContainer>
|
|
210
215
|
<Title title="Xlarge padding" theme="light" level={4} />
|
|
211
|
-
<DxcAccordion label="Xlarge padding"
|
|
216
|
+
<DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
|
|
212
217
|
<div>
|
|
213
218
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
214
219
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -221,7 +226,7 @@ export const Chromatic = () => (
|
|
|
221
226
|
</ExampleContainer>
|
|
222
227
|
<ExampleContainer>
|
|
223
228
|
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
224
|
-
<DxcAccordion label="Xxlarge padding"
|
|
229
|
+
<DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
|
|
225
230
|
<div>
|
|
226
231
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
227
232
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -295,6 +300,7 @@ export const Chromatic = () => (
|
|
|
295
300
|
lobortis eget.
|
|
296
301
|
</div>
|
|
297
302
|
</DxcAccordion>
|
|
303
|
+
<hr />
|
|
298
304
|
</ExampleContainer>
|
|
299
305
|
</>
|
|
300
306
|
);
|
|
@@ -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.
|
|
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
|
|
@@ -25,13 +29,9 @@ declare type Props = {
|
|
|
25
29
|
*/
|
|
26
30
|
isExpanded?: boolean;
|
|
27
31
|
/**
|
|
28
|
-
* Element used as the icon that will be placed next to panel label.
|
|
29
|
-
*/
|
|
30
|
-
icon?: SVG;
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated URL of the icon that will be placed next to panel label.
|
|
32
|
+
* Element or path used as the icon that will be placed next to panel label.
|
|
33
33
|
*/
|
|
34
|
-
|
|
34
|
+
icon?: string | SVG;
|
|
35
35
|
/**
|
|
36
36
|
* Assistive text to be placed on the right side of the panel.
|
|
37
37
|
*/
|
|
@@ -56,6 +56,7 @@ declare type Props = {
|
|
|
56
56
|
*/
|
|
57
57
|
margin?: Space | Margin;
|
|
58
58
|
/**
|
|
59
|
+
* @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
|
|
59
60
|
* Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
60
61
|
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
|
|
61
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;
|