@dxc-technology/halstack-react 0.0.0-c593452 → 0.0.0-c680086

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 (237) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/ThemeContext.d.ts +15 -0
  4. package/ThemeContext.js +5 -8
  5. package/V3Select/V3Select.js +2 -2
  6. package/V3Textarea/V3Textarea.js +2 -2
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +11 -22
  9. package/accordion/Accordion.stories.tsx +307 -0
  10. package/accordion/types.d.ts +4 -8
  11. package/accordion-group/AccordionGroup.js +2 -2
  12. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  13. package/accordion-group/types.d.ts +4 -8
  14. package/alert/Alert.js +2 -2
  15. package/alert/Alert.stories.tsx +170 -0
  16. package/alert/types.d.ts +1 -1
  17. package/badge/Badge.js +1 -1
  18. package/bleed/Bleed.d.ts +3 -0
  19. package/bleed/Bleed.js +84 -0
  20. package/bleed/Bleed.stories.tsx +342 -0
  21. package/bleed/types.d.ts +13 -0
  22. package/bleed/types.js +5 -0
  23. package/box/Box.d.ts +4 -0
  24. package/box/Box.js +6 -32
  25. package/box/Box.stories.tsx +132 -0
  26. package/box/types.d.ts +43 -0
  27. package/box/types.js +5 -0
  28. package/button/Button.d.ts +1 -1
  29. package/button/Button.js +15 -26
  30. package/button/Button.stories.tsx +223 -242
  31. package/button/types.d.ts +9 -13
  32. package/card/Card.js +5 -6
  33. package/card/Card.stories.tsx +201 -0
  34. package/card/ice-cream.jpg +0 -0
  35. package/card/types.d.ts +4 -6
  36. package/checkbox/Checkbox.js +2 -2
  37. package/checkbox/Checkbox.stories.tsx +192 -0
  38. package/checkbox/types.d.ts +2 -2
  39. package/chip/Chip.d.ts +4 -0
  40. package/chip/Chip.js +16 -76
  41. package/chip/Chip.stories.tsx +119 -0
  42. package/chip/types.d.ts +45 -0
  43. package/chip/types.js +5 -0
  44. package/common/variables.js +86 -44
  45. package/date/Date.js +1 -1
  46. package/date-input/DateInput.js +10 -13
  47. package/date-input/DateInput.stories.tsx +138 -0
  48. package/dialog/Dialog.d.ts +4 -0
  49. package/dialog/Dialog.js +8 -26
  50. package/dialog/Dialog.stories.tsx +212 -0
  51. package/dialog/types.d.ts +43 -0
  52. package/dialog/types.js +5 -0
  53. package/dropdown/Dropdown.d.ts +1 -1
  54. package/dropdown/Dropdown.js +13 -35
  55. package/dropdown/Dropdown.stories.tsx +249 -0
  56. package/dropdown/types.d.ts +6 -15
  57. package/file-input/FileInput.d.ts +4 -0
  58. package/file-input/FileInput.js +167 -109
  59. package/file-input/FileInput.stories.tsx +507 -0
  60. package/file-input/FileItem.d.ts +14 -0
  61. package/file-input/FileItem.js +12 -21
  62. package/file-input/types.d.ts +112 -0
  63. package/file-input/types.js +5 -0
  64. package/footer/Footer.d.ts +4 -0
  65. package/footer/Footer.js +31 -70
  66. package/footer/Footer.stories.tsx +130 -0
  67. package/footer/Icons.d.ts +2 -0
  68. package/footer/Icons.js +3 -3
  69. package/footer/types.d.ts +65 -0
  70. package/footer/types.js +5 -0
  71. package/header/Header.d.ts +7 -0
  72. package/header/Header.js +28 -30
  73. package/header/Header.stories.tsx +162 -0
  74. package/header/Icons.d.ts +2 -0
  75. package/header/Icons.js +2 -27
  76. package/header/types.d.ts +47 -0
  77. package/header/types.js +5 -0
  78. package/heading/Heading.d.ts +4 -0
  79. package/heading/Heading.js +7 -24
  80. package/heading/Heading.stories.tsx +54 -0
  81. package/heading/types.d.ts +33 -0
  82. package/heading/types.js +5 -0
  83. package/input-text/InputText.js +2 -2
  84. package/inset/Inset.d.ts +3 -0
  85. package/inset/Inset.js +84 -0
  86. package/inset/Inset.stories.tsx +229 -0
  87. package/inset/types.d.ts +13 -0
  88. package/inset/types.js +5 -0
  89. package/layout/ApplicationLayout.d.ts +10 -0
  90. package/layout/ApplicationLayout.js +9 -19
  91. package/layout/ApplicationLayout.stories.tsx +171 -0
  92. package/layout/types.d.ts +57 -0
  93. package/layout/types.js +5 -0
  94. package/link/Link.d.ts +3 -0
  95. package/link/Link.js +10 -40
  96. package/link/Link.stories.tsx +151 -0
  97. package/link/types.d.ts +70 -0
  98. package/link/types.js +5 -0
  99. package/list/List.d.ts +4 -0
  100. package/list/List.js +47 -0
  101. package/list/List.stories.tsx +95 -0
  102. package/list/types.d.ts +7 -0
  103. package/list/types.js +5 -0
  104. package/main.d.ts +8 -3
  105. package/main.js +42 -2
  106. package/number-input/NumberInput.d.ts +4 -0
  107. package/number-input/NumberInput.js +5 -50
  108. package/number-input/NumberInput.stories.tsx +115 -0
  109. package/number-input/NumberInputContext.d.ts +4 -0
  110. package/number-input/NumberInputContext.js +5 -2
  111. package/number-input/numberInputContextTypes.d.ts +19 -0
  112. package/number-input/numberInputContextTypes.js +5 -0
  113. package/number-input/types.d.ts +117 -0
  114. package/number-input/types.js +5 -0
  115. package/package.json +4 -2
  116. package/paginator/Paginator.js +2 -8
  117. package/paginator/Paginator.stories.tsx +63 -0
  118. package/password-input/PasswordInput.d.ts +4 -0
  119. package/password-input/PasswordInput.js +19 -55
  120. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +4 -4
  121. package/password-input/types.d.ts +107 -0
  122. package/password-input/types.js +5 -0
  123. package/progress-bar/ProgressBar.js +5 -5
  124. package/progress-bar/ProgressBar.stories.jsx +58 -0
  125. package/radio/Radio.js +2 -2
  126. package/radio/Radio.stories.tsx +192 -0
  127. package/radio/types.d.ts +2 -2
  128. package/radio-group/Radio.d.ts +4 -0
  129. package/radio-group/Radio.js +140 -0
  130. package/radio-group/RadioGroup.d.ts +4 -0
  131. package/radio-group/RadioGroup.js +273 -0
  132. package/radio-group/RadioGroup.stories.tsx +79 -0
  133. package/radio-group/RadioGroup.test.js +248 -0
  134. package/radio-group/types.d.ts +36 -0
  135. package/radio-group/types.js +5 -0
  136. package/resultsetTable/ResultsetTable.d.ts +4 -0
  137. package/resultsetTable/ResultsetTable.js +9 -29
  138. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  139. package/resultsetTable/types.d.ts +67 -0
  140. package/resultsetTable/types.js +5 -0
  141. package/row/Row.d.ts +3 -0
  142. package/row/Row.js +127 -0
  143. package/row/Row.stories.tsx +237 -0
  144. package/row/types.d.ts +10 -0
  145. package/row/types.js +5 -0
  146. package/select/Select.d.ts +4 -0
  147. package/select/Select.js +20 -22
  148. package/select/Select.stories.tsx +572 -0
  149. package/select/types.d.ts +170 -0
  150. package/select/types.js +5 -0
  151. package/sidenav/Sidenav.d.ts +9 -0
  152. package/sidenav/Sidenav.js +6 -15
  153. package/sidenav/Sidenav.stories.tsx +182 -0
  154. package/sidenav/types.d.ts +50 -0
  155. package/sidenav/types.js +5 -0
  156. package/slider/Slider.d.ts +1 -1
  157. package/slider/Slider.js +43 -32
  158. package/slider/Slider.stories.tsx +177 -0
  159. package/slider/types.d.ts +2 -7
  160. package/spinner/Spinner.d.ts +4 -0
  161. package/spinner/Spinner.js +8 -25
  162. package/spinner/Spinner.stories.jsx +103 -0
  163. package/spinner/types.d.ts +32 -0
  164. package/spinner/types.js +5 -0
  165. package/stack/Stack.d.ts +3 -0
  166. package/stack/Stack.js +97 -0
  167. package/stack/Stack.stories.tsx +164 -0
  168. package/stack/types.d.ts +9 -0
  169. package/stack/types.js +5 -0
  170. package/switch/Switch.js +4 -4
  171. package/switch/Switch.stories.tsx +160 -0
  172. package/table/Table.d.ts +4 -0
  173. package/table/Table.js +3 -3
  174. package/table/Table.stories.jsx +277 -0
  175. package/table/types.d.ts +21 -0
  176. package/table/types.js +5 -0
  177. package/tabs/Tabs.js +11 -9
  178. package/tabs/Tabs.stories.tsx +120 -0
  179. package/tabs/types.d.ts +25 -18
  180. package/tag/Tag.d.ts +4 -0
  181. package/tag/Tag.js +26 -46
  182. package/tag/Tag.stories.tsx +138 -0
  183. package/tag/types.d.ts +69 -0
  184. package/tag/types.js +5 -0
  185. package/text/Text.d.ts +7 -0
  186. package/text/Text.js +30 -0
  187. package/text/Text.stories.tsx +19 -0
  188. package/text-input/TextInput.d.ts +4 -0
  189. package/text-input/TextInput.js +54 -85
  190. package/text-input/TextInput.stories.tsx +456 -0
  191. package/text-input/types.d.ts +159 -0
  192. package/text-input/types.js +5 -0
  193. package/textarea/Textarea.d.ts +4 -0
  194. package/textarea/Textarea.js +27 -60
  195. package/textarea/Textarea.stories.jsx +4 -3
  196. package/textarea/types.d.ts +130 -0
  197. package/textarea/types.js +5 -0
  198. package/toggle/Toggle.js +1 -1
  199. package/toggle-group/ToggleGroup.d.ts +4 -0
  200. package/toggle-group/ToggleGroup.js +16 -45
  201. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  202. package/toggle-group/types.d.ts +97 -0
  203. package/toggle-group/types.js +5 -0
  204. package/upload/buttons-upload/ButtonsUpload.js +2 -2
  205. package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
  206. package/upload/file-upload/FileToUpload.js +1 -1
  207. package/upload/files-upload/FilesToUpload.js +1 -1
  208. package/upload/transaction/Transaction.js +2 -2
  209. package/upload/transactions/Transactions.js +1 -1
  210. package/useTheme.d.ts +2 -0
  211. package/useTheme.js +1 -1
  212. package/wizard/Wizard.d.ts +4 -0
  213. package/wizard/Wizard.js +69 -59
  214. package/wizard/Wizard.stories.tsx +224 -0
  215. package/wizard/types.d.ts +60 -0
  216. package/wizard/types.js +5 -0
  217. package/box/index.d.ts +0 -25
  218. package/chip/index.d.ts +0 -22
  219. package/dialog/index.d.ts +0 -18
  220. package/file-input/index.d.ts +0 -81
  221. package/footer/index.d.ts +0 -25
  222. package/header/index.d.ts +0 -25
  223. package/heading/index.d.ts +0 -17
  224. package/link/index.d.ts +0 -23
  225. package/number-input/index.d.ts +0 -113
  226. package/password-input/index.d.ts +0 -94
  227. package/resultsetTable/index.d.ts +0 -19
  228. package/select/index.d.ts +0 -131
  229. package/sidenav/index.d.ts +0 -13
  230. package/spinner/index.d.ts +0 -17
  231. package/table/index.d.ts +0 -13
  232. package/tag/index.d.ts +0 -24
  233. package/text-input/index.d.ts +0 -135
  234. package/textarea/index.d.ts +0 -117
  235. package/toggle-group/index.d.ts +0 -21
  236. package/wizard/Icons.js +0 -65
  237. package/wizard/index.d.ts +0 -18
