@dxc-technology/halstack-react 0.0.0-7f5e42c → 0.0.0-7ffa3f4

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 (306) 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 +125 -110
  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 +20 -35
  10. package/accordion/types.d.ts +5 -16
  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 -17
  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 +20 -59
  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 +19 -60
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -14
  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 -11
  53. package/checkbox/Checkbox.d.ts +2 -2
  54. package/checkbox/Checkbox.js +140 -182
  55. package/checkbox/Checkbox.stories.tsx +128 -94
  56. package/checkbox/Checkbox.test.js +160 -39
  57. package/checkbox/types.d.ts +11 -3
  58. package/chip/Chip.js +39 -79
  59. package/chip/Chip.stories.tsx +121 -26
  60. package/chip/Chip.test.js +16 -31
  61. package/chip/types.d.ts +4 -4
  62. package/common/OpenSans.css +68 -80
  63. package/common/coreTokens.d.ts +237 -0
  64. package/common/coreTokens.js +184 -0
  65. package/common/utils.d.ts +1 -0
  66. package/common/utils.js +6 -12
  67. package/common/variables.d.ts +1395 -0
  68. package/common/variables.js +921 -1162
  69. package/container/Container.d.ts +4 -0
  70. package/container/Container.js +194 -0
  71. package/container/Container.stories.tsx +214 -0
  72. package/container/types.d.ts +74 -0
  73. package/contextual-menu/ContextualMenu.d.ts +7 -0
  74. package/contextual-menu/ContextualMenu.js +71 -0
  75. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  76. package/contextual-menu/ContextualMenu.test.js +71 -0
  77. package/contextual-menu/MenuItemAction.d.ts +4 -0
  78. package/contextual-menu/MenuItemAction.js +46 -0
  79. package/contextual-menu/types.d.ts +22 -0
  80. package/date-input/Calendar.d.ts +4 -0
  81. package/date-input/Calendar.js +214 -0
  82. package/date-input/DateInput.js +150 -299
  83. package/date-input/DateInput.stories.tsx +203 -56
  84. package/date-input/DateInput.test.js +700 -371
  85. package/date-input/DatePicker.d.ts +4 -0
  86. package/date-input/DatePicker.js +115 -0
  87. package/date-input/Icons.d.ts +6 -0
  88. package/date-input/Icons.js +58 -0
  89. package/date-input/YearPicker.d.ts +4 -0
  90. package/date-input/YearPicker.js +100 -0
  91. package/date-input/types.d.ts +72 -15
  92. package/dialog/Dialog.d.ts +1 -1
  93. package/dialog/Dialog.js +60 -118
  94. package/dialog/Dialog.stories.tsx +320 -166
  95. package/dialog/Dialog.test.js +269 -32
  96. package/dialog/types.d.ts +18 -25
  97. package/dropdown/Dropdown.js +81 -132
  98. package/dropdown/Dropdown.stories.tsx +210 -84
  99. package/dropdown/Dropdown.test.js +410 -402
  100. package/dropdown/DropdownMenu.js +20 -37
  101. package/dropdown/DropdownMenuItem.js +10 -35
  102. package/dropdown/types.d.ts +17 -19
  103. package/file-input/FileInput.d.ts +2 -2
  104. package/file-input/FileInput.js +241 -355
  105. package/file-input/FileInput.stories.tsx +123 -12
  106. package/file-input/FileInput.test.js +369 -367
  107. package/file-input/FileItem.d.ts +4 -14
  108. package/file-input/FileItem.js +45 -96
  109. package/file-input/types.d.ts +25 -8
  110. package/flex/Flex.d.ts +1 -1
  111. package/flex/Flex.js +40 -40
  112. package/flex/Flex.stories.tsx +35 -26
  113. package/flex/types.d.ts +84 -8
  114. package/footer/Footer.d.ts +1 -1
  115. package/footer/Footer.js +70 -117
  116. package/footer/Footer.stories.tsx +60 -19
  117. package/footer/Footer.test.js +33 -57
  118. package/footer/Icons.d.ts +3 -2
  119. package/footer/Icons.js +66 -7
  120. package/footer/types.d.ts +25 -26
  121. package/grid/Grid.d.ts +7 -0
  122. package/grid/Grid.js +76 -0
  123. package/grid/Grid.stories.tsx +219 -0
  124. package/grid/types.d.ts +115 -0
  125. package/grid/types.js +5 -0
  126. package/header/Header.d.ts +4 -3
  127. package/header/Header.js +48 -133
  128. package/header/Header.stories.tsx +115 -36
  129. package/header/Header.test.js +13 -26
  130. package/header/Icons.d.ts +2 -2
  131. package/header/Icons.js +2 -7
  132. package/header/types.d.ts +5 -19
  133. package/heading/Heading.js +10 -32
  134. package/heading/Heading.test.js +71 -88
  135. package/heading/types.d.ts +7 -7
  136. package/image/Image.d.ts +4 -0
  137. package/image/Image.js +70 -0
  138. package/image/Image.stories.tsx +129 -0
  139. package/image/types.d.ts +72 -0
  140. package/image/types.js +5 -0
  141. package/inset/Inset.js +13 -21
  142. package/inset/Inset.stories.tsx +2 -1
  143. package/inset/types.d.ts +2 -2
  144. package/layout/ApplicationLayout.d.ts +5 -5
  145. package/layout/ApplicationLayout.js +29 -66
  146. package/layout/ApplicationLayout.stories.tsx +1 -1
  147. package/layout/Icons.d.ts +8 -5
  148. package/layout/Icons.js +51 -59
  149. package/layout/SidenavContext.d.ts +1 -1
  150. package/layout/SidenavContext.js +3 -9
  151. package/layout/types.d.ts +5 -6
  152. package/link/Link.js +25 -46
  153. package/link/Link.stories.tsx +60 -0
  154. package/link/Link.test.js +24 -44
  155. package/link/types.d.ts +14 -14
  156. package/main.d.ts +9 -5
  157. package/main.js +40 -59
  158. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  159. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  160. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  161. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  162. package/nav-tabs/Tab.js +118 -0
  163. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  164. package/nav-tabs/types.js +5 -0
  165. package/number-input/NumberInput.d.ts +7 -0
  166. package/number-input/NumberInput.js +47 -37
  167. package/number-input/NumberInput.stories.tsx +42 -26
  168. package/number-input/NumberInput.test.js +860 -377
  169. package/number-input/types.d.ts +11 -5
  170. package/package.json +37 -40
  171. package/paginator/Icons.d.ts +5 -0
  172. package/paginator/Icons.js +21 -47
  173. package/paginator/Paginator.js +23 -59
  174. package/paginator/Paginator.stories.tsx +24 -0
  175. package/paginator/Paginator.test.js +253 -226
  176. package/paginator/types.d.ts +3 -3
  177. package/paragraph/Paragraph.d.ts +3 -4
  178. package/paragraph/Paragraph.js +6 -22
  179. package/paragraph/Paragraph.stories.tsx +0 -17
  180. package/password-input/Icons.d.ts +6 -0
  181. package/password-input/Icons.js +35 -0
  182. package/password-input/PasswordInput.js +57 -126
  183. package/password-input/PasswordInput.stories.tsx +1 -33
  184. package/password-input/PasswordInput.test.js +160 -142
  185. package/password-input/types.d.ts +8 -7
  186. package/progress-bar/ProgressBar.d.ts +2 -2
  187. package/progress-bar/ProgressBar.js +23 -55
  188. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  189. package/progress-bar/ProgressBar.test.js +36 -53
  190. package/progress-bar/types.d.ts +4 -3
  191. package/quick-nav/QuickNav.js +15 -39
  192. package/quick-nav/QuickNav.stories.tsx +112 -20
  193. package/quick-nav/types.d.ts +10 -10
  194. package/radio-group/Radio.d.ts +1 -1
  195. package/radio-group/Radio.js +59 -76
  196. package/radio-group/RadioGroup.js +59 -105
  197. package/radio-group/RadioGroup.stories.tsx +132 -18
  198. package/radio-group/RadioGroup.test.js +518 -457
  199. package/radio-group/types.d.ts +10 -10
  200. package/resultset-table/Icons.d.ts +7 -0
  201. package/resultset-table/Icons.js +47 -0
  202. package/resultset-table/ResultsetTable.d.ts +7 -0
  203. package/resultset-table/ResultsetTable.js +166 -0
  204. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +152 -30
  205. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +167 -144
  206. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  207. package/resultset-table/types.js +5 -0
  208. package/select/Icons.d.ts +7 -7
  209. package/select/Icons.js +1 -5
  210. package/select/Listbox.d.ts +1 -1
  211. package/select/Listbox.js +17 -73
  212. package/select/Option.js +27 -50
  213. package/select/Select.js +123 -176
  214. package/select/Select.stories.tsx +497 -153
  215. package/select/Select.test.js +1970 -1775
  216. package/select/types.d.ts +16 -17
  217. package/sidenav/Icons.d.ts +7 -0
  218. package/sidenav/Icons.js +47 -0
  219. package/sidenav/Sidenav.d.ts +2 -2
  220. package/sidenav/Sidenav.js +81 -153
  221. package/sidenav/Sidenav.stories.tsx +165 -63
  222. package/sidenav/Sidenav.test.js +3 -10
  223. package/sidenav/types.d.ts +31 -28
  224. package/slider/Slider.d.ts +2 -2
  225. package/slider/Slider.js +83 -131
  226. package/slider/Slider.test.js +108 -104
  227. package/slider/types.d.ts +7 -3
  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.d.ts +3 -3
  239. package/switch/Switch.js +113 -150
  240. package/switch/Switch.stories.tsx +33 -34
  241. package/switch/Switch.test.js +70 -102
  242. package/switch/types.d.ts +8 -3
  243. package/table/DropdownTheme.js +62 -0
  244. package/table/Table.d.ts +6 -2
  245. package/table/Table.js +87 -35
  246. package/table/Table.stories.tsx +658 -0
  247. package/table/Table.test.js +95 -8
  248. package/table/types.d.ts +48 -6
  249. package/tabs/Tab.js +26 -45
  250. package/tabs/Tabs.js +62 -145
  251. package/tabs/Tabs.stories.tsx +46 -6
  252. package/tabs/Tabs.test.js +66 -123
  253. package/tabs/types.d.ts +19 -19
  254. package/tag/Tag.js +29 -61
  255. package/tag/Tag.stories.tsx +14 -1
  256. package/tag/Tag.test.js +20 -31
  257. package/tag/types.d.ts +7 -7
  258. package/text-input/Icons.d.ts +8 -0
  259. package/text-input/Icons.js +56 -0
  260. package/text-input/Suggestion.js +40 -28
  261. package/text-input/Suggestions.d.ts +4 -0
  262. package/text-input/Suggestions.js +84 -0
  263. package/text-input/TextInput.js +301 -497
  264. package/text-input/TextInput.stories.tsx +266 -274
  265. package/text-input/TextInput.test.js +1419 -1375
  266. package/text-input/types.d.ts +43 -16
  267. package/textarea/Textarea.js +70 -113
  268. package/textarea/Textarea.stories.tsx +174 -0
  269. package/textarea/Textarea.test.js +152 -183
  270. package/textarea/types.d.ts +9 -5
  271. package/toggle-group/ToggleGroup.d.ts +2 -2
  272. package/toggle-group/ToggleGroup.js +92 -106
  273. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  274. package/toggle-group/ToggleGroup.test.js +69 -88
  275. package/toggle-group/types.d.ts +26 -17
  276. package/typography/Typography.d.ts +2 -2
  277. package/typography/Typography.js +15 -123
  278. package/typography/Typography.stories.tsx +1 -1
  279. package/typography/types.d.ts +1 -1
  280. package/useTheme.d.ts +1147 -1
  281. package/useTheme.js +2 -9
  282. package/useTranslatedLabels.d.ts +84 -1
  283. package/useTranslatedLabels.js +1 -7
  284. package/utils/BaseTypography.d.ts +21 -0
  285. package/utils/BaseTypography.js +94 -0
  286. package/utils/FocusLock.d.ts +13 -0
  287. package/utils/FocusLock.js +124 -0
  288. package/wizard/Wizard.js +16 -51
  289. package/wizard/Wizard.stories.tsx +20 -0
  290. package/wizard/Wizard.test.js +54 -81
  291. package/wizard/types.d.ts +8 -9
  292. package/card/ice-cream.jpg +0 -0
  293. package/common/RequiredComponent.js +0 -32
  294. package/number-input/NumberInputContext.d.ts +0 -4
  295. package/number-input/NumberInputContext.js +0 -19
  296. package/number-input/numberInputContextTypes.d.ts +0 -19
  297. package/resultsetTable/ResultsetTable.d.ts +0 -4
  298. package/resultsetTable/ResultsetTable.js +0 -254
  299. package/slider/Slider.stories.tsx +0 -183
  300. package/table/Table.stories.jsx +0 -277
  301. package/tabs-nav/Tab.js +0 -130
  302. package/textarea/Textarea.stories.jsx +0 -157
  303. /package/{resultsetTable → action-icon}/types.js +0 -0
  304. /package/{tabs-nav → container}/types.js +0 -0
  305. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  306. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,18 +1,59 @@
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"));
6
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
5
8
  var _react = _interopRequireDefault(require("react"));
