@dxc-technology/halstack-react 0.0.0-73f82b7 → 0.0.0-74ba970

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 (297) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +124 -137
  7. package/accordion/Accordion.stories.tsx +306 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +11 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +16 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.test.js +92 -0
  17. package/alert/types.d.ts +1 -1
  18. package/badge/Badge.d.ts +4 -0
  19. package/badge/Badge.js +6 -4
  20. package/badge/types.d.ts +5 -0
  21. package/{radio → badge}/types.js +0 -0
  22. package/bleed/Bleed.d.ts +3 -0
  23. package/bleed/Bleed.js +51 -0
  24. package/bleed/Bleed.stories.tsx +341 -0
  25. package/bleed/types.d.ts +37 -0
  26. package/bleed/types.js +5 -0
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +27 -40
  29. package/box/Box.test.js +18 -0
  30. package/box/types.d.ts +0 -4
  31. package/bulleted-list/BulletedList.d.ts +7 -0
  32. package/bulleted-list/BulletedList.js +123 -0
  33. package/bulleted-list/BulletedList.stories.tsx +200 -0
  34. package/bulleted-list/types.d.ts +11 -0
  35. package/bulleted-list/types.js +5 -0
  36. package/button/Button.d.ts +1 -1
  37. package/button/Button.js +62 -83
  38. package/button/Button.stories.tsx +15 -8
  39. package/button/Button.test.js +35 -0
  40. package/button/types.d.ts +10 -14
  41. package/card/Card.js +26 -30
  42. package/card/Card.stories.tsx +201 -0
  43. package/card/Card.test.js +50 -0
  44. package/card/ice-cream.jpg +0 -0
  45. package/card/types.d.ts +4 -6
  46. package/checkbox/Checkbox.d.ts +1 -1
  47. package/checkbox/Checkbox.js +104 -108
  48. package/checkbox/Checkbox.stories.tsx +124 -128
  49. package/checkbox/Checkbox.test.js +155 -0
  50. package/checkbox/types.d.ts +11 -7
  51. package/chip/Chip.d.ts +4 -0
  52. package/chip/Chip.js +16 -76
  53. package/chip/Chip.stories.tsx +119 -0
  54. package/chip/Chip.test.js +56 -0
  55. package/chip/types.d.ts +45 -0
  56. package/chip/types.js +5 -0
  57. package/common/variables.js +290 -359
  58. package/date-input/DateInput.js +66 -55
  59. package/date-input/DateInput.stories.tsx +7 -7
  60. package/date-input/DateInput.test.js +479 -0
  61. package/date-input/types.d.ts +16 -9
  62. package/dialog/Dialog.js +50 -53
  63. package/dialog/Dialog.stories.tsx +211 -0
  64. package/dialog/Dialog.test.js +70 -0
  65. package/dialog/types.d.ts +2 -2
  66. package/dropdown/Dropdown.d.ts +1 -1
  67. package/dropdown/Dropdown.js +243 -273
  68. package/dropdown/Dropdown.stories.tsx +312 -0
  69. package/dropdown/Dropdown.test.js +591 -0
  70. package/dropdown/DropdownMenu.d.ts +4 -0
  71. package/dropdown/DropdownMenu.js +80 -0
  72. package/dropdown/DropdownMenuItem.d.ts +4 -0
  73. package/dropdown/DropdownMenuItem.js +92 -0
  74. package/dropdown/types.d.ts +30 -19
  75. package/file-input/FileInput.d.ts +4 -0
  76. package/file-input/FileInput.js +172 -111
  77. package/file-input/FileInput.stories.tsx +507 -0
  78. package/file-input/FileInput.test.js +457 -0
  79. package/file-input/FileItem.d.ts +14 -0
  80. package/file-input/FileItem.js +16 -23
  81. package/file-input/types.d.ts +112 -0
  82. package/file-input/types.js +5 -0
  83. package/flex/Flex.d.ts +4 -0
  84. package/flex/Flex.js +57 -0
  85. package/flex/Flex.stories.tsx +103 -0
  86. package/flex/types.d.ts +21 -0
  87. package/flex/types.js +5 -0
  88. package/footer/Footer.d.ts +1 -1
  89. package/footer/Footer.js +32 -113
  90. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
  91. package/footer/Footer.test.js +109 -0
  92. package/footer/Icons.d.ts +2 -0
  93. package/footer/Icons.js +4 -4
  94. package/footer/types.d.ts +22 -18
  95. package/header/Header.js +97 -116
  96. package/header/Header.stories.tsx +172 -0
  97. package/header/Header.test.js +79 -0
  98. package/header/Icons.d.ts +2 -0
  99. package/header/Icons.js +2 -2
  100. package/header/types.d.ts +6 -4
  101. package/heading/Heading.d.ts +4 -0
  102. package/heading/Heading.js +7 -24
  103. package/heading/Heading.stories.tsx +54 -0
  104. package/heading/Heading.test.js +186 -0
  105. package/heading/types.d.ts +33 -0
  106. package/heading/types.js +5 -0
  107. package/inset/Inset.d.ts +3 -0
  108. package/inset/Inset.js +51 -0
  109. package/inset/Inset.stories.tsx +229 -0
  110. package/inset/types.d.ts +37 -0
  111. package/inset/types.js +5 -0
  112. package/layout/ApplicationLayout.d.ts +20 -0
  113. package/layout/ApplicationLayout.js +71 -135
  114. package/layout/ApplicationLayout.stories.tsx +162 -0
  115. package/layout/Icons.d.ts +5 -0
  116. package/layout/Icons.js +13 -2
  117. package/layout/SidenavContext.d.ts +5 -0
  118. package/layout/SidenavContext.js +19 -0
  119. package/layout/types.d.ts +42 -0
  120. package/layout/types.js +5 -0
  121. package/link/Link.d.ts +3 -2
  122. package/link/Link.js +61 -86
  123. package/link/Link.stories.tsx +139 -16
  124. package/link/Link.test.js +83 -0
  125. package/link/types.d.ts +9 -29
  126. package/main.d.ts +12 -12
  127. package/main.js +64 -58
  128. package/number-input/NumberInput.js +14 -24
  129. package/number-input/NumberInput.stories.tsx +5 -5
  130. package/number-input/NumberInput.test.js +506 -0
  131. package/number-input/NumberInputContext.d.ts +4 -0
  132. package/number-input/NumberInputContext.js +5 -2
  133. package/number-input/numberInputContextTypes.d.ts +19 -0
  134. package/number-input/numberInputContextTypes.js +5 -0
  135. package/number-input/types.d.ts +17 -10
  136. package/package.json +16 -12
  137. package/paginator/Paginator.js +19 -46
  138. package/paginator/Paginator.test.js +308 -0
  139. package/paragraph/Paragraph.d.ts +6 -0
  140. package/paragraph/Paragraph.js +38 -0
  141. package/paragraph/Paragraph.stories.tsx +44 -0
  142. package/password-input/PasswordInput.js +23 -19
  143. package/password-input/PasswordInput.stories.tsx +3 -3
  144. package/password-input/PasswordInput.test.js +180 -0
  145. package/password-input/types.d.ts +29 -19
  146. package/progress-bar/ProgressBar.d.ts +2 -2
  147. package/progress-bar/ProgressBar.js +59 -53
  148. package/progress-bar/ProgressBar.stories.jsx +13 -11
  149. package/progress-bar/ProgressBar.test.js +110 -0
  150. package/progress-bar/types.d.ts +3 -4
  151. package/quick-nav/QuickNav.d.ts +4 -0
  152. package/quick-nav/QuickNav.js +118 -0
  153. package/quick-nav/QuickNav.stories.tsx +264 -0
  154. package/quick-nav/types.d.ts +21 -0
  155. package/quick-nav/types.js +5 -0
  156. package/radio-group/Radio.d.ts +4 -0
  157. package/radio-group/Radio.js +156 -0
  158. package/radio-group/RadioGroup.d.ts +4 -0
  159. package/radio-group/RadioGroup.js +279 -0
  160. package/radio-group/RadioGroup.stories.tsx +101 -0
  161. package/radio-group/RadioGroup.test.js +665 -0
  162. package/radio-group/types.d.ts +114 -0
  163. package/radio-group/types.js +5 -0
  164. package/resultsetTable/ResultsetTable.d.ts +4 -0
  165. package/resultsetTable/ResultsetTable.js +9 -29
  166. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  167. package/resultsetTable/ResultsetTable.test.js +348 -0
  168. package/resultsetTable/types.d.ts +67 -0
  169. package/resultsetTable/types.js +5 -0
  170. package/select/Icons.d.ts +10 -0
  171. package/select/Icons.js +93 -0
  172. package/select/Listbox.d.ts +4 -0
  173. package/select/Listbox.js +198 -0
  174. package/select/Option.d.ts +4 -0
  175. package/select/Option.js +110 -0
  176. package/select/Select.d.ts +4 -0
  177. package/select/Select.js +158 -380
  178. package/select/Select.stories.tsx +627 -0
  179. package/select/Select.test.js +2175 -0
  180. package/select/types.d.ts +210 -0
  181. package/select/types.js +5 -0
  182. package/sidenav/Sidenav.d.ts +6 -5
  183. package/sidenav/Sidenav.js +186 -54
  184. package/sidenav/Sidenav.stories.tsx +180 -0
  185. package/sidenav/Sidenav.test.js +44 -0
  186. package/sidenav/types.d.ts +50 -27
  187. package/slider/Slider.d.ts +1 -1
  188. package/slider/Slider.js +118 -96
  189. package/slider/Slider.stories.tsx +20 -9
  190. package/slider/Slider.test.js +250 -0
  191. package/slider/types.d.ts +6 -2
  192. package/spinner/Spinner.js +3 -3
  193. package/spinner/Spinner.stories.jsx +1 -0
  194. package/spinner/Spinner.test.js +64 -0
  195. package/switch/Switch.d.ts +2 -2
  196. package/switch/Switch.js +149 -67
  197. package/switch/Switch.stories.tsx +21 -43
  198. package/switch/Switch.test.js +225 -0
  199. package/switch/types.d.ts +9 -6
  200. package/table/Table.js +3 -3
  201. package/table/Table.stories.jsx +2 -1
  202. package/table/Table.test.js +26 -0
  203. package/tabs/Tab.d.ts +4 -0
  204. package/tabs/Tab.js +135 -0
  205. package/tabs/Tabs.d.ts +1 -1
  206. package/tabs/Tabs.js +364 -108
  207. package/tabs/Tabs.stories.tsx +186 -0
  208. package/tabs/Tabs.test.js +351 -0
  209. package/tabs/types.d.ts +41 -20
  210. package/tabs-nav/NavTabs.d.ts +8 -0
  211. package/tabs-nav/NavTabs.js +125 -0
  212. package/tabs-nav/NavTabs.stories.tsx +170 -0
  213. package/tabs-nav/NavTabs.test.js +82 -0
  214. package/tabs-nav/Tab.d.ts +4 -0
  215. package/tabs-nav/Tab.js +130 -0
  216. package/tabs-nav/types.d.ts +53 -0
  217. package/tabs-nav/types.js +5 -0
  218. package/tag/Tag.d.ts +1 -1
  219. package/tag/Tag.js +19 -29
  220. package/tag/Tag.stories.tsx +26 -29
  221. package/tag/Tag.test.js +60 -0
  222. package/tag/types.d.ts +23 -14
  223. package/text-input/Icons.d.ts +8 -0
  224. package/text-input/Icons.js +60 -0
  225. package/text-input/Suggestion.d.ts +4 -0
  226. package/text-input/Suggestion.js +57 -0
  227. package/text-input/Suggestions.d.ts +4 -0
  228. package/text-input/Suggestions.js +134 -0
  229. package/text-input/TextInput.d.ts +4 -0
  230. package/text-input/TextInput.js +166 -328
  231. package/text-input/TextInput.stories.tsx +481 -0
  232. package/text-input/TextInput.test.js +1713 -0
  233. package/text-input/types.d.ts +192 -0
  234. package/text-input/types.js +5 -0
  235. package/textarea/Textarea.d.ts +4 -0
  236. package/textarea/Textarea.js +39 -79
  237. package/textarea/Textarea.stories.jsx +37 -15
  238. package/textarea/Textarea.test.js +437 -0
  239. package/textarea/types.d.ts +137 -0
  240. package/textarea/types.js +5 -0
  241. package/toggle-group/ToggleGroup.d.ts +4 -0
  242. package/toggle-group/ToggleGroup.js +18 -46
  243. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  244. package/toggle-group/ToggleGroup.test.js +156 -0
  245. package/toggle-group/types.d.ts +105 -0
  246. package/toggle-group/types.js +5 -0
  247. package/typography/Typography.d.ts +4 -0
  248. package/typography/Typography.js +131 -0
  249. package/typography/Typography.stories.tsx +198 -0
  250. package/typography/types.d.ts +18 -0
  251. package/typography/types.js +5 -0
  252. package/useTheme.d.ts +2 -0
  253. package/useTheme.js +2 -2
  254. package/useTranslatedLabels.d.ts +2 -0
  255. package/useTranslatedLabels.js +20 -0
  256. package/wizard/Wizard.d.ts +1 -1
  257. package/wizard/Wizard.js +112 -58
  258. package/wizard/Wizard.stories.tsx +233 -0
  259. package/wizard/Wizard.test.js +141 -0
  260. package/wizard/types.d.ts +13 -12
  261. package/ThemeContext.js +0 -246
  262. package/V3Select/V3Select.js +0 -455
  263. package/V3Select/index.d.ts +0 -27
  264. package/V3Textarea/V3Textarea.js +0 -260
  265. package/V3Textarea/index.d.ts +0 -27
  266. package/chip/index.d.ts +0 -22
  267. package/date/Date.js +0 -373
  268. package/date/index.d.ts +0 -27
  269. package/file-input/index.d.ts +0 -81
  270. package/heading/index.d.ts +0 -17
  271. package/input-text/Icons.js +0 -22
  272. package/input-text/InputText.js +0 -611
  273. package/input-text/index.d.ts +0 -36
  274. package/radio/Radio.d.ts +0 -4
  275. package/radio/Radio.js +0 -174
  276. package/radio/Radio.stories.tsx +0 -192
  277. package/radio/types.d.ts +0 -54
  278. package/resultsetTable/index.d.ts +0 -19
  279. package/select/index.d.ts +0 -131
  280. package/text-input/index.d.ts +0 -135
  281. package/textarea/index.d.ts +0 -117
  282. package/toggle/Toggle.js +0 -186
  283. package/toggle/index.d.ts +0 -21
  284. package/toggle-group/index.d.ts +0 -21
  285. package/upload/Upload.js +0 -201
  286. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  287. package/upload/buttons-upload/Icons.js +0 -40
  288. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  289. package/upload/dragAndDropArea/Icons.js +0 -39
  290. package/upload/file-upload/FileToUpload.js +0 -115
  291. package/upload/file-upload/Icons.js +0 -66
  292. package/upload/files-upload/FilesToUpload.js +0 -109
  293. package/upload/index.d.ts +0 -15
  294. package/upload/transaction/Icons.js +0 -160
  295. package/upload/transaction/Transaction.js +0 -104
  296. package/upload/transactions/Transactions.js +0 -94
  297. package/wizard/Icons.js +0 -65
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
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
23
 
