@dxc-technology/halstack-react 0.0.0-f54247d → 0.0.0-f6290b3

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 (304) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -6
  4. package/HalstackContext.js +121 -105
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +37 -100
  8. package/accordion/Accordion.stories.tsx +101 -124
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +141 -43
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +18 -59
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -15
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +69 -105
  45. package/button/Button.stories.tsx +152 -91
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -12
  53. package/checkbox/Checkbox.js +87 -122
  54. package/checkbox/Checkbox.stories.tsx +68 -54
  55. package/checkbox/Checkbox.test.js +108 -64
  56. package/checkbox/types.d.ts +8 -4
  57. package/chip/Chip.js +39 -79
  58. package/chip/Chip.stories.tsx +121 -26
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  61. package/common/OpenSans.css +68 -80
  62. package/common/coreTokens.d.ts +237 -0
  63. package/common/coreTokens.js +184 -0
  64. package/common/utils.d.ts +1 -0
  65. package/common/utils.js +6 -12
  66. package/common/variables.d.ts +1395 -0
  67. package/common/variables.js +910 -1155
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +194 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/contextual-menu/ContextualMenu.d.ts +7 -0
  73. package/contextual-menu/ContextualMenu.js +71 -0
  74. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  75. package/contextual-menu/ContextualMenu.test.js +71 -0
  76. package/contextual-menu/MenuItemAction.d.ts +4 -0
  77. package/contextual-menu/MenuItemAction.js +46 -0
  78. package/contextual-menu/types.d.ts +22 -0
  79. package/date-input/Calendar.d.ts +1 -1
  80. package/date-input/Calendar.js +52 -96
  81. package/date-input/DateInput.js +103 -107
  82. package/date-input/DateInput.stories.tsx +194 -60
  83. package/date-input/DateInput.test.js +676 -620
  84. package/date-input/DatePicker.js +47 -92
  85. package/date-input/Icons.d.ts +6 -0
  86. package/date-input/Icons.js +58 -0
  87. package/date-input/YearPicker.d.ts +1 -1
  88. package/date-input/YearPicker.js +29 -44
  89. package/date-input/types.d.ts +32 -28
  90. package/dialog/Dialog.d.ts +1 -1
  91. package/dialog/Dialog.js +61 -119
  92. package/dialog/Dialog.stories.tsx +310 -212
  93. package/dialog/Dialog.test.js +269 -32
  94. package/dialog/types.d.ts +18 -26
  95. package/divider/Divider.d.ts +4 -0
  96. package/divider/Divider.js +36 -0
  97. package/divider/Divider.stories.tsx +223 -0
  98. package/divider/Divider.test.js +38 -0
  99. package/divider/types.d.ts +19 -0
  100. package/divider/types.js +5 -0
  101. package/dropdown/Dropdown.js +53 -108
  102. package/dropdown/Dropdown.stories.tsx +210 -84
  103. package/dropdown/Dropdown.test.js +393 -379
  104. package/dropdown/DropdownMenu.js +20 -37
  105. package/dropdown/DropdownMenuItem.js +9 -34
  106. package/dropdown/types.d.ts +18 -20
  107. package/file-input/FileInput.js +184 -256
  108. package/file-input/FileInput.stories.tsx +86 -3
  109. package/file-input/FileInput.test.js +356 -395
  110. package/file-input/FileItem.js +15 -41
  111. package/file-input/types.d.ts +10 -10
  112. package/flex/Flex.js +27 -39
  113. package/flex/Flex.stories.tsx +35 -26
  114. package/flex/types.d.ts +74 -9
  115. package/footer/Footer.d.ts +1 -1
  116. package/footer/Footer.js +70 -117
  117. package/footer/Footer.stories.tsx +55 -21
  118. package/footer/Footer.test.js +33 -57
  119. package/footer/Icons.d.ts +3 -2
  120. package/footer/Icons.js +66 -7
  121. package/footer/types.d.ts +25 -27
  122. package/grid/Grid.d.ts +7 -0
  123. package/grid/Grid.js +76 -0
  124. package/grid/Grid.stories.tsx +219 -0
  125. package/grid/types.d.ts +115 -0
  126. package/grid/types.js +5 -0
  127. package/header/Header.d.ts +4 -3
  128. package/header/Header.js +48 -133
  129. package/header/Header.stories.tsx +115 -36
  130. package/header/Header.test.js +13 -26
  131. package/header/Icons.d.ts +2 -2
  132. package/header/Icons.js +2 -7
  133. package/header/types.d.ts +7 -22
  134. package/heading/Heading.js +10 -32
  135. package/heading/Heading.test.js +71 -88
  136. package/heading/types.d.ts +7 -7
  137. package/image/Image.d.ts +4 -0
  138. package/image/Image.js +70 -0
  139. package/image/Image.stories.tsx +129 -0
  140. package/image/types.d.ts +72 -0
  141. package/image/types.js +5 -0
  142. package/inset/Inset.js +13 -21
  143. package/inset/Inset.stories.tsx +2 -1
  144. package/inset/types.d.ts +2 -2
  145. package/layout/ApplicationLayout.d.ts +5 -5
  146. package/layout/ApplicationLayout.js +29 -66
  147. package/layout/ApplicationLayout.stories.tsx +1 -1
  148. package/layout/Icons.d.ts +8 -5
  149. package/layout/Icons.js +51 -59
  150. package/layout/SidenavContext.d.ts +1 -1
  151. package/layout/SidenavContext.js +3 -9
  152. package/layout/types.d.ts +5 -6
  153. package/link/Link.js +24 -45
  154. package/link/Link.stories.tsx +60 -0
  155. package/link/Link.test.js +24 -44
  156. package/link/types.d.ts +14 -14
  157. package/main.d.ts +9 -5
  158. package/main.js +40 -59
  159. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  160. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  161. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  162. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  163. package/nav-tabs/Tab.js +118 -0
  164. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  165. package/nav-tabs/types.js +5 -0
  166. package/number-input/NumberInput.d.ts +7 -0
  167. package/number-input/NumberInput.js +47 -37
  168. package/number-input/NumberInput.stories.tsx +42 -26
  169. package/number-input/NumberInput.test.js +860 -413
  170. package/number-input/types.d.ts +11 -5
  171. package/package.json +31 -29
  172. package/paginator/Icons.d.ts +5 -0
  173. package/paginator/Icons.js +21 -47
  174. package/paginator/Paginator.js +22 -58
  175. package/paginator/Paginator.stories.tsx +24 -0
  176. package/paginator/Paginator.test.js +252 -225
  177. package/paginator/types.d.ts +3 -3
  178. package/paragraph/Paragraph.d.ts +3 -4
  179. package/paragraph/Paragraph.js +6 -22
  180. package/paragraph/Paragraph.stories.tsx +0 -17
  181. package/password-input/Icons.d.ts +6 -0
  182. package/password-input/Icons.js +35 -0
  183. package/password-input/PasswordInput.js +57 -126
  184. package/password-input/PasswordInput.stories.tsx +1 -33
  185. package/password-input/PasswordInput.test.js +158 -141
  186. package/password-input/types.d.ts +8 -7
  187. package/progress-bar/ProgressBar.d.ts +2 -2
  188. package/progress-bar/ProgressBar.js +23 -55
  189. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  190. package/progress-bar/ProgressBar.test.js +36 -53
  191. package/progress-bar/types.d.ts +4 -3
  192. package/quick-nav/QuickNav.js +4 -27
  193. package/quick-nav/QuickNav.stories.tsx +15 -1
  194. package/quick-nav/types.d.ts +10 -10
  195. package/radio-group/Radio.d.ts +1 -1
  196. package/radio-group/Radio.js +31 -63
  197. package/radio-group/RadioGroup.js +45 -93
  198. package/radio-group/RadioGroup.stories.tsx +131 -18
  199. package/radio-group/RadioGroup.test.js +505 -471
  200. package/radio-group/types.d.ts +8 -8
  201. package/resultset-table/Icons.d.ts +7 -0
  202. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  203. package/resultset-table/ResultsetTable.d.ts +7 -0
  204. package/{resultsetTable → resultset-table}/ResultsetTable.js +37 -66
  205. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +102 -5
  206. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +155 -114
  207. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  208. package/resultset-table/types.js +5 -0
  209. package/select/Icons.d.ts +7 -7
  210. package/select/Icons.js +1 -5
  211. package/select/Listbox.d.ts +1 -1
  212. package/select/Listbox.js +17 -72
  213. package/select/Option.js +27 -50
  214. package/select/Select.js +120 -175
  215. package/select/Select.stories.tsx +495 -148
  216. package/select/Select.test.js +1974 -1837
  217. package/select/types.d.ts +16 -17
  218. package/sidenav/Icons.d.ts +7 -0
  219. package/sidenav/Icons.js +47 -0
  220. package/sidenav/Sidenav.d.ts +2 -2
  221. package/sidenav/Sidenav.js +82 -153
  222. package/sidenav/Sidenav.stories.tsx +165 -63
  223. package/sidenav/Sidenav.test.js +3 -10
  224. package/sidenav/types.d.ts +31 -28
  225. package/slider/Slider.js +73 -131
  226. package/slider/Slider.test.js +108 -104
  227. package/slider/types.d.ts +4 -4
  228. package/spinner/Spinner.js +31 -75
  229. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  230. package/spinner/Spinner.test.js +26 -35
  231. package/spinner/types.d.ts +3 -3
  232. package/status-light/StatusLight.d.ts +4 -0
  233. package/status-light/StatusLight.js +51 -0
  234. package/status-light/StatusLight.stories.tsx +74 -0
  235. package/status-light/StatusLight.test.js +25 -0
  236. package/status-light/types.d.ts +17 -0
  237. package/status-light/types.js +5 -0
  238. package/switch/Switch.js +52 -100
  239. package/switch/Switch.stories.tsx +33 -34
  240. package/switch/Switch.test.js +52 -97
  241. package/switch/types.d.ts +4 -4
  242. package/table/DropdownTheme.js +62 -0
  243. package/table/Table.d.ts +6 -2
  244. package/table/Table.js +87 -35
  245. package/table/Table.stories.tsx +658 -0
  246. package/table/Table.test.js +94 -7
  247. package/table/types.d.ts +48 -6
  248. package/tabs/Tab.js +26 -45
  249. package/tabs/Tabs.js +62 -145
  250. package/tabs/Tabs.stories.tsx +46 -6
  251. package/tabs/Tabs.test.js +66 -123
  252. package/tabs/types.d.ts +19 -19
  253. package/tag/Tag.js +28 -60
  254. package/tag/Tag.stories.tsx +14 -1
  255. package/tag/Tag.test.js +20 -31
  256. package/tag/types.d.ts +7 -7
  257. package/text-input/Icons.d.ts +5 -5
  258. package/text-input/Icons.js +1 -5
  259. package/text-input/Suggestion.js +35 -25
  260. package/text-input/Suggestions.d.ts +1 -1
  261. package/text-input/Suggestions.js +15 -65
  262. package/text-input/TextInput.js +220 -332
  263. package/text-input/TextInput.stories.tsx +139 -155
  264. package/text-input/TextInput.test.js +1289 -1157
  265. package/text-input/types.d.ts +25 -17
  266. package/textarea/Textarea.js +70 -113
  267. package/textarea/Textarea.stories.tsx +174 -0
  268. package/textarea/Textarea.test.js +152 -183
  269. package/textarea/types.d.ts +9 -5
  270. package/toggle-group/ToggleGroup.d.ts +2 -2
  271. package/toggle-group/ToggleGroup.js +92 -106
  272. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  273. package/toggle-group/ToggleGroup.test.js +69 -88
  274. package/toggle-group/types.d.ts +26 -17
  275. package/typography/Typography.d.ts +2 -2
  276. package/typography/Typography.js +15 -123
  277. package/typography/Typography.stories.tsx +1 -1
  278. package/typography/types.d.ts +1 -1
  279. package/useTheme.d.ts +1147 -1
  280. package/useTheme.js +2 -9
  281. package/useTranslatedLabels.d.ts +84 -1
  282. package/useTranslatedLabels.js +1 -7
  283. package/utils/BaseTypography.d.ts +21 -0
  284. package/utils/BaseTypography.js +94 -0
  285. package/utils/FocusLock.d.ts +13 -0
  286. package/utils/FocusLock.js +124 -0
  287. package/wizard/Wizard.js +16 -51
  288. package/wizard/Wizard.stories.tsx +20 -0
  289. package/wizard/Wizard.test.js +54 -81
  290. package/wizard/types.d.ts +9 -10
  291. package/card/ice-cream.jpg +0 -0
  292. package/number-input/NumberInputContext.d.ts +0 -4
  293. package/number-input/NumberInputContext.js +0 -19
  294. package/number-input/numberInputContextTypes.d.ts +0 -19
  295. package/resultsetTable/Icons.d.ts +0 -7
  296. package/resultsetTable/ResultsetTable.d.ts +0 -4
  297. package/slider/Slider.stories.tsx +0 -183
  298. package/table/Table.stories.jsx +0 -277
  299. package/tabs-nav/Tab.js +0 -130
  300. package/textarea/Textarea.stories.jsx +0 -157
  301. /package/{resultsetTable → action-icon}/types.js +0 -0
  302. /package/{tabs-nav → container}/types.js +0 -0
  303. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  304. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,45 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
