@dxc-technology/halstack-react 0.0.0-b3e1a2f → 0.0.0-b41d935

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 (260) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +122 -135
  5. package/accordion/Accordion.stories.tsx +13 -14
  6. package/accordion/Accordion.test.js +71 -0
  7. package/accordion/types.d.ts +11 -10
  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 +16 -9
  13. package/alert/Alert.js +5 -2
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +4 -0
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +5 -0
  18. package/{list → badge}/types.js +0 -0
  19. package/bleed/Bleed.js +1 -34
  20. package/bleed/Bleed.stories.tsx +94 -95
  21. package/bleed/types.d.ts +25 -1
  22. package/box/Box.js +23 -33
  23. package/box/Box.test.js +18 -0
  24. package/box/types.d.ts +1 -0
  25. package/bulleted-list/BulletedList.d.ts +7 -0
  26. package/bulleted-list/BulletedList.js +123 -0
  27. package/bulleted-list/BulletedList.stories.tsx +200 -0
  28. package/bulleted-list/types.d.ts +11 -0
  29. package/{radio → bulleted-list}/types.js +0 -0
  30. package/button/Button.js +53 -68
  31. package/button/Button.stories.tsx +9 -0
  32. package/button/Button.test.js +35 -0
  33. package/button/types.d.ts +7 -7
  34. package/card/Card.js +24 -27
  35. package/card/Card.test.js +50 -0
  36. package/card/types.d.ts +1 -0
  37. package/checkbox/Checkbox.d.ts +1 -1
  38. package/checkbox/Checkbox.js +104 -108
  39. package/checkbox/Checkbox.stories.tsx +146 -130
  40. package/checkbox/Checkbox.test.js +155 -0
  41. package/checkbox/types.d.ts +9 -5
  42. package/chip/Chip.d.ts +1 -1
  43. package/chip/Chip.js +14 -52
  44. package/chip/Chip.stories.tsx +6 -8
  45. package/chip/Chip.test.js +56 -0
  46. package/chip/types.d.ts +5 -13
  47. package/common/variables.js +236 -339
  48. package/date-input/DateInput.js +56 -42
  49. package/date-input/DateInput.stories.tsx +7 -7
  50. package/date-input/DateInput.test.js +479 -0
  51. package/date-input/types.d.ts +16 -9
  52. package/dialog/Dialog.js +46 -50
  53. package/dialog/Dialog.stories.tsx +57 -2
  54. package/dialog/Dialog.test.js +70 -0
  55. package/dialog/types.d.ts +3 -2
  56. package/dropdown/Dropdown.d.ts +1 -1
  57. package/dropdown/Dropdown.js +244 -273
  58. package/dropdown/Dropdown.stories.tsx +144 -79
  59. package/dropdown/Dropdown.test.js +590 -0
  60. package/dropdown/DropdownMenu.d.ts +4 -0
  61. package/dropdown/DropdownMenu.js +80 -0
  62. package/dropdown/DropdownMenuItem.d.ts +4 -0
  63. package/dropdown/DropdownMenuItem.js +92 -0
  64. package/dropdown/types.d.ts +29 -18
  65. package/file-input/FileInput.js +175 -217
  66. package/file-input/FileInput.stories.tsx +38 -10
  67. package/file-input/FileInput.test.js +498 -0
  68. package/file-input/FileItem.d.ts +4 -14
  69. package/file-input/FileItem.js +43 -66
  70. package/file-input/types.d.ts +13 -0
  71. package/flex/Flex.d.ts +4 -0
  72. package/flex/Flex.js +69 -0
  73. package/flex/Flex.stories.tsx +103 -0
  74. package/flex/types.d.ts +32 -0
  75. package/{row → flex}/types.js +0 -0
  76. package/footer/Footer.js +24 -99
  77. package/footer/Footer.stories.tsx +8 -1
  78. package/footer/Footer.test.js +109 -0
  79. package/footer/Icons.js +1 -1
  80. package/footer/types.d.ts +2 -1
  81. package/header/Header.js +95 -114
  82. package/header/Header.stories.tsx +46 -36
  83. package/header/Header.test.js +79 -0
  84. package/header/Icons.js +2 -2
  85. package/header/types.d.ts +3 -2
  86. package/heading/Heading.test.js +186 -0
  87. package/inset/Inset.js +1 -34
  88. package/inset/Inset.stories.tsx +36 -36
  89. package/inset/types.d.ts +25 -1
  90. package/layout/ApplicationLayout.d.ts +16 -6
  91. package/layout/ApplicationLayout.js +71 -125
  92. package/layout/ApplicationLayout.stories.tsx +84 -93
  93. package/layout/Icons.d.ts +5 -0
  94. package/layout/Icons.js +13 -2
  95. package/layout/SidenavContext.d.ts +5 -0
  96. package/layout/SidenavContext.js +19 -0
  97. package/layout/types.d.ts +18 -33
  98. package/link/Link.d.ts +3 -2
  99. package/link/Link.js +60 -85
  100. package/link/Link.stories.tsx +99 -52
  101. package/link/Link.test.js +83 -0
  102. package/link/types.d.ts +9 -29
  103. package/main.d.ts +11 -15
  104. package/main.js +53 -79
  105. package/number-input/NumberInput.js +11 -18
  106. package/number-input/NumberInput.stories.tsx +5 -5
  107. package/number-input/NumberInput.test.js +543 -0
  108. package/number-input/types.d.ts +17 -10
  109. package/package.json +14 -12
  110. package/paginator/Paginator.js +17 -38
  111. package/paginator/Paginator.test.js +308 -0
  112. package/paragraph/Paragraph.d.ts +6 -0
  113. package/paragraph/Paragraph.js +38 -0
  114. package/paragraph/Paragraph.stories.tsx +44 -0
  115. package/password-input/PasswordInput.js +7 -4
  116. package/password-input/PasswordInput.test.js +181 -0
  117. package/password-input/types.d.ts +14 -11
  118. package/progress-bar/ProgressBar.d.ts +2 -2
  119. package/progress-bar/ProgressBar.js +57 -51
  120. package/progress-bar/ProgressBar.stories.jsx +13 -11
  121. package/progress-bar/ProgressBar.test.js +110 -0
  122. package/progress-bar/types.d.ts +3 -4
  123. package/quick-nav/QuickNav.d.ts +4 -0
  124. package/quick-nav/QuickNav.js +117 -0
  125. package/quick-nav/QuickNav.stories.tsx +342 -0
  126. package/quick-nav/types.d.ts +21 -0
  127. package/{stack → quick-nav}/types.js +0 -0
  128. package/radio-group/Radio.d.ts +1 -1
  129. package/radio-group/Radio.js +57 -31
  130. package/radio-group/RadioGroup.js +75 -60
  131. package/radio-group/RadioGroup.stories.tsx +61 -39
  132. package/radio-group/RadioGroup.test.js +722 -0
  133. package/radio-group/types.d.ts +81 -3
  134. package/resultsetTable/ResultsetTable.js +6 -5
  135. package/resultsetTable/ResultsetTable.test.js +348 -0
  136. package/select/Icons.d.ts +10 -0
  137. package/select/Icons.js +93 -0
  138. package/select/Listbox.d.ts +4 -0
  139. package/select/Listbox.js +198 -0
  140. package/select/Option.d.ts +4 -0
  141. package/select/Option.js +110 -0
  142. package/select/Select.js +147 -365
  143. package/select/Select.stories.tsx +231 -176
  144. package/select/Select.test.js +2233 -0
  145. package/select/types.d.ts +52 -12
  146. package/sidenav/Sidenav.d.ts +6 -5
  147. package/sidenav/Sidenav.js +184 -52
  148. package/sidenav/Sidenav.stories.tsx +154 -156
  149. package/sidenav/Sidenav.test.js +44 -0
  150. package/sidenav/types.d.ts +50 -27
  151. package/slider/Slider.d.ts +1 -1
  152. package/slider/Slider.js +118 -93
  153. package/slider/Slider.stories.tsx +15 -9
  154. package/slider/Slider.test.js +250 -0
  155. package/slider/types.d.ts +6 -2
  156. package/spinner/Spinner.js +1 -1
  157. package/spinner/Spinner.test.js +64 -0
  158. package/switch/Switch.d.ts +2 -2
  159. package/switch/Switch.js +147 -65
  160. package/switch/Switch.stories.tsx +20 -42
  161. package/switch/Switch.test.js +225 -0
  162. package/switch/types.d.ts +9 -6
  163. package/table/Table.js +1 -1
  164. package/table/Table.test.js +26 -0
  165. package/tabs/Tab.d.ts +4 -0
  166. package/tabs/Tab.js +135 -0
  167. package/tabs/Tabs.d.ts +1 -1
  168. package/tabs/Tabs.js +362 -108
  169. package/tabs/Tabs.stories.tsx +74 -8
  170. package/tabs/Tabs.test.js +351 -0
  171. package/tabs/types.d.ts +19 -5
  172. package/tabs-nav/NavTabs.d.ts +8 -0
  173. package/tabs-nav/NavTabs.js +125 -0
  174. package/tabs-nav/NavTabs.stories.tsx +170 -0
  175. package/tabs-nav/NavTabs.test.js +82 -0
  176. package/tabs-nav/Tab.d.ts +4 -0
  177. package/tabs-nav/Tab.js +130 -0
  178. package/tabs-nav/types.d.ts +53 -0
  179. package/tabs-nav/types.js +5 -0
  180. package/tag/Tag.d.ts +1 -1
  181. package/tag/Tag.js +18 -28
  182. package/tag/Tag.stories.tsx +25 -28
  183. package/tag/Tag.test.js +60 -0
  184. package/tag/types.d.ts +23 -14
  185. package/text-input/Icons.d.ts +8 -0
  186. package/text-input/Icons.js +60 -0
  187. package/text-input/Suggestion.d.ts +4 -0
  188. package/text-input/Suggestion.js +57 -0
  189. package/text-input/Suggestions.d.ts +4 -0
  190. package/text-input/Suggestions.js +134 -0
  191. package/text-input/TextInput.js +217 -334
  192. package/text-input/TextInput.stories.tsx +219 -194
  193. package/text-input/TextInput.test.js +1771 -0
  194. package/text-input/types.d.ts +50 -12
  195. package/textarea/Textarea.js +20 -27
  196. package/textarea/Textarea.stories.jsx +33 -12
  197. package/textarea/Textarea.test.js +437 -0
  198. package/textarea/types.d.ts +18 -11
  199. package/toggle-group/ToggleGroup.d.ts +1 -1
  200. package/toggle-group/ToggleGroup.js +5 -4
  201. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  202. package/toggle-group/ToggleGroup.test.js +156 -0
  203. package/toggle-group/types.d.ts +9 -1
  204. package/typography/Typography.d.ts +4 -0
  205. package/typography/Typography.js +131 -0
  206. package/typography/Typography.stories.tsx +198 -0
  207. package/typography/types.d.ts +18 -0
  208. package/typography/types.js +5 -0
  209. package/useTheme.js +2 -2
  210. package/useTranslatedLabels.d.ts +2 -0
  211. package/useTranslatedLabels.js +20 -0
  212. package/wizard/Wizard.d.ts +1 -1
  213. package/wizard/Wizard.js +58 -54
  214. package/wizard/Wizard.stories.tsx +33 -24
  215. package/wizard/Wizard.test.js +141 -0
  216. package/wizard/types.d.ts +10 -5
  217. package/ThemeContext.d.ts +0 -15
  218. package/ThemeContext.js +0 -243
  219. package/V3Select/V3Select.js +0 -455
  220. package/V3Select/index.d.ts +0 -27
  221. package/V3Textarea/V3Textarea.js +0 -260
  222. package/V3Textarea/index.d.ts +0 -27
  223. package/date/Date.js +0 -373
  224. package/date/index.d.ts +0 -27
  225. package/input-text/Icons.js +0 -22
  226. package/input-text/InputText.js +0 -611
  227. package/input-text/index.d.ts +0 -36
  228. package/list/List.d.ts +0 -4
  229. package/list/List.js +0 -47
  230. package/list/List.stories.tsx +0 -95
  231. package/list/types.d.ts +0 -7
  232. package/radio/Radio.d.ts +0 -4
  233. package/radio/Radio.js +0 -174
  234. package/radio/Radio.stories.tsx +0 -192
  235. package/radio/types.d.ts +0 -54
  236. package/row/Row.d.ts +0 -3
  237. package/row/Row.js +0 -127
  238. package/row/Row.stories.tsx +0 -237
  239. package/row/types.d.ts +0 -10
  240. package/stack/Stack.d.ts +0 -3
  241. package/stack/Stack.js +0 -97
  242. package/stack/Stack.stories.tsx +0 -164
  243. package/stack/types.d.ts +0 -9
  244. package/text/Text.d.ts +0 -7
  245. package/text/Text.js +0 -30
  246. package/text/Text.stories.tsx +0 -19
  247. package/toggle/Toggle.js +0 -186
  248. package/toggle/index.d.ts +0 -21
  249. package/upload/Upload.js +0 -201
  250. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  251. package/upload/buttons-upload/Icons.js +0 -40
  252. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  253. package/upload/dragAndDropArea/Icons.js +0 -39
  254. package/upload/file-upload/FileToUpload.js +0 -115
  255. package/upload/file-upload/Icons.js +0 -66
  256. package/upload/files-upload/FilesToUpload.js +0 -109
  257. package/upload/index.d.ts +0 -15
  258. package/upload/transaction/Icons.js +0 -160
  259. package/upload/transaction/Transaction.js +0 -104
  260. package/upload/transactions/Transactions.js +0 -94