package/header/Header.js CHANGED
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -23,17 +21,15 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
22
  var _AppBar = _interopRequireDefault(require("@material-ui/core/AppBar"));
25
23
 
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
24
  var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
29
25
 
30
26
  var _Icons = require("./Icons");
31
27
 
32
28
  var _variables = require("../common/variables.js");
33
29
 
34
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
30
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
35
31
 
36
- var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext.js"));
32
+ var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext"));
37
33
 
38
34
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
39
35
 
@@ -41,6 +37,27 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
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 closeIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
+ xmlns: "http://www.w3.org/2000/svg",
42
+ height: "24",
43
+ viewBox: "0 0 24 24",
44
+ width: "24"
45
+ }, /*#__PURE__*/_react["default"].createElement("path", {
46
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
47
+ }), /*#__PURE__*/_react["default"].createElement("path", {
48
+ d: "M0 0h24v24H0z",
49
+ fill: "none"
50
+ }));
51
+
52
+ var hamburgerIcon = /*#__PURE__*/_react["default"].createElement("svg", {
53
+ xmlns: "http://www.w3.org/2000/svg",
54
+ viewBox: "0 0 24 24",
55
+ width: "24",
56
+ height: "24"
57
+ }, /*#__PURE__*/_react["default"].createElement("path", {
58
+ d: "M3,8H21a1,1,0,0,0,0-2H3A1,1,0,0,0,3,8Zm18,8H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Zm0-5H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z"
59
+ }));
60
+
44
61
  var Dropdown = function Dropdown(props) {
45
62
  return /*#__PURE__*/_react["default"].createElement(HeaderDropdown, null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], props));
