@dxc-technology/halstack-react 0.0.0-4448bdb → 0.0.0-453c87a
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 +117 -136
- package/accordion/Accordion.stories.tsx +65 -26
- 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 +54 -79
- package/button/Button.stories.tsx +66 -8
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +8 -12
- 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.d.ts +1 -1
- package/chip/Chip.js +17 -67
- package/chip/Chip.stories.tsx +44 -14
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +5 -13
- package/common/variables.js +346 -446
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +246 -0
- package/date-input/DateInput.js +171 -260
- package/date-input/DateInput.stories.tsx +137 -38
- package/date-input/DateInput.test.js +835 -0
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +132 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +116 -0
- package/date-input/types.d.ts +67 -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 +249 -277
- package/dropdown/Dropdown.stories.tsx +153 -80
- 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 +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/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.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 +61 -86
- 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 +542 -0
- package/number-input/types.d.ts +17 -10
- package/package.json +19 -22
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +19 -46
- 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/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +57 -31
- package/radio-group/RadioGroup.js +75 -60
- package/radio-group/RadioGroup.stories.tsx +61 -39
- package/radio-group/RadioGroup.test.js +722 -0
- package/radio-group/types.d.ts +81 -3
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -105
- package/resultsetTable/ResultsetTable.stories.tsx +56 -33
- package/resultsetTable/ResultsetTable.test.js +330 -0
- package/resultsetTable/types.d.ts +2 -2
- 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 +108 -0
- package/select/Select.js +147 -365
- package/select/Select.stories.tsx +324 -213
- 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 +182 -52
- package/sidenav/Sidenav.stories.tsx +163 -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 +3 -3
- 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 +133 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +364 -110
- package/tabs/Tabs.stories.tsx +84 -18
- 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 +172 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +128 -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 +25 -28
- 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 +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +219 -332
- package/text-input/TextInput.stories.tsx +242 -197
- package/text-input/TextInput.test.js +1724 -0
- package/text-input/types.d.ts +51 -13
- 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/common/RequiredComponent.js +0 -32
- 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 -95
- 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 -127
- package/row/Row.stories.tsx +0 -239
- package/stack/Stack.d.ts +0 -10
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -166
- 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;
|
|
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("img", {
|
|
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.
|
|
175
|
+
return props.isExpanded && "border-bottom-left-radius: 0; border-bottom-right-radius: 0;";
|
|
159
176
|
}, function (props) {
|
|
160
|
-
return props.
|
|
177
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
161
178
|
}, function (props) {
|
|
162
|
-
return props.theme.focusBorderThickness;
|
|
163
|
-
}, function (props) {
|
|
164
|
-
return props.theme.backgroundColor;
|
|
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,46 @@ 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 margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n svg,\n img {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
|
|
199
|
+
return props.theme.iconMarginLeft;
|
|
199
200
|
}, function (props) {
|
|
200
|
-
return props.theme.
|
|
201
|
+
return props.theme.iconMarginRigth;
|
|
201
202
|
}, function (props) {
|
|
202
|
-
return props.theme.
|
|
203
|
+
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
203
204
|
}, function (props) {
|
|
204
|
-
return props.theme.
|
|
205
|
+
return props.theme.iconSize;
|
|
205
206
|
}, function (props) {
|
|
206
|
-
return props.
|
|
207
|
+
return props.theme.iconSize;
|
|
207
208
|
});
|
|
208
209
|
|
|
209
|
-
var
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
var AccordionAssistiveText = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding-left: ", ";\n padding-right: ", ";\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: ", ";\n text-align: end;\n"])), function (props) {
|
|
210
|
+
var AccordionAssistiveText = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"])), function (props) {
|
|
211
|
+
return props.theme.assistiveTextMinWidth;
|
|
212
|
+
}, function (props) {
|
|
214
213
|
return props.theme.assistiveTextPaddingLeft;
|
|
215
214
|
}, function (props) {
|
|
216
215
|
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
216
|
});
|
|
232
217
|
|
|
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;
|
|
218
|
+
var CollapseIndicator = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n color: ", ";\n"])), function (props) {
|
|
219
|
+
return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
|
|
243
220
|
});
|
|
244
221
|
|
|
245
|
-
var
|
|
246
|
-
return props.theme.
|
|
222
|
+
var AccordionPanel = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (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) {
|
|
223
|
+
return props.theme.borderRadius;
|
|
247
224
|
}, function (props) {
|
|
248
|
-
return props.theme.
|
|
225
|
+
return props.theme.borderRadius;
|
|
249
226
|
}, function (props) {
|
|
250
|
-
return props.
|
|
227
|
+
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
251
228
|
}, function (props) {
|
|
252
|
-
return props.
|
|
229
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
253
230
|
}, function (props) {
|
|
254
|
-
return props.
|
|
231
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
|
|
232
|
+
}, function (props) {
|
|
233
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
234
|
+
}, function (props) {
|
|
235
|
+
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
255
236
|
});
|
|
256
237
|
|
|
257
238
|
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"
|
|
@@ -30,10 +30,33 @@ const folderIcon = (
|
|
|
30
30
|
</svg>
|
|
31
31
|
);
|
|
32
32
|
|
|
33
|
-
const
|
|
34
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
35
|
-
<path d="
|
|
36
|
-
|
|
33
|
+
const smallIcon = (
|
|
34
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" height="20" width="20">
|
|
35
|
+
<path d="m7.646 18.333-.313-2.625q-.208-.125-.458-.27-.25-.146-.458-.271l-2.438 1.021-2.354-4.063 2.083-1.583V9.458L1.625 7.875l2.354-4.063 2.438 1.021q.208-.125.458-.27.25-.146.458-.271l.313-2.625h4.708l.313 2.625q.208.125.458.271.25.145.458.27l2.438-1.021 2.354 4.063-2.063 1.583v1.084l2.063 1.583-2.354 4.063-2.438-1.021q-.208.125-.458.271-.25.145-.458.27l-.313 2.625ZM10 12.979q1.229 0 2.104-.875T12.979 10q0-1.229-.875-2.104T10 7.021q-1.229 0-2.104.875T7.021 10q0 1.229.875 2.104t2.104.875Zm0-1.75q-.5 0-.865-.364-.364-.365-.364-.865t.364-.865q.365-.364.865-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.854 6.583h1.666l.25-2.166q.605-.167 1.167-.5.562-.334 1.021-.792l2.021.854.833-1.375-1.771-1.354q.104-.292.146-.604.042-.313.042-.646 0-.292-.042-.594t-.125-.635l1.771-1.375-.834-1.375-2.02.875q-.48-.479-1.032-.802-.552-.323-1.156-.49l-.271-2.187H9.167l-.271 2.187q-.604.167-1.156.49-.552.323-1.011.781l-2.021-.854-.833 1.375 1.75 1.354q-.083.333-.125.646-.042.312-.042.604t.042.594q.042.302.125.635l-1.75 1.375.833 1.375 2.021-.854q.459.458 1.011.781.552.323 1.156.49Z" />
|
|
36
|
+
</svg>
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const facebookIcon = (
|
|
40
|
+
<svg
|
|
41
|
+
version="1.1"
|
|
42
|
+
id="Capa_1"
|
|
43
|
+
x="0px"
|
|
44
|
+
y="0px"
|
|
45
|
+
width="438.536px"
|
|
46
|
+
height="438.536px"
|
|
47
|
+
viewBox="0 0 438.536 438.536"
|
|
48
|
+
fill="currentColor"
|
|
49
|
+
>
|
|
50
|
+
<g>
|
|
51
|
+
<path
|
|
52
|
+
d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
|
|
53
|
+
C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
|
|
54
|
+
h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
|
|
55
|
+
C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
|
|
56
|
+
c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
|
|
57
|
+
c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
|
|
58
|
+
/>
|
|
59
|
+
</g>
|
|
37
60
|
</svg>
|
|
38
61
|
);
|
|
39
62
|
|
|
@@ -78,8 +101,30 @@ export const Chromatic = () => (
|
|
|
78
101
|
</DxcAccordion>
|
|
79
102
|
</ExampleContainer>
|
|
80
103
|
<ExampleContainer>
|
|
81
|
-
<Title title="With
|
|
82
|
-
<DxcAccordion label="Accordion" assistiveText="Assistive text" icon={
|
|
104
|
+
<Title title="With smaller icon" theme="light" level={4} />
|
|
105
|
+
<DxcAccordion label="Accordion" assistiveText="Assistive text" icon={smallIcon}>
|
|
106
|
+
<div>
|
|
107
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
|
|
108
|
+
lobortis eget.
|
|
109
|
+
</div>
|
|
110
|
+
</DxcAccordion>
|
|
111
|
+
</ExampleContainer>
|
|
112
|
+
<ExampleContainer>
|
|
113
|
+
<Title title="With bigger icon (SVG)" theme="light" level={4} />
|
|
114
|
+
<DxcAccordion label="Accordion" assistiveText="Assistive text" icon={facebookIcon}>
|
|
115
|
+
<div>
|
|
116
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
|
|
117
|
+
lobortis eget.
|
|
118
|
+
</div>
|
|
119
|
+
</DxcAccordion>
|
|
120
|
+
</ExampleContainer>
|
|
121
|
+
<ExampleContainer>
|
|
122
|
+
<Title title="With bigger icon (image)" theme="light" level={4} />
|
|
123
|
+
<DxcAccordion
|
|
124
|
+
label="Accordion"
|
|
125
|
+
assistiveText="Assistive text"
|
|
126
|
+
icon="https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png"
|
|
127
|
+
>
|
|
83
128
|
<div>
|
|
84
129
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
|
|
85
130
|
lobortis eget.
|
|
@@ -125,31 +170,25 @@ export const Chromatic = () => (
|
|
|
125
170
|
</ExampleContainer>
|
|
126
171
|
<ExampleContainer>
|
|
127
172
|
<Title title="Background color provider over accordion content" theme="light" level={4} />
|
|
128
|
-
<
|
|
173
|
+
<HalstackProvider advancedTheme={advancedTheme}>
|
|
129
174
|
<DxcAccordion
|
|
130
175
|
label="Dark Accordion"
|
|
131
|
-
|
|
176
|
+
defaultIsExpanded
|
|
132
177
|
assistiveText="Assistive text"
|
|
133
178
|
icon={folderIcon}
|
|
134
179
|
padding="medium"
|
|
135
180
|
>
|
|
136
|
-
<div style={{ display: "flex", flexDirection: "column" }}>
|
|
137
|
-
<DxcTextInput
|
|
138
|
-
label="Label"
|
|
139
|
-
helperText="HelperText"
|
|
140
|
-
placeholder="Placeholder"
|
|
141
|
-
size="fillParent"
|
|
142
|
-
margin={{ bottom: "medium" }}
|
|
143
|
-
/>
|
|
181
|
+
<div style={{ display: "flex", flexDirection: "column", gap: "36px" }}>
|
|
182
|
+
<DxcTextInput label="Label" helperText="HelperText" placeholder="Placeholder" size="fillParent" />
|
|
144
183
|
<DxcButton label="Submit" size="medium" />
|
|
145
184
|
</div>
|
|
146
185
|
</DxcAccordion>
|
|
147
|
-
</
|
|
186
|
+
</HalstackProvider>
|
|
148
187
|
</ExampleContainer>
|
|
149
188
|
<Title title="Paddings" theme="light" level={2} />
|
|
150
189
|
<ExampleContainer>
|
|
151
190
|
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
152
|
-
<DxcAccordion label="Xxsmall padding"
|
|
191
|
+
<DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
|
|
153
192
|
<div>
|
|
154
193
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
155
194
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -162,7 +201,7 @@ export const Chromatic = () => (
|
|
|
162
201
|
</ExampleContainer>
|
|
163
202
|
<ExampleContainer>
|
|
164
203
|
<Title title="Xsmall padding" theme="light" level={4} />
|
|
165
|
-
<DxcAccordion label="Xsmall padding"
|
|
204
|
+
<DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
|
|
166
205
|
<div>
|
|
167
206
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
168
207
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -175,7 +214,7 @@ export const Chromatic = () => (
|
|
|
175
214
|
</ExampleContainer>
|
|
176
215
|
<ExampleContainer>
|
|
177
216
|
<Title title="Small padding" theme="light" level={4} />
|
|
178
|
-
<DxcAccordion label="Small padding"
|
|
217
|
+
<DxcAccordion label="Small padding" defaultIsExpanded padding="small">
|
|
179
218
|
<div>
|
|
180
219
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
181
220
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -188,7 +227,7 @@ export const Chromatic = () => (
|
|
|
188
227
|
</ExampleContainer>
|
|
189
228
|
<ExampleContainer>
|
|
190
229
|
<Title title="Medium padding" theme="light" level={4} />
|
|
191
|
-
<DxcAccordion label="Medium padding"
|
|
230
|
+
<DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
|
|
192
231
|
<div>
|
|
193
232
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
194
233
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -201,7 +240,7 @@ export const Chromatic = () => (
|
|
|
201
240
|
</ExampleContainer>
|
|
202
241
|
<ExampleContainer>
|
|
203
242
|
<Title title="Large padding" theme="light" level={4} />
|
|
204
|
-
<DxcAccordion label="Large padding"
|
|
243
|
+
<DxcAccordion label="Large padding" defaultIsExpanded padding="large">
|
|
205
244
|
<div>
|
|
206
245
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
207
246
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -214,7 +253,7 @@ export const Chromatic = () => (
|
|
|
214
253
|
</ExampleContainer>
|
|
215
254
|
<ExampleContainer>
|
|
216
255
|
<Title title="Xlarge padding" theme="light" level={4} />
|
|
217
|
-
<DxcAccordion label="Xlarge padding"
|
|
256
|
+
<DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
|
|
218
257
|
<div>
|
|
219
258
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
220
259
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
@@ -227,7 +266,7 @@ export const Chromatic = () => (
|
|
|
227
266
|
</ExampleContainer>
|
|
228
267
|
<ExampleContainer>
|
|
229
268
|
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
230
|
-
<DxcAccordion label="Xxlarge padding"
|
|
269
|
+
<DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
|
|
231
270
|
<div>
|
|
232
271
|
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
233
272
|
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
|
+
});
|