@@ -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 _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
- 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)(false),
62
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
63
- innerIsExpanded = _useState2[0],
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
- isResponsive = _useState4[0],
69
- setIsResponsive = _useState4[1];
81
+ innerIsExpanded = _useState4[0],
82
+ setInnerIsExpanded = _useState4[1];
70
83
 
71
84
  var colorsTheme = (0, _useTheme["default"])();
72
85
 
73
- var handleResize = function handleResize(width) {
74
- width && width <= _variables.responsiveSizes.tablet ? setIsResponsive(true) : setIsResponsive(false);
75
- };
86
+ var handleAccordionState = function handleAccordionState() {
87
+ var _isExpanded;
76
88
 
77
- var handleEventListener = function handleEventListener() {
78
- handleResize(window.innerWidth);
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(DXCAccordion, {
97
+ }, /*#__PURE__*/_react["default"].createElement(AccordionContainer, {
98
+ isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
102
99
  padding: padding,
103
- margin: margin,
104
- disabled: disabled,
105
- icon: icon || iconSrc,
106
- isResponsive: isResponsive
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
- onChange: handlerAccordion,
110
- expanded: isExpanded != null ? isExpanded : innerIsExpanded
111
- }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
112
- expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null),
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, label), icon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
111
+ }, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
117
112
  disabled: disabled
118
- }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(AccordionIcon, {
119
- src: iconSrc
120
- })), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
113
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(IconImg, {
114
+ src: icon
115
+ }) : icon), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
116
+ color: disabled ? colorsTheme.accordion.disabledTitleLabelFontColor : colorsTheme.accordion.titleLabelFontColor,
117
+ fontFamily: colorsTheme.accordion.titleLabelFontFamily,
118
+ fontSize: colorsTheme.accordion.titleLabelFontSize,
119
+ fontStyle: colorsTheme.accordion.titleLabelFontStyle,
120
+ fontWeight: colorsTheme.accordion.titleLabelFontWeight,
121
+ lineHeight: "1.5em"
122
+ }, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
121
123
  disabled: disabled