46
63
  };
@@ -65,9 +82,9 @@ var getLogoElement = function getLogoElement(themeInput) {
65
82
  var DxcHeader = function DxcHeader(_ref) {
66
83
  var _ref$underlined = _ref.underlined,
67
84
  underlined = _ref$underlined === void 0 ? false : _ref$underlined,
68
- onClick = _ref.onClick,
69
85
  content = _ref.content,
70
86
  responsiveContent = _ref.responsiveContent,
87
+ onClick = _ref.onClick,
71
88
  margin = _ref.margin,
72
89
  padding = _ref.padding,
73
90
  _ref$tabIndex = _ref.tabIndex,
@@ -80,7 +97,7 @@ var DxcHeader = function DxcHeader(_ref) {
80
97
  refSize = _useState2[0],
81
98
  setRefSize = _useState2[1];
82
99
 
83
- var _useState3 = (0, _react.useState)(),
100
+ var _useState3 = (0, _react.useState)(false),
84
101
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
85
102
  isResponsive = _useState4[0],
86
103
  setIsResponsive = _useState4[1];
@@ -158,16 +175,16 @@ var DxcHeader = function DxcHeader(_ref) {
158
175
  tabIndex: tabIndex,
159
176
  underlined: underlined,
160
177
  onClick: handleMenu
161
- }, _Icons.hamburgerIcon, /*#__PURE__*/_react["default"].createElement(HamburguerTitle, null, "Menu"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
178
+ }, hamburgerIcon, /*#__PURE__*/_react["default"].createElement(HamburguerTitle, null, "Menu"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
162
179
  hasVisibility: isMenuVisible,
163
180
  refSize: refSize
164
181
  }, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
165
182
  color: colorsTheme.header.menuBackgroundColor
166
- }, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null, responsiveContent(handleMenu))), /*#__PURE__*/_react["default"].createElement(CloseContainer, {
183
+ }, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null)), /*#__PURE__*/_react["default"].createElement(CloseContainer, {
167
184
  tabIndex: tabIndex,
168
185
  onClick: handleMenu,
169
186
  className: "closeIcon"
170
- }, _Icons.closeIcon)), /*#__PURE__*/_react["default"].createElement(Overlay, {
187
+ }, closeIcon)), /*#__PURE__*/_react["default"].createElement(Overlay, {
171
188
  onClick: handleMenu,
172
189
  hasVisibility: isMenuVisible,
173
190
  refSize: refSize
@@ -303,24 +320,5 @@ var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateOb
303
320
  return props.theme.overlayZindex;
304
321
  });
