@dxc-technology/halstack-react 0.0.0-4d89cae → 0.0.0-4e5859a

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 (264) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +7 -5
  3. package/ThemeContext.d.ts +15 -0
  4. package/ThemeContext.js +84 -91
  5. package/V3Select/V3Select.js +35 -129
  6. package/V3Textarea/V3Textarea.js +12 -16
  7. package/accordion/Accordion.d.ts +4 -0
  8. package/accordion/Accordion.js +37 -132
  9. package/accordion/Accordion.stories.tsx +300 -0
  10. package/accordion/types.d.ts +68 -0
  11. package/accordion/types.js +5 -0
  12. package/accordion-group/AccordionGroup.d.ts +7 -0
  13. package/accordion-group/AccordionGroup.js +66 -82
  14. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  15. package/accordion-group/types.d.ts +72 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/alert/Alert.js +40 -153
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/types.d.ts +49 -0
  21. package/alert/types.js +5 -0
  22. package/badge/Badge.js +10 -14
  23. package/box/Box.d.ts +4 -0
  24. package/box/Box.js +15 -45
  25. package/box/Box.stories.tsx +132 -0
  26. package/box/types.d.ts +43 -0
  27. package/box/types.js +5 -0
  28. package/button/Button.d.ts +4 -0
  29. package/button/Button.js +24 -83
  30. package/button/Button.stories.tsx +276 -0
  31. package/button/types.d.ts +57 -0
  32. package/button/types.js +5 -0
  33. package/card/Card.d.ts +4 -0
  34. package/card/Card.js +34 -124
  35. package/card/Card.stories.tsx +201 -0
  36. package/card/ice-cream.jpg +0 -0
  37. package/card/types.d.ts +67 -0
  38. package/card/types.js +5 -0
  39. package/checkbox/Checkbox.d.ts +4 -0
  40. package/checkbox/Checkbox.js +15 -61
  41. package/checkbox/Checkbox.stories.tsx +192 -0
  42. package/checkbox/types.d.ts +60 -0
  43. package/checkbox/types.js +5 -0
  44. package/chip/Chip.d.ts +4 -0
  45. package/chip/Chip.js +22 -88
  46. package/chip/Chip.stories.tsx +121 -0
  47. package/chip/types.d.ts +53 -0
  48. package/chip/types.js +5 -0
  49. package/common/RequiredComponent.js +3 -11
  50. package/common/variables.js +52 -45
  51. package/date/Date.js +17 -23
  52. package/date-input/DateInput.d.ts +4 -0
  53. package/date-input/DateInput.js +26 -68
  54. package/date-input/DateInput.stories.tsx +138 -0
  55. package/date-input/types.d.ts +100 -0
  56. package/date-input/types.js +5 -0
  57. package/dialog/Dialog.d.ts +4 -0
  58. package/dialog/Dialog.js +22 -75
  59. package/dialog/Dialog.stories.tsx +212 -0
  60. package/dialog/types.d.ts +43 -0
  61. package/dialog/types.js +5 -0
  62. package/dropdown/Dropdown.d.ts +4 -0
  63. package/dropdown/Dropdown.js +45 -172
  64. package/dropdown/Dropdown.stories.tsx +247 -0
  65. package/dropdown/types.d.ts +89 -0
  66. package/dropdown/types.js +5 -0
  67. package/file-input/FileInput.d.ts +4 -0
  68. package/file-input/FileInput.js +98 -221
  69. package/file-input/FileItem.d.ts +14 -0
  70. package/file-input/FileItem.js +40 -143
  71. package/file-input/types.d.ts +112 -0
  72. package/file-input/types.js +5 -0
  73. package/footer/Footer.d.ts +4 -0
  74. package/footer/Footer.js +46 -207
  75. package/footer/Footer.stories.tsx +130 -0
  76. package/footer/Icons.d.ts +2 -0
  77. package/footer/Icons.js +15 -15
  78. package/footer/types.d.ts +65 -0
  79. package/footer/types.js +5 -0
  80. package/header/Header.d.ts +7 -0
  81. package/header/Header.js +58 -204
  82. package/header/Header.stories.tsx +162 -0
  83. package/header/Icons.d.ts +2 -0
  84. package/header/Icons.js +7 -32
  85. package/header/types.d.ts +47 -0
  86. package/header/types.js +5 -0
  87. package/heading/Heading.d.ts +4 -0
  88. package/heading/Heading.js +25 -96
  89. package/heading/Heading.stories.tsx +53 -0
  90. package/heading/types.d.ts +33 -0
  91. package/heading/types.js +5 -0
  92. package/input-text/Icons.js +2 -2
  93. package/input-text/InputText.js +35 -129
  94. package/layout/ApplicationLayout.d.ts +10 -0
  95. package/layout/ApplicationLayout.js +39 -141
  96. package/layout/ApplicationLayout.stories.tsx +171 -0
  97. package/layout/Icons.js +7 -7
  98. package/layout/types.d.ts +57 -0
  99. package/layout/types.js +5 -0
  100. package/link/Link.d.ts +3 -0
  101. package/link/Link.js +19 -95
  102. package/link/Link.stories.tsx +146 -0
  103. package/link/types.d.ts +74 -0
  104. package/link/types.js +5 -0
  105. package/list/List.d.ts +8 -0
  106. package/list/List.js +47 -0
  107. package/list/List.stories.tsx +85 -0
  108. package/main.d.ts +48 -40
  109. package/main.js +118 -82
  110. package/number-input/NumberInput.d.ts +4 -0
  111. package/number-input/NumberInput.js +10 -63
  112. package/number-input/NumberInput.stories.tsx +115 -0
  113. package/number-input/NumberInputContext.d.ts +4 -0
  114. package/number-input/NumberInputContext.js +5 -2
  115. package/number-input/numberInputContextTypes.d.ts +19 -0
  116. package/number-input/numberInputContextTypes.js +5 -0
  117. package/number-input/types.d.ts +117 -0
  118. package/number-input/types.js +5 -0
  119. package/package.json +15 -12
  120. package/paginator/Icons.js +9 -9
  121. package/paginator/Paginator.d.ts +4 -0
  122. package/paginator/Paginator.js +26 -139
  123. package/paginator/Paginator.stories.tsx +63 -0
  124. package/paginator/types.d.ts +38 -0
  125. package/paginator/types.js +5 -0
  126. package/password-input/PasswordInput.d.ts +4 -0
  127. package/password-input/PasswordInput.js +37 -77
  128. package/password-input/PasswordInput.stories.tsx +131 -0
  129. package/password-input/types.d.ts +107 -0
  130. package/password-input/types.js +5 -0
  131. package/progress-bar/ProgressBar.d.ts +4 -0
  132. package/progress-bar/ProgressBar.js +22 -94
  133. package/progress-bar/ProgressBar.stories.jsx +58 -0
  134. package/progress-bar/types.d.ts +37 -0
  135. package/progress-bar/types.js +5 -0
  136. package/radio/Radio.d.ts +4 -0
  137. package/radio/Radio.js +17 -52
  138. package/radio/Radio.stories.tsx +192 -0
  139. package/radio/types.d.ts +54 -0
  140. package/radio/types.js +5 -0
  141. package/resultsetTable/ResultsetTable.d.ts +4 -0
  142. package/resultsetTable/ResultsetTable.js +39 -146
  143. package/resultsetTable/ResultsetTable.stories.tsx +276 -0
  144. package/resultsetTable/types.d.ts +67 -0
  145. package/resultsetTable/types.js +5 -0
  146. package/row/Row.d.ts +11 -0
  147. package/row/Row.js +124 -0
  148. package/row/Row.stories.tsx +223 -0
  149. package/select/Select.d.ts +4 -0
  150. package/select/Select.js +173 -448
  151. package/select/Select.stories.tsx +572 -0
  152. package/select/types.d.ts +170 -0
  153. package/select/types.js +5 -0
  154. package/sidenav/Sidenav.d.ts +9 -0
  155. package/sidenav/Sidenav.js +21 -64
  156. package/sidenav/Sidenav.stories.tsx +165 -0
  157. package/sidenav/types.d.ts +50 -0
  158. package/sidenav/types.js +5 -0
  159. package/slider/Slider.d.ts +4 -0
  160. package/slider/Slider.js +74 -161
  161. package/slider/Slider.stories.tsx +177 -0
  162. package/slider/types.d.ts +78 -0
  163. package/slider/types.js +5 -0
  164. package/spinner/Spinner.d.ts +4 -0
  165. package/spinner/Spinner.js +45 -176
  166. package/spinner/Spinner.stories.jsx +102 -0
  167. package/spinner/types.d.ts +32 -0
  168. package/spinner/types.js +5 -0
  169. package/stack/Stack.d.ts +10 -0
  170. package/stack/Stack.js +94 -0
  171. package/stack/Stack.stories.tsx +150 -0
  172. package/switch/Switch.d.ts +4 -0
  173. package/switch/Switch.js +28 -71
  174. package/switch/Switch.stories.tsx +160 -0
  175. package/switch/types.d.ts +58 -0
  176. package/switch/types.js +5 -0
  177. package/table/Table.d.ts +4 -0
  178. package/table/Table.js +12 -26
  179. package/table/Table.stories.jsx +276 -0
  180. package/table/types.d.ts +21 -0
  181. package/table/types.js +5 -0
  182. package/tabs/Tabs.d.ts +4 -0
  183. package/tabs/Tabs.js +32 -162
  184. package/tabs/Tabs.stories.tsx +121 -0
  185. package/tabs/types.d.ts +70 -0
  186. package/tabs/types.js +5 -0
  187. package/tag/Tag.d.ts +4 -0
  188. package/tag/Tag.js +38 -127
  189. package/tag/Tag.stories.tsx +145 -0
  190. package/tag/types.d.ts +60 -0
  191. package/tag/types.js +5 -0
  192. package/text/Text.d.ts +7 -0
  193. package/text/Text.js +30 -0
  194. package/text/Text.stories.tsx +19 -0
  195. package/text-input/TextInput.d.ts +4 -0
  196. package/text-input/TextInput.js +134 -340
  197. package/text-input/TextInput.stories.tsx +456 -0
  198. package/text-input/types.d.ts +159 -0
  199. package/text-input/types.js +5 -0
  200. package/textarea/Textarea.d.ts +4 -0
  201. package/textarea/Textarea.js +38 -123
  202. package/textarea/Textarea.stories.jsx +135 -0
  203. package/textarea/types.d.ts +130 -0
  204. package/textarea/types.js +5 -0
  205. package/toggle/Toggle.js +16 -50
  206. package/toggle-group/ToggleGroup.d.ts +4 -0
  207. package/toggle-group/ToggleGroup.js +35 -148
  208. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  209. package/toggle-group/types.d.ts +97 -0
  210. package/toggle-group/types.js +5 -0
  211. package/upload/Upload.js +11 -15
  212. package/upload/buttons-upload/ButtonsUpload.js +15 -39
  213. package/upload/buttons-upload/Icons.js +7 -7
  214. package/upload/dragAndDropArea/DragAndDropArea.js +26 -130
  215. package/upload/dragAndDropArea/Icons.js +6 -6
  216. package/upload/file-upload/FileToUpload.js +17 -91
  217. package/upload/file-upload/Icons.js +13 -13
  218. package/upload/files-upload/FilesToUpload.js +13 -27
  219. package/upload/transaction/Icons.js +31 -31
  220. package/upload/transaction/Transaction.js +19 -63
  221. package/upload/transactions/Transactions.js +14 -58
  222. package/useTheme.d.ts +2 -0
  223. package/useTheme.js +1 -1
  224. package/wizard/Wizard.d.ts +4 -0
  225. package/wizard/Wizard.js +90 -214
  226. package/wizard/Wizard.stories.tsx +224 -0
  227. package/wizard/types.d.ts +60 -0
  228. package/wizard/types.js +5 -0
  229. package/accordion/index.d.ts +0 -28
  230. package/accordion-group/index.d.ts +0 -16
  231. package/alert/index.d.ts +0 -51
  232. package/box/index.d.ts +0 -25
  233. package/button/Button.stories.js +0 -27
  234. package/button/index.d.ts +0 -24
  235. package/card/index.d.ts +0 -22
  236. package/checkbox/index.d.ts +0 -24
  237. package/chip/index.d.ts +0 -22
  238. package/date-input/index.d.ts +0 -95
  239. package/dialog/index.d.ts +0 -18
  240. package/dropdown/index.d.ts +0 -26
  241. package/file-input/index.d.ts +0 -81
  242. package/footer/index.d.ts +0 -25
  243. package/header/index.d.ts +0 -25
  244. package/heading/index.d.ts +0 -17
  245. package/link/index.d.ts +0 -23
  246. package/number-input/index.d.ts +0 -113
  247. package/paginator/index.d.ts +0 -20
  248. package/password-input/index.d.ts +0 -94
  249. package/progress-bar/index.d.ts +0 -18
  250. package/radio/index.d.ts +0 -23
  251. package/resultsetTable/index.d.ts +0 -19
  252. package/select/index.d.ts +0 -131
  253. package/sidenav/index.d.ts +0 -13
  254. package/slider/index.d.ts +0 -29
  255. package/spinner/index.d.ts +0 -17
  256. package/switch/index.d.ts +0 -24
  257. package/table/index.d.ts +0 -13
  258. package/tabs/index.d.ts +0 -19
  259. package/tag/index.d.ts +0 -24
  260. package/text-input/index.d.ts +0 -135
  261. package/textarea/index.d.ts +0 -117
  262. package/toggle-group/index.d.ts +0 -21
  263. package/wizard/Icons.js +0 -65
  264. package/wizard/index.d.ts +0 -18