6
-
7
9
  var _react2 = require("@testing-library/react");
8
-
9
- var _Table = _interopRequireDefault(require("./Table"));
10
-
10
+ var _Table = _interopRequireDefault(require("./Table.tsx"));
11
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
12
+ global.globalThis = global;
13
+ global.DOMRect = {
14
+ fromRect: function fromRect() {
15
+ return {
16
+ top: 0,
17
+ left: 0,
18
+ bottom: 0,
19
+ right: 0,
20
+ width: 0,
21
+ height: 0
22
+ };
23
+ }
24
+ };
25
+ global.ResizeObserver = /*#__PURE__*/function () {
26
+ function ResizeObserver() {
27
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
28
+ }
29
+ (0, _createClass2["default"])(ResizeObserver, [{
30
+ key: "observe",
31
+ value: function observe() {}
32
+ }, {
33
+ key: "unobserve",
34
+ value: function unobserve() {}
35
+ }, {
36
+ key: "disconnect",
37
+ value: function disconnect() {}
38
+ }]);
39
+ return ResizeObserver;
40
+ }();
41
+ var icon = /*#__PURE__*/_react["default"].createElement("svg", {
42
+ xmlns: "http://www.w3.org/2000/svg",
43
+ height: "24px",
44
+ viewBox: "0 0 24 24",
45
+ width: "24px",
46
+ fill: "currentColor"
47
+ }, /*#__PURE__*/_react["default"].createElement("path", {
48
+ d: "M0 0h24v24H0V0zm0 0h24v24H0V0z",
49
+ fill: "none"
50
+ }), /*#__PURE__*/_react["default"].createElement("path", {
51
+ 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"
52
+ }));
11
53
  describe("Table component tests", function () {
12
54
  test("Table renders with correct content", function () {
13
- var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6")))),
14
- getByText = _render.getByText;
15
-
55
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6"))))),
56
+ getByText = _render.getByText;
16
57
  expect(getByText("header-1")).toBeTruthy();
17
58
  expect(getByText("header-2")).toBeTruthy();
18
59
  expect(getByText("header-3")).toBeTruthy();
@@ -23,4 +64,50 @@ describe("Table component tests", function () {
23
64
  expect(getByText("cell-5")).toBeTruthy();
24
65
  expect(getByText("cell-6")).toBeTruthy();
25
66
  });
67
+ test("Table ActionsCell", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
68
+ var onSelectOption, onClick, actions, _render2, getAllByRole, getByRole, getByText, dropdown, option, action;
69
+ return _regenerator["default"].wrap(function _callee$(_context) {
70
+ while (1) switch (_context.prev = _context.next) {
71
+ case 0:
72
+ onSelectOption = jest.fn();
73
+ onClick = jest.fn();
74
+ actions = [{
75
+ icon: icon,
76
+ title: "icon1",
77
+ onClick: onSelectOption,
78
+ options: [{
79
+ value: "1",
80
+ label: "Amazon"
81
+ }, {
82
+ value: "2",
83
+ label: "Ebay"
84
+ }, {
85
+ value: "3",
86
+ label: "Aliexpress"
87
+ }]
88
+ }, {
89
+ icon: icon,
90
+ title: "icon2",
91
+ onClick: onClick
92
+ }];
93
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_Table["default"].ActionsCell, {
94
+ actions: actions
95
+ })))))), getAllByRole = _render2.getAllByRole, getByRole = _render2.getByRole, getByText = _render2.getByText;
96
+ dropdown = getAllByRole("button")[1];
97
+ (0, _react2.act)(function () {
98
+ _userEvent["default"].click(dropdown);
99
+ });
100
+ expect(getByRole("menu")).toBeTruthy();
101
+ option = getByText("Aliexpress");
102
+ _userEvent["default"].click(option);
103
+ expect(onSelectOption).toHaveBeenCalledWith("3");
104
+ action = getAllByRole("button")[0];
105
+ _userEvent["default"].click(action);
106
+ expect(onClick).toHaveBeenCalled();
107
+ case 13:
108
+ case "end":
109
+ return _context.stop();
110
+ }
111
+ }, _callee);
112
+ })));
26
113
  });