122
- }, 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, {
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 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) {
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
- }, function (props) {
146
- return props.disabled && "not-allowed" || "pointer";
147
- }, function (props) {
148
- return props.disabled ? props.theme.disabledBackgroundColor : props.theme.backgroundColor;
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.theme.focusBorderColor;
159
- }, function (props) {
160
- return props.theme.focusBorderStyle;
175
+ return props.isExpanded && "border-bottom-left-radius: 0; border-bottom-right-radius: 0;";
161
176
  }, function (props) {
162
- return props.theme.focusBorderThickness;
177
+ return props.disabled ? "not-allowed" : "pointer";
163
178
  }, 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
- }, function (props) {
170
- return props.theme.borderRadius;
171
- }, 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) {
172
189
  return props.theme.titleLabelPaddingTop;
173
190
  }, function (props) {
174
191
  return props.theme.titleLabelPaddingBottom;
@@ -176,82 +193,52 @@ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templat
176
193
  return props.theme.titleLabelPaddingRight;
177
194
  }, function (props) {
178
195
  return props.theme.titleLabelPaddingLeft;
179
- }, function (props) {
180
- return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
181
- }, function (props) {
182
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
183
- }, function (props) {
184
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
185
- }, function (props) {
186
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
187
- }, function (props) {
188
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
189
- }, function (props) {
190
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
191
196
  });
