@dxc-technology/halstack-react 0.0.0-c1253f5 → 0.0.0-c18d61a

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 (107) hide show
  1. package/accordion/Accordion.js +122 -103
  2. package/accordion/Accordion.stories.tsx +1 -2
  3. package/accordion/Accordion.test.js +9 -10
  4. package/accordion/types.d.ts +5 -4
  5. package/accordion-group/AccordionGroup.js +1 -21
  6. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  7. package/accordion-group/AccordionGroup.test.js +20 -45
  8. package/accordion-group/types.d.ts +10 -3
  9. package/alert/Alert.js +1 -1
  10. package/box/Box.js +1 -1
  11. package/box/types.d.ts +1 -0
  12. package/bulleted-list/types.d.ts +1 -1
  13. package/button/types.d.ts +1 -1
  14. package/card/types.d.ts +1 -0
  15. package/checkbox/Checkbox.js +87 -95
  16. package/checkbox/Checkbox.test.js +93 -16
  17. package/checkbox/types.d.ts +2 -2
  18. package/chip/types.d.ts +1 -1
  19. package/common/variables.js +26 -14
  20. package/date-input/DateInput.js +3 -3
  21. package/dialog/Dialog.js +52 -28
  22. package/dialog/Dialog.stories.tsx +57 -2
  23. package/dialog/Dialog.test.js +34 -4
  24. package/dialog/types.d.ts +3 -2
  25. package/dropdown/Dropdown.d.ts +1 -1
  26. package/dropdown/Dropdown.js +244 -247
  27. package/dropdown/Dropdown.stories.tsx +126 -63
  28. package/dropdown/Dropdown.test.js +509 -108
  29. package/dropdown/DropdownMenu.d.ts +4 -0
  30. package/dropdown/DropdownMenu.js +80 -0
  31. package/dropdown/DropdownMenuItem.d.ts +4 -0
  32. package/dropdown/DropdownMenuItem.js +92 -0
  33. package/dropdown/types.d.ts +25 -5
  34. package/file-input/FileInput.js +168 -190
  35. package/file-input/FileInput.stories.tsx +38 -6
  36. package/file-input/FileInput.test.js +41 -0
  37. package/file-input/FileItem.d.ts +4 -4
  38. package/file-input/FileItem.js +24 -36
  39. package/flex/Flex.d.ts +1 -1
  40. package/flex/Flex.js +31 -19
  41. package/flex/types.d.ts +14 -3
  42. package/footer/Footer.stories.tsx +8 -1
  43. package/footer/types.d.ts +2 -1
  44. package/header/Header.js +74 -72
  45. package/header/Header.stories.tsx +4 -4
  46. package/header/Icons.js +2 -2
  47. package/header/types.d.ts +3 -2
  48. package/layout/ApplicationLayout.stories.tsx +1 -0
  49. package/link/types.d.ts +1 -1
  50. package/number-input/NumberInput.test.js +38 -1
  51. package/package.json +10 -10
  52. package/paginator/Paginator.js +2 -2
  53. package/paginator/Paginator.test.js +1 -1
  54. package/password-input/PasswordInput.test.js +13 -12
  55. package/progress-bar/ProgressBar.d.ts +2 -2
  56. package/progress-bar/ProgressBar.js +56 -50
  57. package/progress-bar/ProgressBar.stories.jsx +3 -1
  58. package/progress-bar/ProgressBar.test.js +67 -22
  59. package/progress-bar/types.d.ts +3 -4
  60. package/quick-nav/QuickNav.js +11 -12
  61. package/quick-nav/QuickNav.stories.tsx +97 -19
  62. package/radio-group/Radio.d.ts +1 -1
  63. package/radio-group/Radio.js +43 -28
  64. package/radio-group/RadioGroup.js +24 -24
  65. package/radio-group/RadioGroup.stories.tsx +1 -0
  66. package/radio-group/RadioGroup.test.js +123 -96
  67. package/radio-group/types.d.ts +2 -2
  68. package/resultsetTable/ResultsetTable.js +1 -3
  69. package/select/Listbox.d.ts +1 -1
  70. package/select/Listbox.js +25 -2
  71. package/select/Select.js +17 -32
  72. package/select/Select.stories.tsx +6 -5
  73. package/select/Select.test.js +321 -250
  74. package/select/types.d.ts +2 -4
  75. package/sidenav/types.d.ts +1 -1
  76. package/slider/Slider.js +116 -92
  77. package/slider/Slider.stories.tsx +7 -1
  78. package/slider/Slider.test.js +121 -21
  79. package/slider/types.d.ts +2 -2
  80. package/switch/Switch.d.ts +1 -1
  81. package/switch/Switch.js +132 -66
  82. package/switch/Switch.stories.tsx +8 -30
  83. package/switch/Switch.test.js +144 -17
  84. package/switch/types.d.ts +3 -4
  85. package/table/Table.js +1 -1
  86. package/tabs/Tab.d.ts +4 -0
  87. package/tabs/Tab.js +135 -0
  88. package/tabs/Tabs.js +360 -104
  89. package/tabs/Tabs.stories.tsx +74 -0
  90. package/tabs/Tabs.test.js +217 -6
  91. package/tabs/types.d.ts +15 -5
  92. package/tabs-nav/NavTabs.js +5 -5
  93. package/tabs-nav/Tab.js +3 -5
  94. package/tabs-nav/types.d.ts +1 -1
  95. package/tag/Tag.js +1 -1
  96. package/tag/types.d.ts +1 -1
  97. package/text-input/Icons.d.ts +8 -0
  98. package/text-input/Icons.js +60 -0
  99. package/text-input/Suggestion.js +7 -5
  100. package/text-input/Suggestions.d.ts +4 -0
  101. package/text-input/Suggestions.js +134 -0
  102. package/text-input/TextInput.js +189 -282
  103. package/text-input/TextInput.stories.tsx +189 -182
  104. package/text-input/TextInput.test.js +222 -163
  105. package/text-input/types.d.ts +22 -3
  106. package/toggle-group/types.d.ts +1 -1
  107. package/wizard/types.d.ts +1 -1