package/tabs/Tabs.js CHANGED
@@ -1,20 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
13
 
16
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
-
18
14
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
19
15
 
20
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -27,113 +23,26 @@ var _Tab = _interopRequireDefault(require("@material-ui/core/Tab"));
27
23
 
28
24
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
29
25
 
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
26
  var _variables = require("../common/variables.js");
33
27
 
34
28
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
35
29
 
36
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
37
-
38
- function _templateObject9() {
39
- var data = (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"]);
40
-
41
- _templateObject9 = function _templateObject9() {
42
- return data;
43
- };
44
-
45
- return data;
46
- }
47
-
48
- function _templateObject8() {
49
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n"]);
50
-
51
- _templateObject8 = function _templateObject8() {
52
- return data;
53
- };
54
-
55
- return data;
56
- }
57
-
58
- function _templateObject7() {
59
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n .MuiTabs-root {\n background: white;\n min-height: ", ";\n\n .MuiTabs-scroller {\n .MuiTabs-flexContainer + span {\n z-index: 4;\n }\n }\n .MuiTab-root {\n text-transform: ", " !important;\n }\n .MuiButtonBase-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n padding: ", ";\n height: ", ";\n min-width: 90px;\n max-width: 360px;\n min-height: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n font-weight: ", ";\n }\n &:not(.Mui-selected) {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-selected {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-disabled {\n cursor: not-allowed !important;\n pointer-events: all;\n color: ", ";\n font-style: ", ";\n svg {\n color: ", ";\n }\n }\n &:focus {\n outline: ", " auto 1px;\n }\n }\n .MuiTabs-indicator {\n background-color: ", ";\n height: ", ";\n }\n .MuiTabs-scrollButtons {\n min-width: ", ";\n width: ", ";\n padding: 0;\n }\n @media (max-width: 599.95px) {\n .MuiTabs-scrollButtonsDesktop {\n display: flex;\n }\n }\n }\n"]);
60
-
61
- _templateObject7 = function _templateObject7() {
62
- return data;
63
- };
64
-
65
- return data;
66
- }
67
-
68
- function _templateObject6() {
69
- var data = (0, _taggedTemplateLiteral2["default"])(["\n left: 0px;\n bottom: 0;\n width: 100%;\n height: ", ";\n position: absolute;\n background-color: ", ";\n"]);
30
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
70
31
 
71
- _templateObject6 = function _templateObject6() {
72
- return data;
73
- };
74
-
75
- return data;
76
- }
77
-
78
- function _templateObject5() {
79
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n margin-left: ", ";\n margin-right: ", ";\n"]);
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
80
33
 
81
- _templateObject5 = function _templateObject5() {
82
- return data;
83
- };
84
-
85
- return data;
86
- }
34
+ 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); }
87
35
 
