@dxc-technology/halstack-react 0.0.0-c9c1158 → 0.0.0-c9efd3e

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 (216) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +2 -7
  3. package/HalstackContext.d.ts +29 -133
  4. package/HalstackContext.js +1 -1
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +10 -26
  7. package/accordion/Accordion.stories.tsx +4 -36
  8. package/accordion/types.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  10. package/accordion-group/AccordionGroup.d.ts +2 -3
  11. package/accordion-group/AccordionGroup.js +3 -3
  12. package/accordion-group/AccordionGroupAccordion.js +2 -2
  13. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  14. package/accordion-group/AccordionGroupContext.js +8 -0
  15. package/accordion-group/types.d.ts +1 -1
  16. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  17. package/action-icon/ActionIcon.d.ts +4 -0
  18. package/action-icon/ActionIcon.js +48 -0
  19. package/action-icon/ActionIcon.stories.tsx +41 -0
  20. package/action-icon/ActionIcon.test.js +64 -0
  21. package/action-icon/types.d.ts +26 -0
  22. package/action-icon/types.js +5 -0
  23. package/alert/Alert.accessibility.test.js +95 -0
  24. package/alert/Alert.js +15 -72
  25. package/badge/Badge.accessibility.test.js +129 -0
  26. package/badge/Badge.d.ts +1 -1
  27. package/badge/Badge.js +141 -28
  28. package/badge/Badge.stories.tsx +210 -0
  29. package/badge/Badge.test.js +30 -0
  30. package/badge/types.d.ts +52 -3
  31. package/box/Box.accessibility.test.js +33 -0
  32. package/box/Box.js +1 -4
  33. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  34. package/bulleted-list/BulletedList.js +15 -22
  35. package/bulleted-list/BulletedList.stories.tsx +1 -2
  36. package/button/Button.accessibility.test.js +127 -0
  37. package/button/Button.js +15 -15
  38. package/button/Button.stories.tsx +32 -51
  39. package/button/Button.test.js +3 -1
  40. package/button/types.d.ts +1 -1
  41. package/card/Card.accessibility.test.js +36 -0
  42. package/checkbox/Checkbox.accessibility.test.js +87 -0
  43. package/checkbox/Checkbox.js +26 -31
  44. package/chip/Chip.accessibility.test.js +67 -0
  45. package/chip/Chip.js +8 -5
  46. package/chip/Chip.stories.tsx +5 -24
  47. package/chip/Chip.test.js +4 -4
  48. package/common/coreTokens.d.ts +1 -1
  49. package/common/coreTokens.js +3 -3
  50. package/common/variables.d.ts +29 -133
  51. package/common/variables.js +38 -142
  52. package/container/Container.js +3 -7
  53. package/container/Container.stories.tsx +10 -25
  54. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  55. package/contextual-menu/ContextualMenu.d.ts +7 -0
  56. package/contextual-menu/ContextualMenu.js +71 -0
  57. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  58. package/contextual-menu/ContextualMenu.test.js +71 -0
  59. package/contextual-menu/MenuItemAction.d.ts +4 -0
  60. package/contextual-menu/MenuItemAction.js +46 -0
  61. package/contextual-menu/types.d.ts +22 -0
  62. package/contextual-menu/types.js +5 -0
  63. package/date-input/DateInput.accessibility.test.js +216 -0
  64. package/date-input/types.d.ts +2 -2
  65. package/dialog/Dialog.accessibility.test.js +69 -0
  66. package/dialog/Dialog.js +2 -5
  67. package/dialog/Dialog.stories.tsx +170 -0
  68. package/dialog/Dialog.test.js +1 -1
  69. package/divider/Divider.accessibility.test.js +33 -0
  70. package/divider/Divider.d.ts +4 -0
  71. package/divider/Divider.js +36 -0
  72. package/divider/Divider.stories.tsx +223 -0
  73. package/divider/Divider.test.js +38 -0
  74. package/divider/types.d.ts +21 -0
  75. package/divider/types.js +5 -0
  76. package/dropdown/Dropdown.accessibility.test.js +180 -0
  77. package/dropdown/Dropdown.js +21 -36
  78. package/dropdown/Dropdown.stories.tsx +5 -16
  79. package/dropdown/DropdownMenuItem.js +6 -3
  80. package/dropdown/types.d.ts +3 -5
  81. package/file-input/FileInput.accessibility.test.js +160 -0
  82. package/file-input/FileInput.js +3 -39
  83. package/file-input/FileInput.test.js +7 -84
  84. package/file-input/FileItem.js +13 -27
  85. package/footer/Footer.accessibility.test.js +117 -0
  86. package/footer/Footer.d.ts +1 -1
  87. package/footer/Footer.js +36 -31
  88. package/footer/Footer.stories.tsx +46 -2
  89. package/footer/Icons.d.ts +1 -0
  90. package/footer/Icons.js +65 -1
  91. package/footer/types.d.ts +8 -8
  92. package/header/Header.accessibility.test.js +84 -0
  93. package/header/Header.js +18 -40
  94. package/header/types.d.ts +4 -3
  95. package/heading/Heading.accessibility.test.js +33 -0
  96. package/icon/Icon.accessibility.test.js +30 -0
  97. package/icon/Icon.d.ts +4 -0
  98. package/icon/Icon.js +33 -0
  99. package/icon/Icon.stories.tsx +28 -0
  100. package/icon/types.d.ts +4 -0
  101. package/icon/types.js +5 -0
  102. package/image/Image.accessibility.test.js +56 -0
  103. package/image/Image.stories.tsx +3 -1
  104. package/layout/ApplicationLayout.d.ts +1 -1
  105. package/layout/ApplicationLayout.js +1 -1
  106. package/layout/Icons.js +0 -2
  107. package/link/Link.accessibility.test.js +112 -0
  108. package/link/Link.js +7 -5
  109. package/link/Link.stories.tsx +2 -2
  110. package/link/types.d.ts +1 -1
  111. package/main.d.ts +5 -3
  112. package/main.js +22 -8
  113. package/nav-tabs/NavTabs.accessibility.test.js +52 -0
  114. package/nav-tabs/NavTabs.d.ts +1 -2
  115. package/nav-tabs/NavTabs.js +9 -6
  116. package/nav-tabs/NavTabs.stories.tsx +6 -4
  117. package/nav-tabs/NavTabs.test.js +3 -2
  118. package/nav-tabs/NavTabsContext.d.ts +3 -0
  119. package/nav-tabs/NavTabsContext.js +8 -0
  120. package/nav-tabs/Tab.js +8 -7
  121. package/number-input/NumberInput.accessibility.test.js +228 -0
  122. package/number-input/NumberInput.d.ts +0 -7
  123. package/number-input/NumberInput.js +24 -5
  124. package/number-input/NumberInput.test.js +165 -6
  125. package/number-input/NumberInputContext.d.ts +3 -0
  126. package/number-input/NumberInputContext.js +8 -0
  127. package/number-input/types.d.ts +6 -0
  128. package/package.json +12 -12
  129. package/paginator/Paginator.accessibility.test.js +79 -0
  130. package/paginator/Paginator.js +1 -4
  131. package/paragraph/Paragraph.accessibility.test.js +28 -0
  132. package/paragraph/Paragraph.js +2 -7
  133. package/password-input/PasswordInput.accessibility.test.js +153 -0
  134. package/password-input/PasswordInput.stories.tsx +0 -1
  135. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  136. package/progress-bar/ProgressBar.js +5 -11
  137. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  138. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  139. package/radio-group/RadioGroup.js +1 -1
  140. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  141. package/resultset-table/ResultsetTable.d.ts +4 -1
  142. package/resultset-table/ResultsetTable.js +23 -12
  143. package/resultset-table/ResultsetTable.stories.tsx +106 -5
  144. package/resultset-table/ResultsetTable.test.js +76 -0
  145. package/resultset-table/types.d.ts +40 -7
  146. package/select/Option.js +8 -1
  147. package/select/Select.accessibility.test.js +217 -0
  148. package/select/Select.js +35 -27
  149. package/select/Select.stories.tsx +0 -1
  150. package/select/Select.test.js +498 -462
  151. package/select/types.d.ts +2 -2
  152. package/sidenav/Sidenav.accessibility.test.js +59 -0
  153. package/sidenav/Sidenav.js +20 -18
  154. package/sidenav/Sidenav.stories.tsx +4 -9
  155. package/sidenav/types.d.ts +2 -2
  156. package/slider/Slider.accessibility.test.js +104 -0
  157. package/slider/Slider.js +37 -46
  158. package/spinner/Spinner.accessibility.test.js +96 -0
  159. package/spinner/Spinner.js +6 -14
  160. package/status-light/StatusLight.accessibility.test.js +157 -0
  161. package/status-light/StatusLight.d.ts +4 -0
  162. package/status-light/StatusLight.js +51 -0
  163. package/status-light/StatusLight.stories.tsx +74 -0
  164. package/status-light/StatusLight.test.js +25 -0
  165. package/status-light/types.d.ts +17 -0
  166. package/status-light/types.js +5 -0
  167. package/switch/Switch.accessibility.test.js +89 -0
  168. package/switch/Switch.js +23 -28
  169. package/table/DropdownTheme.js +62 -0
  170. package/table/Table.accessibility.test.js +82 -0
  171. package/table/Table.d.ts +6 -2
  172. package/table/Table.js +73 -11
  173. package/table/Table.stories.tsx +297 -2
  174. package/table/Table.test.js +92 -0
  175. package/table/types.d.ts +28 -0
  176. package/tabs/Tab.js +7 -4
  177. package/tabs/Tabs.accessibility.test.js +56 -0
  178. package/tabs/Tabs.js +4 -5
  179. package/tabs/Tabs.stories.tsx +1 -1
  180. package/tag/Tag.accessibility.test.js +69 -0
  181. package/tag/Tag.js +6 -6
  182. package/tag/Tag.stories.tsx +4 -7
  183. package/tag/Tag.test.js +4 -12
  184. package/tag/types.d.ts +2 -2
  185. package/text-input/Suggestions.js +7 -10
  186. package/text-input/TextInput.accessibility.test.js +321 -0
  187. package/text-input/TextInput.js +77 -102
  188. package/text-input/TextInput.stories.tsx +1 -1
  189. package/text-input/TextInput.test.js +96 -79
  190. package/textarea/Textarea.accessibility.test.js +155 -0
  191. package/textarea/Textarea.js +10 -16
  192. package/textarea/Textarea.stories.tsx +0 -1
  193. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  194. package/toggle-group/ToggleGroup.js +1 -4
  195. package/typography/Typography.accessibility.test.js +339 -0
  196. package/useTheme.d.ts +29 -133
  197. package/utils/FocusLock.js +15 -5
  198. package/wizard/Wizard.accessibility.test.js +55 -0
  199. package/wizard/types.d.ts +1 -1
  200. package/common/OpenSans.css +0 -69
  201. package/common/fonts/OpenSans-Bold.ttf +0 -0
  202. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  203. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  204. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  205. package/common/fonts/OpenSans-Italic.ttf +0 -0
  206. package/common/fonts/OpenSans-Light.ttf +0 -0
  207. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  208. package/common/fonts/OpenSans-Regular.ttf +0 -0
  209. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  210. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  211. package/sidenav/Icons.d.ts +0 -7
  212. package/sidenav/Icons.js +0 -47
  213. package/text-input/Icons.d.ts +0 -8
  214. package/text-input/Icons.js +0 -56
  215. /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
  216. /package/{layout → sidenav}/SidenavContext.js +0 -0
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _jestAxe = require("jest-axe");
11
+ var _DateInput = _interopRequireDefault(require("./DateInput.tsx"));
12
+ // Mocking DOMRect for Radix Primitive Popover
13
+ global.globalThis = global;
14
+ global.DOMRect = {
15
+ fromRect: function fromRect() {
16
+ return {
17
+ top: 0,
18
+ left: 0,
19
+ bottom: 0,
20
+ right: 0,
21
+ width: 0,
22
+ height: 0
23
+ };
24
+ }
25
+ };
26
+ global.ResizeObserver = /*#__PURE__*/function () {
27
+ function ResizeObserver() {
28
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
29
+ }
30
+ (0, _createClass2["default"])(ResizeObserver, [{
31
+ key: "observe",
32
+ value: function observe() {}
33
+ }, {
34
+ key: "unobserve",
35
+ value: function unobserve() {}
36
+ }, {
37
+ key: "disconnect",
38
+ value: function disconnect() {}
39
+ }]);
40
+ return ResizeObserver;
41
+ }();
42
+ describe("DateInput component accessibility tests", function () {
43
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
44
+ var _render, baseElement, results;
45
+ return _regenerator["default"].wrap(function _callee$(_context) {
46
+ while (1) switch (_context.prev = _context.next) {
47
+ case 0:
48
+ // baseElement is needed when using React Portals
49
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
50
+ label: "Example label",
51
+ helperText: "Help message",
52
+ defaultValue: "06-04-2007",
53
+ format: "dd/mm/yy",
54
+ name: "DateInput Name",
55
+ margin: "medium",
56
+ size: "medium",
57
+ placeholder: true,
58
+ clearable: true
59
+ })), baseElement = _render.baseElement;
60
+ _context.next = 3;
61
+ return (0, _jestAxe.axe)(baseElement);
62
+ case 3:
63
+ results = _context.sent;
64
+ expect(results).toHaveNoViolations();
65
+ case 5:
66
+ case "end":
67
+ return _context.stop();
68
+ }
69
+ }, _callee);
70
+ })));
71
+ it("Should not have basic accessibility issues for autocomplete mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
72
+ var _render2, baseElement, results;
73
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
74
+ while (1) switch (_context2.prev = _context2.next) {
75
+ case 0:
76
+ // baseElement is needed when using React Portals
77
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
78
+ label: "Example label",
79
+ helperText: "Help message",
80
+ defaultValue: "06-04-2007",
81
+ format: "dd/mm/yy",
82
+ name: "DateInput Name",
83
+ margin: "medium",
84
+ size: "medium",
85
+ placeholder: true,
86
+ autocomplete: "on"
87
+ })), baseElement = _render2.baseElement;
88
+ _context2.next = 3;
89
+ return (0, _jestAxe.axe)(baseElement);
90
+ case 3:
91
+ results = _context2.sent;
92
+ expect(results).toHaveNoViolations();
93
+ case 5:
94
+ case "end":
95
+ return _context2.stop();
96
+ }
97
+ }, _callee2);
98
+ })));
99
+ it("Should not have basic accessibility issues for optional mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
100
+ var _render3, baseElement, results;
101
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
102
+ while (1) switch (_context3.prev = _context3.next) {
103
+ case 0:
104
+ // baseElement is needed when using React Portals
105
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
106
+ label: "Example label",
107
+ helperText: "Help message",
108
+ defaultValue: "06-04-2007",
109
+ format: "dd/mm/yy",
110
+ name: "DateInput Name",
111
+ margin: "medium",
112
+ size: "medium",
113
+ placeholder: true,
114
+ optional: true
115
+ })), baseElement = _render3.baseElement;
116
+ _context3.next = 3;
117
+ return (0, _jestAxe.axe)(baseElement);
118
+ case 3:
119
+ results = _context3.sent;
120
+ expect(results).toHaveNoViolations();
121
+ case 5:
122
+ case "end":
123
+ return _context3.stop();
124
+ }
125
+ }, _callee3);
126
+ })));
127
+ it("Should not have basic accessibility issues for error mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
128
+ var _render4, baseElement, results;
129
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
130
+ while (1) switch (_context4.prev = _context4.next) {
131
+ case 0:
132
+ // baseElement is needed when using React Portals
133
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
134
+ label: "Example label",
135
+ helperText: "Help message",
136
+ defaultValue: "06-04-2007",
137
+ format: "dd/mm/yy",
138
+ name: "DateInput Name",
139
+ margin: "medium",
140
+ error: "Error message.",
141
+ size: "medium",
142
+ placeholder: true,
143
+ clearable: true
144
+ })), baseElement = _render4.baseElement;
145
+ _context4.next = 3;
146
+ return (0, _jestAxe.axe)(baseElement);
147
+ case 3:
148
+ results = _context4.sent;
149
+ expect(results).toHaveNoViolations();
150
+ case 5:
151
+ case "end":
152
+ return _context4.stop();
153
+ }
154
+ }, _callee4);
155
+ })));
156
+ it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
157
+ var _render5, baseElement, results;
158
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
159
+ while (1) switch (_context5.prev = _context5.next) {
160
+ case 0:
161
+ // baseElement is needed when using React Portals
162
+ _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
163
+ label: "Example label",
164
+ helperText: "Help message",
165
+ defaultValue: "06-04-2007",
166
+ format: "dd/mm/yy",
167
+ name: "DateInput Name",
168
+ margin: "medium",
169
+ error: "Error message.",
170
+ size: "medium",
171
+ placeholder: true,
172
+ clearable: true,
173
+ readOnly: true
174
+ })), baseElement = _render5.baseElement;
175
+ _context5.next = 3;
176
+ return (0, _jestAxe.axe)(baseElement);
177
+ case 3:
178
+ results = _context5.sent;
179
+ expect(results).toHaveNoViolations();
180
+ case 5:
181
+ case "end":
182
+ return _context5.stop();
183
+ }
184
+ }, _callee5);
185
+ })));
186
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
187
+ var _render6, baseElement, results;
188
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
189
+ while (1) switch (_context6.prev = _context6.next) {
190
+ case 0:
191
+ // baseElement is needed when using React Portals
192
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
193
+ label: "Example label",
194
+ helperText: "Help message",
195
+ defaultValue: "06-04-2007",
196
+ format: "dd/mm/yy",
197
+ name: "DateInput Name",
198
+ margin: "medium",
199
+ error: "Error message.",
200
+ size: "medium",
201
+ placeholder: true,
202
+ clearable: true,
203
+ disabled: true
204
+ })), baseElement = _render6.baseElement;
205
+ _context6.next = 3;
206
+ return (0, _jestAxe.axe)(baseElement);
207
+ case 3:
208
+ results = _context6.sent;
209
+ expect(results).toHaveNoViolations();
210
+ case 5:
211
+ case "end":
212
+ return _context6.stop();
213
+ }
214
+ }, _callee6);
215
+ })));
216
+ });
@@ -127,11 +127,11 @@ export type CalendarPropsType = {
127
127
  */
128
128
  selectedDate: Dayjs;
129
129
  /**
130
- * Date showed by the calendar.
130
+ * Date shown by the calendar.
131
131
  */
132
132
  innerDate: Dayjs;
133
133
  /**
134
- * Function called when the showed date needs to be updated.
134
+ * Function called when the shown date needs to be updated.
135
135
  */
136
136
  onInnerDateChange: (date: Dayjs) => void;
137
137
  /**
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _jestAxe = require("jest-axe");
9
+ var _Dialog = _interopRequireDefault(require("./Dialog.tsx"));
10
+ describe("Dialog component accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, baseElement, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ // baseElement is needed when using React Portals
17
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "Dialog text")), baseElement = _render.baseElement;
18
+ _context.next = 3;
19
+ return (0, _jestAxe.axe)(baseElement);
20
+ case 3:
21
+ results = _context.sent;
22
+ expect(results).toHaveNoViolations();
23
+ case 5:
24
+ case "end":
25
+ return _context.stop();
26
+ }
27
+ }, _callee);
28
+ })));
29
+ it("Should not have basic accessibility issues for close button not visible", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
30
+ var _render2, baseElement, results;
31
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
32
+ while (1) switch (_context2.prev = _context2.next) {
33
+ case 0:
34
+ // baseElement is needed when using React Portals
35
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
36
+ isCloseVisible: false
37
+ }, "Dialog text")), baseElement = _render2.baseElement;
38
+ _context2.next = 3;
39
+ return (0, _jestAxe.axe)(baseElement);
40
+ case 3:
41
+ results = _context2.sent;
42
+ expect(results).toHaveNoViolations();
43
+ case 5:
44
+ case "end":
45
+ return _context2.stop();
46
+ }
47
+ }, _callee2);
48
+ })));
49
+ it("Should not have basic accessibility issues for overlay not visible", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
50
+ var _render3, baseElement, results;
51
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
52
+ while (1) switch (_context3.prev = _context3.next) {
53
+ case 0:
54
+ // baseElement is needed when using React Portals
55
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
56
+ overlay: false
57
+ }, "Dialog text")), baseElement = _render3.baseElement;
58
+ _context3.next = 3;
59
+ return (0, _jestAxe.axe)(baseElement);
60
+ case 3:
61
+ results = _context3.sent;
62
+ expect(results).toHaveNoViolations();
63
+ case 5:
64
+ case "end":
65
+ return _context3.stop();
66
+ }
67
+ }, _callee3);
68
+ })));
69
+ });
package/dialog/Dialog.js CHANGED
@@ -11,7 +11,6 @@ var _react = _interopRequireWildcard(require("react"));
11
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
12
12
  var _variables = require("../common/variables");
13
13
  var _useTheme = _interopRequireDefault(require("../useTheme"));
14
- var _BackgroundColorContext = require("../BackgroundColorContext");
15
14
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
16
15
  var _reactDom = require("react-dom");
17
16
  var _FocusLock = _interopRequireDefault(require("../utils/FocusLock"));
@@ -57,7 +56,7 @@ var DxcDialog = function DxcDialog(_ref) {
57
56
  }, [onCloseClick]);
58
57
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
59
58
  theme: colorsTheme.dialog
60
- }, /*#__PURE__*/_react["default"].createElement(BodyStyle, null), /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react["default"].createElement(_FocusLock["default"], null, /*#__PURE__*/_react["default"].createElement(DialogContainer, null, overlay && /*#__PURE__*/_react["default"].createElement(Overlay, {
59
+ }, /*#__PURE__*/_react["default"].createElement(BodyStyle, null), /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react["default"].createElement(DialogContainer, null, overlay && /*#__PURE__*/_react["default"].createElement(Overlay, {
61
60
  onClick: function onClick() {
62
61
  onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
63
62
  }
@@ -65,9 +64,7 @@ var DxcDialog = function DxcDialog(_ref) {
65
64
  role: "dialog",
66
65
  "aria-modal": overlay,
67
66
  isCloseVisible: isCloseVisible
68
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
69
- color: colorsTheme.dialog.backgroundColor
70
- }, children), isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconAction, {
67
+ }, /*#__PURE__*/_react["default"].createElement(_FocusLock["default"], null, children, isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconAction, {
71
68
  onClick: function onClick() {
72
69
  onCloseClick === null || onCloseClick === void 0 ? void 0 : onCloseClick();
73
70
  },
@@ -10,6 +10,7 @@ import { HalstackProvider } from "../HalstackContext";
10
10
  import DxcHeading from "../heading/Heading";
11
11
  import DxcParagraph from "../paragraph/Paragraph";
12
12
  import DxcAlert from "../alert/Alert";
13
+ import { userEvent, within } from "@storybook/testing-library";
13
14
 
14
15
  export default {
15
16
  title: "Dialog",
@@ -74,6 +75,166 @@ export const DefaultDialogOpinionated = () => (
74
75
  </ExampleContainer>
75
76
  );
76
77
 
78
+ const ScrollingDialog = () => (
79
+ <ExampleContainer expanded={true}>
80
+ <Title title="Default dialog" theme="light" level={4} />
81
+ <>
82
+ <DxcParagraph>
83
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
84
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
85
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
86
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
87
+ laborum.
88
+ </DxcParagraph>
89
+ <DxcParagraph>
90
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
91
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
92
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
93
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
94
+ laborum.
95
+ </DxcParagraph>
96
+ <DxcParagraph>
97
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
98
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
99
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
100
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
101
+ laborum.
102
+ </DxcParagraph>
103
+ <DxcParagraph>
104
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
105
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
106
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
107
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
108
+ laborum.
109
+ </DxcParagraph>
110
+ <DxcParagraph>
111
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
112
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
113
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
114
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
115
+ laborum.
116
+ </DxcParagraph>
117
+ <DxcParagraph>
118
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
119
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
120
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
121
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
122
+ laborum.
123
+ </DxcParagraph>
124
+ <DxcParagraph>
125
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
126
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
127
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
128
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
129
+ laborum.
130
+ </DxcParagraph>
131
+ <DxcParagraph>
132
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
133
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
134
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
135
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
136
+ laborum.
137
+ </DxcParagraph>
138
+ <DxcParagraph>
139
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
140
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
141
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
142
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
143
+ laborum.
144
+ </DxcParagraph>
145
+ <DxcParagraph>
146
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
147
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
148
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
149
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
150
+ laborum.
151
+ </DxcParagraph>
152
+ <DxcParagraph>
153
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
154
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
155
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
156
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
157
+ laborum.
158
+ </DxcParagraph>
159
+ <DxcParagraph>
160
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
161
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
162
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
163
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
164
+ laborum.
165
+ </DxcParagraph>
166
+ <DxcParagraph>
167
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
168
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
169
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
170
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
171
+ laborum.
172
+ </DxcParagraph>
173
+ <DxcParagraph>
174
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
175
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
176
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
177
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
178
+ laborum.
179
+ </DxcParagraph>
180
+ <DxcParagraph>
181
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
182
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
183
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
184
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
185
+ laborum.
186
+ </DxcParagraph>
187
+ <DxcParagraph>
188
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
189
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
190
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
191
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
192
+ laborum.
193
+ </DxcParagraph>
194
+ <DxcParagraph>
195
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
196
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
197
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
198
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
199
+ laborum.
200
+ </DxcParagraph>
201
+ <DxcParagraph>
202
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
203
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
204
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
205
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
206
+ laborum.
207
+ </DxcParagraph>
208
+ <DxcParagraph>
209
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
210
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
211
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
212
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
213
+ laborum.
214
+ </DxcParagraph>
215
+ </>
216
+ <DxcDialog>
217
+ <DxcInset space="1.5rem">
218
+ <DxcFlex direction="column" gap="1rem">
219
+ <DxcHeading level={4} text="Example title" />
220
+ <DxcParagraph>
221
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
222
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
223
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
224
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
225
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue
226
+ gravida enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare,
227
+ malesuada urna eu, fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam
228
+ sit amet maximus augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo.
229
+ Praesent quis nunc dignissim, pharetra neque molestie, molestie lectus.
230
+ </DxcParagraph>
231
+ <DxcButton label="Test" />
232
+ </DxcFlex>
233
+ </DxcInset>
234
+ </DxcDialog>
235
+ </ExampleContainer>
236
+ );
237
+
77
238
  export const DialogWithInputs = () => (
78
239
  <ExampleContainer expanded={true}>
79
240
  <Title title="Dialog with inputs" theme="light" level={4} />
@@ -193,3 +354,12 @@ MobileResponsiveDialog.parameters = {
193
354
  },
194
355
  chromatic: { viewports: [375] },
195
356
  };
357
+
358
+ export const ScrollDialog = ScrollingDialog.bind({});
359
+ ScrollDialog.play = async ({ canvasElement }) => {
360
+ const canvas = within(canvasElement);
361
+ await userEvent.tab();
362
+ await userEvent.tab();
363
+ await userEvent.tab();
364
+ };
365
+
@@ -29,7 +29,7 @@ var options = [{
29
29
  value: "other"
30
30
  }];
31
31
  describe("Dialog component tests", function () {
32
- test("Dialog renders with correct text and accesibility attributes", function () {
32
+ test("Dialog renders with correct text and accessibility attributes", function () {
33
33
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "dialog-text")),
34
34
  getByText = _render.getByText,
35
35
  getByRole = _render.getByRole;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _jestAxe = require("jest-axe");
9
+ var _Divider = _interopRequireDefault(require("./Divider"));
10
+ describe("Divider accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, container, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
17
+ orientation: "vertical",
18
+ color: "darkGrey",
19
+ decorative: false,
20
+ weight: "strong"
21
+ })), container = _render.container;
22
+ _context.next = 3;
23
+ return (0, _jestAxe.axe)(container);
24
+ case 3:
25
+ results = _context.sent;
26
+ expect(results).toHaveNoViolations();
27
+ case 5:
28
+ case "end":
29
+ return _context.stop();
30
+ }
31
+ }, _callee);
32
+ })));
33
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import DividerPropsType from "./types";
3
+ declare const DxcDivider: ({ orientation, weight, color, decorative }: DividerPropsType) => JSX.Element;
4
+ export default DxcDivider;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
12
+ var _templateObject;
13
+ var DxcDivider = function DxcDivider(_ref) {
14
+ var _ref$orientation = _ref.orientation,
15
+ orientation = _ref$orientation === void 0 ? "horizontal" : _ref$orientation,
16
+ _ref$weight = _ref.weight,
17
+ weight = _ref$weight === void 0 ? "regular" : _ref$weight,
18
+ _ref$color = _ref.color,
19
+ color = _ref$color === void 0 ? "mediumGrey" : _ref$color,
20
+ _ref$decorative = _ref.decorative,
21
+ decorative = _ref$decorative === void 0 ? true : _ref$decorative;
22
+ return /*#__PURE__*/_react["default"].createElement(StyledDivider, {
23
+ orientation: orientation,
24
+ weight: weight,
25
+ color: color,
26
+ "aria-orientation": orientation,
27
+ "aria-hidden": decorative
28
+ });
29
+ };
30
+ var StyledDivider = _styledComponents["default"].hr(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (_ref2) {
31
+ var orientation = _ref2.orientation,
32
+ weight = _ref2.weight,
33
+ color = _ref2.color;
34
+ return "\n border-color: ".concat(color === "lightGrey" ? _coreTokens["default"].color_grey_200 : color === "mediumGrey" ? _coreTokens["default"].color_grey_400 : _coreTokens["default"].color_grey_700, ";\n ").concat(orientation === "horizontal" ? "width" : "min-height", ": 100%;\n ").concat(orientation === "horizontal" ? "height" : "width", ": 0px;\n ").concat(orientation === "horizontal" ? "border-width: " + (weight === "regular" ? "1px 0 0 0" : "2px 0 0 0") : "border-width: " + (weight === "regular" ? "0 0 0 1px" : "0 0 0 2px"), ";\n margin: 0px;\n ");
35
+ });
36
+ var _default = exports["default"] = DxcDivider;