package/table/types.d.ts CHANGED
@@ -1,21 +1,63 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- 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 Props = {
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ type Option = {
10
11
  /**
11
- * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
12
- * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
12
+ * Option display value.
13
13
  */
14
- margin?: Space | Margin;
14
+ label?: string;
15
+ /**
16
+ * Element or path used as the icon that will be placed next to the
17
+ * option label.
18
+ */
19
+ icon?: string | SVG;
20
+ /**
21
+ * Option inner value.
22
+ */
23
+ value: string;
24
+ };
25
+ export type DeepPartial<T> = {
26
+ [P in keyof T]?: Partial<T[P]>;
27
+ };
28
+ export type ActionCellsPropsType = {
29
+ actions: Array<{
30
+ icon: string | SVG;
31
+ title: string;
32
+ onClick: () => void;
33
+ disabled?: boolean;
34
+ tabIndex?: number;
35
+ options?: never;
36
+ } | {
37
+ icon?: never;
38
+ title: string;
39
+ onClick: (value?: string) => void;
40
+ disabled?: boolean;
41
+ tabIndex?: number;
42
+ options: Option[];
43
+ }>;
44
+ };
45
+ type Props = {
15
46
  /**
16
47
  * The center section of the table. Can be used to render custom
17
48
  * content in this area.
18
49
  */
19
50
  children: React.ReactNode;
51
+ /**
52
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
53
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
54
+ */
55
+ margin?: Space | Margin;
56
+ /**
57
+ * Determines the visual style and layout
58
+ * - "default": Default table size.
59
+ * - "reduced": More compact table with less spacing for high density information.
60
+ */
61
+ mode?: "default" | "reduced";
20
62
  };
21
63
  export default Props;
package/tabs/Tab.js CHANGED
@@ -1,48 +1,35 @@
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
10
  var _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
17
-
18
12
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
19
-
20
- var _Typography = _interopRequireDefault(require("../typography/Typography"));
21
-
13
+ var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
22
14
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
-
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
-
26
- 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); }
27
-
28
- 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; }
29
-
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
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; }
30
18
  var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
