@dxc-technology/halstack-react 0.0.0-59568e7 → 0.0.0-5a1e592

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 (283) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1349 -5
  4. package/HalstackContext.js +117 -80
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +110 -114
  8. package/accordion/Accordion.stories.tsx +105 -115
  9. package/accordion/Accordion.test.js +10 -11
  10. package/accordion/types.d.ts +1 -12
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +25 -65
  13. package/accordion-group/AccordionGroup.stories.tsx +93 -66
  14. package/accordion-group/AccordionGroup.test.js +27 -62
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +7 -12
  18. package/alert/Alert.js +5 -9
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +1 -1
  21. package/badge/Badge.d.ts +1 -1
  22. package/badge/Badge.js +5 -3
  23. package/badge/types.d.ts +1 -0
  24. package/bleed/Bleed.js +1 -34
  25. package/bleed/Bleed.stories.tsx +95 -95
  26. package/bleed/types.d.ts +1 -1
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +19 -48
  29. package/box/Box.stories.tsx +38 -51
  30. package/box/Box.test.js +1 -1
  31. package/box/types.d.ts +0 -11
  32. package/bulleted-list/BulletedList.d.ts +7 -0
  33. package/bulleted-list/BulletedList.js +125 -0
  34. package/bulleted-list/BulletedList.stories.tsx +206 -0
  35. package/bulleted-list/types.d.ts +38 -0
  36. package/button/Button.d.ts +1 -1
  37. package/button/Button.js +42 -72
  38. package/button/Button.stories.tsx +159 -8
  39. package/button/Button.test.js +12 -1
  40. package/button/types.d.ts +9 -5
  41. package/card/Card.d.ts +1 -1
  42. package/card/Card.js +43 -63
  43. package/card/Card.stories.tsx +12 -42
  44. package/card/Card.test.js +1 -1
  45. package/card/types.d.ts +1 -6
  46. package/checkbox/Checkbox.d.ts +2 -2
  47. package/checkbox/Checkbox.js +127 -115
  48. package/checkbox/Checkbox.stories.tsx +146 -58
  49. package/checkbox/Checkbox.test.js +168 -18
  50. package/checkbox/types.d.ts +8 -0
  51. package/chip/Chip.js +28 -49
  52. package/chip/Chip.stories.tsx +121 -26
  53. package/chip/Chip.test.js +3 -5
  54. package/chip/types.d.ts +1 -1
  55. package/common/OpenSans.css +68 -80
  56. package/common/coreTokens.d.ts +146 -0
  57. package/common/coreTokens.js +167 -0
  58. package/common/utils.d.ts +1 -0
  59. package/common/utils.js +4 -4
  60. package/common/variables.d.ts +1499 -0
  61. package/common/variables.js +1025 -1131
  62. package/date-input/Calendar.d.ts +4 -0
  63. package/date-input/Calendar.js +258 -0
  64. package/date-input/DateInput.js +138 -239
  65. package/date-input/DateInput.stories.tsx +209 -33
  66. package/date-input/DateInput.test.js +519 -149
  67. package/date-input/DatePicker.d.ts +4 -0
  68. package/date-input/DatePicker.js +146 -0
  69. package/date-input/Icons.d.ts +6 -0
  70. package/date-input/Icons.js +75 -0
  71. package/date-input/YearPicker.d.ts +4 -0
  72. package/date-input/YearPicker.js +126 -0
  73. package/date-input/types.d.ts +55 -0
  74. package/dialog/Dialog.d.ts +1 -1
  75. package/dialog/Dialog.js +72 -79
  76. package/dialog/Dialog.stories.tsx +154 -171
  77. package/dialog/Dialog.test.js +334 -5
  78. package/dialog/types.d.ts +0 -12
  79. package/dropdown/Dropdown.d.ts +1 -1
  80. package/dropdown/Dropdown.js +246 -249
  81. package/dropdown/Dropdown.stories.tsx +245 -56
  82. package/dropdown/Dropdown.test.js +507 -110
  83. package/dropdown/DropdownMenu.d.ts +4 -0
  84. package/dropdown/DropdownMenu.js +74 -0
  85. package/dropdown/DropdownMenuItem.d.ts +4 -0
  86. package/dropdown/DropdownMenuItem.js +79 -0
  87. package/dropdown/types.d.ts +23 -3
  88. package/file-input/FileInput.d.ts +2 -2
  89. package/file-input/FileInput.js +174 -220
  90. package/file-input/FileInput.stories.tsx +122 -11
  91. package/file-input/FileInput.test.js +14 -14
  92. package/file-input/FileItem.d.ts +4 -14
  93. package/file-input/FileItem.js +39 -63
  94. package/file-input/types.d.ts +18 -1
  95. package/flex/Flex.d.ts +4 -0
  96. package/flex/Flex.js +71 -0
  97. package/flex/Flex.stories.tsx +112 -0
  98. package/flex/types.d.ts +97 -0
  99. package/footer/Footer.d.ts +1 -1
  100. package/footer/Footer.js +44 -64
  101. package/footer/Footer.stories.tsx +41 -19
  102. package/footer/Footer.test.js +16 -26
  103. package/footer/Icons.js +1 -1
  104. package/footer/types.d.ts +11 -12
  105. package/grid/Grid.d.ts +7 -0
  106. package/grid/Grid.js +91 -0
  107. package/grid/Grid.stories.tsx +219 -0
  108. package/grid/types.d.ts +115 -0
  109. package/header/Header.d.ts +4 -3
  110. package/header/Header.js +83 -110
  111. package/header/Header.stories.tsx +118 -39
  112. package/header/Header.test.js +2 -2
  113. package/header/Icons.js +2 -2
  114. package/header/types.d.ts +0 -13
  115. package/heading/Heading.js +1 -1
  116. package/heading/Heading.test.js +1 -1
  117. package/image/Image.d.ts +4 -0
  118. package/image/Image.js +85 -0
  119. package/image/Image.stories.tsx +127 -0
  120. package/image/types.d.ts +72 -0
  121. package/inset/Inset.js +1 -34
  122. package/inset/Inset.stories.tsx +37 -36
  123. package/inset/types.d.ts +1 -1
  124. package/layout/ApplicationLayout.d.ts +16 -6
  125. package/layout/ApplicationLayout.js +81 -125
  126. package/layout/ApplicationLayout.stories.tsx +85 -94
  127. package/layout/Icons.d.ts +8 -0
  128. package/layout/Icons.js +52 -45
  129. package/layout/SidenavContext.d.ts +5 -0
  130. package/layout/SidenavContext.js +19 -0
  131. package/layout/types.d.ts +19 -35
  132. package/link/Link.d.ts +2 -2
  133. package/link/Link.js +26 -52
  134. package/link/Link.stories.tsx +73 -6
  135. package/link/Link.test.js +2 -4
  136. package/link/types.d.ts +5 -6
  137. package/main.d.ts +8 -9
  138. package/main.js +44 -52
  139. package/nav-tabs/NavTabs.d.ts +8 -0
  140. package/nav-tabs/NavTabs.js +122 -0
  141. package/nav-tabs/NavTabs.stories.tsx +274 -0
  142. package/nav-tabs/NavTabs.test.js +82 -0
  143. package/nav-tabs/Tab.d.ts +4 -0
  144. package/nav-tabs/Tab.js +146 -0
  145. package/nav-tabs/types.d.ts +52 -0
  146. package/number-input/NumberInput.d.ts +7 -0
  147. package/number-input/NumberInput.js +6 -4
  148. package/number-input/NumberInput.test.js +317 -98
  149. package/package.json +18 -22
  150. package/paginator/Icons.d.ts +5 -0
  151. package/paginator/Icons.js +16 -28
  152. package/paginator/Paginator.js +8 -16
  153. package/paginator/Paginator.stories.tsx +24 -0
  154. package/paginator/Paginator.test.js +91 -39
  155. package/paragraph/Paragraph.d.ts +5 -0
  156. package/paragraph/Paragraph.js +38 -0
  157. package/paragraph/Paragraph.stories.tsx +44 -0
  158. package/password-input/Icons.d.ts +6 -0
  159. package/password-input/Icons.js +39 -0
  160. package/password-input/PasswordInput.js +35 -82
  161. package/password-input/PasswordInput.stories.tsx +1 -0
  162. package/password-input/PasswordInput.test.js +34 -40
  163. package/progress-bar/ProgressBar.js +60 -54
  164. package/progress-bar/ProgressBar.stories.jsx +38 -3
  165. package/progress-bar/ProgressBar.test.js +68 -23
  166. package/quick-nav/QuickNav.js +25 -20
  167. package/quick-nav/QuickNav.stories.tsx +145 -26
  168. package/radio-group/Radio.d.ts +1 -1
  169. package/radio-group/Radio.js +50 -35
  170. package/radio-group/RadioGroup.js +37 -38
  171. package/radio-group/RadioGroup.stories.tsx +132 -18
  172. package/radio-group/RadioGroup.test.js +153 -99
  173. package/radio-group/types.d.ts +5 -5
  174. package/resultsetTable/Icons.d.ts +7 -0
  175. package/resultsetTable/Icons.js +51 -0
  176. package/resultsetTable/ResultsetTable.js +49 -108
  177. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  178. package/resultsetTable/ResultsetTable.test.js +61 -42
  179. package/resultsetTable/types.d.ts +1 -1
  180. package/select/Listbox.d.ts +1 -1
  181. package/select/Listbox.js +33 -16
  182. package/select/Option.js +11 -24
  183. package/select/Select.js +92 -71
  184. package/select/Select.stories.tsx +516 -139
  185. package/select/Select.test.js +417 -309
  186. package/select/types.d.ts +3 -6
  187. package/sidenav/Icons.d.ts +7 -0
  188. package/sidenav/Icons.js +51 -0
  189. package/sidenav/Sidenav.d.ts +6 -5
  190. package/sidenav/Sidenav.js +146 -44
  191. package/sidenav/Sidenav.stories.tsx +251 -151
  192. package/sidenav/Sidenav.test.js +25 -37
  193. package/sidenav/types.d.ts +52 -26
  194. package/slider/Slider.d.ts +2 -2
  195. package/slider/Slider.js +121 -97
  196. package/slider/Slider.stories.tsx +64 -1
  197. package/slider/Slider.test.js +122 -22
  198. package/slider/types.d.ts +4 -0
  199. package/spinner/Spinner.js +17 -23
  200. package/spinner/Spinner.stories.jsx +53 -27
  201. package/spinner/Spinner.test.js +1 -1
  202. package/switch/Switch.d.ts +2 -2
  203. package/switch/Switch.js +137 -70
  204. package/switch/Switch.stories.tsx +41 -30
  205. package/switch/Switch.test.js +145 -18
  206. package/switch/types.d.ts +4 -0
  207. package/table/Table.js +3 -3
  208. package/table/Table.stories.jsx +80 -1
  209. package/table/Table.test.js +2 -2
  210. package/tabs/Tab.d.ts +4 -0
  211. package/tabs/Tab.js +132 -0
  212. package/tabs/Tabs.js +358 -108
  213. package/tabs/Tabs.stories.tsx +119 -5
  214. package/tabs/Tabs.test.js +220 -10
  215. package/tabs/types.d.ts +13 -3
  216. package/tag/Tag.js +8 -10
  217. package/tag/Tag.stories.tsx +14 -1
  218. package/tag/Tag.test.js +1 -1
  219. package/tag/types.d.ts +1 -1
  220. package/text-input/Icons.d.ts +8 -0
  221. package/text-input/Icons.js +60 -0
  222. package/text-input/Suggestion.js +40 -11
  223. package/text-input/Suggestions.d.ts +4 -0
  224. package/text-input/Suggestions.js +134 -0
  225. package/text-input/TextInput.js +240 -351
  226. package/text-input/TextInput.stories.tsx +319 -185
  227. package/text-input/TextInput.test.js +826 -726
  228. package/text-input/types.d.ts +26 -3
  229. package/textarea/Textarea.js +27 -26
  230. package/textarea/Textarea.stories.jsx +68 -1
  231. package/textarea/Textarea.test.js +61 -19
  232. package/textarea/types.d.ts +4 -0
  233. package/toggle-group/ToggleGroup.d.ts +2 -2
  234. package/toggle-group/ToggleGroup.js +85 -59
  235. package/toggle-group/ToggleGroup.stories.tsx +48 -3
  236. package/toggle-group/ToggleGroup.test.js +38 -24
  237. package/toggle-group/types.d.ts +23 -14
  238. package/typography/Typography.d.ts +4 -0
  239. package/typography/Typography.js +32 -0
  240. package/typography/Typography.stories.tsx +198 -0
  241. package/typography/types.d.ts +18 -0
  242. package/typography/types.js +5 -0
  243. package/useTheme.d.ts +1251 -1
  244. package/useTheme.js +1 -1
  245. package/useTranslatedLabels.d.ts +84 -1
  246. package/utils/BaseTypography.d.ts +21 -0
  247. package/utils/BaseTypography.js +108 -0
  248. package/utils/FocusLock.d.ts +13 -0
  249. package/utils/FocusLock.js +138 -0
  250. package/wizard/Wizard.js +10 -17
  251. package/wizard/Wizard.stories.tsx +40 -1
  252. package/wizard/Wizard.test.js +1 -1
  253. package/wizard/types.d.ts +3 -3
  254. package/card/ice-cream.jpg +0 -0
  255. package/common/RequiredComponent.js +0 -32
  256. package/list/List.d.ts +0 -4
  257. package/list/List.js +0 -47
  258. package/list/List.stories.tsx +0 -95
  259. package/list/types.d.ts +0 -7
  260. package/number-input/NumberInputContext.d.ts +0 -4
  261. package/number-input/NumberInputContext.js +0 -19
  262. package/number-input/numberInputContextTypes.d.ts +0 -19
  263. package/radio/Radio.d.ts +0 -4
  264. package/radio/Radio.js +0 -173
  265. package/radio/Radio.stories.tsx +0 -192
  266. package/radio/Radio.test.js +0 -71
  267. package/radio/types.d.ts +0 -54
  268. package/row/Row.d.ts +0 -3
  269. package/row/Row.js +0 -127
  270. package/row/Row.stories.tsx +0 -237
  271. package/row/types.d.ts +0 -28
  272. package/stack/Stack.d.ts +0 -3
  273. package/stack/Stack.js +0 -97
  274. package/stack/Stack.stories.tsx +0 -164
  275. package/stack/types.d.ts +0 -24
  276. package/text/Text.d.ts +0 -7
  277. package/text/Text.js +0 -30
  278. package/text/Text.stories.tsx +0 -19
  279. /package/{list → bulleted-list}/types.js +0 -0
  280. /package/{radio → flex}/types.js +0 -0
  281. /package/{row → grid}/types.js +0 -0
  282. /package/{stack → image}/types.js +0 -0
  283. /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