305
322
 
306
- DxcHeader.propTypes = {
307
- underlined: _propTypes["default"].bool,
308
- onClick: _propTypes["default"].func,
309
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
310
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
311
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
312
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
313
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
314
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
315
- padding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
316
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
317
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
318
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
319
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
320
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
321
- content: _propTypes["default"].object,
322
- responsiveContent: _propTypes["default"].func,
323
- tabIndex: _propTypes["default"].number
324
- };
325
323
  var _default = DxcHeader;
326
324
  exports["default"] = _default;
@@ -0,0 +1,162 @@
1
+ import React from "react";
2
+ import DxcHeader from "./Header";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { userEvent, waitFor, within } from "@storybook/testing-library";
6
+
7
+ export default {
8
+ title: "Header",
9
+ component: DxcHeader,
10
+ };
11
+
12
+ const options: any = [
13
+ {
14
+ value: 1,
15
+ label: "Amazon",
16
+ },
17
+ ];
18
+
19
+ export const Chromatic = () => (
20
+ <>
21
+ <ExampleContainer>
22
+ <Title title="Default with dropdown" theme="light" level={4} />
23
+ <DxcHeader content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />} />
24
+ </ExampleContainer>
25
+ <ExampleContainer>
26
+ <Title title="Underlined with text" theme="light" level={4} />
27
+ <DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
28
+ </ExampleContainer>
29
+ <ExampleContainer>
30
+ <Title title="Responsive" theme="light" level={4} />
31
+ <div style={{ width: "400px" }}>
32
+ <DxcHeader
33
+ responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
34
+ underlined
35
+ />
36
+ </div>
37
+ </ExampleContainer>
38
+ <Title title="Margins" theme="light" level={2} />
39
+ <ExampleContainer>
40
+ <Title title="Xxsmall margin" theme="light" level={4} />
41
+ <DxcHeader underlined margin="xxsmall" />
42
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
43
+ </ExampleContainer>
44
+ <ExampleContainer>
45
+ <Title title="Xsmall margin" theme="light" level={4} />
46
+ <DxcHeader underlined margin="xsmall" />
47
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
48
+ </ExampleContainer>
49
+ <ExampleContainer>
50
+ <Title title="Small margin" theme="light" level={4} />
51
+ <DxcHeader underlined margin="small" />
52
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
53
+ </ExampleContainer>
54
+ <ExampleContainer>
55
+ <Title title="Medium margin" theme="light" level={4} />
56
+ <DxcHeader underlined margin="medium" />
57
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
58
+ </ExampleContainer>
59
+ <ExampleContainer>
60
+ <Title title="Large margin" theme="light" level={4} />
61
+ <DxcHeader underlined margin="large" />
62
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
63
+ </ExampleContainer>
64
+ <ExampleContainer>
65
+ <Title title="Xlarge margin" theme="light" level={4} />
66
+ <DxcHeader underlined margin="xlarge" />
67
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
68
+ </ExampleContainer>
69
+ <ExampleContainer>
70
+ <Title title="Xxlarge margin" theme="light" level={4} />
71
+ <DxcHeader underlined margin="xxlarge" />
72
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
73
+ </ExampleContainer>
74
+
75
+ <Title title="Paddings" theme="light" level={2} />
76
+ <ExampleContainer>
77
+ <Title title="Xxsmall padding" theme="light" level={4} />
78
+ <DxcHeader underlined padding="xxsmall" />
79
+ </ExampleContainer>
80
+ <ExampleContainer>
81
+ <Title title="Xsmall padding" theme="light" level={4} />
82
+ <DxcHeader underlined padding="xsmall" />
83
+ </ExampleContainer>
84
+ <ExampleContainer>
85
+ <Title title="Small padding" theme="light" level={4} />
86
+ <DxcHeader underlined padding="small" />
87
+ </ExampleContainer>
88
+ <ExampleContainer>
89
+ <Title title="Medium padding" theme="light" level={4} />
90
+ <DxcHeader underlined padding="medium" />
91
+ </ExampleContainer>
92
+ <ExampleContainer>
93
+ <Title title="Large padding" theme="light" level={4} />
94
+ <DxcHeader underlined padding="large" />
95
+ </ExampleContainer>
96
+ <ExampleContainer>
97
+ <Title title="Xlarge padding" theme="light" level={4} />
98
+ <DxcHeader underlined padding="xlarge" />
99
+ </ExampleContainer>
100
+ <ExampleContainer>
101
+ <Title title="Xxlarge padding" theme="light" level={4} />
102
+ <DxcHeader underlined padding="xxlarge" />
103
+ </ExampleContainer>
104
+ </>
105
+ );
106
+
107
+ const RespHeader = () => (
108
+ <ExampleContainer>
109
+ <Title title="Responsive" theme="light" level={4} />
110
+ <div style={{ maxWidth: "400px" }}>
111
+ <DxcHeader
112
+ responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
113
+ underlined
114
+ />
115
+ </div>
116
+ </ExampleContainer>
117
+ );
118
+
119
+ const RespHeaderFocus = () => (
120
+ <ExampleContainer pseudoState="pseudo-focus">
121
+ <Title title="Responsive" theme="light" level={4} />
122
+ <div style={{ maxWidth: "400px" }}>
123
+ <DxcHeader
124
+ responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
125
+ underlined
126
+ />
127
+ </div>
128
+ </ExampleContainer>
129
+ );
130
+
131
+ const RespHeaderHover = () => (
132
+ <ExampleContainer pseudoState="pseudo-hover">
133
+ <Title title="Responsive" theme="light" level={4} />
134
+ <div style={{ maxWidth: "400px" }}>
135
+ <DxcHeader
136
+ responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
137
+ underlined
138
+ />
139
+ </div>
140
+ </ExampleContainer>
141
+ );
142
+
143
+ export const ResponsiveHeader = RespHeader.bind({});
144
+ ResponsiveHeader.play = async ({ canvasElement }) => {
145
+ const canvas = within(canvasElement);
146
+ await waitFor(() => canvas.findByText("Menu"));
147
+ await userEvent.click(canvas.getByText("Menu"));
148
+ };
149
+
150
+ export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
151
+ ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
152
+ const canvas = within(canvasElement);
153
+ await waitFor(() => canvas.findByText("Menu"));
154
+ await userEvent.click(canvas.getByText("Menu"));
155
+ };
156
+
157
+ export const ResponsiveHeaderHover = RespHeaderHover.bind({});
158
+ ResponsiveHeaderHover.play = async ({ canvasElement }) => {
159
+ const canvas = within(canvasElement);
160
+ await waitFor(() => canvas.findByText("Menu"));
161
+ await userEvent.click(canvas.getByText("Menu"));
162
+ };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const dxcLogo: JSX.Element;
package/header/Icons.js CHANGED
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.hamburgerIcon = exports.dxcLogo = exports.closeIcon = void 0;
8
+ exports.dxcLogo = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
@@ -31,29 +31,4 @@ var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
31
31
  fill: "#100f0d"
