@dxc-technology/halstack-react 0.0.0-fdc49d2 → 0.0.0-feed711

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 (188) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.js +5 -27
  4. package/accordion/Accordion.stories.tsx +4 -4
  5. package/accordion/types.d.ts +1 -1
  6. package/accordion-group/AccordionGroup.d.ts +1 -1
  7. package/accordion-group/AccordionGroup.js +14 -15
  8. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  9. package/accordion-group/AccordionGroup.test.js +24 -6
  10. package/accordion-group/types.d.ts +5 -1
  11. package/alert/Alert.js +4 -1
  12. package/badge/Badge.d.ts +1 -1
  13. package/badge/Badge.js +5 -3
  14. package/badge/types.d.ts +1 -0
  15. package/bleed/Bleed.js +1 -34
  16. package/bleed/Bleed.stories.tsx +94 -95
  17. package/bleed/types.d.ts +1 -1
  18. package/box/Box.js +22 -32
  19. package/bulleted-list/BulletedList.d.ts +7 -0
  20. package/bulleted-list/BulletedList.js +123 -0
  21. package/bulleted-list/BulletedList.stories.tsx +200 -0
  22. package/bulleted-list/types.d.ts +11 -0
  23. package/{list → bulleted-list}/types.js +0 -0
  24. package/button/Button.js +53 -68
  25. package/button/Button.stories.tsx +9 -0
  26. package/button/types.d.ts +7 -7
  27. package/card/Card.js +24 -27
  28. package/checkbox/Checkbox.d.ts +1 -1
  29. package/checkbox/Checkbox.js +38 -28
  30. package/checkbox/Checkbox.stories.tsx +124 -128
  31. package/checkbox/types.d.ts +3 -3
  32. package/chip/types.d.ts +1 -1
  33. package/common/variables.js +229 -98
  34. package/date-input/DateInput.js +41 -23
  35. package/date-input/DateInput.test.js +9 -22
  36. package/date-input/types.d.ts +12 -9
  37. package/dialog/Dialog.js +46 -50
  38. package/dialog/Dialog.stories.tsx +1 -2
  39. package/dialog/Dialog.test.js +34 -4
  40. package/dialog/types.d.ts +2 -2
  41. package/dropdown/Dropdown.d.ts +1 -1
  42. package/dropdown/Dropdown.js +242 -250
  43. package/dropdown/Dropdown.stories.tsx +126 -63
  44. package/dropdown/Dropdown.test.js +510 -108
  45. package/dropdown/DropdownMenu.d.ts +4 -0
  46. package/dropdown/DropdownMenu.js +80 -0
  47. package/dropdown/DropdownMenuItem.d.ts +4 -0
  48. package/dropdown/DropdownMenuItem.js +92 -0
  49. package/dropdown/types.d.ts +25 -5
  50. package/file-input/FileInput.js +9 -6
  51. package/file-input/FileItem.js +7 -5
  52. package/flex/Flex.d.ts +4 -0
  53. package/flex/Flex.js +57 -0
  54. package/flex/Flex.stories.tsx +103 -0
  55. package/flex/types.d.ts +21 -0
  56. package/{radio → flex}/types.js +0 -0
  57. package/footer/Footer.js +15 -88
  58. package/footer/Icons.js +1 -1
  59. package/footer/types.d.ts +1 -1
  60. package/header/Header.js +95 -114
  61. package/header/Header.stories.tsx +46 -36
  62. package/header/Header.test.js +18 -2
  63. package/header/Icons.js +2 -2
  64. package/header/types.d.ts +2 -2
  65. package/inset/Inset.js +1 -34
  66. package/inset/Inset.stories.tsx +36 -36
  67. package/inset/types.d.ts +25 -1
  68. package/layout/ApplicationLayout.d.ts +16 -6
  69. package/layout/ApplicationLayout.js +71 -131
  70. package/layout/ApplicationLayout.stories.tsx +83 -93
  71. package/layout/Icons.d.ts +5 -0
  72. package/layout/Icons.js +13 -2
  73. package/layout/SidenavContext.d.ts +5 -0
  74. package/layout/SidenavContext.js +19 -0
  75. package/layout/types.d.ts +18 -33
  76. package/link/Link.d.ts +3 -2
  77. package/link/Link.js +57 -74
  78. package/link/Link.stories.tsx +95 -53
  79. package/link/Link.test.js +7 -15
  80. package/link/types.d.ts +7 -23
  81. package/main.d.ts +7 -10
  82. package/main.js +43 -61
  83. package/number-input/NumberInput.test.js +2 -4
  84. package/number-input/types.d.ts +13 -10
  85. package/package.json +14 -12
  86. package/paginator/Paginator.js +17 -38
  87. package/paginator/Paginator.test.js +42 -0
  88. package/paragraph/Paragraph.d.ts +6 -0
  89. package/paragraph/Paragraph.js +38 -0
  90. package/paragraph/Paragraph.stories.tsx +44 -0
  91. package/password-input/PasswordInput.js +7 -4
  92. package/password-input/PasswordInput.test.js +3 -6
  93. package/password-input/types.d.ts +14 -11
  94. package/progress-bar/ProgressBar.d.ts +2 -2
  95. package/progress-bar/ProgressBar.js +57 -51
  96. package/progress-bar/ProgressBar.stories.jsx +13 -11
  97. package/progress-bar/ProgressBar.test.js +67 -22
  98. package/progress-bar/types.d.ts +3 -4
  99. package/quick-nav/QuickNav.js +83 -25
  100. package/quick-nav/QuickNav.stories.tsx +43 -16
  101. package/quick-nav/types.d.ts +4 -8
  102. package/radio-group/Radio.js +1 -1
  103. package/radio-group/RadioGroup.js +21 -20
  104. package/resultsetTable/ResultsetTable.test.js +42 -0
  105. package/select/Listbox.d.ts +4 -0
  106. package/select/Listbox.js +199 -0
  107. package/select/Option.js +1 -1
  108. package/select/Select.js +102 -199
  109. package/select/Select.stories.tsx +145 -100
  110. package/select/Select.test.js +440 -281
  111. package/select/types.d.ts +31 -12
  112. package/sidenav/Sidenav.d.ts +6 -5
  113. package/sidenav/Sidenav.js +184 -52
  114. package/sidenav/Sidenav.stories.tsx +154 -156
  115. package/sidenav/Sidenav.test.js +25 -37
  116. package/sidenav/types.d.ts +50 -27
  117. package/slider/Slider.d.ts +1 -1
  118. package/slider/Slider.js +5 -4
  119. package/slider/Slider.stories.tsx +8 -8
  120. package/slider/Slider.test.js +68 -10
  121. package/slider/types.d.ts +4 -0
  122. package/spinner/Spinner.js +1 -1
  123. package/switch/Switch.d.ts +2 -2
  124. package/switch/Switch.js +113 -54
  125. package/switch/Switch.stories.tsx +16 -38
  126. package/switch/Switch.test.js +122 -8
  127. package/switch/types.d.ts +5 -6
  128. package/tabs/Tabs.d.ts +1 -1
  129. package/tabs/Tabs.js +9 -11
  130. package/tabs/Tabs.stories.tsx +0 -8
  131. package/tabs/Tabs.test.js +26 -9
  132. package/tabs/types.d.ts +5 -1
  133. package/tabs-nav/NavTabs.d.ts +8 -0
  134. package/tabs-nav/NavTabs.js +125 -0
  135. package/tabs-nav/NavTabs.stories.tsx +170 -0
  136. package/tabs-nav/NavTabs.test.js +82 -0
  137. package/tabs-nav/Tab.d.ts +4 -0
  138. package/tabs-nav/Tab.js +130 -0
  139. package/tabs-nav/types.d.ts +53 -0
  140. package/{row → tabs-nav}/types.js +0 -0
  141. package/tag/Tag.js +5 -8
  142. package/tag/types.d.ts +1 -1
  143. package/text-input/Suggestion.d.ts +4 -0
  144. package/text-input/Suggestion.js +55 -0
  145. package/text-input/TextInput.js +60 -97
  146. package/text-input/TextInput.stories.tsx +1 -2
  147. package/text-input/TextInput.test.js +22 -35
  148. package/text-input/types.d.ts +27 -12
  149. package/textarea/Textarea.js +10 -19
  150. package/textarea/types.d.ts +10 -7
  151. package/toggle-group/ToggleGroup.d.ts +1 -1
  152. package/toggle-group/ToggleGroup.js +5 -4
  153. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  154. package/toggle-group/ToggleGroup.test.js +35 -4
  155. package/toggle-group/types.d.ts +9 -1
  156. package/typography/Typography.d.ts +4 -0
  157. package/typography/Typography.js +131 -0
  158. package/typography/Typography.stories.tsx +198 -0
  159. package/typography/types.d.ts +18 -0
  160. package/{stack → typography}/types.js +0 -0
  161. package/useTheme.js +2 -2
  162. package/useTranslatedLabels.d.ts +2 -0
  163. package/useTranslatedLabels.js +20 -0
  164. package/wizard/Wizard.js +43 -44
  165. package/wizard/Wizard.stories.tsx +20 -1
  166. package/wizard/types.d.ts +5 -4
  167. package/ThemeContext.d.ts +0 -10
  168. package/ThemeContext.js +0 -243
  169. package/list/List.d.ts +0 -4
  170. package/list/List.js +0 -47
  171. package/list/List.stories.tsx +0 -95
  172. package/list/types.d.ts +0 -7
  173. package/radio/Radio.d.ts +0 -4
  174. package/radio/Radio.js +0 -174
  175. package/radio/Radio.stories.tsx +0 -192
  176. package/radio/Radio.test.js +0 -71
  177. package/radio/types.d.ts +0 -54
  178. package/row/Row.d.ts +0 -3
  179. package/row/Row.js +0 -127
  180. package/row/Row.stories.tsx +0 -237
  181. package/row/types.d.ts +0 -28
  182. package/stack/Stack.d.ts +0 -3
  183. package/stack/Stack.js +0 -97
  184. package/stack/Stack.stories.tsx +0 -164
  185. package/stack/types.d.ts +0 -24
  186. package/text/Text.d.ts +0 -7
  187. package/text/Text.js +0 -30
  188. package/text/Text.stories.tsx +0 -19