88
- function _templateObject4() {
89
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n right: 0;\n top: ", ";\n width: 23px;\n height: 17px;\n"]);
90
-
91
- _templateObject4 = function _templateObject4() {
92
- return data;
93
- };
94
-
95
- return data;
96
- }
97
-
98
- function _templateObject3() {
99
- var data = (0, _taggedTemplateLiteral2["default"])([""]);
100
-
101
- _templateObject3 = function _templateObject3() {
102
- return data;
103
- };
104
-
105
- return data;
106
- }
107
-
108
- function _templateObject2() {
109
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n"]);
110
-
111
- _templateObject2 = function _templateObject2() {
112
- return data;
113
- };
114
-
115
- return data;
116
- }
117
-
118
- function _templateObject() {
119
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"]);
120
-
121
- _templateObject = function _templateObject() {
122
- return data;
123
- };
124
-
125
- return data;
126
- }
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
127
37
 
128
38
  var DxcTabs = function DxcTabs(_ref) {
129
39
  var activeTabIndex = _ref.activeTabIndex,
130
- _ref$tabs = _ref.tabs,
131
- tabs = _ref$tabs === void 0 ? [] : _ref$tabs,
40
+ tabs = _ref.tabs,
132
41
  onTabClick = _ref.onTabClick,
133
42
  onTabHover = _ref.onTabHover,
134
43
  margin = _ref.margin,
135
44
  _ref$iconPosition = _ref.iconPosition,
136
- iconPosition = _ref$iconPosition === void 0 ? "left" : _ref$iconPosition,
45
+ iconPosition = _ref$iconPosition === void 0 ? "top" : _ref$iconPosition,
137
46
  _ref$tabIndex = _ref.tabIndex,
138
47
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
139
48
 
@@ -152,95 +61,81 @@ var DxcTabs = function DxcTabs(_ref) {
152
61
  setInnerActiveTabIndex(newValue);
153
62
  }
154
63
 
155
- if (typeof onTabClick === "function") {
156
- onTabClick(newValue);
157
- }
158
- };
159
-
160
- var getTabIndex = function getTabIndex(index, disabled) {
161
- return (activeTabIndex === index || innerActiveTabIndex === index) && !disabled ? tabIndex : -1;
64
+ onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(newValue);
162
65
  };