32
32
  }))));
33
33
 
34
- exports.dxcLogo = dxcLogo;
35
-
36
- var closeIcon = /*#__PURE__*/_react["default"].createElement("svg", {
37
- xmlns: "http://www.w3.org/2000/svg",
38
- height: "24",
39
- viewBox: "0 0 24 24",
40
- width: "24"
41
- }, /*#__PURE__*/_react["default"].createElement("path", {
42
- d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
43
- }), /*#__PURE__*/_react["default"].createElement("path", {
44
- d: "M0 0h24v24H0z",
45
- fill: "none"
46
- }));
47
-
48
- exports.closeIcon = closeIcon;
49
-
50
- var hamburgerIcon = /*#__PURE__*/_react["default"].createElement("svg", {
51
- xmlns: "http://www.w3.org/2000/svg",
52
- viewBox: "0 0 24 24",
53
- width: "24",
54
- height: "24"
55
- }, /*#__PURE__*/_react["default"].createElement("path", {
56
- d: "M3,8H21a1,1,0,0,0,0-2H3A1,1,0,0,0,3,8Zm18,8H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Zm0-5H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z"
57
- }));
58
-
59
- exports.hamburgerIcon = hamburgerIcon;
34
+ exports.dxcLogo = dxcLogo;
@@ -0,0 +1,47 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Padding = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type Props = {
10
+ /**
11
+ * Wether a contrast line should appear at the bottom of the header.
12
+ */
13
+ underlined?: boolean;
14
+ /**
15
+ * Content showed in the header. Take into account that the component applies styles
16
+ * for the first child in the content, so we recommend the use of React.Fragment
17
+ * to be applied correctly. Otherwise, the styles can be modified.
18
+ */
19
+ content?: React.ReactNode;
20
+ /**
21
+ * Content showed in responsive version. It receives the close menu handler that can
22
+ * be used to add that functionality when a element is clicked.
23
+ */
24
+ responsiveContent?: (closeHandler: () => void) => React.ReactNode;
25
+ /**
26
+ * This function will be called when the user clicks the header logo.
27
+ */
28
+ onClick?: () => void;
29
+ /**
30
+ * Size of the bottom margin to be applied to the header
31
+ * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
32
+ */
33
+ margin?: Space;
34
+ /**
35
+ * Size of the padding to be applied to the custom area of the component
36
+ * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
37
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in
38
+ * order to specify different padding sizes.
39
+ */
40
+ padding?: Space | Padding;
41
+ /**
42
+ * Value of the tabindex for all interactuable elements, except those inside the
43
+ * custom area.
44
+ */
45
+ tabIndex?: number;
46
+ };
47
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import HeadingPropsType from "./types";
3
+ declare const DxcHeading: ({ level, text, as, weight, margin }: HeadingPropsType) => JSX.Element;
4
+ export default DxcHeading;
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
@@ -19,11 +17,9 @@ var _react = _interopRequireDefault(require("react"));
19
17
 