5
6
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
-
7
7
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
-
9
8
  var _react = _interopRequireDefault(require("react"));
10
-
11
9
  var _react2 = require("@testing-library/react");
12
-
13
10
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
14
-
15
- var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable"));
16
-
11
+ var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable.tsx"));
17
12
  // Mocking DOMRect for Radix Primitive Popover
18
13
  global.globalThis = global;
19
-
20
- global.ResizeObserver = /*#__PURE__*/function () {
21
- function ResizeObserver(cb) {
22
- (0, _classCallCheck2["default"])(this, ResizeObserver);
23
- this.cb = cb;
24
- }
25
-
26
- (0, _createClass2["default"])(ResizeObserver, [{
27
- key: "observe",
28
- value: function observe() {
29
- this.cb([{
30
- borderBoxSize: {
31
- inlineSize: 0,
32
- blockSize: 0
33
- }
34
- }]);
35
- }
36
- }, {
37
- key: "unobserve",
38
- value: function unobserve() {}
39
- }]);
40
- return ResizeObserver;
41
- }();
42
-
43
14
  global.DOMRect = {
44
15
  fromRect: function fromRect() {
45
16
  return {
@@ -52,6 +23,34 @@ global.DOMRect = {
52
23
  };
53
24
  }
54
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
+ var icon = /*#__PURE__*/_react["default"].createElement("svg", {
43
+ xmlns: "http://www.w3.org/2000/svg",
44
+ height: "24px",
45
+ viewBox: "0 0 24 24",
46
+ width: "24px",
47
+ fill: "currentColor"
48
+ }, /*#__PURE__*/_react["default"].createElement("path", {
49
+ d: "M0 0h24v24H0V0zm0 0h24v24H0V0z",
50
+ fill: "none"
51
+ }), /*#__PURE__*/_react["default"].createElement("path", {
52
+ d: "M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"
53
+ }));
55
54
  var columns = [{
56
55
  displayValue: "Id",
57
56
  isSortable: false
@@ -186,92 +185,88 @@ var rows2 = [[{
186
185
  describe("Resultset table component tests", function () {
187
186
  test("Resultset table rendered correctly", function () {
188
187
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
189
- columns: columns,
190
- rows: rows,
191
- itemsPerPage: 3
192
- })),
193
- getByText = _render.getByText;
194
-
188
+ columns: columns,
189
+ rows: rows,
190
+ itemsPerPage: 3
191
+ })),
192
+ getByText = _render.getByText;
195
193
  expect(getByText("Peter")).toBeTruthy();
196
194
  });
197
195
  test("Resultset table shows as many rows as itemsPerPage", function () {
198
196
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
199
- columns: columns,
200
- rows: rows,
201
- itemsPerPage: 3
202
- })),
203
- getAllByRole = _render2.getAllByRole;
204
-
197
+ columns: columns,
198
+ rows: rows,
199
+ itemsPerPage: 3
200
+ })),
201
+ getAllByRole = _render2.getAllByRole;
205
202
  expect(getAllByRole("row").length - 1).toEqual(3);