28
- var _BackgroundColorContext = require("../BackgroundColorContext.js");
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
 
@@ -41,15 +37,10 @@ var DxcDialog = function DxcDialog(_ref) {
41
37
  _ref$overlay = _ref.overlay,
42
38
  overlay = _ref$overlay === void 0 ? true : _ref$overlay,
43
39
  onBackgroundClick = _ref.onBackgroundClick,
44
- padding = _ref.padding,
40
+ _ref$padding = _ref.padding,
41
+ padding = _ref$padding === void 0 ? "small" : _ref$padding,
45
42
  _ref$tabIndex = _ref.tabIndex,
46
43
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
47
-
48
- var _useState = (0, _react.useState)(false),
49
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
50
- isResponsive = _useState2[0],
51
- setIsResponsive = _useState2[1];
52
-
53
44
  var colorsTheme = (0, _useTheme["default"])();
54
45
 
55
46
  var handleClose = function handleClose() {
@@ -60,31 +51,37 @@ var DxcDialog = function DxcDialog(_ref) {
60
51
  onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
61
52
  };
62
53
 
63
- var handleResize = function handleResize(width) {
64
- setIsResponsive(width && width <= _variables.responsiveSizes.tablet);
65
- };
66
-
67
- var handleEventListener = function handleEventListener() {
68
- handleResize(window.innerWidth);
54
+ var handleOnKeyDown = function handleOnKeyDown(event) {
55
+ if (event.key === "Escape") {
56
+ event.preventDefault();
57
+ handleClose();
58
+ }
69
59
  };
70
60
 
71
61
  (0, _react.useEffect)(function () {
72
- window.addEventListener("resize", handleEventListener);
73
- handleResize(window.innerWidth);
62
+ if (isCloseVisible) {
63
+ window.addEventListener("keydown", handleOnKeyDown);
64
+ }
65
+
74
66
  return function () {
75
- window.removeEventListener("resize", handleEventListener);
67
+ window.removeEventListener("keydown", handleOnKeyDown);
76
68
  };
77
- }, []);
69
+ }, [isCloseVisible]);
78
70
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
79
71
  theme: colorsTheme.dialog
80
- }, /*#__PURE__*/_react["default"].createElement(DialogContainer, {
81
- open: true,
82
- isCloseVisible: isCloseVisible,
83
- onClose: handleOverlayClick,
84
- overlay: overlay,
85
- padding: padding,
86
- isResponsive: isResponsive
87
- }, 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, {
88
85
  onClick: handleClose,
89
86
  tabIndex: tabIndex
90
87
  }, /*#__PURE__*/_react["default"].createElement(CloseIcon, {
@@ -98,28 +95,34 @@ var DxcDialog = function DxcDialog(_ref) {
98
95
  fill: "none"
99
96
  }), /*#__PURE__*/_react["default"].createElement("path", {
100
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"
101
- }))), /*#__PURE__*/_react["default"].createElement(Children, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
102
- color: colorsTheme.dialog.backgroundColor
103
- }, children))));
98
+ }))))));
104
99
  };