@@ -179,13 +179,13 @@ var componentTokens = {
179
179
  titleLabelFontStyle: globalTokens.type_normal,
180
180
  titleLabelFontColor: globalTokens.hal_black,
181
181
  disabledTitleLabelFontColor: globalTokens.hal_grey_l_60,
182
- titleLabelPaddingLeft: "0px",
183
- titleLabelPaddingRight: "16px",
184
182
  titleLabelPaddingTop: "0px",
185
183
  titleLabelPaddingBottom: "0px",
184
+ titleLabelPaddingLeft: "0px",
185
+ titleLabelPaddingRight: "16px",
186
+ focusBorderColor: globalTokens.hal_blue_l_50,
186
187
  focusBorderStyle: "solid",
187
188
  focusBorderThickness: "2px",
188
- focusBorderColor: globalTokens.hal_blue_l_50,
189
189
  borderRadius: "4px",
190
190
  boxShadowOffsetX: "0px",
191
191
  boxShadowOffsetY: "6px",
@@ -354,7 +354,7 @@ var componentTokens = {
354
354
  backgroundColorChecked: globalTokens.hal_blue_s_35,
355
355
  backgroundColorCheckedOnDark: globalTokens.hal_grey_l_90,
356
356
  hoverBackgroundColorChecked: globalTokens.hal_blue_d_20,
357
- hoverBackgroundColorCheckedOnDark: global.hal_white,
357
+ hoverBackgroundColorCheckedOnDark: globalTokens.hal_white,
358
358
  disabledBackgroundColorChecked: globalTokens.hal_grey_l_60,
359
359
  disabledBackgroundColorCheckedOnDark: globalTokens.color_grey_800,
360
360
  borderColor: globalTokens.hal_blue_s_35,
@@ -435,7 +435,10 @@ var componentTokens = {
435
435
  boxShadowOffsetY: "1px",
436
436
  boxShadowBlur: "3px",
437
437
  boxShadowColor: "rgba(0, 0, 0, 0.2)",
438
- overlayOpacity: "0.7"
438
+ overlayOpacity: "0.7",
439
+ fontFamily: globalTokens.type_sans,
440
+ fontSize: globalTokens.type_scale_03,
441
+ fontWeight: globalTokens.type_regular
439
442
  },
440
443
  dropdown: {
441
444
  buttonBackgroundColor: globalTokens.hal_white,
@@ -760,13 +763,13 @@ var componentTokens = {
760
763
  fontTextTransform: "none",
761
764
  verticalPadding: "0.75rem",
762
765
  horizontalPadding: "2rem",
763
- marginRight: "2rem",
764
- marginLeft: "2rem",
766
+ marginRight: "40px",
767
+ marginLeft: "20px",
765
768
  itemsPerPageSelectorMarginLeft: "0px",
766
- itemsPerPageSelectorMarginRight: "1rem",
769
+ itemsPerPageSelectorMarginRight: "0.5rem",
767
770
  pageSelectorMarginRight: "30px",
768
771
  pageSelectorMarginLeft: "0px",
769
- totalItemsContainerMarginRight: "3rem",
772
+ totalItemsContainerMarginRight: "2.5rem",
770
773
  totalItemsContainerMarginLeft: "0px"
771
774
  },
772
775
  progressBar: {
@@ -1103,10 +1106,10 @@ var componentTokens = {
1103
1106
  thumbFocusColorOnDark: "#1682FF",
1104
1107
  thumbHeight: "24px",
1105
1108
  thumbWidth: "24px",
1106
- thumbShift: "40%",
1109
+ thumbShift: "1.25rem",
1107
1110
  trackHeight: "12px",
1108
- trackWidth: "60px",
1109
- spaceBetweenLabelSwitch: "0px"
1111
+ trackWidth: "36px",
1112
+ spaceBetweenLabelSwitch: "8px"
1110
1113
  },
1111
1114
  tag: {
1112
1115
  fontFamily: globalTokens.type_sans,
@@ -1437,13 +1440,18 @@ var defaultTranslatedComponentLabels = {
1437
1440
  singleButtonLabelDefault: "Select file",
1438
1441
  dropAreaButtonLabelDefault: "Select",
1439
1442
  multipleDropAreaLabelDefault: "or drop files",
1440
- singleDropAreaLabelDefault: "or drop a file"
1443
+ singleDropAreaLabelDefault: "or drop a file",
1444
+ deleteFileActionTitle: "Remove file"
1441
1445
  },
1442
1446
  footer: {
1443
1447
  copyrightText: function copyrightText(year) {
1444
1448
  return "\xA9 DXC Technology ".concat(year, ". All rights reserved.");
1445
1449
  }
1446
1450
  },
1451
+ header: {
1452
+ closeIcon: "Close menu",
1453
+ hamburguerTitle: "Menu"
1454
+ },
1447
1455
  numberInput: {
1448
1456
  valueGreaterThanOrEqualToErrorMessage: function valueGreaterThanOrEqualToErrorMessage(value) {
1449
1457
  return "Value must be greater than or equal to ".concat(value, ".");
@@ -1455,7 +1463,7 @@ var defaultTranslatedComponentLabels = {
1455
1463
  incrementValueTitle: "Increment value"
1456
1464
  },
1457
1465
  paginator: {
1458
- itemsPerPageText: "Items per page ",
1466
+ itemsPerPageText: "Items per page: ",
1459
1467
  minToMaxOfText: function minToMaxOfText(minNumberOfItems, maxNumberOfItems, totalItems) {
1460
1468
  return "".concat(minNumberOfItems, " to ").concat(maxNumberOfItems, " of ").concat(totalItems);
1461
1469
  },
@@ -1479,6 +1487,10 @@ var defaultTranslatedComponentLabels = {
1479
1487
  actionClearSelectionTitle: "Clear selection",
1480
1488
  actionClearSearchTitle: "Clear search"
1481
1489
  },
1490
+ tabs: {
1491
+ scrollLeft: "Scroll left",
1492
+ scrollRight: "Scroll right"
1493
+ },
1482
1494
  textInput: {
1483
1495
  clearFieldActionTitle: "Clear field",
1484
1496
  searchingMessage: "Searching...",
@@ -93,9 +93,9 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
93
93
  var refDate = ref || (0, _react.useRef)(null);
94
94
 
95
95
  var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
96
- switch (event.keyCode) {
97
- case 27:
98
- // Esc
96
+ switch (event.key) {
97
+ case "Esc":
98
+ case "Escape":
99
99
  event.preventDefault();
100
100
  setIsOpen(false);
101
101
  break;
package/dialog/Dialog.js CHANGED
@@ -13,19 +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 _react = _interopRequireDefault(require("react"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
- var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
21
-
22
20
  var _variables = require("../common/variables.js");
23
21
 
24
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
23
 
26
24
  var _BackgroundColorContext = require("../BackgroundColorContext");
27
25
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
26
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
29
27
 
30
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); }
31
29
 
@@ -53,15 +51,37 @@ var DxcDialog = function DxcDialog(_ref) {
53
51
  onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
54
52
  };
55
53
 
54
+ var handleOnKeyDown = function handleOnKeyDown(event) {
55
+ if (event.key === "Escape") {
56
+ event.preventDefault();
57
+ handleClose();
58
+ }
59
+ };
60
+
61
+ (0, _react.useEffect)(function () {
62
+ if (isCloseVisible) {
63
+ window.addEventListener("keydown", handleOnKeyDown);
64
+ }
65
+
66
+ return function () {
67
+ window.removeEventListener("keydown", handleOnKeyDown);
68
+ };
69
+ }, [isCloseVisible]);
56
70
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
57
71
  theme: colorsTheme.dialog
58
- }, /*#__PURE__*/_react["default"].createElement(DialogContainer, {
59
- open: true,
60
- isCloseVisible: isCloseVisible,
61
- onClose: handleOverlayClick,
62
- overlay: overlay,
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, {
63
81
  padding: padding
64
- }, isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconContainer, {
82
+ }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
83
+ color: colorsTheme.dialog.backgroundColor
84
+ }, children)), isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconContainer, {
65
85
  onClick: handleClose,
66
86
  tabIndex: tabIndex
67
87
  }, /*#__PURE__*/_react["default"].createElement(CloseIcon, {
@@ -75,24 +95,34 @@ var DxcDialog = function DxcDialog(_ref) {
75
95
  fill: "none"
76
96
  }), /*#__PURE__*/_react["default"].createElement("path", {
77
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"
78
- }))), /*#__PURE__*/_react["default"].createElement(Children, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
79
- color: colorsTheme.dialog.backgroundColor
80
- }, children))));
98
+ }))))));
81
99
  };