206
203
  });
207
204
  test("Resultset table shows rows on second page", function () {
208
205
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
209
- columns: columns,
210
- rows: rows,
211
- itemsPerPage: 3
212
- })),
213
- getByText = _render3.getByText,
214
- getAllByRole = _render3.getAllByRole;
215
-
206
+ columns: columns,
207
+ rows: rows,
208
+ itemsPerPage: 3
209
+ })),
210
+ getByText = _render3.getByText,
211
+ getAllByRole = _render3.getAllByRole;
216
212
  expect(getByText("Peter")).toBeTruthy();
217
213
  expect(getByText("Louis")).toBeTruthy();
218
214
  expect(getByText("Lana")).toBeTruthy();
219
215
  expect(getAllByRole("row").length - 1).toEqual(3);
220
216
  var nextButton = getAllByRole("button")[3];
221
-
222
217
  _react2.fireEvent.click(nextButton);
223
-
224
- expect(getByText("4 to 6 of 10")).toBeTruthy();
225
- expect(getByText("Rick")).toBeTruthy();
226
- expect(getByText("Mark")).toBeTruthy();
227
- expect(getByText("Cris")).toBeTruthy();
228
- expect(getAllByRole("row").length - 1).toEqual(3);
229
- });
230
- test("Resultset table goToPage works as expected", function () {
231
- window.HTMLElement.prototype.scrollIntoView = function () {};
232
-
233
- window.HTMLElement.prototype.scrollTo = function () {};
234
-
235
- var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
236
- columns: columns,
237
- showGoToPage: true,
238
- rows: rows,
239
- itemsPerPage: 3
240
- })),
241
- getByText = _render4.getByText,
242
- getAllByRole = _render4.getAllByRole;
243
-
244
- expect(getByText("Peter")).toBeTruthy();
245
- expect(getByText("Louis")).toBeTruthy();
246
- expect(getByText("Lana")).toBeTruthy();
247
- expect(getAllByRole("row").length - 1).toEqual(3);
248
- var goToPageSelect = getAllByRole("button")[3];
249
-
250
- _userEvent["default"].click(goToPageSelect);
251
-
252
- var goToPageOption = getByText("2");
253
-
254
- _userEvent["default"].click(goToPageOption);
255
-
256
218
  expect(getByText("4 to 6 of 10")).toBeTruthy();