163
66
 
164
67
  var getLabelForTab = function getLabelForTab(tab) {
165
- return _react["default"].createElement(ParentLabelSpan, null, _react["default"].createElement(MainLabelContainer, {
68
+ return /*#__PURE__*/_react["default"].createElement(ParentLabelSpan, null, /*#__PURE__*/_react["default"].createElement(MainLabelContainer, {
166
69
  hasBadge: tab.notificationNumber
167
- }, _react["default"].createElement(TabLabelContainer, {
70
+ }, /*#__PURE__*/_react["default"].createElement(TabLabelContainer, {
168
71
  hasLabelAndIcon: hasLabelAndIcon,
169
72
  iconPosition: iconPosition
170
- }, tab.icon ? _react["default"].createElement(TabIconContainer, {
73
+ }, tab.icon ? /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
171
74
  hasLabelAndIcon: hasLabelAndIcon,
172
75
  iconPosition: iconPosition
173
- }, (0, _typeof2["default"])(tab.icon) === "object" ? tab.icon : _react["default"].createElement(tab.icon)) : tab.iconSrc && _react["default"].createElement(TabIcon, {
76
+ }, (0, _typeof2["default"])(tab.icon) === "object" ? tab.icon : /*#__PURE__*/_react["default"].createElement(tab.icon)) : tab.iconSrc && /*#__PURE__*/_react["default"].createElement(TabIcon, {
174
77
  src: tab.iconSrc
175
- }), _react["default"].createElement(LabelTextContainer, null, tab.label))), tab.notificationNumber && tab.notificationNumber !== false && _react["default"].createElement(BadgeContainer, {
78
+ }), /*#__PURE__*/_react["default"].createElement(LabelTextContainer, null, tab.label))), tab.notificationNumber && tab.notificationNumber !== false && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
176
79
  hasLabelAndIcon: hasLabelAndIcon,
177
80
  iconPosition: iconPosition
178
- }, _react["default"].createElement(_Badge["default"], {
81
+ }, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
179
82
  notificationText: tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
180
83
  })));