82
100
 
83
- 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 @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\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) {
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;
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 position: relative;\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) {
112
+ return props.theme.backgroundColor;
113
+ }, function (props) {
84
114
  return props.theme.fontFamily;
85
115
  }, function (props) {
86
- return props.overlay === true ? props.theme.overlayColor : "transparent";
116
+ return props.theme.fontSize;
87
117
  }, function (props) {
88
- return props.overlay === true && props.theme.overlayOpacity;
118
+ return props.theme.fontWeight;
89
119
  }, function (props) {
90
- return props.theme.backgroundColor;
91
- }, _variables.responsiveSizes.medium, _variables.responsiveSizes.medium, function (props) {
92
- return props.isCloseVisible ? "72px" : "";
120
+ return props.isCloseVisible && "min-height: 72px; padding-top: 24px;";
93
121
  }, function (props) {
94
122
  return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
95
- }, function (props) {
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 width: 100%;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
96
126
  return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : _variables.spaces["small"];
97
127
  }, function (props) {
98
128
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
@@ -104,13 +134,7 @@ var DialogContainer = (0, _styledComponents["default"])(_Dialog["default"])(_tem
104
134
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
105
135
  });
106
136
 
107
- var Children = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])([""])));
108
-
109
- 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) {
110
- return props.theme.closeIconTopPosition;
111
- }, function (props) {
112
- return props.theme.closeIconRightPosition;
113
- }, 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: absolute;\n top: 20px;\n right: 20px;\n color: ", ";\n width: ", ";\n height: ", ";\n"])), function (props) {
114
138
  return props.theme.closeIconColor;