257
219
  expect(getByText("Rick")).toBeTruthy();
258
220
  expect(getByText("Mark")).toBeTruthy();
259
221
  expect(getByText("Cris")).toBeTruthy();
260
222
  expect(getAllByRole("row").length - 1).toEqual(3);
261
223
  });
224
+ test("Resultset table goToPage works as expected", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
225
+ var _render4, getByText, getAllByRole, goToPageSelect, goToPageOption;
226
+ return _regenerator["default"].wrap(function _callee$(_context) {
227
+ while (1) switch (_context.prev = _context.next) {
228
+ case 0:
229
+ window.HTMLElement.prototype.scrollIntoView = function () {};
230
+ window.HTMLElement.prototype.scrollTo = function () {};
231
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
232
+ columns: columns,
233
+ showGoToPage: true,
234
+ rows: rows,
235
+ itemsPerPage: 3
236
+ })), getByText = _render4.getByText, getAllByRole = _render4.getAllByRole;
237
+ expect(getByText("Peter")).toBeTruthy();
238
+ expect(getByText("Louis")).toBeTruthy();
239
+ expect(getByText("Lana")).toBeTruthy();
240
+ expect(getAllByRole("row").length - 1).toEqual(3);
241
+ goToPageSelect = getAllByRole("button")[3];
242
+ _context.next = 10;
243
+ return _userEvent["default"].click(goToPageSelect);
244
+ case 10:
245
+ goToPageOption = getByText("2");
246
+ _context.next = 13;
247
+ return _userEvent["default"].click(goToPageOption);
248
+ case 13:
249
+ expect(getByText("4 to 6 of 10")).toBeTruthy();
250
+ expect(getByText("Rick")).toBeTruthy();
251
+ expect(getByText("Mark")).toBeTruthy();
252
+ expect(getByText("Cris")).toBeTruthy();
253
+ expect(getAllByRole("row").length - 1).toEqual(3);
254
+ case 18:
255
+ case "end":
256
+ return _context.stop();
257
+ }
258
+ }, _callee);
259
+ })));
262
260
  test("Resultset table going to the last page shows only one row", function () {
263
261
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
264
- columns: columns,
265
- rows: rows,
266
- itemsPerPage: 3
267
- })),
268
- getByText = _render5.getByText,
269
- getAllByRole = _render5.getAllByRole;
270
-
262
+ columns: columns,
263
+ rows: rows,
264
+ itemsPerPage: 3
265
+ })),
266
+ getByText = _render5.getByText,
267
+ getAllByRole = _render5.getAllByRole;
271
268
  var lastButton = getAllByRole("button")[4];