105
100
 
106
- 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) {
107
- return props.theme.fontFamily;
108
- }, function (props) {
109
- return props.overlay === true ? props.theme.overlayColor : "transparent";
110
- }, function (props) {
111
- 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;
112
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) {
113
112
  return props.theme.backgroundColor;
114
113
  }, function (props) {
115
- return props.isResponsive ? "92%" : "80%";
114
+ return props.theme.fontFamily;
116
115
  }, function (props) {
117
- return props.isResponsive ? "92%" : "800px";
116
+ return props.theme.fontSize;
118
117
  }, function (props) {
119
- return props.isCloseVisible ? "72px" : "";
118
+ return props.theme.fontWeight;
120
119
  }, function (props) {
121
- return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
120
+ return props.isCloseVisible && "min-height: 72px;";
122
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) {
123
126
  return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : _variables.spaces["small"];
124
127
  }, function (props) {
125
128
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
@@ -131,13 +134,7 @@ var DialogContainer = (0, _styledComponents["default"])(_Dialog["default"])(_tem
131
134
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
132
135
  });
133
136
 
134
- var Children = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])([""])));
135
-
136
- 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) {
137
- return props.theme.closeIconTopPosition;
138
- }, function (props) {
139
- return props.theme.closeIconRightPosition;
140
- }, 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) {
141
138
  return props.theme.closeIconColor;
142
139
  }, function (props) {
143
140
  return props.theme.closeIconWidth;
@@ -145,7 +142,7 @@ var CloseIconContainer = _styledComponents["default"].button(_templateObject3 ||
145
142
  return props.theme.closeIconHeight;
146
143
  });