20
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
19
 
22
- var _propTypes = _interopRequireDefault(require("prop-types"));
23
-
24
20
  var _variables = require("../common/variables.js");
25
21
 
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
23
 
28
24
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
29
25
 
@@ -37,8 +33,7 @@ var DxcHeading = function DxcHeading(_ref) {
37
33
  _ref$text = _ref.text,
38
34
  text = _ref$text === void 0 ? "" : _ref$text,
39
35
  as = _ref.as,
40
- _ref$weight = _ref.weight,
41
- weight = _ref$weight === void 0 ? "" : _ref$weight,
36
+ weight = _ref.weight,
42
37
  margin = _ref.margin;
43
38
  var colorsTheme = (0, _useTheme["default"])();
44
39
 
@@ -51,19 +46,19 @@ var DxcHeading = function DxcHeading(_ref) {
51
46
  }, /*#__PURE__*/_react["default"].createElement(HeadingContainer, {
52
47
  margin: margin
53
48
  }, level === 1 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel1, {
54
- as: checkValidAs(as),
49
+ as: checkValidAs(),
55
50
  weight: weight
56
51
  }, text) : level === 2 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel2, {
57
- as: checkValidAs(as),
52
+ as: checkValidAs(),
58
53
  weight: weight
59
54
  }, text) : level === 3 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel3, {
60
- as: checkValidAs(as),
55
+ as: checkValidAs(),
61
56
  weight: weight
62
57
  }, text) : level === 4 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel4, {
63
- as: checkValidAs(as),
58
+ as: checkValidAs(),
64
59
  weight: weight
65
60
  }, text) : /*#__PURE__*/_react["default"].createElement(HeadingLevel5, {
66
- as: checkValidAs(as),
61
+ as: checkValidAs(),
67
62
  weight: weight
68
63
  }, text)));