272
-
273
269
  _react2.fireEvent.click(lastButton);
274
-
275
270
  expect(getByText("10 to 10 of 10")).toBeTruthy();
276
271
  expect(getAllByRole("row")).toHaveLength(2);
277
272
  expect(getByText("Cosmin")).toBeTruthy();
@@ -283,26 +278,21 @@ describe("Resultset table component tests", function () {
283
278
  itemsPerPage: 3
284
279
  }));
285
280
  expect(component.queryByText("Peter")).toBeTruthy();
286
-
287
281
  _react2.fireEvent.click(component.queryByText("Name"));
288
-
289
282
  expect(component.queryByText("Tina")).not.toBeTruthy();
290
283
  expect(component.queryByText("Cosmin")).toBeTruthy();
291
-
292
284
  _react2.fireEvent.click(component.queryByText("Name"));
293
-
294
285
  expect(component.queryByText("Tina")).toBeTruthy();
295
286
  expect(component.queryByText("Cosmin")).not.toBeTruthy();
296
287
  });
297
288
  test("Resultset table change rows should go to first page", function () {
298
289
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
299
- columns: columns,
300
- rows: rows,
301
- itemsPerPage: 3
302
- })),
303
- queryByText = _render6.queryByText,
304
- rerender = _render6.rerender;
305
-
290
+ columns: columns,
291
+ rows: rows,
292
+ itemsPerPage: 3
293
+ })),
294
+ queryByText = _render6.queryByText,
295
+ rerender = _render6.rerender;
306
296
  expect(queryByText("Peter")).toBeTruthy();