181
84
  };
182
85
 
183
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
86
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
184
87
  theme: colorsTheme.tabs
185
- }, _react["default"].createElement(DxCTabs, {
88
+ }, /*#__PURE__*/_react["default"].createElement(DxCTabs, {
186
89
  margin: margin,
187
90
  hasLabelAndIcon: hasLabelAndIcon,
188
91
  iconPosition: iconPosition
189
- }, _react["default"].createElement(Underline, null), _react["default"].createElement(_Tabs["default"], {
92
+ }, /*#__PURE__*/_react["default"].createElement(Underline, null), /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
190
93
  value: activeTabIndex != null ? activeTabIndex : innerActiveTabIndex,
191
94
  onChange: handleChange,
192
95
  variant: "scrollable",
193
96
  scrollButtons: "auto"
194
97
  }, tabs.map(function (tab, i) {
195
- var tabContent = _react["default"].forwardRef(function (props, ref) {
196
- return _react["default"].createElement("div", (0, _extends2["default"])({
197
- role: "button"
198
- }, props, {
199
- ref: ref
200
- }));
201
- });
202
-
203
- return _react["default"].createElement(_Tab["default"], {
98
+ return /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
204
99
  tabIndex: (activeTabIndex === i || innerActiveTabIndex === i) && !tab.isDisabled ? tabIndex : -1,
205
100
  key: "tab".concat(i).concat(tab.label),
206
101
  label: getLabelForTab(tab),
207
102
  disabled: tab.isDisabled,
208
103
  disableRipple: true,
209
104
  onMouseEnter: function onMouseEnter() {
210
- onTabHover(i);
105
+ onTabHover === null || onTabHover === void 0 ? void 0 : onTabHover(i);
211
106
  },
212
107
  onMouseLeave: function onMouseLeave() {
213
- onTabHover(null);
108
+ onTabHover === null || onTabHover === void 0 ? void 0 : onTabHover(null);
214
109
  }
215
110
  });
216
111
  }))));