147
144
 
148
- 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) {
149
146
  return props.theme.closeIconBackgroundColor;
150
147
  }, function (props) {
151
148
  return props.theme.closeIconWidth;
@@ -0,0 +1,211 @@
1
+ import React from "react";
2
+ import DxcDialog from "./Dialog";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+
6
+ export default {
7
+ title: "Dialog ",
8
+ component: DxcDialog,
9
+ };
10
+
11
+ export const DefaultDialog = () => (
12
+ <>
13
+ <ExampleContainer expanded={true}>
14
+ <Title title="Default dialog" theme="light" level={4} />
15
+ <DxcDialog>
16
+ {" "}
17
+ <p>
18
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
19
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
20
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
21
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
22
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
23
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
24
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
25
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
26
+ dignissim, pharetra neque molestie, molestie lectus.
27
+ </p>{" "}
28
+ </DxcDialog>
29
+ </ExampleContainer>
30
+ </>
31
+ );
32
+
33
+ export const DialogWithoutOverlay = () => (
34
+ <ExampleContainer expanded={true}>
35
+ <Title title="Dialog Without Overlay" theme="light" level={4} />
36
+ <DxcDialog overlay={false}>
37
+ {" "}
38
+ <p>
39
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
40
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
41
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
42
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
43
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
44
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
45
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
46
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
47
+ dignissim, pharetra neque molestie, molestie lectus.
48
+ </p>{" "}
49
+ </DxcDialog>
50
+ </ExampleContainer>
51
+ );
52
+
53
+ export const DialogCloseVisibleFalse = () => (
54
+ <ExampleContainer expanded={true}>
55
+ <Title title="Dialog Close Visible" theme="dark" level={4} />
56
+ <DxcDialog isCloseVisible={false}>
57
+ {" "}
58
+ <p>
59
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
60
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
61
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
62
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
63
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
64
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
65
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
66
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
67
+ dignissim, pharetra neque molestie, molestie lectus.
68
+ </p>{" "}
69
+ </DxcDialog>
70
+ </ExampleContainer>
71
+ );
72
+
73
+ export const DialogWithXxsmallPadding = () => (
74
+ <ExampleContainer expanded={true}>
75
+ <Title title="Dialog With Xxsmall Padding" theme="light" level={4} />
76
+ <DxcDialog padding={"xxsmall"}>
77
+ {" "}
78
+ <p>
79
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
80
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
81
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
82
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
83
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
84
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
85
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
86
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
87
+ dignissim, pharetra neque molestie, molestie lectus.
88
+ </p>{" "}
89
+ </DxcDialog>
90
+ </ExampleContainer>
91
+ );
92
+
93
+ export const DialogWithXsmallPadding = () => (
94
+ <ExampleContainer expanded={true}>
95
+ <Title title="Dialog With Xsmall Padding" theme="light" level={4} />
96
+ <DxcDialog padding={"xsmall"}>
97
+ {" "}
98
+ <p>
99
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
100
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
101
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
102
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
103
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
104
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
105
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
106
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
107
+ dignissim, pharetra neque molestie, molestie lectus.
108
+ </p>{" "}
109
+ </DxcDialog>
110
+ </ExampleContainer>
111
+ );
112
+
113
+ export const DialogWithSmallPadding = () => (
114
+ <ExampleContainer expanded={true}>
115
+ <Title title="Dialog With Small Padding" theme="light" level={4} />
116
+ <DxcDialog padding={"small"}>
117
+ {" "}
118
+ <p>
119
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
120
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
121
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
122
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
123
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
124
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
125
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
126
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
127
+ dignissim, pharetra neque molestie, molestie lectus.
128
+ </p>{" "}
129
+ </DxcDialog>
130
+ </ExampleContainer>
131
+ );
132
+
133
+ export const DialogWithMediumPadding = () => (
134
+ <ExampleContainer expanded={true}>
135
+ <Title title="Dialog With Medium Padding" theme="light" level={4} />
136
+ <DxcDialog padding={"medium"}>
137
+ {" "}
138
+ <p>
139
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
140
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
141
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
142
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
143
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
144
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
145
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
146
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
147
+ dignissim, pharetra neque molestie, molestie lectus.
148
+ </p>{" "}
149
+ </DxcDialog>
150
+ </ExampleContainer>
151
+ );
152
+
153
+ export const DialogWithLargePadding = () => (
154
+ <ExampleContainer expanded={true}>
155
+ <Title title="Dialog With Large Padding" theme="light" level={4} />
156
+ <DxcDialog padding={"large"}>
157
+ {" "}
158
+ <p>
159
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
160
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
161
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
162
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
163
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
164
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
165
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
166
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
167
+ dignissim, pharetra neque molestie, molestie lectus.
168
+ </p>{" "}
169
+ </DxcDialog>
170
+ </ExampleContainer>
171
+ );
172
+
173
+ export const DialogWithXlargePadding = () => (
174
+ <ExampleContainer expanded={true}>
175
+ <Title title="Dialog With Xlarge Padding" theme="light" level={4} />
176
+ <DxcDialog padding={"xlarge"}>
177
+ {" "}
178
+ <p>
179
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
180
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
181
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
182
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
183
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
184
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
185
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
186
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
187
+ dignissim, pharetra neque molestie, molestie lectus.
188
+ </p>{" "}
189
+ </DxcDialog>
190
+ </ExampleContainer>
191
+ );
192
+
193
+ export const DialogWithXxlargePadding = () => (
194
+ <ExampleContainer expanded={true}>
195
+ <Title title="Dialog With Xxlarge Padding" theme="light" level={4} />
196
+ <DxcDialog padding={"xxlarge"}>
197
+ {" "}
198
+ <p>
199
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
200
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
201
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
202
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
203
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
204
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
205
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
206
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
207
+ dignissim, pharetra neque molestie, molestie lectus.
208
+ </p>{" "}
209
+ </DxcDialog>
210
+ </ExampleContainer>
211
+ );
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Dialog = _interopRequireDefault(require("./Dialog"));
10
+
11
+ describe("Dialog component tests", function () {
12
+ test("Dialog renders with correct text and accesibility attributes", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "dialog-text")),
14
+ getByText = _render.getByText,
15
+ getByRole = _render.getByRole;
16
+
17
+ expect(getByRole("dialog")).toBeTruthy();
18
+ expect(getByRole("dialog").getAttribute("aria-modal")).toBe("true");
19
+ expect(getByText("dialog-text")).toBeTruthy();
20
+ });
21
+ test("Dialog renders without close button", function () {
22
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
23
+ isCloseVisible: false
24
+ }, "dialog-text")),
25
+ queryByRole = _render2.queryByRole;
26
+
27
+ expect(queryByRole("button")).toBeFalsy();
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
+ });
39
+ test("Calls correct function onCloseClick", function () {
40
+ var onCloseClick = jest.fn();
41
+
42
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
43
+ onCloseClick: onCloseClick
44
+ }, "dialog-text")),
45
+ getByRole = _render4.getByRole;
46
+
47
+ var closeButton = getByRole("button");
48
+
49
+ _react2.fireEvent.click(closeButton);
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
+
68
+ expect(onCloseClick).toHaveBeenCalled();
69
+ });
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, iconSrc, 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;