307
297
  rerender( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
308
298
  columns: columns,
@@ -313,18 +303,69 @@ describe("Resultset table component tests", function () {
313
303
  });
314
304
  test("Resultset table change itemsPerPage should go to first page", function () {
315
305
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
316
- columns: columns,
317
- rows: rows,
318
- itemsPerPage: 3,
319
- itemsPerPageOptions: [2, 3]
320
- })),
321
- getAllByRole = _render7.getAllByRole;
322
-
306
+ columns: columns,
307
+ rows: rows,
308
+ itemsPerPage: 3,
309
+ itemsPerPageOptions: [2, 3]
310
+ })),
311
+ getAllByRole = _render7.getAllByRole;
323
312
  var lastButton = getAllByRole("button")[4];
324
313
  expect(getAllByRole("row").length - 1).toEqual(3);
325
-
326
314
  _react2.fireEvent.click(lastButton);
327
-
328
315
  expect(getAllByRole("row").length - 1).toEqual(1);
329
316
  });
317
+ test("Resultset table with ActionsCell", function () {
318
+ var onSelectOption = jest.fn();
319
+ var onClick = jest.fn();
320
+ var actions = [{
321
+ icon: icon,
322
+ title: "icon1",
323
+ onClick: onSelectOption,
324
+ options: [{
325
+ value: "1",
326
+ label: "Amazon"
327
+ }, {
328
+ value: "2",
329
+ label: "Ebay"
330
+ }, {
331
+ value: "3",
332
+ label: "Aliexpress"
333
+ }]
334
+ }, {
335
+ icon: icon,
336
+ title: "icon2",
337
+ onClick: onClick
338
+ }];
339
+ var actionRows = [[{
340
+ displayValue: "001",
341
+ sortValue: "001"
342
+ }, {
343
+ displayValue: "Peter",
344
+ sortValue: "Peter"
345
+ }, {
346
+ displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
347
+ actions: actions
348
+ }),
349
+ sortValue: "Actions"
350
+ }]];
351
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
352
+ columns: columns,
353
+ rows: actionRows,
354
+ itemsPerPage: 3
355
+ })),
356
+ getAllByRole = _render8.getAllByRole,
357
+ getByRole = _render8.getByRole,
358
+ getByText = _render8.getByText;
359
+ var dropdown = getAllByRole("button")[2];
360
+ (0, _react2.act)(function () {
361
+ _userEvent["default"].click(dropdown);
362
+ });
363
+ expect(getByRole("menu")).toBeTruthy();
364
+ var option = getByText("Aliexpress");
365
+ _userEvent["default"].click(option);
366
+ expect(onSelectOption).toHaveBeenCalledWith("3");
367
+ var action = getAllByRole("button")[1];
368
+ _userEvent["default"].click(action);
369
+ expect(onClick).toHaveBeenCalled();
370
+ });
330
371
  });
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
- export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- export declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type Column = {
9
+ export type Column = {
10
10
  /**
11
11
  * Column display value.
12
12
  */
@@ -16,7 +16,7 @@ declare type Column = {
16
16
  */
17
17
  isSortable?: boolean;
18
18
  };
19
- declare type Row = {
19
+ type Row = {
20
20
  /**
21
21
  * Value to be displayed in the cell.
22
22
  */
@@ -27,7 +27,7 @@ declare type Row = {
27
27
  */
28
28
  sortValue?: string;
29
29
  };
30
- declare type Props = {
30
+ type Props = {
31
31
  /**
32
32
  * An array of objects representing the columns of the table.
33
33
  */
@@ -53,15 +53,21 @@ declare type Props = {
53
53
  * This function will be called when the user selects an item per page
54
54
  * option. The value selected will be passed as a parameter.
55
55
  */
56
- itemsPerPageFunction?: (newValue: number) => void;
56
+ itemsPerPageFunction?: (value: number) => void;
57
57
  /**
58
58
  * Size of the margin to be applied to the component. You can pass an object with 'top',
59
59
  * 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
60
60
  */
61
61
  margin?: Space | Margin;
62
62
  /**
63
- * Value of the tabindex attribute given to the sortable icon.
63
+ * Value of the tabindex attribute applied to the sortable icon.
64
64
  */
65
65
  tabIndex?: number;
66
+ /**
67
+ * Determines the visual style and layout
68
+ * - "default": The default mode with big spacing
69
+ * - "reduced": A reduced mode with minimal spacing for dense tables
70
+ */
71
+ mode?: "default" | "reduced";
66
72
  };
67
73
  export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/select/Icons.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  declare const selectIcons: {
3
- error: JSX.Element;
4
- arrowUp: JSX.Element;
5
- arrowDown: JSX.Element;
6
- clear: JSX.Element;
7
- selected: JSX.Element;
8
- searchOff: JSX.Element;
3
+ error: React.JSX.Element;
4
+ arrowUp: React.JSX.Element;
5
+ arrowDown: React.JSX.Element;
6
+ clear: React.JSX.Element;
7
+ selected: React.JSX.Element;
8
+ searchOff: React.JSX.Element;
9
9
  };
10
10
  export default selectIcons;
package/select/Icons.js CHANGED
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var selectIcons = {
13
10
  error: /*#__PURE__*/_react["default"].createElement("svg", {
14
11
  role: "img",
@@ -89,5 +86,4 @@ var selectIcons = {
89
86
  points: "6.47,10.82 4,13.29 1.53,10.82 0.82,11.53 3.29,14 0.82,16.47 1.53,17.18 4,14.71 6.47,17.18 7.18,16.47 4.71,14 7.18,11.53"
90
87
  }))))
91
88
  };
92
- var _default = selectIcons;
93
- exports["default"] = _default;
89
+ var _default = exports["default"] = selectIcons;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { ListboxProps } from "./types";
3
- declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, getSelectWidth, }: ListboxProps) => JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, styles, }: ListboxProps) => JSX.Element>;
4
4
  export default _default;