31
19
  var active = _ref.active,
32
- tab = _ref.tab,
33
- tabIndex = _ref.tabIndex,
34
- hasLabelAndIcon = _ref.hasLabelAndIcon,
35
- iconPosition = _ref.iconPosition,
36
- _onClick = _ref.onClick,
37
- _onMouseEnter = _ref.onMouseEnter,
38
- _onMouseLeave = _ref.onMouseLeave;
20
+ tab = _ref.tab,
21
+ tabIndex = _ref.tabIndex,
22
+ hasLabelAndIcon = _ref.hasLabelAndIcon,
23
+ iconPosition = _ref.iconPosition,
24
+ _onClick = _ref.onClick,
25
+ _onMouseEnter = _ref.onMouseEnter,
26
+ _onMouseLeave = _ref.onMouseLeave;
39
27
  var colorsTheme = (0, _useTheme["default"])();
40
28
  return /*#__PURE__*/_react["default"].createElement(TabContainer, {
41
29
  role: "tab",
42
30
  type: "button",
43
31
  tabIndex: tabIndex,
44
32
  disabled: tab.isDisabled,
45
- "aria-disabled": tab.isDisabled,
46
33
  "aria-selected": active,
47
34
  hasLabelAndIcon: hasLabelAndIcon,
48
35
  iconPosition: iconPosition,
@@ -57,15 +44,16 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
57
44
  _onMouseLeave();
58
45
  }
59
46
  }, /*#__PURE__*/_react["default"].createElement(MainLabelContainer, {
60
- hasBadge: tab.notificationNumber,
47
+ notificationNumber: tab.notificationNumber,
61
48
  hasLabelAndIcon: hasLabelAndIcon,
62
- iconPosition: iconPosition
49
+ iconPosition: iconPosition,
50
+ disabled: tab.isDisabled
63
51
  }, tab.icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
64
52
  hasLabelAndIcon: hasLabelAndIcon,
65
53
  iconPosition: iconPosition
66
- }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement(TabIcon, {
54
+ }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
67
55
  src: tab.icon
68
- }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
56
+ }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
69
57
  color: tab.isDisabled ? colorsTheme.tabs.disabledFontColor : active ? colorsTheme.tabs.selectedFontColor : colorsTheme.tabs.unselectedFontColor,