@@ -106,8 +106,7 @@ describe("DateInput component tests", function () {
106
106
  expect(onChange).toHaveBeenCalledTimes(10);
107
107
  expect(onChange).toHaveBeenCalledWith({
108
108
  value: "10/90/2010",
109
- error: "Invalid date.",
110
- date: null
109
+ error: "Invalid date."
111
110
  });
112
111
  });
113
112
  test("Calendar renders with correct date: today's date", function () {
@@ -191,8 +190,7 @@ describe("DateInput component tests", function () {
191
190
  expect(onBlur).toHaveBeenCalled();
192
191
  expect(onBlur).toHaveBeenCalledWith({
193
192
  value: "01-01-xxxx",
194
- error: "Invalid date.",
195
- date: null
193
+ error: "Invalid date."
196
194
  });
197
195
 
198
196
  _userEvent["default"].click(calendarAction);
@@ -301,7 +299,6 @@ describe("DateInput component tests", function () {
301
299
  expect(onChange).toHaveBeenCalledTimes(10);
302
300
  expect(onChange).toHaveBeenCalledWith({
303
301
  value: "10-10-2011",
304
- error: null,
305
302
  date: d
306
303
  });
307
304
 
@@ -310,7 +307,6 @@ describe("DateInput component tests", function () {
310
307
  expect(onBlur).toHaveBeenCalled();
311
308
  expect(onBlur).toHaveBeenCalledWith({
312
309
  value: "10-10-2011",
313
- error: null,
314
310
  date: d
315
311
  });
316
312
  });
@@ -332,8 +328,7 @@ describe("DateInput component tests", function () {
332
328
  expect(onChange).toHaveBeenCalledTimes(6);
333
329
  expect(onChange).toHaveBeenCalledWith({
334
330
  value: "10-10-",
335
- error: "Invalid date.",
336
- date: null
331
+ error: "Invalid date."
337
332
  });
338
333
 
339
334
  _react2.fireEvent.blur(input);
@@ -341,8 +336,7 @@ describe("DateInput component tests", function () {
341
336
  expect(onBlur).toHaveBeenCalled();
342
337
  expect(onBlur).toHaveBeenCalledWith({
343
338
  value: "10-10-",
344
- error: "Invalid date.",
345
- date: null
339
+ error: "Invalid date."
346
340
  });
347
341
  });
348
342
  test("onBlur function removes the error when it is fixed", function () {
@@ -365,8 +359,7 @@ describe("DateInput component tests", function () {
365
359
  expect(onBlur).toHaveBeenCalled();
366
360
  expect(onBlur).toHaveBeenCalledWith({
367
361
  value: "test",
368
- error: "Invalid date.",
369
- date: null
362
+ error: "Invalid date."
370
363
  });
371
364
 
372
365
  _userEvent["default"].clear(input);
@@ -380,7 +373,6 @@ describe("DateInput component tests", function () {
380
373
  expect(onBlur).toHaveBeenCalled();
381
374
  expect(onBlur).toHaveBeenCalledWith({
382
375
  value: "20-02-2002",
383
- error: null,
384
376
  date: d
385
377
  });
386
378
  });
@@ -404,8 +396,7 @@ describe("DateInput component tests", function () {
404
396
  expect(onBlur).toHaveBeenCalled();
405
397
  expect(onBlur).toHaveBeenCalledWith({
406
398
  value: "test",
407
- error: "Invalid date.",
408
- date: null
399
+ error: "Invalid date."
409
400
  });
410
401
 
411
402
  _userEvent["default"].clear(input);
@@ -414,9 +405,7 @@ describe("DateInput component tests", function () {
414
405
 
415
406
  expect(onBlur).toHaveBeenCalled();
416
407
  expect(onBlur).toHaveBeenCalledWith({
417
- value: "",
418
- error: null,
419
- date: null
408
+ value: ""
420
409
  });
421
410
  });
422
411
  test("onBlur & onChange functions error: required field (not optional)", function () {
@@ -442,14 +431,12 @@ describe("DateInput component tests", function () {
442
431
  expect(onBlur).toHaveBeenCalled();
443
432
  expect(onBlur).toHaveBeenCalledWith({
444
433
  value: "",
445
- error: "This field is required. Please, enter a value.",
446
- date: null
434
+ error: "This field is required. Please, enter a value."
447
435
  });
448
436
  expect(onChange).toHaveBeenCalled();
449
437
  expect(onChange).toHaveBeenCalledWith({
450
438
  value: "",
451
- error: "This field is required. Please, enter a value.",
452
- date: null
439
+ error: "This field is required. Please, enter a value."
453
440
  });
454
441
  });
455
442
  test("Disabled date input (calendar action must be shown but not clickable)", function () {
@@ -54,28 +54,31 @@ declare type Props = {
54
54
  * element of the component. An object including the string value, the
55
55
  * error and the date value will be passed to this function.
56
56
  * If the string value is a valid date, error will
57
- * be null. Also, if the string value is not a valid date, date will be null.
57
+ * be undefined. Also, if the string value is not a valid date, date will be undefined.
58
58
  */
59
59
  onChange?: (val: {
60
60
  value: string;
61
- error: string | null;
62
- date: Date | null;
61
+ error?: string;
62
+ date?: Date;
63
63
  }) => void;
64
64
  /**
65
65
  * This function will be called when the input element loses the focus.
66
66
  * An object including the string value, the error and the date value
67
67
  * will be passed to this function. If the string value is a valid date, error will
68
- * be null. Also, if the string value is not a valid date, date will be null.
68
+ * be undefined. Also, if the string value is not a valid date, date will be undefined.
69
69
  */
70
70
  onBlur?: (val: {
71
71
  value: string;
72
- error: string | null;
73
- date: Date | null;
72
+ error?: string;
73
+ date?: Date;
74
74
  }) => void;
75
75
  /**
76
- * If it is defined, the component will change its appearance, showing
77
- * the error below the date input component. If it is not defined, the error
78
- * messages will be managed internally, but never displayed on its own.
76
+ * If it is a defined value and also a truthy string, the component will
77
+ * change its appearance, showing the error below the date input
78
+ * component. If the defined value is an empty string, it will reserve a
79
+ * space below the component for a future error, but it would not change
80
+ * its look. In case of being undefined or null, both the appearance and
81
+ * the space for the error message would not be modified.
79
82
  */
80
83
  error?: string;
81
84
  /**
package/dialog/Dialog.js CHANGED
@@ -13,21 +13,17 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
16
  var _react = _interopRequireWildcard(require("react"));
19
17
 
20
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
19
 
22
- var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
23
-
24
20
  var _variables = require("../common/variables.js");
25
21
 
26
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
27
23
 
28
24
  var _BackgroundColorContext = require("../BackgroundColorContext");
29
25
 
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
26
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
31
27
 
32
28
  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); }
33
29
 
@@ -45,12 +41,6 @@ var DxcDialog = function DxcDialog(_ref) {
45
41
  padding = _ref$padding === void 0 ? "small" : _ref$padding,
46
42
  _ref$tabIndex = _ref.tabIndex,
47
43
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
48
-
49
- var _useState = (0, _react.useState)(false),
50
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
51
- isResponsive = _useState2[0],
52
- setIsResponsive = _useState2[1];
53
-
54
44
  var colorsTheme = (0, _useTheme["default"])();
55
45
 
56
46
  var handleClose = function handleClose() {
@@ -61,31 +51,37 @@ var DxcDialog = function DxcDialog(_ref) {
61
51
  onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
62
52
  };
63
53
 
64
- var handleResize = function handleResize(width) {
65
- setIsResponsive(width && width <= _variables.responsiveSizes.tablet);
66
- };
67
-
68
- var handleEventListener = function handleEventListener() {
69
- handleResize(window.innerWidth);
54
+ var handleOnKeyDown = function handleOnKeyDown(event) {
55
+ if (event.key === "Escape") {
56
+ event.preventDefault();
57
+ handleClose();
58
+ }
70
59
  };
71
60
 
72
61
  (0, _react.useEffect)(function () {
73
- window.addEventListener("resize", handleEventListener);
74
- handleResize(window.innerWidth);
62
+ if (isCloseVisible) {
63
+ window.addEventListener("keydown", handleOnKeyDown);
64
+ }
65
+
75
66
  return function () {
76
- window.removeEventListener("resize", handleEventListener);
67
+ window.removeEventListener("keydown", handleOnKeyDown);
77
68
  };
78
- }, []);
69
+ }, [isCloseVisible]);
79
70
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
80
71
  theme: colorsTheme.dialog
81
- }, /*#__PURE__*/_react["default"].createElement(DialogContainer, {
82
- open: true,
83
- isCloseVisible: isCloseVisible,
84
- onClose: handleOverlayClick,
85
- overlay: overlay,
86
- padding: padding,
87
- isResponsive: isResponsive
88
- }, isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconContainer, {
72
+ }, /*#__PURE__*/_react["default"].createElement(BodyStyle, null), /*#__PURE__*/_react["default"].createElement(DialogContainer, {
73
+ role: "presentation"
74
+ }, overlay && /*#__PURE__*/_react["default"].createElement(Overlay, {
75
+ onClick: handleOverlayClick
76
+ }), /*#__PURE__*/_react["default"].createElement(Dialog, {
77
+ role: "dialog",
78
+ "aria-modal": overlay,
79
+ isCloseVisible: isCloseVisible
80
+ }, /*#__PURE__*/_react["default"].createElement(Children, {
81
+ padding: padding
82
+ }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
83
+ color: colorsTheme.dialog.backgroundColor
84
+ }, children)), isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconContainer, {
89
85
  onClick: handleClose,
90
86
  tabIndex: tabIndex
91
87
  }, /*#__PURE__*/_react["default"].createElement(CloseIcon, {
@@ -99,28 +95,34 @@ var DxcDialog = function DxcDialog(_ref) {
99
95
  fill: "none"
100
96
  }), /*#__PURE__*/_react["default"].createElement("path", {
101
97
  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 12 19 6.41z"
102
- }))), /*#__PURE__*/_react["default"].createElement(Children, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
103
- color: colorsTheme.dialog.backgroundColor
104
- }, children))));
98
+ }))))));
105
99
  };
106
100
 
107
- var DialogContainer = (0, _styledComponents["default"])(_Dialog["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n overflow: unset;\n font-family: ", ";\n\n .MuiBackdrop-root {\n background-color: ", ";\n opacity: ", " !important;\n }\n .MuiDialog-paperWidthSm {\n background-color: ", ";\n max-width: ", ";\n min-width: ", ";\n box-sizing: border-box;\n min-height: ", ";\n box-shadow: ", ";\n\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n }\n"])), function (props) {
108
- return props.theme.fontFamily;
109
- }, function (props) {
110
- return props.overlay === true ? props.theme.overlayColor : "transparent";
111
- }, function (props) {
112
- return props.overlay === true && props.theme.overlayOpacity;
101
+ var BodyStyle = (0, _styledComponents.createGlobalStyle)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n body {\n overflow: hidden;\n }\n"])));
102
+
103
+ var DialogContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n inset: 0px;\n height: 100%;\n z-index: 1300;\n"])));
104
+
105
+ var Overlay = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n inset: 0px;\n height: 100%;\n background-color: ", ";\n opacity: ", ";\n"])), function (props) {
106
+ return props.theme.overlayColor;
113
107
  }, function (props) {
108
+ return props.theme.overlayOpacity;
109
+ });
110
+
111
+ var Dialog = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n z-index: 1300;\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n ", "\n box-sizing: border-box;\n box-shadow: ", ";\n border-radius: 4px;\n\n @media (min-width: ", "rem) {\n max-width: 80%;\n min-width: 800px;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 92%;\n min-width: 92%;\n }\n"])), function (props) {
114
112
  return props.theme.backgroundColor;
115
113
  }, function (props) {
116
- return props.isResponsive ? "92%" : "80%";
114
+ return props.theme.fontFamily;
117
115
  }, function (props) {
118
- return props.isResponsive ? "92%" : "800px";
116
+ return props.theme.fontSize;
119
117
  }, function (props) {
120
- return props.isCloseVisible ? "72px" : "";
118
+ return props.theme.fontWeight;
121
119
  }, function (props) {
122
- return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
120
+ return props.isCloseVisible && "min-height: 72px;";
123
121
  }, function (props) {
122
+ return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
123
+ }, _variables.responsiveSizes.medium, _variables.responsiveSizes.medium);
124
+
125
+ var Children = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
124
126
  return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : _variables.spaces["small"];
125
127
  }, function (props) {
126
128
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
@@ -132,13 +134,7 @@ var DialogContainer = (0, _styledComponents["default"])(_Dialog["default"])(_tem
132
134
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
133
135
  });
134
136
 
135
- var Children = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])([""])));
136
-
137
- var CloseIconContainer = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-end;\n position: absolute;\n top: ", ";\n right: ", ";\n cursor: pointer;\n padding: 0;\n margin: 0;\n background: none;\n color: ", ";\n width: ", ";\n height: ", ";\n border: none;\n"])), function (props) {
138
- return props.theme.closeIconTopPosition;
139
- }, function (props) {
140
- return props.theme.closeIconRightPosition;
141
- }, function (props) {
137
+ var CloseIconContainer = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n position: relative;\n top: 20px;\n right: 20px;\n color: ", ";\n width: ", ";\n height: ", ";\n"])), function (props) {
142
138
  return props.theme.closeIconColor;
143
139
  }, function (props) {
144
140
  return props.theme.closeIconWidth;
@@ -146,7 +142,7 @@ var CloseIconContainer = _styledComponents["default"].button(_templateObject3 ||
146
142
  return props.theme.closeIconHeight;
147
143
  });