package/select/Listbox.js CHANGED
@@ -1,67 +1,41 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
10
  var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
- var _useTheme = _interopRequireDefault(require("../useTheme"));
21
-
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
22
12
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
-
24
13
  var _Option = _interopRequireDefault(require("./Option"));
25
-
26
14
  var _Icons = _interopRequireDefault(require("./Icons"));
27
-
28
15
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
29
-
30
- 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
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
34
18
  var groupsHaveOptions = function groupsHaveOptions(options) {
35
19
  return options !== null && options !== void 0 && options[0].options ? options.some(function (groupOption) {
36
20
  var _groupOption$options;
37
-
38
21
  return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
39
22
  }) : true;
40
23
  };
41
-
42
24
  var Listbox = function Listbox(_ref) {
43
25
  var id = _ref.id,
44
- currentValue = _ref.currentValue,
45
- options = _ref.options,
46
- visualFocusIndex = _ref.visualFocusIndex,
47
- lastOptionIndex = _ref.lastOptionIndex,
48
- multiple = _ref.multiple,
49
- optional = _ref.optional,
50
- optionalItem = _ref.optionalItem,
51
- searchable = _ref.searchable,
52
- handleOptionOnClick = _ref.handleOptionOnClick,
53
- getSelectWidth = _ref.getSelectWidth;
54
- var colorsTheme = (0, _useTheme["default"])();
26
+ currentValue = _ref.currentValue,
27
+ options = _ref.options,
28
+ visualFocusIndex = _ref.visualFocusIndex,
29
+ lastOptionIndex = _ref.lastOptionIndex,
30
+ multiple = _ref.multiple,
31
+ optional = _ref.optional,
32
+ optionalItem = _ref.optionalItem,
33
+ searchable = _ref.searchable,
34
+ handleOptionOnClick = _ref.handleOptionOnClick,
35
+ styles = _ref.styles;
55
36
  var translatedLabels = (0, _useTranslatedLabels["default"])();
56
37
  var listboxRef = (0, _react.useRef)(null);
57
-
58
- var _useState = (0, _react.useState)(null),
59
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
- styles = _useState2[0],
61
- setStyles = _useState2[1];
62
-
63
- var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
64
-
38
+ var globalIndex = optional && !multiple ? 0 : -1;
65
39
  var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
66
40
  if (option.options) {
67
41
  var groupId = "group-".concat(mapIndex);
@@ -101,11 +75,9 @@ var Listbox = function Listbox(_ref) {
101
75
  });
102
76
  }