217
112
  };
218
113
 
219
- var ParentLabelSpan = _styledComponents["default"].div(_templateObject());
114
+ var ParentLabelSpan = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"])));
220
115
 
221
- var TabLabelContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
116
+ var TabLabelContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n"])), function (props) {
222
117
  return props.hasLabelAndIcon && props.iconPosition === "top" && "column" || "row";
223
118
  });
224
119
 
225
- var LabelTextContainer = _styledComponents["default"].div(_templateObject3());
120
+ var LabelTextContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
226
121
 
227
- var BadgeContainer = _styledComponents["default"].div(_templateObject4(), function (props) {
122
+ var BadgeContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n right: 0;\n top: ", ";\n width: 23px;\n height: 17px;\n"])), function (props) {
228
123
  return props.hasLabelAndIcon && props.iconPosition === "top" && "0" || "5px";
229
124
  });
230
125
 
231
- var MainLabelContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
126
+ var MainLabelContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
232
127
  return props.hasBadge && "35px" || "unset";
233
128
  }, function (props) {
234
129
  return props.hasBadge && "35px" || "unset";
235
130
  });
236
131
 
237
- var Underline = _styledComponents["default"].div(_templateObject6(), function (props) {
132
+ var Underline = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n left: 0px;\n bottom: 0;\n width: 100%;\n height: ", ";\n position: absolute;\n background-color: ", ";\n"])), function (props) {
238
133
  return props.theme.dividerThickness;
239
134
  }, function (props) {
240
135
  return props.theme.dividerColor;
241
136
  });
242
137
 
243
- var DxCTabs = _styledComponents["default"].div(_templateObject7(), function (props) {
138
+ var DxCTabs = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n .MuiTabs-root {\n background: white;\n min-height: ", ";\n\n .MuiTabs-scroller {\n .MuiTabs-flexContainer + span {\n z-index: 4;\n }\n }\n .MuiTab-root {\n text-transform: ", " !important;\n }\n .MuiButtonBase-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n padding: ", ";\n height: ", ";\n min-width: 90px;\n max-width: 360px;\n min-height: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n font-weight: ", ";\n }\n &:not(.Mui-selected) {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-selected {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n color: ", ";\n font-style: ", ";\n svg {\n color: ", ";\n }\n outline: none !important;\n }\n &:focus {\n outline: ", " auto 1px;\n }\n }\n .MuiTabs-indicator {\n background-color: ", ";\n height: ", ";\n }\n .MuiTabs-scrollButtons {\n min-width: ", ";\n width: ", ";\n padding: 0;\n }\n @media (max-width: 599.95px) {\n .MuiTabs-scrollButtonsDesktop {\n display: flex;\n }\n }\n }\n"])), function (props) {
244
139
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
245
140
  }, function (props) {
246
141
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -286,6 +181,8 @@ var DxCTabs = _styledComponents["default"].div(_templateObject7(), function (pro
286
181
  return props.theme.selectedFontColor;
287
182
  }, function (props) {
288
183
  return props.theme.selectedIconColor;
184
+ }, function (props) {
185
+ return props.theme.unselectedBackgroundColor;
289
186
  }, function (props) {
290
187
  return props.theme.disabledFontColor;
291
188
  }, function (props) {
@@ -304,40 +201,13 @@ var DxCTabs = _styledComponents["default"].div(_templateObject7(), function (pro
304
201
  return props.theme.scrollButtonsWidth;
305
202
  });
306
203
 
307
- var TabIcon = _styledComponents["default"].img(_templateObject8());
204
+ var TabIcon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n"])));
308
205
 
309
- var TabIconContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
206
+ var TabIconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (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) {
310
207
  return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
311
208
  }, function (props) {
312
209
  return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
313
210
  });
314
211
 
315
- DxcTabs.propTypes = {
316
- activeTabIndex: _propTypes["default"].number,
317
- onTabClick: _propTypes["default"].func,
318
- onTabHover: _propTypes["default"].func,
319
- tabs: _propTypes["default"].arrayOf(_propTypes["default"].shape({
320
- label: _propTypes["default"].string,
321
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
322
- iconSrc: _propTypes["default"].string,
323
- isDisabled: _propTypes["default"].bool,
324
- notificationNumber: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].string, _propTypes["default"].number])
325
- })),
326
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
327
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
328
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
329
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
330
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
331
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
332
- iconPosition: _propTypes["default"].oneOf(["top", "left"]),
333
- tabIndex: _propTypes["default"].number
334
- };
335
- DxcTabs.defaultProps = {
336
- activeTabIndex: null,
337
- tabs: [],
338
- onTabClick: function onTabClick() {},
339
- onTabHover: function onTabHover() {},
340
- iconPosition: "top"
341
- };
342
212
  var _default = DxcTabs;
