@dxc-technology/halstack-react 0.0.0-d3ac293 → 0.0.0-d3df47e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +4 -21
- package/HalstackContext.d.ts +24 -139
- package/HalstackContext.js +11 -36
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +26 -83
- package/accordion/Accordion.stories.tsx +2 -114
- package/accordion/Accordion.test.js +18 -33
- package/accordion/types.d.ts +5 -17
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +27 -75
- package/accordion-group/AccordionGroup.stories.tsx +78 -77
- package/accordion-group/AccordionGroup.test.js +43 -71
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +6 -18
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +47 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +17 -56
- package/alert/Alert.test.js +28 -45
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +16 -55
- package/box/Box.stories.tsx +25 -53
- package/box/Box.test.js +1 -6
- package/box/types.d.ts +3 -15
- package/bulleted-list/BulletedList.js +19 -53
- package/bulleted-list/BulletedList.stories.tsx +8 -93
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.d.ts +1 -1
- package/button/Button.js +66 -100
- package/button/Button.stories.tsx +9 -90
- package/button/Button.test.js +19 -16
- package/button/types.d.ts +8 -4
- package/card/Card.d.ts +1 -1
- package/card/Card.js +47 -88
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +10 -21
- package/card/types.d.ts +6 -12
- package/checkbox/Checkbox.js +85 -120
- package/checkbox/Checkbox.stories.tsx +16 -54
- package/checkbox/Checkbox.test.js +107 -63
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.js +34 -68
- package/chip/Chip.stories.tsx +25 -17
- package/chip/Chip.test.js +15 -28
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.js +2 -8
- package/common/variables.d.ts +24 -282
- package/common/variables.js +860 -1125
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.js +15 -59
- package/date-input/DateInput.js +50 -96
- package/date-input/DateInput.stories.tsx +11 -30
- package/date-input/DateInput.test.js +674 -701
- package/date-input/DatePicker.js +11 -42
- package/date-input/Icons.d.ts +6 -6
- package/date-input/Icons.js +6 -23
- package/date-input/YearPicker.js +8 -34
- package/date-input/types.d.ts +27 -21
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +15 -60
- package/dialog/Dialog.stories.tsx +215 -169
- package/dialog/Dialog.test.js +125 -187
- package/dialog/types.d.ts +18 -26
- package/dropdown/Dropdown.js +39 -93
- package/dropdown/Dropdown.test.js +391 -378
- package/dropdown/DropdownMenu.js +13 -20
- package/dropdown/DropdownMenuItem.js +5 -19
- package/dropdown/types.d.ts +17 -19
- package/file-input/FileInput.js +180 -249
- package/file-input/FileInput.stories.tsx +1 -1
- package/file-input/FileInput.test.js +356 -354
- package/file-input/FileItem.js +14 -41
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +27 -39
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +69 -116
- package/footer/Footer.stories.tsx +38 -95
- package/footer/Footer.test.js +21 -33
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- package/footer/types.d.ts +25 -27
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +33 -116
- package/header/Header.stories.tsx +7 -71
- package/header/Header.test.js +12 -25
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +2 -7
- package/header/types.d.ts +5 -20
- package/heading/Heading.js +9 -31
- package/heading/Heading.test.js +70 -87
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +13 -21
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +28 -65
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +5 -6
- package/link/Link.js +23 -44
- package/link/Link.test.js +23 -41
- package/link/types.d.ts +14 -14
- package/main.d.ts +7 -4
- package/main.js +32 -58
- package/nav-tabs/NavTabs.d.ts +2 -2
- package/nav-tabs/NavTabs.js +22 -54
- package/nav-tabs/NavTabs.stories.tsx +21 -5
- package/nav-tabs/NavTabs.test.js +38 -44
- package/nav-tabs/Tab.js +40 -72
- package/nav-tabs/types.d.ts +14 -15
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +700 -412
- package/number-input/types.d.ts +11 -5
- package/package.json +30 -28
- package/paginator/Icons.d.ts +5 -5
- package/paginator/Icons.js +5 -19
- package/paginator/Paginator.js +17 -47
- package/paginator/Paginator.test.js +229 -199
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +2 -3
- package/paragraph/Paragraph.js +3 -19
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +157 -140
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +21 -53
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
- package/progress-bar/ProgressBar.test.js +35 -52
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +1 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +31 -63
- package/radio-group/RadioGroup.js +45 -93
- package/radio-group/RadioGroup.stories.tsx +10 -10
- package/radio-group/RadioGroup.test.js +504 -470
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +1 -1
- package/{resultsetTable → resultset-table}/ResultsetTable.js +33 -63
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +19 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +72 -92
- package/{resultsetTable → resultset-table}/types.d.ts +13 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.js +13 -39
- package/select/Option.js +17 -27
- package/select/Select.js +92 -166
- package/select/Select.stories.tsx +3 -3
- package/select/Select.test.js +1946 -1804
- package/select/types.d.ts +14 -15
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +80 -150
- package/sidenav/Sidenav.stories.tsx +60 -60
- package/sidenav/Sidenav.test.js +3 -10
- package/sidenav/types.d.ts +31 -28
- package/slider/Slider.js +68 -126
- package/slider/Slider.test.js +107 -103
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.js +28 -72
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +28 -28
- package/spinner/Spinner.test.js +25 -34
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.js +49 -97
- package/switch/Switch.stories.tsx +0 -34
- package/switch/Switch.test.js +51 -96
- package/switch/types.d.ts +4 -4
- package/table/Table.d.ts +1 -1
- package/table/Table.js +23 -30
- package/table/{Table.stories.jsx → Table.stories.tsx} +98 -0
- package/table/Table.test.js +1 -6
- package/table/types.d.ts +12 -6
- package/tabs/Tab.js +19 -36
- package/tabs/Tabs.js +61 -144
- package/tabs/Tabs.stories.tsx +1 -1
- package/tabs/Tabs.test.js +65 -121
- package/tabs/types.d.ts +19 -19
- package/tag/Tag.js +26 -58
- package/tag/Tag.test.js +19 -30
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +5 -5
- package/text-input/Icons.js +1 -5
- package/text-input/Suggestion.js +11 -28
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +15 -65
- package/text-input/TextInput.js +217 -318
- package/text-input/TextInput.stories.tsx +48 -152
- package/text-input/TextInput.test.js +1210 -1194
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.js +68 -111
- package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
- package/textarea/Textarea.test.js +151 -182
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +91 -105
- package/toggle-group/ToggleGroup.stories.tsx +7 -4
- package/toggle-group/ToggleGroup.test.js +68 -87
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.js +4 -13
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +21 -136
- package/useTheme.js +1 -8
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +2 -2
- package/utils/BaseTypography.js +16 -30
- package/utils/FocusLock.js +28 -43
- package/wizard/Wizard.js +15 -50
- package/wizard/Wizard.test.js +53 -80
- package/wizard/types.d.ts +8 -9
- package/card/ice-cream.jpg +0 -0
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/Icons.d.ts +0 -7
- package/slider/Slider.stories.tsx +0 -240
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → container/types.js} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://developer.dxc.com/halstack/">
|
|
3
|
+
<img src="website/screens/common/images/halstack_logo.svg" alt="Halstack Design System logo" />
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<h1 align="center">Halstack Design System</h1>
|
|
8
|
+
|
|
9
|
+
Halstack is an Open Source Design System built and maintained by DXC Technology with the purpose of providing all the necessary tools for designing and implementing accessible, intuitive and consistent User Experiences with React.
|
|
10
|
+
|
|
11
|
+
## How to start
|
|
12
|
+
|
|
13
|
+
You can start using Halstack right now:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm i @dxc-technology/halstack-react
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Usage
|
|
20
|
+
|
|
21
|
+
```jsx
|
|
22
|
+
import React from "react";
|
|
23
|
+
import { DxcButton, DxcTextInput } from "@dxc-technology/halstack-react";
|
|
24
|
+
|
|
25
|
+
const App = () => (
|
|
26
|
+
<>
|
|
27
|
+
<DxcTextInput label="Enter your name" />
|
|
28
|
+
<DxcButton label="Submit" type="submit" />
|
|
29
|
+
</>
|
|
30
|
+
);
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Where to start
|
|
34
|
+
|
|
35
|
+
Learn everything you need to know about Halstack principles and components on the [official documentation site](https://developer.dxc.com/halstack/).
|
|
36
|
+
|
|
37
|
+
## Contributing
|
|
38
|
+
|
|
39
|
+
Any feedback is always welcome in Halstack!
|
|
40
|
+
|
|
41
|
+
Before opening a new issue, pull request or discussion, please read carefully and respect our [contribution guidelines](https://github.com/dxc-technology/halstack-react/wiki/Contributing).
|
|
42
|
+
|
|
43
|
+
## Thanks
|
|
44
|
+
|
|
45
|
+
<a href="https://www.chromatic.com/"><img src="https://user-images.githubusercontent.com/321738/84662277-e3db4f80-af1b-11ea-88f5-91d67a5e59f6.png" width="153" height="30" alt="Chromatic" /></a>
|
|
46
|
+
|
|
47
|
+
Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
|
package/accordion/Accordion.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import AccordionPropsType from "./types";
|
|
3
|
-
declare const DxcAccordion: ({ label, defaultIsExpanded, isExpanded, icon, assistiveText, disabled, onChange, children, margin,
|
|
3
|
+
declare const DxcAccordion: ({ label, defaultIsExpanded, isExpanded, icon, assistiveText, disabled, onChange, children, margin, tabIndex, }: AccordionPropsType) => JSX.Element;
|
|
4
4
|
export default DxcAccordion;
|
package/accordion/Accordion.js
CHANGED
|
@@ -1,42 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
14
|
var _utils = require("../common/utils");
|
|
23
|
-
|
|
24
15
|
var _variables = require("../common/variables");
|
|
25
|
-
|
|
26
16
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
27
|
-
|
|
28
|
-
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
29
|
-
|
|
30
17
|
var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
|
|
31
|
-
|
|
32
18
|
var _uuid = require("uuid");
|
|
33
|
-
|
|
34
19
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
35
|
-
|
|
36
|
-
function
|
|
37
|
-
|
|
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; }
|
|
39
|
-
|
|
20
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
40
22
|
var expandLess = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
41
23
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42
24
|
height: "24",
|
|
@@ -45,7 +27,6 @@ var expandLess = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
|
45
27
|
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
46
28
|
d: "m7.4 15.375-1.4-1.4 6-6 6 6-1.4 1.4-4.6-4.6Z"
|
|
47
29
|
}));
|
|
48
|
-
|
|
49
30
|
var expandMore = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
50
31
|
xmlns: "http://www.w3.org/2000/svg",
|
|
51
32
|
height: "24",
|
|
@@ -54,49 +35,40 @@ var expandMore = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
|
54
35
|
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
55
36
|
d: "m12 15.375-6-6 1.4-1.4 4.6 4.6 4.6-4.6 1.4 1.4Z"
|
|
56
37
|
}));
|
|
57
|
-
|
|
58
38
|
var DxcAccordion = function DxcAccordion(_ref) {
|
|
59
39
|
var _ref$label = _ref.label,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
74
|
-
|
|
40
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
41
|
+
defaultIsExpanded = _ref.defaultIsExpanded,
|
|
42
|
+
isExpanded = _ref.isExpanded,
|
|
43
|
+
icon = _ref.icon,
|
|
44
|
+
_ref$assistiveText = _ref.assistiveText,
|
|
45
|
+
assistiveText = _ref$assistiveText === void 0 ? "" : _ref$assistiveText,
|
|
46
|
+
_ref$disabled = _ref.disabled,
|
|
47
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
48
|
+
onChange = _ref.onChange,
|
|
49
|
+
children = _ref.children,
|
|
50
|
+
margin = _ref.margin,
|
|
51
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
52
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
75
53
|
var _useState = (0, _react.useState)((0, _uuid.v4)()),
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
54
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
55
|
+
id = _useState2[0];
|
|
79
56
|
var _useState3 = (0, _react.useState)(defaultIsExpanded !== null && defaultIsExpanded !== void 0 ? defaultIsExpanded : false),
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
57
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
58
|
+
innerIsExpanded = _useState4[0],
|
|
59
|
+
setInnerIsExpanded = _useState4[1];
|
|
84
60
|
var colorsTheme = (0, _useTheme["default"])();
|
|
85
|
-
|
|
86
61
|
var handleAccordionState = function handleAccordionState() {
|
|
87
62
|
var _isExpanded;
|
|
88
|
-
|
|
89
63
|
isExpanded !== null && isExpanded !== void 0 ? isExpanded : setInnerIsExpanded(function (innerIsExpanded) {
|
|
90
64
|
return !innerIsExpanded;
|
|
91
65
|
});
|
|
92
66
|
onChange === null || onChange === void 0 ? void 0 : onChange((_isExpanded = !isExpanded) !== null && _isExpanded !== void 0 ? _isExpanded : !innerIsExpanded);
|
|
93
67
|
};
|
|
94
|
-
|
|
95
68
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
96
69
|
theme: colorsTheme.accordion
|
|
97
70
|
}, /*#__PURE__*/_react["default"].createElement(AccordionContainer, {
|
|
98
71
|
isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
|
|
99
|
-
padding: padding,
|
|
100
72
|
margin: margin
|
|
101
73
|
}, /*#__PURE__*/_react["default"].createElement(AccordionHeader, null, /*#__PURE__*/_react["default"].createElement(AccordionTrigger, {
|
|
102
74
|
id: "accordion-".concat(id),
|
|
@@ -106,9 +78,7 @@ var DxcAccordion = function DxcAccordion(_ref) {
|
|
|
106
78
|
"aria-expanded": isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
|
|
107
79
|
"aria-controls": "accordion-panel-".concat(id),
|
|
108
80
|
isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded
|
|
109
|
-
}, /*#__PURE__*/_react["default"].createElement(AccordionInfo, {
|
|
110
|
-
disabled: disabled
|
|
111
|
-
}, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
81
|
+
}, /*#__PURE__*/_react["default"].createElement(AccordionInfo, null, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
112
82
|
disabled: disabled
|
|
113
83
|
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
114
84
|
src: icon
|
|
@@ -119,9 +89,7 @@ var DxcAccordion = function DxcAccordion(_ref) {
|
|
|
119
89
|
fontStyle: colorsTheme.accordion.titleLabelFontStyle,
|
|
120
90
|
fontWeight: colorsTheme.accordion.titleLabelFontWeight,
|
|
121
91
|
lineHeight: "1.5em"
|
|
122
|
-
}, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
|
|
123
|
-
disabled: disabled
|
|
124
|
-
}, /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
|
|
92
|
+
}, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, null, /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
|
|
125
93
|
color: disabled ? colorsTheme.accordion.disabledAssistiveTextFontColor : colorsTheme.accordion.assistiveTextFontColor,
|
|
126
94
|
fontFamily: colorsTheme.accordion.assistiveTextFontFamily,
|
|
127
95
|
fontSize: colorsTheme.accordion.assistiveTextFontSize,
|
|
@@ -134,17 +102,12 @@ var DxcAccordion = function DxcAccordion(_ref) {
|
|
|
134
102
|
}, (isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded) ? expandLess : expandMore))), (isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded) && /*#__PURE__*/_react["default"].createElement(AccordionPanel, {
|
|
135
103
|
id: "accordion-panel-".concat(id),
|
|
136
104
|
role: "region",
|
|
137
|
-
"aria-labelledby": "accordion-".concat(id)
|
|
138
|
-
|
|
139
|
-
}, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
140
|
-
color: colorsTheme.accordion.backgroundColor
|
|
141
|
-
}, children))));
|
|
105
|
+
"aria-labelledby": "accordion-".concat(id)
|
|
106
|
+
}, children)));
|
|
142
107
|
};
|
|
143
|
-
|
|
144
108
|
var calculateWidth = function calculateWidth(margin) {
|
|
145
109
|
return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
146
110
|
};
|
|
147
|
-
|
|
148
111
|
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
112
|
return props.theme.backgroundColor;
|
|
150
113
|
}, function (props) {
|
|
@@ -166,9 +129,7 @@ var AccordionContainer = _styledComponents["default"].div(_templateObject || (_t
|
|
|
166
129
|
}, function (props) {
|
|
167
130
|
return calculateWidth(props.margin);
|
|
168
131
|
});
|
|
169
|
-
|
|
170
132
|
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
133
|
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) {
|
|
173
134
|
return props.theme.borderRadius;
|
|
174
135
|
}, function (props) {
|
|
@@ -182,9 +143,7 @@ var AccordionTrigger = _styledComponents["default"].button(_templateObject3 || (
|
|
|
182
143
|
}, function (props) {
|
|
183
144
|
return "".concat(props.theme.hoverBackgroundColor);
|
|
184
145
|
});
|
|
185
|
-
|
|
186
146
|
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
147
|
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) {
|
|
189
148
|
return props.theme.titleLabelPaddingTop;
|
|
190
149
|
}, function (props) {
|
|
@@ -194,7 +153,6 @@ var AccordionLabel = _styledComponents["default"].span(_templateObject5 || (_tem
|
|
|
194
153
|
}, function (props) {
|
|
195
154
|
return props.theme.titleLabelPaddingLeft;
|
|
196
155
|
});
|
|
197
|
-
|
|
198
156
|
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
157
|
return props.theme.iconMarginLeft;
|
|
200
158
|
}, function (props) {
|
|
@@ -206,7 +164,6 @@ var IconContainer = _styledComponents["default"].span(_templateObject6 || (_temp
|
|
|
206
164
|
}, function (props) {
|
|
207
165
|
return props.theme.iconSize;
|
|
208
166
|
});
|
|
209
|
-
|
|
210
167
|
var AccordionAssistiveText = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"])), function (props) {
|
|
211
168
|
return props.theme.assistiveTextMinWidth;
|
|
212
169
|
}, function (props) {
|
|
@@ -214,26 +171,12 @@ var AccordionAssistiveText = _styledComponents["default"].span(_templateObject7
|
|
|
214
171
|
}, function (props) {
|
|
215
172
|
return props.theme.assistiveTextPaddingRight;
|
|
216
173
|
});
|
|
217
|
-
|
|
218
174
|
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
175
|
return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
|
|
220
176
|
});
|
|
221
|
-
|
|
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) {
|
|
177
|
+
var AccordionPanel = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n"])), function (props) {
|
|
223
178
|
return props.theme.borderRadius;
|
|
224
179
|
}, function (props) {
|
|
225
180
|
return props.theme.borderRadius;
|
|
226
|
-
}, function (props) {
|
|
227
|
-
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
228
|
-
}, function (props) {
|
|
229
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
230
|
-
}, function (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] : "";
|
|
236
181
|
});
|
|
237
|
-
|
|
238
|
-
var _default = DxcAccordion;
|
|
239
|
-
exports["default"] = _default;
|
|
182
|
+
var _default = exports["default"] = DxcAccordion;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import DxcAccordion from "./Accordion";
|
|
3
|
-
import DxcHeading from "../heading/Heading";
|
|
4
|
-
import DxcTextInput from "../text-input/TextInput";
|
|
5
|
-
import DxcButton from "../button/Button";
|
|
6
3
|
import Title from "../../.storybook/components/Title";
|
|
7
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
8
5
|
import { HalstackProvider } from "../HalstackContext";
|
|
@@ -119,7 +116,7 @@ export const Chromatic = () => (
|
|
|
119
116
|
</ExampleContainer>
|
|
120
117
|
<ExampleContainer>
|
|
121
118
|
<Title title="With bigger icon (SVG)" theme="light" level={4} />
|
|
122
|
-
<DxcAccordion label="
|
|
119
|
+
<DxcAccordion label="Accordion Test" assistiveText="Assistive text" icon={facebookIcon}>
|
|
123
120
|
<div>
|
|
124
121
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
|
|
125
122
|
lobortis eget.
|
|
@@ -131,7 +128,7 @@ export const Chromatic = () => (
|
|
|
131
128
|
<DxcAccordion
|
|
132
129
|
label="Accordion"
|
|
133
130
|
assistiveText="Assistive text"
|
|
134
|
-
icon="https://
|
|
131
|
+
icon="https://www.freepnglogos.com/uploads/facebook-logo-design-1.png"
|
|
135
132
|
>
|
|
136
133
|
<div>
|
|
137
134
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
|
|
@@ -176,115 +173,6 @@ export const Chromatic = () => (
|
|
|
176
173
|
</div>
|
|
177
174
|
</DxcAccordion>
|
|
178
175
|
</ExampleContainer>
|
|
179
|
-
<ExampleContainer>
|
|
180
|
-
<Title title="Background color provider over accordion content" theme="light" level={4} />
|
|
181
|
-
<HalstackProvider advancedTheme={advancedTheme}>
|
|
182
|
-
<DxcAccordion
|
|
183
|
-
label="Dark Accordion"
|
|
184
|
-
defaultIsExpanded
|
|
185
|
-
assistiveText="Assistive text"
|
|
186
|
-
icon={folderIcon}
|
|
187
|
-
padding="medium"
|
|
188
|
-
>
|
|
189
|
-
<div style={{ display: "flex", flexDirection: "column", gap: "36px" }}>
|
|
190
|
-
<DxcTextInput label="Label" helperText="HelperText" placeholder="Placeholder" size="fillParent" />
|
|
191
|
-
<DxcButton label="Submit" size="medium" />
|
|
192
|
-
</div>
|
|
193
|
-
</DxcAccordion>
|
|
194
|
-
</HalstackProvider>
|
|
195
|
-
</ExampleContainer>
|
|
196
|
-
<Title title="Paddings" theme="light" level={2} />
|
|
197
|
-
<ExampleContainer>
|
|
198
|
-
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
199
|
-
<DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
|
|
200
|
-
<div>
|
|
201
|
-
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
202
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
203
|
-
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
204
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
205
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
|
206
|
-
est laborum.
|
|
207
|
-
</div>
|
|
208
|
-
</DxcAccordion>
|
|
209
|
-
</ExampleContainer>
|
|
210
|
-
<ExampleContainer>
|
|
211
|
-
<Title title="Xsmall padding" theme="light" level={4} />
|
|
212
|
-
<DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
|
|
213
|
-
<div>
|
|
214
|
-
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
215
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
216
|
-
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
217
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
218
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
|
219
|
-
est laborum.
|
|
220
|
-
</div>
|
|
221
|
-
</DxcAccordion>
|
|
222
|
-
</ExampleContainer>
|
|
223
|
-
<ExampleContainer>
|
|
224
|
-
<Title title="Small padding" theme="light" level={4} />
|
|
225
|
-
<DxcAccordion label="Small padding" defaultIsExpanded padding="small">
|
|
226
|
-
<div>
|
|
227
|
-
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
228
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
229
|
-
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
230
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
231
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
|
232
|
-
est laborum.
|
|
233
|
-
</div>
|
|
234
|
-
</DxcAccordion>
|
|
235
|
-
</ExampleContainer>
|
|
236
|
-
<ExampleContainer>
|
|
237
|
-
<Title title="Medium padding" theme="light" level={4} />
|
|
238
|
-
<DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
|
|
239
|
-
<div>
|
|
240
|
-
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
241
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
242
|
-
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
243
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
244
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
|
245
|
-
est laborum.
|
|
246
|
-
</div>
|
|
247
|
-
</DxcAccordion>
|
|
248
|
-
</ExampleContainer>
|
|
249
|
-
<ExampleContainer>
|
|
250
|
-
<Title title="Large padding" theme="light" level={4} />
|
|
251
|
-
<DxcAccordion label="Large padding" defaultIsExpanded padding="large">
|
|
252
|
-
<div>
|
|
253
|
-
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
254
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
255
|
-
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
256
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
257
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
|
258
|
-
est laborum.
|
|
259
|
-
</div>
|
|
260
|
-
</DxcAccordion>
|
|
261
|
-
</ExampleContainer>
|
|
262
|
-
<ExampleContainer>
|
|
263
|
-
<Title title="Xlarge padding" theme="light" level={4} />
|
|
264
|
-
<DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
|
|
265
|
-
<div>
|
|
266
|
-
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
267
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
268
|
-
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
269
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
270
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
|
271
|
-
est laborum.
|
|
272
|
-
</div>
|
|
273
|
-
</DxcAccordion>
|
|
274
|
-
</ExampleContainer>
|
|
275
|
-
<ExampleContainer>
|
|
276
|
-
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
277
|
-
<DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
|
|
278
|
-
<div>
|
|
279
|
-
<DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
|
|
280
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
|
281
|
-
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
282
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
283
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
|
284
|
-
est laborum.
|
|
285
|
-
</div>
|
|
286
|
-
</DxcAccordion>
|
|
287
|
-
</ExampleContainer>
|
|
288
176
|
<Title title="Margins" theme="light" level={2} />
|
|
289
177
|
<ExampleContainer>
|
|
290
178
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _Accordion = _interopRequireDefault(require("./Accordion.tsx"));
|
|
10
|
-
|
|
11
7
|
describe("Accordion component tests", function () {
|
|
12
8
|
test("Renders with correct aria accessibility attributes", function () {
|
|
13
9
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
label: "Accordion",
|
|
11
|
+
defaultIsExpanded: true
|
|
12
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
|
|
13
|
+
getByRole = _render.getByRole;
|
|
19
14
|
var accordion = getByRole("button");
|
|
20
15
|
var panel = getByRole("region");
|
|
21
16
|
expect(accordion.getAttribute("aria-controls")).toBe(panel.id);
|
|
@@ -23,46 +18,36 @@ describe("Accordion component tests", function () {
|
|
|
23
18
|
});
|
|
24
19
|
test("Renders expanded by default when it is uncontrolled", function () {
|
|
25
20
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
label: "Accordion",
|
|
22
|
+
defaultIsExpanded: true
|
|
23
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
|
|
24
|
+
getByRole = _render2.getByRole;
|
|
31
25
|
var accordion = getByRole("button");
|
|
32
26
|
expect(accordion.getAttribute("aria-expanded")).toBe("true");
|
|
33
27
|
});
|
|
34
28
|
test("Calls correct function on click", function () {
|
|
35
29
|
var onChange = jest.fn();
|
|
36
|
-
|
|
37
30
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
label: "Accordion",
|
|
32
|
+
onChange: onChange
|
|
33
|
+
})),
|
|
34
|
+
getByText = _render3.getByText;
|
|
43
35
|
_react2.fireEvent.click(getByText("Accordion"));
|
|
44
|
-
|
|
45
36
|
expect(onChange).toHaveBeenCalled();
|
|
46
37
|
});
|
|
47
38
|
test("Controlled accordion", function () {
|
|
48
39
|
var onChange = jest.fn();
|
|
49
|
-
|
|
50
40
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
41
|
+
label: "Accordion",
|
|
42
|
+
onChange: onChange,
|
|
43
|
+
isExpanded: true
|
|
44
|
+
})),
|
|
45
|
+
getByText = _render4.getByText,
|
|
46
|
+
getByRole = _render4.getByRole;
|
|
58
47
|
expect(getByRole("button").getAttribute("aria-expanded")).toBe("true");
|
|
59
|
-
|
|
60
48
|
_react2.fireEvent.click(getByText("Accordion"));
|
|
61
|
-
|
|
62
49
|
_react2.fireEvent.click(getByText("Accordion"));
|
|
63
|
-
|
|
64
50
|
_react2.fireEvent.click(getByText("Accordion"));
|
|
65
|
-
|
|
66
51
|
expect(onChange).toHaveBeenCalledTimes(3);
|
|
67
52
|
expect(onChange.mock.calls[0][0]).toBe(false);
|
|
68
53
|
expect(onChange.mock.calls[1][0]).toBe(false);
|
package/accordion/types.d.ts
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
bottom?: Space;
|
|
12
|
-
left?: Space;
|
|
13
|
-
right?: Space;
|
|
14
|
-
};
|
|
15
|
-
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
16
|
-
declare type Props = {
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
type Props = {
|
|
17
11
|
/**
|
|
18
12
|
* The panel label.
|
|
19
13
|
*/
|
|
@@ -56,13 +50,7 @@ declare type Props = {
|
|
|
56
50
|
*/
|
|
57
51
|
margin?: Space | Margin;
|
|
58
52
|
/**
|
|
59
|
-
*
|
|
60
|
-
* Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
61
|
-
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
|
|
62
|
-
*/
|
|
63
|
-
padding?: Space | Padding;
|
|
64
|
-
/**
|
|
65
|
-
* Value of the tabindex.
|
|
53
|
+
* Value of the tabindex attribute.
|
|
66
54
|
*/
|
|
67
55
|
tabIndex?: number;
|
|
68
56
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import AccordionGroupPropsType, {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import AccordionGroupPropsType, { AccordionGroupAccordionContextProps } from "./types";
|
|
3
|
+
export declare const AccordionGroupAccordionContext: React.Context<AccordionGroupAccordionContextProps>;
|
|
3
4
|
declare const DxcAccordionGroup: {
|
|
4
5
|
({ defaultIndexActive, indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
|
|
5
|
-
Accordion: ({ ...childProps }: AccordionPropsType) => JSX.Element;
|
|
6
|
+
Accordion: ({ ...childProps }: import("./types").AccordionPropsType) => JSX.Element;
|
|
6
7
|
};
|
|
7
8
|
export default DxcAccordionGroup;
|