@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370

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 (213) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +12 -2
  3. package/HalstackContext.d.ts +1330 -7
  4. package/HalstackContext.js +84 -67
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +74 -55
  7. package/accordion/Accordion.stories.tsx +3 -101
  8. package/accordion/Accordion.test.js +34 -19
  9. package/accordion/types.d.ts +4 -16
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +49 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  13. package/accordion-group/AccordionGroup.test.js +62 -54
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -18
  17. package/alert/Alert.js +47 -20
  18. package/alert/Alert.test.js +46 -29
  19. package/alert/types.d.ts +3 -3
  20. package/badge/Badge.js +14 -2
  21. package/badge/types.d.ts +1 -1
  22. package/bleed/Bleed.js +21 -13
  23. package/bleed/Bleed.stories.tsx +1 -0
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +33 -33
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +7 -2
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +36 -9
  31. package/bulleted-list/BulletedList.stories.tsx +7 -1
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +83 -71
  35. package/button/Button.stories.tsx +4 -4
  36. package/button/Button.test.js +28 -8
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +67 -62
  40. package/card/Card.stories.tsx +12 -42
  41. package/card/Card.test.js +22 -11
  42. package/card/types.d.ts +4 -10
  43. package/checkbox/Checkbox.js +71 -27
  44. package/checkbox/Checkbox.test.js +60 -33
  45. package/checkbox/types.d.ts +4 -4
  46. package/chip/Chip.js +51 -48
  47. package/chip/Chip.stories.tsx +25 -17
  48. package/chip/Chip.test.js +29 -17
  49. package/chip/types.d.ts +4 -4
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +8 -3
  55. package/common/variables.d.ts +226 -175
  56. package/common/variables.js +956 -1133
  57. package/date-input/Calendar.js +55 -12
  58. package/date-input/DateInput.js +82 -35
  59. package/date-input/DateInput.test.js +351 -164
  60. package/date-input/DatePicker.js +38 -8
  61. package/date-input/Icons.js +12 -0
  62. package/date-input/YearPicker.js +30 -5
  63. package/date-input/types.d.ts +7 -7
  64. package/dialog/Dialog.d.ts +1 -1
  65. package/dialog/Dialog.js +83 -86
  66. package/dialog/Dialog.stories.tsx +127 -221
  67. package/dialog/Dialog.test.js +331 -18
  68. package/dialog/types.d.ts +1 -14
  69. package/dropdown/Dropdown.js +86 -32
  70. package/dropdown/Dropdown.test.js +211 -104
  71. package/dropdown/DropdownMenu.js +22 -8
  72. package/dropdown/DropdownMenuItem.js +15 -6
  73. package/dropdown/types.d.ts +8 -8
  74. package/file-input/FileInput.js +218 -134
  75. package/file-input/FileInput.test.js +343 -331
  76. package/file-input/FileItem.js +39 -12
  77. package/file-input/types.d.ts +10 -10
  78. package/flex/Flex.js +39 -25
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +74 -9
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +80 -68
  83. package/footer/Footer.stories.tsx +12 -89
  84. package/footer/Footer.test.js +47 -40
  85. package/footer/Icons.js +4 -0
  86. package/footer/types.d.ts +15 -17
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +4 -3
  92. package/header/Header.js +72 -55
  93. package/header/Header.stories.tsx +7 -71
  94. package/header/Header.test.js +26 -13
  95. package/header/Icons.js +4 -0
  96. package/header/types.d.ts +2 -16
  97. package/heading/Heading.js +28 -7
  98. package/heading/Heading.test.js +88 -71
  99. package/heading/types.d.ts +3 -3
  100. package/inset/Inset.js +21 -13
  101. package/inset/Inset.stories.tsx +2 -1
  102. package/inset/types.d.ts +2 -2
  103. package/layout/ApplicationLayout.d.ts +5 -5
  104. package/layout/ApplicationLayout.js +57 -15
  105. package/layout/Icons.js +10 -0
  106. package/layout/SidenavContext.d.ts +1 -1
  107. package/layout/SidenavContext.js +4 -0
  108. package/layout/types.d.ts +5 -6
  109. package/link/Link.js +41 -21
  110. package/link/Link.test.js +42 -26
  111. package/link/types.d.ts +4 -4
  112. package/main.d.ts +2 -1
  113. package/main.js +55 -0
  114. package/nav-tabs/NavTabs.d.ts +2 -2
  115. package/nav-tabs/NavTabs.js +43 -16
  116. package/nav-tabs/NavTabs.stories.tsx +14 -0
  117. package/nav-tabs/NavTabs.test.js +44 -37
  118. package/nav-tabs/Tab.js +71 -45
  119. package/nav-tabs/types.d.ts +10 -11
  120. package/number-input/NumberInput.js +30 -20
  121. package/number-input/NumberInput.test.js +249 -113
  122. package/number-input/NumberInputContext.js +5 -0
  123. package/number-input/numberInputContextTypes.d.ts +1 -1
  124. package/number-input/types.d.ts +4 -4
  125. package/package.json +7 -7
  126. package/paginator/Icons.js +10 -0
  127. package/paginator/Paginator.js +39 -17
  128. package/paginator/Paginator.test.js +156 -104
  129. package/paginator/types.d.ts +1 -1
  130. package/paragraph/Paragraph.d.ts +3 -4
  131. package/paragraph/Paragraph.js +18 -8
  132. package/password-input/PasswordInput.js +51 -22
  133. package/password-input/PasswordInput.test.js +94 -51
  134. package/password-input/types.d.ts +4 -4
  135. package/progress-bar/ProgressBar.d.ts +2 -2
  136. package/progress-bar/ProgressBar.js +39 -14
  137. package/progress-bar/ProgressBar.test.js +53 -36
  138. package/progress-bar/types.d.ts +4 -3
  139. package/quick-nav/QuickNav.js +24 -2
  140. package/quick-nav/types.d.ts +2 -2
  141. package/radio-group/Radio.js +53 -22
  142. package/radio-group/RadioGroup.js +84 -41
  143. package/radio-group/RadioGroup.test.js +288 -186
  144. package/radio-group/types.d.ts +4 -4
  145. package/resultsetTable/Icons.js +3 -0
  146. package/resultsetTable/ResultsetTable.js +56 -21
  147. package/resultsetTable/ResultsetTable.test.js +75 -42
  148. package/resultsetTable/types.d.ts +5 -5
  149. package/select/Icons.js +3 -0
  150. package/select/Listbox.js +35 -10
  151. package/select/Option.js +24 -8
  152. package/select/Select.js +143 -56
  153. package/select/Select.test.js +839 -456
  154. package/select/types.d.ts +12 -12
  155. package/sidenav/Icons.d.ts +7 -0
  156. package/sidenav/Icons.js +51 -0
  157. package/sidenav/Sidenav.d.ts +2 -2
  158. package/sidenav/Sidenav.js +116 -104
  159. package/sidenav/Sidenav.stories.tsx +60 -60
  160. package/sidenav/Sidenav.test.js +10 -3
  161. package/sidenav/types.d.ts +26 -23
  162. package/slider/Slider.js +84 -38
  163. package/slider/Slider.test.js +104 -76
  164. package/slider/types.d.ts +4 -4
  165. package/spinner/Spinner.js +51 -28
  166. package/spinner/Spinner.stories.jsx +28 -28
  167. package/spinner/Spinner.test.js +35 -26
  168. package/spinner/types.d.ts +3 -3
  169. package/switch/Switch.js +66 -24
  170. package/switch/Switch.test.js +97 -52
  171. package/switch/types.d.ts +4 -4
  172. package/table/Table.js +22 -4
  173. package/table/Table.test.js +7 -2
  174. package/table/types.d.ts +3 -3
  175. package/tabs/Tab.js +39 -22
  176. package/tabs/Tabs.js +131 -62
  177. package/tabs/Tabs.test.js +122 -67
  178. package/tabs/types.d.ts +8 -8
  179. package/tag/Tag.js +54 -27
  180. package/tag/Tag.test.js +31 -20
  181. package/tag/types.d.ts +7 -7
  182. package/text-input/Icons.js +3 -0
  183. package/text-input/Suggestion.js +24 -8
  184. package/text-input/Suggestions.js +36 -11
  185. package/text-input/TextInput.js +144 -59
  186. package/text-input/TextInput.stories.tsx +1 -1
  187. package/text-input/TextInput.test.js +858 -539
  188. package/text-input/types.d.ts +9 -9
  189. package/textarea/Textarea.js +73 -38
  190. package/textarea/Textarea.test.js +173 -98
  191. package/textarea/types.d.ts +4 -4
  192. package/toggle-group/ToggleGroup.d.ts +2 -2
  193. package/toggle-group/ToggleGroup.js +59 -21
  194. package/toggle-group/ToggleGroup.test.js +72 -40
  195. package/toggle-group/types.d.ts +11 -11
  196. package/typography/Typography.d.ts +2 -2
  197. package/typography/Typography.js +23 -110
  198. package/typography/Typography.stories.tsx +1 -1
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +1234 -1
  201. package/useTheme.js +6 -0
  202. package/useTranslatedLabels.d.ts +84 -2
  203. package/useTranslatedLabels.js +5 -0
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +47 -13
  209. package/wizard/Wizard.test.js +81 -54
  210. package/wizard/types.d.ts +7 -8
  211. package/card/ice-cream.jpg +0 -0
  212. package/translatedLabelsType.d.ts +0 -82
  213. /package/{translatedLabelsType.js → grid/types.js} +0 -0