192
197
 
193
- var 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) {
194
- return props.theme.titlePaddingLeft;
195
- }, function (props) {
196
- return props.theme.titlePaddingRight;
197
- }, function (props) {
198
- return props.theme.titleLabelFontFamily;
198
+ var IconContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: ", ";\n width: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n"])), function (props) {
199
+ return props.theme.iconSize;
199
200
  }, function (props) {
200
- return props.theme.titleLabelFontSize;
201
+ return props.theme.iconSize;
201
202
  }, function (props) {
202
- return props.theme.titleLabelFontStyle;
203
+ return props.theme.iconMarginLeft;
203
204
  }, function (props) {
204
- return props.theme.titleFonLabeltWeight;
205
+ return props.theme.iconMarginRigth;
205
206
  }, function (props) {
206
- return props.disabled ? props.theme.disabledTitleLabelFontColor : props.theme.titleLabelFontColor;
207
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
207
208
  });
208
209
 
209
- var AccordionLabel = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
210
-
211
- 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
+ });
212
215
 
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) {
216
+ var AccordionAssistiveText = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"])), function (props) {
217
+ return props.theme.assistiveTextMinWidth;
218
+ }, function (props) {
214
219
  return props.theme.assistiveTextPaddingLeft;
215
220
  }, function (props) {
216
221
  return props.theme.assistiveTextPaddingRight;
217
- }, function (props) {
218
- return props.theme.assistiveTextFontSize;
219
- }, function (props) {
220
- return props.theme.assistiveTextFontFamily;
221
- }, function (props) {
222
- return props.theme.assistiveTextFontStyle;
223
- }, function (props) {
224
- return props.theme.assistiveTextFontWeight;
225
- }, function (props) {
226
- return props.disabled ? props.theme.disabledAssistiveTextFontColor : props.theme.assistiveTextFontColor;
227
- }, function (props) {
228
- return props.theme.assistiveTextLetterSpacing;
229
- }, function (props) {
230
- return props.theme.assistiveTextMinWidth;
231
222
  });
