@dxc-technology/halstack-react 0.0.0-0a9608a → 0.0.0-0ae5b08

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 (316) 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 +31 -88
  8. package/accordion/Accordion.stories.tsx +52 -115
  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 +68 -102
  45. package/button/Button.stories.tsx +97 -93
  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 +36 -64
  58. package/chip/Chip.stories.tsx +80 -17
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  61. package/common/coreTokens.d.ts +237 -0
  62. package/common/coreTokens.js +184 -0
  63. package/common/utils.d.ts +1 -0
  64. package/common/utils.js +6 -12
  65. package/common/variables.d.ts +1395 -0
  66. package/common/variables.js +898 -1143
  67. package/container/Container.d.ts +4 -0
  68. package/container/Container.js +194 -0
  69. package/container/Container.stories.tsx +214 -0
  70. package/container/types.d.ts +74 -0
  71. package/contextual-menu/ContextualMenu.d.ts +7 -0
  72. package/contextual-menu/ContextualMenu.js +71 -0
  73. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  74. package/contextual-menu/ContextualMenu.test.js +71 -0
  75. package/contextual-menu/MenuItemAction.d.ts +4 -0
  76. package/contextual-menu/MenuItemAction.js +46 -0
  77. package/contextual-menu/types.d.ts +22 -0
  78. package/date-input/Calendar.js +38 -70
  79. package/date-input/DateInput.js +50 -96
  80. package/date-input/DateInput.stories.tsx +78 -30
  81. package/date-input/DateInput.test.js +674 -701
  82. package/date-input/DatePicker.js +36 -53
  83. package/date-input/Icons.d.ts +6 -6
  84. package/date-input/Icons.js +6 -23
  85. package/date-input/YearPicker.js +28 -44
  86. package/date-input/types.d.ts +28 -22
  87. package/dialog/Dialog.d.ts +1 -1
  88. package/dialog/Dialog.js +61 -119
  89. package/dialog/Dialog.stories.tsx +310 -212
  90. package/dialog/Dialog.test.js +269 -32
  91. package/dialog/types.d.ts +18 -26
  92. package/divider/Divider.d.ts +4 -0
  93. package/divider/Divider.js +36 -0
  94. package/divider/Divider.stories.tsx +223 -0
  95. package/divider/Divider.test.js +38 -0
  96. package/divider/types.d.ts +19 -0
  97. package/divider/types.js +5 -0
  98. package/dropdown/Dropdown.js +50 -102
  99. package/dropdown/Dropdown.stories.tsx +46 -1
  100. package/dropdown/Dropdown.test.js +393 -379
  101. package/dropdown/DropdownMenu.js +13 -20
  102. package/dropdown/DropdownMenuItem.js +5 -19
  103. package/dropdown/types.d.ts +18 -20
  104. package/file-input/FileInput.js +184 -256
  105. package/file-input/FileInput.stories.tsx +86 -3
  106. package/file-input/FileInput.test.js +356 -395
  107. package/file-input/FileItem.js +15 -41
  108. package/file-input/types.d.ts +10 -10
  109. package/flex/Flex.js +27 -39
  110. package/flex/Flex.stories.tsx +35 -26
  111. package/flex/types.d.ts +74 -9
  112. package/footer/Footer.d.ts +1 -1
  113. package/footer/Footer.js +70 -117
  114. package/footer/Footer.stories.tsx +55 -21
  115. package/footer/Footer.test.js +33 -57
  116. package/footer/Icons.d.ts +3 -2
  117. package/footer/Icons.js +66 -7
  118. package/footer/types.d.ts +25 -27
  119. package/grid/Grid.d.ts +7 -0
  120. package/grid/Grid.js +76 -0
  121. package/grid/Grid.stories.tsx +219 -0
  122. package/grid/types.d.ts +115 -0
  123. package/grid/types.js +5 -0
  124. package/header/Header.d.ts +4 -3
  125. package/header/Header.js +34 -117
  126. package/header/Header.stories.tsx +81 -35
  127. package/header/Header.test.js +13 -26
  128. package/header/Icons.d.ts +2 -2
  129. package/header/Icons.js +2 -7
  130. package/header/types.d.ts +7 -22
  131. package/heading/Heading.js +10 -32
  132. package/heading/Heading.test.js +71 -88
  133. package/heading/types.d.ts +7 -7
  134. package/icon/Icon.d.ts +4 -0
  135. package/icon/Icon.js +33 -0
  136. package/icon/Icon.stories.tsx +26 -0
  137. package/icon/types.d.ts +4 -0
  138. package/icon/types.js +5 -0
  139. package/image/Image.d.ts +4 -0
  140. package/image/Image.js +70 -0
  141. package/image/Image.stories.tsx +129 -0
  142. package/image/types.d.ts +72 -0
  143. package/image/types.js +5 -0
  144. package/inset/Inset.js +13 -21
  145. package/inset/Inset.stories.tsx +2 -1
  146. package/inset/types.d.ts +2 -2
  147. package/layout/ApplicationLayout.d.ts +5 -5
  148. package/layout/ApplicationLayout.js +29 -66
  149. package/layout/ApplicationLayout.stories.tsx +1 -1
  150. package/layout/Icons.d.ts +8 -5
  151. package/layout/Icons.js +51 -59
  152. package/layout/SidenavContext.d.ts +1 -1
  153. package/layout/SidenavContext.js +3 -9
  154. package/layout/types.d.ts +5 -6
  155. package/link/Link.js +24 -45
  156. package/link/Link.stories.tsx +60 -0
  157. package/link/Link.test.js +24 -44
  158. package/link/types.d.ts +14 -14
  159. package/main.d.ts +9 -5
  160. package/main.js +40 -59
  161. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  162. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  163. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +109 -5
  164. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  165. package/nav-tabs/Tab.js +118 -0
  166. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  167. package/nav-tabs/types.js +5 -0
  168. package/number-input/NumberInput.d.ts +7 -0
  169. package/number-input/NumberInput.js +47 -37
  170. package/number-input/NumberInput.stories.tsx +42 -26
  171. package/number-input/NumberInput.test.js +860 -413
  172. package/number-input/types.d.ts +11 -5
  173. package/package.json +31 -29
  174. package/paginator/Icons.d.ts +5 -5
  175. package/paginator/Icons.js +5 -19
  176. package/paginator/Paginator.js +17 -47
  177. package/paginator/Paginator.stories.tsx +24 -0
  178. package/paginator/Paginator.test.js +235 -215
  179. package/paginator/types.d.ts +3 -3
  180. package/paragraph/Paragraph.d.ts +3 -4
  181. package/paragraph/Paragraph.js +6 -22
  182. package/paragraph/Paragraph.stories.tsx +0 -17
  183. package/password-input/Icons.d.ts +6 -0
  184. package/password-input/Icons.js +35 -0
  185. package/password-input/PasswordInput.js +57 -126
  186. package/password-input/PasswordInput.stories.tsx +1 -33
  187. package/password-input/PasswordInput.test.js +158 -141
  188. package/password-input/types.d.ts +8 -7
  189. package/progress-bar/ProgressBar.d.ts +2 -2
  190. package/progress-bar/ProgressBar.js +23 -55
  191. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  192. package/progress-bar/ProgressBar.test.js +36 -53
  193. package/progress-bar/types.d.ts +4 -3
  194. package/quick-nav/QuickNav.js +4 -27
  195. package/quick-nav/QuickNav.stories.tsx +15 -1
  196. package/quick-nav/types.d.ts +10 -10
  197. package/radio-group/Radio.d.ts +1 -1
  198. package/radio-group/Radio.js +31 -63
  199. package/radio-group/RadioGroup.js +45 -93
  200. package/radio-group/RadioGroup.stories.tsx +131 -18
  201. package/radio-group/RadioGroup.test.js +505 -471
  202. package/radio-group/types.d.ts +8 -8
  203. package/resultset-table/Icons.d.ts +7 -0
  204. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  205. package/resultset-table/ResultsetTable.d.ts +7 -0
  206. package/{resultsetTable → resultset-table}/ResultsetTable.js +37 -66
  207. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +102 -5
  208. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +139 -93
  209. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  210. package/resultset-table/types.js +5 -0
  211. package/select/Icons.d.ts +7 -7
  212. package/select/Icons.js +1 -5
  213. package/select/Listbox.js +13 -39
  214. package/select/Option.js +17 -27
  215. package/select/Select.js +94 -168
  216. package/select/Select.stories.tsx +480 -178
  217. package/select/Select.test.js +1952 -1810
  218. package/select/types.d.ts +14 -15
  219. package/sidenav/Icons.d.ts +7 -0
  220. package/sidenav/Icons.js +47 -0
  221. package/sidenav/Sidenav.d.ts +2 -2
  222. package/sidenav/Sidenav.js +82 -151
  223. package/sidenav/Sidenav.stories.tsx +110 -17
  224. package/sidenav/Sidenav.test.js +3 -10
  225. package/sidenav/types.d.ts +31 -28
  226. package/slider/Slider.js +70 -128
  227. package/slider/Slider.test.js +108 -104
  228. package/slider/types.d.ts +4 -4
  229. package/spinner/Spinner.js +29 -73
  230. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  231. package/spinner/Spinner.test.js +26 -35
  232. package/spinner/types.d.ts +3 -3
  233. package/status-light/StatusLight.d.ts +4 -0
  234. package/status-light/StatusLight.js +51 -0
  235. package/status-light/StatusLight.stories.tsx +74 -0
  236. package/status-light/StatusLight.test.js +25 -0
  237. package/status-light/types.d.ts +17 -0
  238. package/status-light/types.js +5 -0
  239. package/switch/Switch.js +51 -99
  240. package/switch/Switch.stories.tsx +33 -34
  241. package/switch/Switch.test.js +52 -97
  242. package/switch/types.d.ts +4 -4
  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 +94 -7
  248. package/table/types.d.ts +48 -6
  249. package/tabs/Tab.js +23 -40
  250. package/tabs/Tabs.js +62 -145
  251. package/tabs/Tabs.stories.tsx +39 -1
  252. package/tabs/Tabs.test.js +66 -123
  253. package/tabs/types.d.ts +19 -19
  254. package/tag/Tag.js +28 -60
  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 +5 -5
  259. package/text-input/Icons.js +1 -5
  260. package/text-input/Suggestion.js +11 -28
  261. package/text-input/Suggestions.d.ts +1 -1
  262. package/text-input/Suggestions.js +15 -65
  263. package/text-input/TextInput.js +220 -328
  264. package/text-input/TextInput.stories.tsx +116 -152
  265. package/text-input/TextInput.test.js +1228 -1196
  266. package/text-input/types.d.ts +25 -17
  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 +9 -10
  292. package/card/ice-cream.jpg +0 -0
  293. package/common/OpenSans.css +0 -81
  294. package/common/fonts/OpenSans-Bold.ttf +0 -0
  295. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  296. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  297. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  298. package/common/fonts/OpenSans-Italic.ttf +0 -0
  299. package/common/fonts/OpenSans-Light.ttf +0 -0
  300. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  301. package/common/fonts/OpenSans-Regular.ttf +0 -0
  302. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  303. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  304. package/number-input/NumberInputContext.d.ts +0 -4
  305. package/number-input/NumberInputContext.js +0 -19
  306. package/number-input/numberInputContextTypes.d.ts +0 -19
  307. package/resultsetTable/Icons.d.ts +0 -7
  308. package/resultsetTable/ResultsetTable.d.ts +0 -4
  309. package/slider/Slider.stories.tsx +0 -183
  310. package/table/Table.stories.jsx +0 -277
  311. package/tabs-nav/Tab.js +0 -128
  312. package/textarea/Textarea.stories.jsx +0 -157
  313. /package/{resultsetTable → action-icon}/types.js +0 -0
  314. /package/{tabs-nav → container}/types.js +0 -0
  315. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  316. /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
15
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
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
-
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
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,23 +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
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 _default = /*#__PURE__*/_react["default"].memo(Tab);
132
-
133
- exports["default"] = _default;
116
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Tab);