@@ -1,25 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
10
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
11
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
12
18
  var _react = _interopRequireWildcard(require("react"));
19
+
13
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
14
- var _utils = require("../common/utils.js");
21
+
22
+ var _utils = require("../common/utils");
23
+
15
24
  var _variables = require("../common/variables");
25
+
16
26
  var _useTheme = _interopRequireDefault(require("../useTheme"));
27
+
17
28
  var _BackgroundColorContext = require("../BackgroundColorContext");
18
- var _Typography = _interopRequireDefault(require("../typography/Typography"));
29
+
30
+ var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
31
+
19
32
  var _uuid = require("uuid");
33
+
20
34
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
35
+
21
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); }
37
+
22
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
23
40
  var expandLess = /*#__PURE__*/_react["default"].createElement("svg", {
24
41
  xmlns: "http://www.w3.org/2000/svg",
25
42
  height: "24",
@@ -28,6 +45,7 @@ var expandLess = /*#__PURE__*/_react["default"].createElement("svg", {
28
45
  }, /*#__PURE__*/_react["default"].createElement("path", {
29
46
  d: "m7.4 15.375-1.4-1.4 6-6 6 6-1.4 1.4-4.6-4.6Z"
30
47
  }));
48
+
31
49
  var expandMore = /*#__PURE__*/_react["default"].createElement("svg", {
32
50
  xmlns: "http://www.w3.org/2000/svg",
33
51
  height: "24",
@@ -36,42 +54,47 @@ var expandMore = /*#__PURE__*/_react["default"].createElement("svg", {
36
54
  }, /*#__PURE__*/_react["default"].createElement("path", {
37
55
  d: "m12 15.375-6-6 1.4-1.4 4.6 4.6 4.6-4.6 1.4 1.4Z"
38
56
  }));
57
+
39
58
  var DxcAccordion = function DxcAccordion(_ref) {
40
59
  var _ref$label = _ref.label,
41
- label = _ref$label === void 0 ? "" : _ref$label,
42
- defaultIsExpanded = _ref.defaultIsExpanded,
43
- isExpanded = _ref.isExpanded,
44
- icon = _ref.icon,
45
- _ref$assistiveText = _ref.assistiveText,
46
- assistiveText = _ref$assistiveText === void 0 ? "" : _ref$assistiveText,
47
- _ref$disabled = _ref.disabled,
48
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
49
- onChange = _ref.onChange,
50
- children = _ref.children,
51
- margin = _ref.margin,
52
- padding = _ref.padding,
53
- _ref$tabIndex = _ref.tabIndex,
54
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
60
+ label = _ref$label === void 0 ? "" : _ref$label,
61
+ defaultIsExpanded = _ref.defaultIsExpanded,
62
+ isExpanded = _ref.isExpanded,
63
+ icon = _ref.icon,
64
+ _ref$assistiveText = _ref.assistiveText,
65
+ assistiveText = _ref$assistiveText === void 0 ? "" : _ref$assistiveText,
66
+ _ref$disabled = _ref.disabled,
67
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
68
+ onChange = _ref.onChange,
69
+ children = _ref.children,
70
+ margin = _ref.margin,
71
+ _ref$tabIndex = _ref.tabIndex,
72
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
73
+
55
74
  var _useState = (0, _react.useState)((0, _uuid.v4)()),
56
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
57
- id = _useState2[0];
75
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
76
+ id = _useState2[0];
77
+
58
78
  var _useState3 = (0, _react.useState)(defaultIsExpanded !== null && defaultIsExpanded !== void 0 ? defaultIsExpanded : false),
59
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
60
- innerIsExpanded = _useState4[0],
61
- setInnerIsExpanded = _useState4[1];
79
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
80
+ innerIsExpanded = _useState4[0],
81
+ setInnerIsExpanded = _useState4[1];
82
+
62
83
  var colorsTheme = (0, _useTheme["default"])();
84
+
63
85
  var handleAccordionState = function handleAccordionState() {
64
86
  var _isExpanded;
87
+
65
88
  isExpanded !== null && isExpanded !== void 0 ? isExpanded : setInnerIsExpanded(function (innerIsExpanded) {
66
89
  return !innerIsExpanded;
67
90
  });
68
91
  onChange === null || onChange === void 0 ? void 0 : onChange((_isExpanded = !isExpanded) !== null && _isExpanded !== void 0 ? _isExpanded : !innerIsExpanded);
69
92
  };
93
+
70
94
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
71
- theme: colorsTheme["accordion"]
95
+ theme: colorsTheme.accordion
72
96
  }, /*#__PURE__*/_react["default"].createElement(AccordionContainer, {
73
97
  isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
74
- padding: padding,
75
98
  margin: margin
76
99
  }, /*#__PURE__*/_react["default"].createElement(AccordionHeader, null, /*#__PURE__*/_react["default"].createElement(AccordionTrigger, {
77
100
  id: "accordion-".concat(id),
@@ -81,43 +104,40 @@ var DxcAccordion = function DxcAccordion(_ref) {
81
104
  "aria-expanded": isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded,
82
105
  "aria-controls": "accordion-panel-".concat(id),
83
106
  isExpanded: isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded
84
- }, /*#__PURE__*/_react["default"].createElement(AccordionInfo, {
85
- disabled: disabled
86
- }, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
107
+ }, /*#__PURE__*/_react["default"].createElement(AccordionInfo, null, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
87
108
  disabled: disabled
88
109
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
89
110
  src: icon
90
- }) : icon), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
91
- color: disabled ? colorsTheme["accordion"].disabledTitleLabelFontColor : colorsTheme["accordion"].titleLabelFontColor,
92
- fontFamily: colorsTheme["accordion"].titleLabelFontFamily,
93
- fontSize: colorsTheme["accordion"].titleLabelFontSize,
94
- fontStyle: colorsTheme["accordion"].titleLabelFontStyle,
95
- fontWeight: colorsTheme["accordion"].titleLabelFontWeight,
111
+ }) : icon), /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
112
+ color: disabled ? colorsTheme.accordion.disabledTitleLabelFontColor : colorsTheme.accordion.titleLabelFontColor,
113
+ fontFamily: colorsTheme.accordion.titleLabelFontFamily,
114
+ fontSize: colorsTheme.accordion.titleLabelFontSize,
115
+ fontStyle: colorsTheme.accordion.titleLabelFontStyle,
116
+ fontWeight: colorsTheme.accordion.titleLabelFontWeight,
96
117
  lineHeight: "1.5em"
97
- }, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
98
- disabled: disabled
99
- }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
100
- color: disabled ? colorsTheme["accordion"].disabledAssistiveTextFontColor : colorsTheme["accordion"].assistiveTextFontColor,
101
- fontFamily: colorsTheme["accordion"].assistiveTextFontFamily,
102
- fontSize: colorsTheme["accordion"].assistiveTextFontSize,
103
- fontStyle: colorsTheme["accordion"].assistiveTextFontStyle,
104
- fontWeight: colorsTheme["accordion"].assistiveTextFontWeight,
105
- letterSpacing: colorsTheme["accordion"].assistiveTextLetterSpacing,
118
+ }, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, null, /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
119
+ color: disabled ? colorsTheme.accordion.disabledAssistiveTextFontColor : colorsTheme.accordion.assistiveTextFontColor,
120
+ fontFamily: colorsTheme.accordion.assistiveTextFontFamily,
121
+ fontSize: colorsTheme.accordion.assistiveTextFontSize,
122
+ fontStyle: colorsTheme.accordion.assistiveTextFontStyle,
123
+ fontWeight: colorsTheme.accordion.assistiveTextFontWeight,
124
+ letterSpacing: colorsTheme.accordion.assistiveTextLetterSpacing,
106
125
  lineHeight: "1.5em"