343
213
  exports["default"] = _default;
@@ -0,0 +1,121 @@
1
+ import React from "react";
2
+ import { userEvent, within } from "@storybook/testing-library";
3
+ import DxcTabs from "./Tabs";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+
7
+ export default {
8
+ title: "Tabs",
9
+ component: DxcTabs,
10
+ };
11
+
12
+ const iconSVG = () => {
13
+ return (
14
+ <svg viewBox="0 0 24 24" fill="currentColor">
15
+ <path d="M0 0h24v24H0z" fill="none" />
16
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
17
+ </svg>
18
+ );
19
+ };
20
+
21
+ const tabs: any = [
22
+ {
23
+ label: "Tab 1",
24
+ },
25
+ {
26
+ label: "Tab 2",
27
+ },
28
+ {
29
+ label: "Tab 3",
30
+ isDisabled: true,
31
+ },
32
+ {
33
+ label: "Tab 4",
34
+ },
35
+ ];
36
+
37
+ const tabsNotification = tabs.map((tab, index) => ({
38
+ ...tab,
39
+ notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 200),
40
+ }));
41
+
42
+ const tabsIcon = tabs.map((tab) => ({ ...tab, icon: iconSVG }));
43
+
44
+ const tabsNotificationIcon = tabsNotification.map((tab) => ({ ...tab, icon: iconSVG }));
45
+
46
+ export const Chromatic = () => (
47
+ <>
48
+ <ExampleContainer>
49
+ <Title title="Only label" theme="light" level={4} />
50
+ <DxcTabs tabs={tabs} />
51
+ </ExampleContainer>
52
+ <ExampleContainer pseudoState="pseudo-hover">
53
+ <Title title="Hovered tabs" theme="light" level={4} />
54
+ <DxcTabs tabs={tabs} />
55
+ </ExampleContainer>
56
+ <ExampleContainer pseudoState="pseudo-focus">
57
+ <Title title="Focused tabs" theme="light" level={4} />
58
+ <DxcTabs tabs={tabs} />
59
+ </ExampleContainer>
60
+ <ExampleContainer pseudoState="pseudo-active">
61
+ <Title title="Actived tabs" theme="light" level={4} />
62
+ <DxcTabs tabs={tabs} />
63
+ </ExampleContainer>
64
+ <ExampleContainer>
65
+ <Title title="With notification number" theme="light" level={4} />
66
+ <DxcTabs tabs={tabsNotification} />
67
+ </ExampleContainer>
68
+ <ExampleContainer>
69
+ <Title title="With icon position top" theme="light" level={4} />
70
+ <DxcTabs tabs={tabsIcon} />
71
+ </ExampleContainer>
72
+ <ExampleContainer>
73
+ <Title title="With icon position left" theme="light" level={4} />
74
+ <DxcTabs tabs={tabsIcon} iconPosition="left" />
75
+ </ExampleContainer>
76
+ <ExampleContainer>
77
+ <Title title="With icon and notification number" theme="light" level={4} />
78
+ <DxcTabs tabs={tabsNotificationIcon} />
79
+ </ExampleContainer>
80
+ <ExampleContainer>
81
+ <Title title="With icon on the left and notification number" theme="light" level={4} />
82
+ <DxcTabs tabs={tabsNotificationIcon} iconPosition="left" />
83
+ </ExampleContainer>
84
+ <ExampleContainer>
85
+ <Title title="Scrollable" theme="light" level={4} />
86
+ <div style={{ width: "400px" }}>
87
+ <DxcTabs tabs={tabsNotificationIcon} iconPosition="left" activeTabIndex={1} />
88
+ </div>
89
+ </ExampleContainer>
90
+
91
+ <Title title="Margins" theme="light" level={2} />
92
+ <ExampleContainer>
93
+ <Title title="Xxsmall margin" theme="light" level={4} />
94
+ <DxcTabs tabs={tabs} margin="xxsmall" />
95
+ </ExampleContainer>
96
+ <ExampleContainer>
97
+ <Title title="Xsmall margin" theme="light" level={4} />
98
+ <DxcTabs tabs={tabs} margin="xsmall" />
99
+ </ExampleContainer>
100
+ <ExampleContainer>
101
+ <Title title="Small margin" theme="light" level={4} />
102
+ <DxcTabs tabs={tabs} margin="small" />
103
+ </ExampleContainer>
104
+ <ExampleContainer>
105
+ <Title title="Medium margin" theme="light" level={4} />
106
+ <DxcTabs tabs={tabs} margin="medium" />
107
+ </ExampleContainer>
108
+ <ExampleContainer>
109
+ <Title title="Large margin" theme="light" level={4} />
110
+ <DxcTabs tabs={tabs} margin="large" />
111
+ </ExampleContainer>
112
+ <ExampleContainer>
113
+ <Title title="Xlarge margin" theme="light" level={4} />
114
+ <DxcTabs tabs={tabs} margin="xlarge" />
115
+ </ExampleContainer>
116
+ <ExampleContainer>
117
+ <Title title="Xxlarge margin" theme="light" level={4} />
118
+ <DxcTabs tabs={tabs} margin="xxlarge" />
119
+ </ExampleContainer>
120
+ </>
121
+ );
@@ -0,0 +1,70 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
+ declare type Tab = {
11
+ /**
12
+ * Tab label.
13
+ */
14
+ label?: string;
15
+ /**
16
+ * Element used as the icon that will be displayed in the tab.
17
+ */
18
+ icon?: SVG;
19
+ /**
20
+ * @deprecated URL of the icon to be displayed in the tab.
21
+ */
22
+ iconSrc?: string;
23
+ /**
24
+ * Whether the tab is disabled or not.
25
+ */
26
+ isDisabled?: boolean;
27
+ /**
28
+ * If the value is 'true', an empty badge will appear.
29
+ * If it is 'false', no badge will appear.
30
+ * If a number is put it will be shown as the label of the notification
31
+ * in the tab, taking into account that if that number is greater than 99,
32
+ * it will appear as '+99' in the badge.
33
+ */
34
+ notificationNumber?: boolean | number;
35
+ };
36
+ declare type Props = {
37
+ /**
38
+ * An array of objects representing the tabs.
39
+ */
40
+ tabs: Tab[];
41
+ /**
42
+ * Whether the icon should appear above or to the left of the label.
43
+ */
44
+ iconPosition?: "top" | "left";
45
+ /**
46
+ * The index of the active tab. If undefined, the component will be
47
+ * uncontrolled and the active tab will be managed internally by the component.
48
+ */
49
+ activeTabIndex?: number;
50
+ /**
51
+ * This function will be called when the user clicks on a tab. The index of the
52
+ * clicked tab will be passed as a parameter.
53
+ */
54
+ onTabClick?: (tabIndex: number) => void;
55
+ /**
56
+ * This function will be called when the user hovers a tab.The index of the
57
+ * hovered tab will be passed as a parameter.
58
+ */
59
+ onTabHover?: (tabIndex: number) => void;
60
+ /**
61
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
62
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
63
+ */
64
+ margin?: Space | Margin;
65
+ /**
66
+ * Value of the tabindex for each tab.
67
+ */
68
+ tabIndex?: number;
69
+ };
70
+ export default Props;
package/tabs/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/tag/Tag.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import TagPropsType from "./types";
3
+ declare const DxcTag: ({ icon, iconSrc, label, linkHref, onClick, iconBgColor, labelPosition, newWindow, margin, size, tabIndex, }: TagPropsType) => JSX.Element;
4
+ export default DxcTag;