@dxc-technology/halstack-react 0.0.0-4dc980c → 0.0.0-4e1277a

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 (323) 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 +122 -106
  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 +2 -2
  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/AccordionGroupContext.d.ts +3 -0
  18. package/accordion-group/AccordionGroupContext.js +8 -0
  19. package/accordion-group/types.d.ts +6 -18
  20. package/action-icon/ActionIcon.d.ts +4 -0
  21. package/action-icon/ActionIcon.js +47 -0
  22. package/action-icon/ActionIcon.stories.tsx +41 -0
  23. package/action-icon/ActionIcon.test.js +64 -0
  24. package/action-icon/types.d.ts +26 -0
  25. package/alert/Alert.js +19 -58
  26. package/alert/Alert.stories.tsx +28 -0
  27. package/alert/Alert.test.js +29 -46
  28. package/alert/types.d.ts +5 -5
  29. package/badge/Badge.d.ts +1 -1
  30. package/badge/Badge.js +141 -43
  31. package/badge/Badge.stories.tsx +210 -0
  32. package/badge/Badge.test.js +30 -0
  33. package/badge/types.d.ts +52 -3
  34. package/bleed/Bleed.js +13 -21
  35. package/bleed/Bleed.stories.tsx +1 -0
  36. package/bleed/types.d.ts +2 -2
  37. package/box/Box.d.ts +1 -1
  38. package/box/Box.js +18 -59
  39. package/box/Box.stories.tsx +38 -51
  40. package/box/Box.test.js +2 -7
  41. package/box/types.d.ts +3 -15
  42. package/bulleted-list/BulletedList.js +19 -53
  43. package/bulleted-list/BulletedList.stories.tsx +8 -93
  44. package/bulleted-list/types.d.ts +32 -5
  45. package/button/Button.d.ts +1 -1
  46. package/button/Button.js +71 -106
  47. package/button/Button.stories.tsx +144 -101
  48. package/button/Button.test.js +20 -17
  49. package/button/types.d.ts +9 -5
  50. package/card/Card.d.ts +1 -1
  51. package/card/Card.js +48 -89
  52. package/card/Card.stories.tsx +12 -42
  53. package/card/Card.test.js +11 -22
  54. package/card/types.d.ts +6 -12
  55. package/checkbox/Checkbox.js +87 -122
  56. package/checkbox/Checkbox.stories.tsx +68 -54
  57. package/checkbox/Checkbox.test.js +108 -64
  58. package/checkbox/types.d.ts +8 -4
  59. package/chip/Chip.js +39 -79
  60. package/chip/Chip.stories.tsx +121 -26
  61. package/chip/Chip.test.js +16 -31
  62. package/chip/types.d.ts +4 -4
  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 +910 -1155
  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 +1 -1
  81. package/date-input/Calendar.js +52 -96
  82. package/date-input/DateInput.js +103 -107
  83. package/date-input/DateInput.stories.tsx +194 -60
  84. package/date-input/DateInput.test.js +676 -620
  85. package/date-input/DatePicker.js +47 -92
  86. package/date-input/Icons.d.ts +6 -0
  87. package/date-input/Icons.js +58 -0
  88. package/date-input/YearPicker.d.ts +1 -1
  89. package/date-input/YearPicker.js +29 -44
  90. package/date-input/types.d.ts +32 -28
  91. package/dialog/Dialog.d.ts +1 -1
  92. package/dialog/Dialog.js +61 -119
  93. package/dialog/Dialog.stories.tsx +310 -212
  94. package/dialog/Dialog.test.js +269 -32
  95. package/dialog/types.d.ts +18 -26
  96. package/divider/Divider.d.ts +4 -0
  97. package/divider/Divider.js +36 -0
  98. package/divider/Divider.stories.tsx +223 -0
  99. package/divider/Divider.test.js +38 -0
  100. package/divider/types.d.ts +21 -0
  101. package/divider/types.js +5 -0
  102. package/dropdown/Dropdown.js +53 -108
  103. package/dropdown/Dropdown.stories.tsx +210 -84
  104. package/dropdown/Dropdown.test.js +393 -379
  105. package/dropdown/DropdownMenu.js +20 -37
  106. package/dropdown/DropdownMenuItem.js +9 -34
  107. package/dropdown/types.d.ts +18 -20
  108. package/file-input/FileInput.js +184 -256
  109. package/file-input/FileInput.stories.tsx +86 -3
  110. package/file-input/FileInput.test.js +356 -395
  111. package/file-input/FileItem.js +15 -41
  112. package/file-input/types.d.ts +10 -10
  113. package/flex/Flex.js +27 -39
  114. package/flex/Flex.stories.tsx +35 -26
  115. package/flex/types.d.ts +74 -9
  116. package/footer/Footer.d.ts +1 -1
  117. package/footer/Footer.js +70 -117
  118. package/footer/Footer.stories.tsx +55 -21
  119. package/footer/Footer.test.js +33 -57
  120. package/footer/Icons.d.ts +3 -2
  121. package/footer/Icons.js +66 -7
  122. package/footer/types.d.ts +25 -27
  123. package/grid/Grid.d.ts +7 -0
  124. package/grid/Grid.js +76 -0
  125. package/grid/Grid.stories.tsx +219 -0
  126. package/grid/types.d.ts +115 -0
  127. package/grid/types.js +5 -0
  128. package/header/Header.d.ts +4 -3
  129. package/header/Header.js +48 -133
  130. package/header/Header.stories.tsx +115 -36
  131. package/header/Header.test.js +13 -26
  132. package/header/Icons.d.ts +2 -2
  133. package/header/Icons.js +2 -7
  134. package/header/types.d.ts +7 -22
  135. package/heading/Heading.js +10 -32
  136. package/heading/Heading.test.js +71 -88
  137. package/heading/types.d.ts +7 -7
  138. package/icon/Icon.d.ts +4 -0
  139. package/icon/Icon.js +33 -0
  140. package/icon/Icon.stories.tsx +26 -0
  141. package/icon/types.d.ts +4 -0
  142. package/icon/types.js +5 -0
  143. package/image/Image.d.ts +4 -0
  144. package/image/Image.js +70 -0
  145. package/image/Image.stories.tsx +129 -0
  146. package/image/types.d.ts +72 -0
  147. package/image/types.js +5 -0
  148. package/inset/Inset.js +13 -21
  149. package/inset/Inset.stories.tsx +2 -1
  150. package/inset/types.d.ts +2 -2
  151. package/layout/ApplicationLayout.d.ts +5 -5
  152. package/layout/ApplicationLayout.js +30 -67
  153. package/layout/ApplicationLayout.stories.tsx +1 -1
  154. package/layout/Icons.d.ts +8 -5
  155. package/layout/Icons.js +51 -59
  156. package/layout/types.d.ts +5 -6
  157. package/link/Link.js +24 -45
  158. package/link/Link.stories.tsx +60 -0
  159. package/link/Link.test.js +24 -44
  160. package/link/types.d.ts +14 -14
  161. package/main.d.ts +10 -5
  162. package/main.js +47 -59
  163. package/nav-tabs/NavTabs.d.ts +7 -0
  164. package/{tabs-nav → nav-tabs}/NavTabs.js +25 -57
  165. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  166. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  167. package/nav-tabs/NavTabsContext.d.ts +3 -0
  168. package/nav-tabs/NavTabsContext.js +8 -0
  169. package/nav-tabs/Tab.js +118 -0
  170. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  171. package/nav-tabs/types.js +5 -0
  172. package/number-input/NumberInput.js +46 -36
  173. package/number-input/NumberInput.stories.tsx +42 -26
  174. package/number-input/NumberInput.test.js +860 -413
  175. package/number-input/NumberInputContext.d.ts +3 -4
  176. package/number-input/NumberInputContext.js +3 -14
  177. package/number-input/types.d.ts +17 -5
  178. package/package.json +31 -29
  179. package/paginator/Icons.d.ts +5 -0
  180. package/paginator/Icons.js +21 -47
  181. package/paginator/Paginator.js +22 -58
  182. package/paginator/Paginator.stories.tsx +24 -0
  183. package/paginator/Paginator.test.js +252 -225
  184. package/paginator/types.d.ts +3 -3
  185. package/paragraph/Paragraph.d.ts +3 -4
  186. package/paragraph/Paragraph.js +6 -22
  187. package/paragraph/Paragraph.stories.tsx +0 -17
  188. package/password-input/Icons.d.ts +6 -0
  189. package/password-input/Icons.js +35 -0
  190. package/password-input/PasswordInput.js +57 -126
  191. package/password-input/PasswordInput.stories.tsx +1 -33
  192. package/password-input/PasswordInput.test.js +158 -141
  193. package/password-input/types.d.ts +8 -7
  194. package/progress-bar/ProgressBar.d.ts +2 -2
  195. package/progress-bar/ProgressBar.js +23 -55
  196. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  197. package/progress-bar/ProgressBar.test.js +36 -53
  198. package/progress-bar/types.d.ts +4 -3
  199. package/quick-nav/QuickNav.js +4 -27
  200. package/quick-nav/QuickNav.stories.tsx +15 -1
  201. package/quick-nav/types.d.ts +10 -10
  202. package/radio-group/Radio.d.ts +1 -1
  203. package/radio-group/Radio.js +31 -63
  204. package/radio-group/RadioGroup.js +45 -93
  205. package/radio-group/RadioGroup.stories.tsx +131 -18
  206. package/radio-group/RadioGroup.test.js +505 -471
  207. package/radio-group/types.d.ts +8 -8
  208. package/resultset-table/Icons.d.ts +7 -0
  209. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  210. package/resultset-table/ResultsetTable.d.ts +7 -0
  211. package/{resultsetTable → resultset-table}/ResultsetTable.js +37 -66
  212. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +102 -5
  213. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +155 -114
  214. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  215. package/resultset-table/types.js +5 -0
  216. package/select/Icons.d.ts +7 -7
  217. package/select/Icons.js +1 -5
  218. package/select/Listbox.d.ts +1 -1
  219. package/select/Listbox.js +17 -72
  220. package/select/Option.js +27 -50
  221. package/select/Select.js +120 -175
  222. package/select/Select.stories.tsx +495 -148
  223. package/select/Select.test.js +1974 -1837
  224. package/select/types.d.ts +16 -17
  225. package/sidenav/Icons.d.ts +7 -0
  226. package/sidenav/Icons.js +47 -0
  227. package/sidenav/Sidenav.d.ts +2 -2
  228. package/sidenav/Sidenav.js +83 -154
  229. package/sidenav/Sidenav.stories.tsx +165 -63
  230. package/sidenav/Sidenav.test.js +3 -10
  231. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  232. package/{layout → sidenav}/SidenavContext.js +3 -9
  233. package/sidenav/types.d.ts +31 -28
  234. package/slider/Slider.js +70 -128
  235. package/slider/Slider.test.js +108 -104
  236. package/slider/types.d.ts +4 -4
  237. package/spinner/Spinner.js +29 -73
  238. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  239. package/spinner/Spinner.test.js +26 -35
  240. package/spinner/types.d.ts +3 -3
  241. package/status-light/StatusLight.d.ts +4 -0
  242. package/status-light/StatusLight.js +51 -0
  243. package/status-light/StatusLight.stories.tsx +74 -0
  244. package/status-light/StatusLight.test.js +25 -0
  245. package/status-light/types.d.ts +17 -0
  246. package/status-light/types.js +5 -0
  247. package/switch/Switch.js +51 -99
  248. package/switch/Switch.stories.tsx +33 -34
  249. package/switch/Switch.test.js +52 -97
  250. package/switch/types.d.ts +4 -4
  251. package/table/DropdownTheme.js +62 -0
  252. package/table/Table.d.ts +6 -2
  253. package/table/Table.js +87 -35
  254. package/table/Table.stories.tsx +658 -0
  255. package/table/Table.test.js +94 -7
  256. package/table/types.d.ts +48 -6
  257. package/tabs/Tab.js +26 -45
  258. package/tabs/Tabs.js +62 -145
  259. package/tabs/Tabs.stories.tsx +46 -5
  260. package/tabs/Tabs.test.js +66 -123
  261. package/tabs/types.d.ts +19 -19
  262. package/tag/Tag.js +28 -60
  263. package/tag/Tag.stories.tsx +14 -1
  264. package/tag/Tag.test.js +20 -31
  265. package/tag/types.d.ts +7 -7
  266. package/text-input/Icons.d.ts +5 -5
  267. package/text-input/Icons.js +1 -5
  268. package/text-input/Suggestion.js +35 -25
  269. package/text-input/Suggestions.d.ts +1 -1
  270. package/text-input/Suggestions.js +15 -65
  271. package/text-input/TextInput.js +220 -332
  272. package/text-input/TextInput.stories.tsx +139 -155
  273. package/text-input/TextInput.test.js +1289 -1157
  274. package/text-input/types.d.ts +25 -17
  275. package/textarea/Textarea.js +70 -113
  276. package/textarea/Textarea.stories.tsx +174 -0
  277. package/textarea/Textarea.test.js +152 -183
  278. package/textarea/types.d.ts +9 -5
  279. package/toggle-group/ToggleGroup.d.ts +2 -2
  280. package/toggle-group/ToggleGroup.js +92 -106
  281. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  282. package/toggle-group/ToggleGroup.test.js +69 -88
  283. package/toggle-group/types.d.ts +26 -17
  284. package/typography/Typography.d.ts +2 -2
  285. package/typography/Typography.js +15 -123
  286. package/typography/Typography.stories.tsx +1 -1
  287. package/typography/types.d.ts +1 -1
  288. package/useTheme.d.ts +1147 -1
  289. package/useTheme.js +2 -9
  290. package/useTranslatedLabels.d.ts +84 -1
  291. package/useTranslatedLabels.js +1 -7
  292. package/utils/BaseTypography.d.ts +21 -0
  293. package/utils/BaseTypography.js +94 -0
  294. package/utils/FocusLock.d.ts +13 -0
  295. package/utils/FocusLock.js +124 -0
  296. package/wizard/Wizard.js +16 -51
  297. package/wizard/Wizard.stories.tsx +20 -0
  298. package/wizard/Wizard.test.js +54 -81
  299. package/wizard/types.d.ts +9 -10
  300. package/card/ice-cream.jpg +0 -0
  301. package/common/OpenSans.css +0 -81
  302. package/common/fonts/OpenSans-Bold.ttf +0 -0
  303. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  304. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  305. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  306. package/common/fonts/OpenSans-Italic.ttf +0 -0
  307. package/common/fonts/OpenSans-Light.ttf +0 -0
  308. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  309. package/common/fonts/OpenSans-Regular.ttf +0 -0
  310. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  311. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  312. package/number-input/numberInputContextTypes.d.ts +0 -19
  313. package/resultsetTable/Icons.d.ts +0 -7
  314. package/resultsetTable/ResultsetTable.d.ts +0 -4
  315. package/slider/Slider.stories.tsx +0 -183
  316. package/table/Table.stories.jsx +0 -277
  317. package/tabs-nav/NavTabs.d.ts +0 -8
  318. package/tabs-nav/Tab.js +0 -130
  319. package/textarea/Textarea.stories.jsx +0 -157
  320. /package/{resultsetTable → action-icon}/types.js +0 -0
  321. /package/{tabs-nav → container}/types.js +0 -0
  322. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  323. /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
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"))))),
14
- getByText = _render.getByText;
15
-
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);