148
144
 
149
- var CloseIcon = _styledComponents["default"].svg(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n width: ", ";\n height: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n"])), function (props) {
145
+ var CloseIcon = _styledComponents["default"].svg(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n width: ", ";\n height: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n"])), function (props) {
150
146
  return props.theme.closeIconBackgroundColor;
151
147
  }, function (props) {
152
148
  return props.theme.closeIconWidth;
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import { userEvent, within } from "@storybook/testing-library";
3
2
  import DxcDialog from "./Dialog";
4
3
  import Title from "../../.storybook/components/Title";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
@@ -209,4 +208,4 @@ export const DialogWithXxlargePadding = () => (
209
208
  </p>{" "}
210
209
  </DxcDialog>
211
210
  </ExampleContainer>
212
- );
211
+ );
@@ -9,10 +9,13 @@ var _react2 = require("@testing-library/react");
9
9
  var _Dialog = _interopRequireDefault(require("./Dialog"));
10
10
 
11
11
  describe("Dialog component tests", function () {
12
- test("Dialog renders with correct text", function () {
12
+ test("Dialog renders with correct text and accesibility attributes", function () {
13
13
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "dialog-text")),
14
- getByText = _render.getByText;
14
+ getByText = _render.getByText,
15
+ getByRole = _render.getByRole;
15
16
 
17
+ expect(getByRole("dialog")).toBeTruthy();
18
+ expect(getByRole("dialog").getAttribute("aria-modal")).toBe("true");
16
19
  expect(getByText("dialog-text")).toBeTruthy();
17
20
  });
18
21
  test("Dialog renders without close button", function () {
@@ -23,18 +26,45 @@ describe("Dialog component tests", function () {
23
26
 
24
27
  expect(queryByRole("button")).toBeFalsy();
25
28
  });
29
+ test("Dialog renders with aria-modal false when overlay is not used", function () {
30
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
31
+ isCloseVisible: false,
32
+ overlay: false
33
+ }, "dialog-text")),
34
+ getByRole = _render3.getByRole;
35
+
36
+ expect(getByRole("dialog")).toBeTruthy();
37
+ expect(getByRole("dialog").getAttribute("aria-modal")).toBe("false");
38
+ });
26
39
  test("Calls correct function onCloseClick", function () {
27
40
  var onCloseClick = jest.fn();
28
41
 
29
- var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
42
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
30
43
  onCloseClick: onCloseClick
31
44
  }, "dialog-text")),
32
- getByRole = _render3.getByRole;
45
+ getByRole = _render4.getByRole;
33
46
 
34
47
  var closeButton = getByRole("button");
35
48
 
36
49
  _react2.fireEvent.click(closeButton);
37
50
 
51
+ expect(onCloseClick).toHaveBeenCalled();
52
+ });
53
+ test("Calls correct function onCloseClick when 'escape' key is pressed", function () {
54
+ var onCloseClick = jest.fn();
55
+
56
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
57
+ onCloseClick: onCloseClick
58
+ }, "dialog-text")),
59
+ getByRole = _render5.getByRole;
60
+
61
+ _react2.fireEvent.keyDown(getByRole("button"), {
62
+ key: "Escape",
63
+ code: "Escape",
64
+ keyCode: 27,
65
+ charCode: 27
66
+ });
67
+
38
68
  expect(onCloseClick).toHaveBeenCalled();
39
69
  });
40
70
  });
package/dialog/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Padding = {
2
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ export declare type Padding = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import DropdownPropsType from "./types";
3
- declare const DxcDropdown: ({ options, optionsIconPosition, icon, iconPosition, label, caretHidden, onSelectOption, expandOnHover, margin, size, tabIndex, disabled, }: DropdownPropsType) => JSX.Element;
3
+ declare const DxcDropdown: ({ options, optionsIconPosition, icon, iconPosition, label, caretHidden, disabled, expandOnHover, onSelectOption, margin, size, tabIndex, }: DropdownPropsType) => JSX.Element;
4
4
  export default DxcDropdown;