@dxc-technology/halstack-react 0.0.0-98ce7b0 → 0.0.0-996618c

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