69
64
  };
@@ -160,17 +155,5 @@ var HeadingLevel5 = _styledComponents["default"].h5(_templateObject6 || (_templa
160
155
  return props.theme.level5FontColor;
161
156
  });
162
157
 
163
- DxcHeading.propTypes = {
164
- level: _propTypes["default"].number,
165
- text: _propTypes["default"].string,
166
- as: _propTypes["default"].oneOf(["h1", "h2", "h3", "h4", "h5"]),
167
- weight: _propTypes["default"].oneOf(["light", "normal", "bold", ""]),
168
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
169
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
170
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
171
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
172
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
173
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
174
- };
175
158
  var _default = DxcHeading;
176
159
  exports["default"] = _default;
@@ -0,0 +1,54 @@
1
+ import React from "react";
2
+ import DxcHeading from "./Heading";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+
6
+ export default {
7
+ title: "Heading",
8
+ component: DxcHeading,
9
+ };
10
+
11
+ export const Chromatic = () => (
12
+ <>
13
+ <Title title="Levels" theme="light" level={2} />
14
+ <ExampleContainer>
15
+ <Title title="Level 1" theme="light" level={4} />
16
+ <DxcHeading text="Heading for sections within the page" />
17
+ <Title title="Level 2" theme="light" level={4} />
18
+ <DxcHeading text="Heading for sections within the page" level={2} />
19
+ <Title title="Level 3" theme="light" level={4} />
20
+ <DxcHeading text="Heading for sections within the page" level={3} />
21
+ <Title title="Level 4" theme="light" level={4} />
22
+ <DxcHeading text="Heading for sections within the page" level={4} />
23
+ <Title title="Level 5" theme="light" level={4} />
24
+ <DxcHeading text="Heading for sections within the page" level={5} />
25
+ </ExampleContainer>
26
+ <Title title="Weights" theme="light" level={2} />
27
+ <ExampleContainer>
28
+ <Title title="'light' Weight" theme="light" level={4} />
29
+ <DxcHeading text="Heading for sections within the page" level={2} weight="light" />
30
+ <Title title="'normal' Weight" theme="light" level={4} />
31
+ <DxcHeading text="Heading for sections within the page" level={2} weight="normal" />
32
+ <Title title="'bold' Weight" theme="light" level={4} />
33
+ <DxcHeading text="Heading for sections within the page" level={2} weight="bold" />
34
+ </ExampleContainer>
35
+ <Title title="Margins" theme="light" level={2} />
36
+ <ExampleContainer>
37
+ <Title title="Xxsmall" theme="light" level={4} />
38
+ <DxcHeading text="Xxsmall" margin="xxsmall" />
39
+ <Title title="Xsmall" theme="light" level={4} />
40
+ <DxcHeading text="Xsmall" margin="xsmall" />
41
+ <Title title="Small" theme="light" level={4} />
42
+ <DxcHeading text="Small" margin="small" />
43
+ <Title title="Medium" theme="light" level={4} />
44
+ <DxcHeading text="Medium" margin="medium" />
45
+ <Title title="Large" theme="light" level={4} />
46
+ <DxcHeading text="Large" margin="large" />
47
+ <Title title="Xlarge" theme="light" level={4} />
48
+ <DxcHeading text="Xlarge" margin="xlarge" />
49
+ <Title title="Xxlarge" theme="light" level={4} />
50
+ <DxcHeading text="Xxlarge" margin="xxlarge" />
51
+ <hr />
52
+ </ExampleContainer>
53
+ </>
54
+ );
@@ -0,0 +1,33 @@
1
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ declare type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+ declare type Props = {
9
+ /**
10
+ * Defines the heading level from 1 to 5. The styles of the heading are applied according to the level.
11
+ * The html tag of the heading will be the one specified in the 'as' prop.
12
+ * If 'as' is not specified, the html tag of the heading is the one specified in the 'level' prop.
13
+ */
14
+ level?: 1 | 2 | 3 | 4 | 5;
15
+ /**
16
+ * Heading text.
17
+ */
18
+ text: string;
19
+ /**
20
+ * Specifies the html tag of the heading.
21
+ */
22
+ as?: "h1" | "h2" | "h3" | "h4" | "h5";
23
+ /**
24
+ * Modifies the default weight of the heading.
25
+ */
26
+ weight?: "light" | "normal" | "bold";
27
+ /**
28
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
29
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
30
+ */
31
+ margin?: Space | Margin;
32
+ };
33
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -39,11 +39,11 @@ var _variables = require("../common/variables.js");
39
39
 