107
126
  }, assistiveText))), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
108
127
  disabled: disabled
109
128
  }, (isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded) ? expandLess : expandMore))), (isExpanded !== null && isExpanded !== void 0 ? isExpanded : innerIsExpanded) && /*#__PURE__*/_react["default"].createElement(AccordionPanel, {
110
129
  id: "accordion-panel-".concat(id),
111
130
  role: "region",
112
- "aria-labelledby": "accordion-".concat(id),
113
- padding: padding
131
+ "aria-labelledby": "accordion-".concat(id)
114
132
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
115
- color: colorsTheme["accordion"].backgroundColor
133
+ color: colorsTheme.accordion.backgroundColor
116
134
  }, children))));
117
135
  };
136
+
118
137
  var calculateWidth = function calculateWidth(margin) {
119
138
  return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
120
139
  };
140
+
121
141
  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) {
122
142
  return props.theme.backgroundColor;
123
143
  }, function (props) {
@@ -139,7 +159,9 @@ var AccordionContainer = _styledComponents["default"].div(_templateObject || (_t
139
159
  }, function (props) {
140
160
  return calculateWidth(props.margin);
141
161
  });
162
+
142
163
  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"])));
164
+
143
165
  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) {
144
166
  return props.theme.borderRadius;
145
167
  }, function (props) {
@@ -153,7 +175,9 @@ var AccordionTrigger = _styledComponents["default"].button(_templateObject3 || (
153
175
  }, function (props) {
154
176
  return "".concat(props.theme.hoverBackgroundColor);
155
177
  });
178
+
156
179
  var AccordionInfo = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: space-between;\n width: 100%;\n"])));
180
+
157
181
  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) {
158
182
  return props.theme.titleLabelPaddingTop;
159
183
  }, function (props) {
@@ -163,6 +187,7 @@ var AccordionLabel = _styledComponents["default"].span(_templateObject5 || (_tem
163
187
  }, function (props) {
164
188
  return props.theme.titleLabelPaddingLeft;
165
189
  });
190
+
166
191
  var IconContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n svg,\n img {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
167
192
  return props.theme.iconMarginLeft;
168
193
  }, function (props) {
@@ -174,6 +199,7 @@ var IconContainer = _styledComponents["default"].span(_templateObject6 || (_temp
174
199
  }, function (props) {
175
200
  return props.theme.iconSize;
176
201
  });
202
+
177
203
  var AccordionAssistiveText = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: ", ";\n padding-left: ", ";\n padding-right: ", ";\n"])), function (props) {
178
204
  return props.theme.assistiveTextMinWidth;
179
205
  }, function (props) {
@@ -181,23 +207,16 @@ var AccordionAssistiveText = _styledComponents["default"].span(_templateObject7
181
207
  }, function (props) {
182
208
  return props.theme.assistiveTextPaddingRight;
183
209
  });
210
+
184
211
  var CollapseIndicator = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n color: ", ";\n"])), function (props) {
185
212
  return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
186
213
  });