115
139
  }, function (props) {
116
140
  return props.theme.closeIconWidth;
@@ -118,7 +142,7 @@ var CloseIconContainer = _styledComponents["default"].button(_templateObject3 ||
118
142
  return props.theme.closeIconHeight;
119
143
  });
120
144
 
121
- 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) {
122
146
  return props.theme.closeIconBackgroundColor;
123
147
  }, function (props) {
124
148
  return props.theme.closeIconWidth;
@@ -1,6 +1,9 @@
1
1
  import React from "react";
2
- import { userEvent, within } from "@storybook/testing-library";
3
2
  import DxcDialog from "./Dialog";
3
+ import DxcTextInput from "../text-input/TextInput";
4
+ import DxcButton from "../button/Button";
5
+ import DxcFlex from "../flex/Flex";
6
+ import DxcInset from "../inset/Inset";
4
7
  import Title from "../../.storybook/components/Title";
5
8
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
9
 
@@ -31,6 +34,50 @@ export const DefaultDialog = () => (
31
34
  </>
32
35
  );
33
36
 
37
+ export const DialogWithInputs = () => (
38
+ <>
39
+ <ExampleContainer expanded={true}>
40
+ <Title title="Dialog with inputs" theme="light" level={4} />
41
+ <DxcDialog>
42
+ <DxcInset bottom="1rem">
43
+ <DxcFlex gap="2rem" direction="column">
44
+ <DxcFlex gap="1rem" direction="column">
45
+ <DxcTextInput size="fillParent" label="Name"></DxcTextInput>
46
+ <DxcTextInput size="fillParent" label="Surname"></DxcTextInput>
47
+ </DxcFlex>
48
+ <DxcFlex justifyContent="flex-end" gap="1rem">
49
+ <DxcButton label="Save"></DxcButton>
50
+ <DxcButton label="Cancel" mode="secondary"></DxcButton>
51
+ </DxcFlex>
52
+ </DxcFlex>
53
+ </DxcInset>
54
+ </DxcDialog>
55
+ </ExampleContainer>
56
+ </>
57
+ );
58
+
59
+ const RespDialog = () => (
60
+ <>
61
+ <ExampleContainer expanded={true}>
62
+ <Title title="Responsive dialog" theme="light" level={4} />
63
+ <DxcDialog>
64
+ <DxcInset bottom="1rem">
65
+ <DxcFlex gap="2rem" direction="column">
66
+ <DxcFlex gap="1rem" direction="column">
67
+ <DxcTextInput size="fillParent" label="Name"></DxcTextInput>
68
+ <DxcTextInput size="fillParent" label="Surname"></DxcTextInput>
69
+ </DxcFlex>
70
+ <DxcFlex justifyContent="flex-end" gap="1rem">
71
+ <DxcButton label="Save"></DxcButton>
72
+ <DxcButton label="Cancel" mode="secondary"></DxcButton>
73
+ </DxcFlex>
74
+ </DxcFlex>
75
+ </DxcInset>
76
+ </DxcDialog>
77
+ </ExampleContainer>
78
+ </>
79
+ );
80
+
34
81
  export const DialogWithoutOverlay = () => (
35
82
  <ExampleContainer expanded={true}>
36
83
  <Title title="Dialog Without Overlay" theme="light" level={4} />
@@ -209,4 +256,12 @@ export const DialogWithXxlargePadding = () => (
209
256
  </p>{" "}
210
257
  </DxcDialog>
211
258
  </ExampleContainer>
212
- );
259
+ );
260
+
261
+ export const ResponsiveDialog = RespDialog.bind({});
262
+ ResponsiveDialog.parameters = {
263
+ viewport: {
264
+ defaultViewport: "iphonex",
265
+ },
266
+ chromatic: { viewports: [375] },
267
+ };
@@ -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;
@@ -26,6 +26,7 @@ declare type Props = {
26
26
  */
27
27
  onBackgroundClick?: () => void;
28
28
  /**
29
+ * @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
29
30
  * Size of the padding to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
30
31
  * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
31
32
  */
@@ -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;