232
223
 
233
- var 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) {
234
- return props.theme.iconSize;
235
- }, function (props) {
236
- return props.theme.iconSize;
237
- }, function (props) {
238
- return props.theme.iconMarginLeft;
239
- }, function (props) {
240
- return props.theme.iconMarginRigth;
241
- }, function (props) {
242
- return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
224
+ var CollapseIndicator = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n color: ", ";\n"])), function (props) {
225
+ return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
243
226
  });
244
227
 
245
- var AccordionIcon = _styledComponents["default"].img(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n color: ", ";\n"])), function (props) {
246
- return props.theme.iconSize;
228
+ var AccordionPanel = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
229
+ return props.theme.borderRadius;
247
230
  }, function (props) {
248
- return props.theme.iconSize;
231
+ return props.theme.borderRadius;
249
232
  }, function (props) {
250
- return props.theme.iconMarginLeft;
233
+ return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
251
234
  }, function (props) {
252
- return props.theme.iconMarginRigth;
235
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
253
236
  }, function (props) {
254
- return props.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] : "";
255
242
  });
256
243
 
257
244
  var _default = DxcAccordion;
@@ -5,7 +5,7 @@ import DxcTextInput from "../text-input/TextInput";
5
5
  import DxcButton from "../button/Button";
6
6
  import Title from "../../.storybook/components/Title";
7
7
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
8
- import { 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> | React.FunctionComponent<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
@@ -25,13 +29,9 @@ declare type Props = {
25
29
  */
26
30
  isExpanded?: boolean;
27
31
  /**
28
- * Element used as the icon that will be placed next to panel label.
29
- */
30
- icon?: SVG;
31
- /**
32
- * @deprecated URL of the icon that will be placed next to panel label.
32
+ * Element or path used as the icon that will be placed next to panel label.
33
33
  */
34
- iconSrc?: string;
34
+ icon?: string | SVG;
35
35
  /**
36
36
  * Assistive text to be placed on the right side of the panel.
37
37
  */
@@ -56,6 +56,7 @@ declare type Props = {
56
56
  */
57
57
  margin?: Space | Margin;
58
58
  /**
59
+ * @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
59
60
  * Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
60
61
  * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
61
62
  */
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import AccordionGroupPropsType, { AccordionPropsType } from "./types";
3
3
  declare const DxcAccordionGroup: {
4
- ({ indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
4
+ ({ defaultIndexActive, indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
5
5
  Accordion: ({ ...childProps }: AccordionPropsType) => JSX.Element;
6
6
  };
7
7
  export default DxcAccordionGroup;