40
40
  var _utils = require("../common/utils.js");
41
41
 
42
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
42
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
43
43
 
44
44
  var _Icons = _interopRequireDefault(require("./Icons"));
45
45
 
46
- var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext.js"));
46
+ var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext"));
47
47
 
48
48
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
49
49
 
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import InsetPropsType from "./types";
3
+ export default function Inset({ space, horizontal, vertical, top, right, bottom, left, children, }: InsetPropsType): JSX.Element;
package/inset/Inset.js ADDED
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = Inset;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _templateObject;
17
+
18
+ function Inset(_ref) {
19
+ var space = _ref.space,
20
+ horizontal = _ref.horizontal,
21
+ vertical = _ref.vertical,
22
+ top = _ref.top,
23
+ right = _ref.right,
24
+ bottom = _ref.bottom,
25
+ left = _ref.left,
26
+ children = _ref.children;
27
+ return /*#__PURE__*/_react["default"].createElement(StyledInset, {
28
+ space: space,
29
+ horizontal: horizontal,
30
+ vertical: vertical,
31
+ top: top,
32
+ right: right,
33
+ bottom: bottom,
34
+ left: left
35
+ }, children);
36
+ }
37
+
38
+ function getSpacingValue(spacingName) {
39
+ switch (spacingName) {
40
+ case "none":
41
+ return "0rem";
42
+
43
+ case "xxxsmall":
44
+ return "0.125rem";
45
+
46
+ case "xxsmall":
47
+ return "0.25rem";
48
+
49
+ case "xsmall":
50
+ return "0.5rem";
51
+
52
+ case "small":
53
+ return "1rem";
54
+
55
+ case "medium":
56
+ return "1.5rem";
57
+
58
+ case "large":
59
+ return "2rem";
60
+
61
+ case "xlarge":
62
+ return "3rem";
63
+
64
+ case "xxlarge":
65
+ return "4rem";
66
+
67
+ case "xxxlarge":
68
+ return "5rem";
69
+
70
+ default:
71
+ return "0rem";
72
+ }
73
+ }
74
+
75
+ var StyledInset = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (_ref2) {
76
+ var space = _ref2.space,
77
+ horizontal = _ref2.horizontal,
78
+ vertical = _ref2.vertical,
79
+ top = _ref2.top,
80
+ right = _ref2.right,
81
+ bottom = _ref2.bottom,
82
+ left = _ref2.left;
83
+ return "\n padding: ".concat(getSpacingValue(top || vertical || space), " ").concat(getSpacingValue(right || horizontal || space), "\n ").concat(getSpacingValue(bottom || vertical || space), " ").concat(getSpacingValue(left || horizontal || space), ";\n");
84
+ });