@@ -2,12 +2,21 @@ import React from "react";
2
2
  import DxcTable from "./Table";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  export default {
7
8
  title: "Table",
8
9
  component: DxcTable,
9
10
  };
10
11
 
12
+ const opinionatedTheme = {
13
+ table: {
14
+ baseColor: "#5f249f",
15
+ headerFontColor: "#ffffff",
16
+ cellFontColor: "#000000",
17
+ },
18
+ };
19
+
11
20
  export const Chromatic = () => (
12
21
  <>
13
22
  <ExampleContainer>
@@ -271,7 +280,77 @@ export const Chromatic = () => (
271
280
  <td>Cell 9</td>
272
281
  </tr>
273
282
  </DxcTable>
274
- <hr />
283
+ </ExampleContainer>
284
+ <Title title="Opinionated theme" theme="light" level={2} />
285
+ <ExampleContainer>
286
+ <HalstackProvider theme={opinionatedTheme}>
287
+ <DxcTable>
288
+ <tr>
289
+ <th>
290
+ header<br></br>subheader
291
+ </th>
292
+ <th>
293
+ header<br></br>subheader
294
+ </th>
295
+ <th>
296
+ header<br></br>subheader
297
+ </th>
298
+ </tr>
299
+ <tr>
300
+ <td>
301
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
302
+ dolore magna aliqua.
303
+ </td>
304
+ <td>
305
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
306
+ consequat.
307
+ </td>
308
+ <td>
309
+ Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
310
+ </td>
311
+ </tr>
312
+ <tr>
313
+ <td>cell data</td>
314
+ <td>cell data</td>
315
+ <td>cell data</td>
316
+ </tr>
317
+ <tr>
318
+ <td>cell data</td>
319
+ <td>cell data</td>
320
+ <td>cell data</td>
321
+ </tr>
322
+ <tr>
323
+ <td>cell data</td>
324
+ <td>cell data</td>
325
+ <td>cell data</td>
326
+ </tr>
327
+ <tr>
328
+ <td>cell data</td>
329
+ <td>cell data</td>
330
+ <td>cell data</td>
331
+ </tr>
332
+ <tr>
333
+ <td>cell data</td>
334
+ <td>cell data</td>
335
+ <td>cell data</td>
336
+ </tr>
337
+ <tr>
338
+ <td>cell data</td>
339
+ <td>cell data</td>
340
+ <td>cell data</td>
341
+ </tr>
342
+ <tr>
343
+ <td>cell data</td>
344
+ <td>cell data</td>
345
+ <td>cell data</td>
346
+ </tr>
347
+ <tr>
348
+ <td>cell data</td>
349
+ <td>cell data</td>
350
+ <td>cell data</td>
351
+ </tr>
352
+ </DxcTable>
353
+ </HalstackProvider>
275
354
  </ExampleContainer>
276
355
  </>
277
356
  );
@@ -6,11 +6,11 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Table = _interopRequireDefault(require("./Table"));
9
+ var _Table = _interopRequireDefault(require("./Table.tsx"));
10
10
 
11
11
  describe("Table component tests", function () {
12
12
  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")))),
13
+ 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
14
  getByText = _render.getByText;
15
15
 
16
16
  expect(getByText("header-1")).toBeTruthy();
package/tabs/Tab.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { TabProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<TabProps & React.RefAttributes<HTMLButtonElement>>>;
4
+ export default _default;
package/tabs/Tab.js ADDED
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+
18
+ var _Badge = _interopRequireDefault(require("../badge/Badge"));
19
+
20
+ var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
21
+
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
23
+
24
+ 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
+
30
+ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
31
+ 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;
39
+ var colorsTheme = (0, _useTheme["default"])();
40
+ return /*#__PURE__*/_react["default"].createElement(TabContainer, {
41
+ role: "tab",
42
+ type: "button",
43
+ tabIndex: tabIndex,
44
+ disabled: tab.isDisabled,
45
+ "aria-selected": active,
46
+ hasLabelAndIcon: hasLabelAndIcon,
47
+ iconPosition: iconPosition,
48
+ ref: ref,
49
+ onClick: function onClick() {
50
+ _onClick();
51
+ },
52
+ onMouseEnter: function onMouseEnter() {
53
+ _onMouseEnter();
54
+ },
55
+ onMouseLeave: function onMouseLeave() {
56
+ _onMouseLeave();
57
+ }
58
+ }, /*#__PURE__*/_react["default"].createElement(MainLabelContainer, {
59
+ notificationNumber: tab.notificationNumber,
60
+ hasLabelAndIcon: hasLabelAndIcon,
61
+ iconPosition: iconPosition
62
+ }, tab.icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
63
+ hasLabelAndIcon: hasLabelAndIcon,
64
+ iconPosition: iconPosition
65
+ }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
66
+ src: tab.icon
67
+ }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
68
+ color: tab.isDisabled ? colorsTheme.tabs.disabledFontColor : active ? colorsTheme.tabs.selectedFontColor : colorsTheme.tabs.unselectedFontColor,
69
+ fontFamily: colorsTheme.tabs.fontFamily,
70
+ fontSize: colorsTheme.tabs.fontSize,
71
+ fontStyle: tab.isDisabled ? colorsTheme.tabs.disabledFontStyle : colorsTheme.tabs.fontStyle,
72
+ fontWeight: active ? colorsTheme.tabs.pressedFontWeight : colorsTheme.tabs.fontWeight,
73
+ textAlign: "center",
74
+ letterSpacing: "0.025em",
75
+ lineHeight: "1.715em"
76
+ }, tab.label)), tab.notificationNumber && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
77
+ hasLabelAndIcon: hasLabelAndIcon,
78
+ iconPosition: iconPosition
79
+ }, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
80
+ notificationText: typeof tab.notificationNumber === "number" && tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
81
+ })));
82
+ });
83
+
84
+ 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) {
85
+ return props.theme.fontTextTransform;
86
+ }, function (props) {
87
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "12px 16px" || "8px 16px";
88
+ }, function (props) {
89
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "47px" || "71px";
90
+ }, function (props) {
91
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "47px" || "71px";
92
+ }, function (props) {
93
+ return props.theme.unselectedBackgroundColor;
94
+ }, function (props) {
95
+ return "".concat(props.theme.hoverBackgroundColor, " !important");
96
+ }, function (props) {
97
+ return "".concat(props.theme.pressedBackgroundColor, " !important");
98
+ }, function (props) {
99
+ return props.theme.focusOutline;
100
+ }, function (props) {
101
+ return props.theme.unselectedIconColor;
102
+ }, function (props) {
103
+ return props.theme.selectedBackgroundColor;
104
+ }, function (props) {
105
+ return props.theme.selectedIconColor;
106
+ }, function (props) {
107
+ return props.theme.unselectedBackgroundColor;
108
+ }, function (props) {
109
+ return props.theme.disabledFontStyle;
110
+ }, function (props) {
111
+ return props.theme.disabledIconColor;
112
+ });
113
+
114
+ 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) {
115
+ return props.hasLabelAndIcon && props.iconPosition === "top" ? "flex-start" : "center";
116
+ });
117
+
118
+ 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) {
119
+ return props.hasLabelAndIcon && props.iconPosition === "top" && "column" || "row";
120
+ }, function (props) {
121
+ return props.notificationNumber ? typeof props.notificationNumber === "number" ? "calc(".concat(props.theme.badgeWidthWithNotificationNumber, " + 12px)") : "calc(".concat(props.theme.badgeWidth, " + 12px)") : "unset";
122
+ });
123
+
124
+ 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) {
125
+ return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
126
+ }, function (props) {
127
+ return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
128
+ });
129
+
130
+ var _default = /*#__PURE__*/_react["default"].memo(Tab);
131
+
132
+ exports["default"] = _default;