187
- var AccordionPanel = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
214
+
215
+ var AccordionPanel = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n"])), function (props) {
188
216
  return props.theme.borderRadius;
189
217
  }, function (props) {
190
218
  return props.theme.borderRadius;
191
- }, function (props) {
192
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
193
- }, function (props) {
194
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
195
- }, function (props) {
196
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
197
- }, function (props) {
198
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
199
- }, function (props) {
200
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
201
219
  });
220
+
202
221
  var _default = DxcAccordion;
203
222
  exports["default"] = _default;
@@ -131,7 +131,7 @@ export const Chromatic = () => (
131
131
  <DxcAccordion
132
132
  label="Accordion"
133
133
  assistiveText="Assistive text"
134
- icon="https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png"
134
+ icon="https://www.freepnglogos.com/uploads/facebook-logo-design-1.png"
135
135
  >
136
136
  <div>
137
137
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
@@ -179,112 +179,14 @@ export const Chromatic = () => (
179
179
  <ExampleContainer>
180
180
  <Title title="Background color provider over accordion content" theme="light" level={4} />
181
181
  <HalstackProvider advancedTheme={advancedTheme}>
182
- <DxcAccordion
183
- label="Dark Accordion"
184
- defaultIsExpanded
185
- assistiveText="Assistive text"
186
- icon={folderIcon}
187
- padding="medium"
188
- >
189
- <div style={{ display: "flex", flexDirection: "column", gap: "36px" }}>
182
+ <DxcAccordion label="Dark Accordion" defaultIsExpanded assistiveText="Assistive text" icon={folderIcon}>
183
+ <div style={{ display: "flex", flexDirection: "column", gap: "36px", padding: "36px" }}>
190
184
  <DxcTextInput label="Label" helperText="HelperText" placeholder="Placeholder" size="fillParent" />
191
185
  <DxcButton label="Submit" size="medium" />
192
186
  </div>
193
187
  </DxcAccordion>
194
188
  </HalstackProvider>
195
189
  </ExampleContainer>
196
- <Title title="Paddings" theme="light" level={2} />
197
- <ExampleContainer>
198
- <Title title="Xxsmall padding" theme="light" level={4} />
199
- <DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
200
- <div>
201
- <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
202
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
203
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
204
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
205
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
206
- est laborum.
207
- </div>
208
- </DxcAccordion>
209
- </ExampleContainer>
210
- <ExampleContainer>
211
- <Title title="Xsmall padding" theme="light" level={4} />
212
- <DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
213
- <div>
214
- <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
215
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
216
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
217
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
218
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
219
- est laborum.
220
- </div>
221
- </DxcAccordion>
222
- </ExampleContainer>
223
- <ExampleContainer>
224
- <Title title="Small padding" theme="light" level={4} />
225
- <DxcAccordion label="Small padding" defaultIsExpanded padding="small">
226
- <div>
227
- <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
228
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
229
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
230
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
231
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
232
- est laborum.
233
- </div>
234
- </DxcAccordion>
235
- </ExampleContainer>
236
- <ExampleContainer>
237
- <Title title="Medium padding" theme="light" level={4} />
238
- <DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
239
- <div>
240
- <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
241
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
242
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
243
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
244
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
245
- est laborum.
246
- </div>
247
- </DxcAccordion>
248
- </ExampleContainer>
249
- <ExampleContainer>
250
- <Title title="Large padding" theme="light" level={4} />
251
- <DxcAccordion label="Large padding" defaultIsExpanded padding="large">
252
- <div>
253
- <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
254
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
255
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
256
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
257
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
258
- est laborum.
259
- </div>
260
- </DxcAccordion>
261
- </ExampleContainer>
262
- <ExampleContainer>
263
- <Title title="Xlarge padding" theme="light" level={4} />
264
- <DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
265
- <div>
266
- <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
267
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
268
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
269
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
270
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
271
- est laborum.
272
- </div>
273
- </DxcAccordion>
274
- </ExampleContainer>
275
- <ExampleContainer>
276
- <Title title="Xxlarge padding" theme="light" level={4} />
277
- <DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
278
- <div>
279
- <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
280
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
281
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
282
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
283
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
284
- est laborum.
285
- </div>
286
- </DxcAccordion>
287
- </ExampleContainer>
288
190
  <Title title="Margins" theme="light" level={2} />
289
191
  <ExampleContainer>
290
192
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -1,16 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _react = _interopRequireDefault(require("react"));
6
+
5
7
  var _react2 = require("@testing-library/react");
6
- var _Accordion = _interopRequireDefault(require("./Accordion"));
8
+
9
+ var _Accordion = _interopRequireDefault(require("./Accordion.tsx"));
10
+
7
11
  describe("Accordion component tests", function () {
8
12
  test("Renders with correct aria accessibility attributes", function () {
9
13
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
10
- label: "Accordion",
11
- defaultIsExpanded: true
12
- }, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
13
- getByRole = _render.getByRole;
14
+ label: "Accordion",
15
+ defaultIsExpanded: true
16
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
17
+ getByRole = _render.getByRole;
18
+
14
19
  var accordion = getByRole("button");
15
20
  var panel = getByRole("region");
16
21
  expect(accordion.getAttribute("aria-controls")).toBe(panel.id);
@@ -18,36 +23,46 @@ describe("Accordion component tests", function () {
18
23
  });
19
24
  test("Renders expanded by default when it is uncontrolled", function () {
20
25
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
21
- label: "Accordion",
22
- defaultIsExpanded: true
23
- }, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
24
- getByRole = _render2.getByRole;
26
+ label: "Accordion",
27
+ defaultIsExpanded: true
28
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
29
+ getByRole = _render2.getByRole;
30
+
25
31
  var accordion = getByRole("button");
26
32
  expect(accordion.getAttribute("aria-expanded")).toBe("true");
27
33
  });
28
34
  test("Calls correct function on click", function () {
29
35
  var onChange = jest.fn();
36
+
30
37
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
31
- label: "Accordion",
32
- onChange: onChange
33
- })),
34
- getByText = _render3.getByText;
38
+ label: "Accordion",
39
+ onChange: onChange
40
+ })),
41
+ getByText = _render3.getByText;
42
+
35
43
  _react2.fireEvent.click(getByText("Accordion"));