70
58
  fontFamily: colorsTheme.tabs.fontFamily,
71
59
  fontSize: colorsTheme.tabs.fontSize,
@@ -74,15 +62,16 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
74
62
  textAlign: "center",
75
63
  letterSpacing: "0.025em",
76
64
  lineHeight: "1.715em"
77
- }, tab.label)), tab.notificationNumber && tab.notificationNumber && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
65
+ }, tab.label)), tab.notificationNumber && !tab.isDisabled && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
78
66
  hasLabelAndIcon: hasLabelAndIcon,
79
67
  iconPosition: iconPosition
80
68
  }, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
81
- notificationText: tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
69
+ mode: "notification",
70
+ size: "small",
71
+ label: typeof tab.notificationNumber === "number" && tab.notificationNumber
82
72
  })));
83
73
  });
84
-
85
- var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n svg {\n color: ", ";\n }\n\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg {\n color: ", ";\n }\n opacity: 1;\n }\n\n &[aria-disabled=\"true\"] {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n svg {\n color: ", ";\n }\n outline: none !important;\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
74
+ var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n svg {\n color: ", ";\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg {\n color: ", ";\n }\n opacity: 1;\n }\n\n &:disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n outline: none !important;\n\n svg {\n color: ", ";\n }\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
86
75
  return props.theme.fontTextTransform;
87
76
  }, function (props) {
88
77
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "12px 16px" || "8px 16px";
@@ -92,14 +81,14 @@ var TabContainer = _styledComponents["default"].button(_templateObject || (_temp
92
81
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "47px" || "71px";
93
82
  }, function (props) {
94
83
  return props.theme.unselectedBackgroundColor;
95
- }, function (props) {
96
- return props.theme.unselectedIconColor;
97
84
  }, function (props) {
98
85
  return "".concat(props.theme.hoverBackgroundColor, " !important");
99
86
  }, function (props) {
100
87
  return "".concat(props.theme.pressedBackgroundColor, " !important");
101
88
  }, function (props) {
102
89
  return props.theme.focusOutline;
90
+ }, function (props) {
91
+ return props.theme.unselectedIconColor;
103
92
  }, function (props) {
104
93
  return props.theme.selectedBackgroundColor;
105
94
  }, function (props) {
@@ -111,25 +100,17 @@ var TabContainer = _styledComponents["default"].button(_templateObject || (_temp
111
100
  }, function (props) {
112
101
  return props.theme.disabledIconColor;
113
102
  });
114
-
115
103
  var BadgeContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n height: 100%;\n display: flex;\n align-items: ", ";\n"])), function (props) {
116
104
  return props.hasLabelAndIcon && props.iconPosition === "top" ? "flex-start" : "center";
117
105
  });
118
-
119
106
  var MainLabelContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n margin-left: ", ";\n"])), function (props) {
120
107
  return props.hasLabelAndIcon && props.iconPosition === "top" && "column" || "row";
121
108
  }, function (props) {
122
- return props.hasBadge ? typeof props.hasBadge === "number" ? "calc(".concat(props.theme.badgeWidthWithNotificationNumber, " + 12px)") : "calc(".concat(props.theme.badgeWidth, " + 12px)") : "unset";
109
+ return props.notificationNumber && !props.disabled ? typeof props.notificationNumber === "number" ? "36px" : "18px" : "unset";
123
110
  });
124
-
125
- var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n margin-bottom: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n align-items: center;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
111
+ var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-bottom: ", ";\n margin-right: ", ";\n\n img,\n svg {\n height: 22px;\n width: 22px;\n }\n"])), function (props) {
126
112
  return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
127
113
  }, function (props) {
128
114
  return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
129
115
  });
130
-
131
- var TabIcon = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n display: inline-flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n"])));
132
-
133
- var _default = /*#__PURE__*/_react["default"].memo(Tab);
134
-
135
- exports["default"] = _default;
116
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Tab);