103
77
  };
104
-
105
78
  (0, _react.useLayoutEffect)(function () {
106
79
  if (currentValue && !multiple) {
107
80
  var _listEl$scrollTo;
108
-
109
81
  var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
110
82
  var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
111
83
  listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
@@ -115,32 +87,13 @@ var Listbox = function Listbox(_ref) {
115
87
  }, [currentValue, multiple]);
116
88
  (0, _react.useLayoutEffect)(function () {
117
89
  var _listboxRef$current, _visualFocusedOptionE;
118
-
119
90
  var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
120
91
  visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
121
92
  block: "nearest",
122
93
  inline: "start"
123
94
  });
124
95
  }, [visualFocusIndex]);
125
-
126
- var handleResize = function handleResize() {
127
- setStyles({
128
- width: getSelectWidth()
129
- });
130
- };
131
-
132
- (0, _react.useLayoutEffect)(function () {
133
- handleResize();
134
- }, [getSelectWidth]);
135
- (0, _react.useEffect)(function () {
136
- window.addEventListener("resize", handleResize);
137
- return function () {
138
- window.removeEventListener("resize", handleResize);
139
- };
140
- }, [getSelectWidth]);
141
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
142
- theme: colorsTheme.select
143
- }, /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
96
+ return /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
144
97
  id: id,
145
98
  onClick: function onClick(event) {
146
99
  event.stopPropagation();
@@ -162,9 +115,8 @@ var Listbox = function Listbox(_ref) {
162
115
  isGroupedOption: false,
163
116
  isLastOption: lastOptionIndex === 0,
164
117
  isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
165
- }), options.map(mapOptionFunc)));
118
+ }), options.map(mapOptionFunc));
166
119
  };
167
-
168
120
  var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
169
121
  return props.theme.listDialogBackgroundColor;
170
122
  }, function (props) {
@@ -180,19 +132,12 @@ var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_temp
180
132
  }, function (props) {
181
133
  return props.theme.listOptionFontWeight;
182
134
  });
183
-
184
135
  var OptionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
185
136
  return props.theme.systemMessageFontColor;
186
137
  });
187
-
188
138
  var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: 0.25rem;\n"])));
189
-
190
139
  var GroupList = _styledComponents["default"].ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
191
-
192
140
  var GroupLabel = _styledComponents["default"].li(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
193
141
  return props.theme.listGroupLabelFontWeight;
194
142
  });
195
-
196
- var _default = /*#__PURE__*/_react["default"].memo(Listbox);
197
-
198
- exports["default"] = _default;
143
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Listbox);