44
+
36
45
  expect(onChange).toHaveBeenCalled();
37
46
  });
38
47
  test("Controlled accordion", function () {
39
48
  var onChange = jest.fn();
49
+
40
50
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
41
- label: "Accordion",
42
- onChange: onChange,
43
- isExpanded: true
44
- })),
45
- getByText = _render4.getByText,
46
- getByRole = _render4.getByRole;
51
+ label: "Accordion",
52
+ onChange: onChange,
53
+ isExpanded: true
54
+ })),
55
+ getByText = _render4.getByText,
56
+ getByRole = _render4.getByRole;
57
+
47
58
  expect(getByRole("button").getAttribute("aria-expanded")).toBe("true");
59
+
48
60
  _react2.fireEvent.click(getByText("Accordion"));
61
+
49
62
  _react2.fireEvent.click(getByText("Accordion"));
63
+
50
64
  _react2.fireEvent.click(getByText("Accordion"));
65
+
51
66
  expect(onChange).toHaveBeenCalledTimes(3);
52
67
  expect(onChange.mock.calls[0][0]).toBe(false);
53
68
  expect(onChange.mock.calls[1][0]).toBe(false);
@@ -1,19 +1,13 @@
1
1
  /// <reference types="react" />
2
- export type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- export type Margin = {
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- export type Padding = {
10
- top?: Space;
11
- bottom?: Space;
12
- left?: Space;
13
- right?: Space;
14
- };
15
- type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
16
- type Props = {
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ declare type Props = {
17
11
  /**
18
12
  * The panel label.
19
13
  */
@@ -55,12 +49,6 @@ type Props = {
55
49
  * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
56
50
  */
57
51
  margin?: Space | Margin;
58
- /**
59
- * @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
60
- * Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
61
- * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
62
- */
63
- padding?: Space | Padding;
64
52
  /**
65
53
  * Value of the tabindex.
66
54
  */
@@ -1,7 +1,8 @@
1
- /// <reference types="react" />
2
- import AccordionGroupPropsType, { AccordionPropsType } from "./types";
1
+ import React from "react";
2
+ import AccordionGroupPropsType, { AccordionGroupAccordionContextProps } from "./types";
3
+ export declare const AccordionGroupAccordionContext: React.Context<AccordionGroupAccordionContextProps>;
3
4
  declare const DxcAccordionGroup: {
4
5
  ({ defaultIndexActive, indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
5
- Accordion: ({ ...childProps }: AccordionPropsType) => JSX.Element;
6
+ Accordion: ({ ...childProps }: import("./types").AccordionPropsType) => JSX.Element;
6
7
  };
7
8
  export default DxcAccordionGroup;