@dxc-technology/halstack-react 0.0.0-e441916 → 0.0.0-e628009

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 (195) hide show
  1. package/README.md +1 -1
  2. package/babel.config.js +6 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +235 -2
  5. package/dist/V3Textarea/V3Textarea.js +264 -0
  6. package/dist/accordion/Accordion.js +170 -81
  7. package/dist/accordion-group/AccordionGroup.js +186 -0
  8. package/dist/alert/Alert.js +184 -83
  9. package/dist/alert/index.d.ts +51 -0
  10. package/dist/badge/Badge.js +63 -0
  11. package/dist/box/Box.js +39 -19
  12. package/dist/button/Button.js +84 -29
  13. package/dist/card/Card.js +64 -56
  14. package/dist/checkbox/Checkbox.js +108 -32
  15. package/dist/chip/Chip.js +135 -40
  16. package/dist/common/RequiredComponent.js +2 -8
  17. package/dist/common/utils.js +2 -22
  18. package/dist/common/variables.js +1486 -105
  19. package/dist/date/Date.js +115 -78
  20. package/dist/date-input/DateInput.js +400 -0
  21. package/dist/date-input/index.d.ts +95 -0
  22. package/dist/dialog/Dialog.js +61 -36
  23. package/dist/dropdown/Dropdown.js +226 -94
  24. package/dist/file-input/FileInput.js +644 -0
  25. package/dist/file-input/FileItem.js +280 -0
  26. package/dist/file-input/index.d.ts +81 -0
  27. package/dist/footer/Footer.js +125 -45
  28. package/dist/footer/Icons.js +77 -0
  29. package/dist/header/Header.js +174 -90
  30. package/dist/header/Icons.js +59 -0
  31. package/dist/heading/Heading.js +93 -22
  32. package/dist/input-text/Icons.js +22 -0
  33. package/dist/input-text/InputText.js +298 -108
  34. package/dist/layout/ApplicationLayout.js +327 -0
  35. package/dist/layout/Icons.js +55 -0
  36. package/dist/link/Link.js +142 -34
  37. package/dist/main.d.ts +8 -0
  38. package/dist/main.js +111 -7
  39. package/dist/new-select/NewSelect.js +836 -0
  40. package/dist/new-select/index.d.ts +53 -0
  41. package/dist/number-input/NumberInput.js +136 -0
  42. package/dist/number-input/NumberInputContext.js +16 -0
  43. package/dist/number-input/index.d.ts +113 -0
  44. package/dist/paginator/Icons.js +66 -0
  45. package/dist/paginator/Paginator.js +162 -57
  46. package/dist/password-input/PasswordInput.js +198 -0
  47. package/dist/password-input/index.d.ts +94 -0
  48. package/dist/progress-bar/ProgressBar.js +97 -44
  49. package/dist/radio/Radio.js +39 -21
  50. package/dist/resultsetTable/ResultsetTable.js +93 -69
  51. package/dist/select/Select.js +253 -129
  52. package/dist/sidenav/Sidenav.js +87 -125
  53. package/dist/slider/Slider.js +219 -73
  54. package/dist/spinner/Spinner.js +249 -64
  55. package/dist/switch/Switch.js +52 -25
  56. package/dist/table/Table.js +63 -15
  57. package/dist/tabs/Tabs.js +210 -50
  58. package/dist/tabs-for-sections/TabsForSections.js +1 -16
  59. package/dist/tag/Tag.js +100 -35
  60. package/dist/text-input/TextInput.js +971 -0
  61. package/dist/text-input/index.d.ts +135 -0
  62. package/dist/textarea/Textarea.js +250 -107
  63. package/dist/textarea/index.d.ts +117 -0
  64. package/dist/toggle/Toggle.js +16 -19
  65. package/dist/toggle-group/ToggleGroup.js +327 -0
  66. package/dist/upload/Upload.js +16 -11
  67. package/dist/upload/buttons-upload/ButtonsUpload.js +35 -25
  68. package/dist/upload/buttons-upload/Icons.js +40 -0
  69. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -37
  70. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  71. package/dist/upload/file-upload/FileToUpload.js +64 -33
  72. package/dist/upload/file-upload/Icons.js +66 -0
  73. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  74. package/dist/upload/transaction/Icons.js +160 -0
  75. package/dist/upload/transaction/Transaction.js +42 -49
  76. package/dist/upload/transactions/Transactions.js +38 -20
  77. package/dist/useTheme.js +22 -0
  78. package/dist/wizard/Icons.js +65 -0
  79. package/dist/wizard/Wizard.js +156 -61
  80. package/package.json +14 -6
  81. package/test/AccordionGroup.test.js +125 -0
  82. package/test/Date.test.js +49 -45
  83. package/test/DateInput.test.js +242 -0
  84. package/test/Dropdown.test.js +19 -4
  85. package/test/FileInput.test.js +201 -0
  86. package/test/Footer.test.js +2 -7
  87. package/test/Header.test.js +5 -10
  88. package/test/Heading.test.js +60 -12
  89. package/test/InputText.test.js +53 -41
  90. package/test/Link.test.js +25 -7
  91. package/test/NumberInput.test.js +259 -0
  92. package/test/Paginator.test.js +72 -60
  93. package/test/PasswordInput.test.js +83 -0
  94. package/test/ResultsetTable.test.js +66 -19
  95. package/test/Select.test.js +55 -34
  96. package/test/Sidenav.test.js +22 -64
  97. package/test/Slider.test.js +24 -15
  98. package/test/Spinner.test.js +5 -0
  99. package/test/Tabs.test.js +21 -0
  100. package/test/TextInput.test.js +732 -0
  101. package/test/Textarea.test.js +193 -0
  102. package/test/ToggleGroup.test.js +85 -0
  103. package/test/Upload.test.js +5 -5
  104. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  105. package/dist/accordion/Accordion.stories.js +0 -207
  106. package/dist/accordion/readme.md +0 -96
  107. package/dist/alert/Alert.stories.js +0 -158
  108. package/dist/alert/close.svg +0 -4
  109. package/dist/alert/error.svg +0 -4
  110. package/dist/alert/info.svg +0 -4
  111. package/dist/alert/readme.md +0 -43
  112. package/dist/alert/success.svg +0 -4
  113. package/dist/alert/warning.svg +0 -4
  114. package/dist/button/Button.stories.js +0 -224
  115. package/dist/button/readme.md +0 -93
  116. package/dist/checkbox/Checkbox.stories.js +0 -144
  117. package/dist/checkbox/readme.md +0 -116
  118. package/dist/common/services/example-service.js +0 -10
  119. package/dist/common/services/example-service.test.js +0 -12
  120. package/dist/date/Date.stories.js +0 -205
  121. package/dist/date/calendar.svg +0 -1
  122. package/dist/date/calendar_dark.svg +0 -1
  123. package/dist/date/readme.md +0 -73
  124. package/dist/dialog/Dialog.stories.js +0 -217
  125. package/dist/dialog/readme.md +0 -32
  126. package/dist/dropdown/Dropdown.stories.js +0 -249
  127. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  128. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  129. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  130. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  131. package/dist/dropdown/readme.md +0 -69
  132. package/dist/footer/Footer.stories.js +0 -94
  133. package/dist/footer/dxc_logo_wht.png +0 -0
  134. package/dist/footer/readme.md +0 -41
  135. package/dist/header/Header.stories.js +0 -176
  136. package/dist/header/close_icon.svg +0 -1
  137. package/dist/header/dxc_logo_black.png +0 -0
  138. package/dist/header/dxc_logo_white.png +0 -0
  139. package/dist/header/hamb_menu_black.svg +0 -1
  140. package/dist/header/hamb_menu_white.svg +0 -1
  141. package/dist/header/readme.md +0 -33
  142. package/dist/input-text/InputText.stories.js +0 -209
  143. package/dist/input-text/error.svg +0 -1
  144. package/dist/input-text/readme.md +0 -91
  145. package/dist/link/readme.md +0 -51
  146. package/dist/paginator/images/next.svg +0 -3
  147. package/dist/paginator/images/nextPage.svg +0 -3
  148. package/dist/paginator/images/previous.svg +0 -3
  149. package/dist/paginator/images/previousPage.svg +0 -3
  150. package/dist/paginator/readme.md +0 -50
  151. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  152. package/dist/progress-bar/readme.md +0 -63
  153. package/dist/radio/Radio.stories.js +0 -166
  154. package/dist/radio/readme.md +0 -70
  155. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  156. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  157. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  158. package/dist/select/Select.stories.js +0 -235
  159. package/dist/select/readme.md +0 -72
  160. package/dist/sidenav/arrow_icon.svg +0 -3
  161. package/dist/slider/Slider.stories.js +0 -241
  162. package/dist/slider/readme.md +0 -64
  163. package/dist/spinner/Spinner.stories.js +0 -183
  164. package/dist/spinner/readme.md +0 -65
  165. package/dist/switch/Switch.stories.js +0 -134
  166. package/dist/switch/readme.md +0 -133
  167. package/dist/tabs/Tabs.stories.js +0 -130
  168. package/dist/tabs/readme.md +0 -78
  169. package/dist/tabs-for-sections/readme.md +0 -78
  170. package/dist/toggle/Toggle.stories.js +0 -297
  171. package/dist/toggle/readme.md +0 -80
  172. package/dist/upload/Upload.stories.js +0 -72
  173. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  174. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  175. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  176. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  177. package/dist/upload/file-upload/audio-icon.svg +0 -4
  178. package/dist/upload/file-upload/close.svg +0 -4
  179. package/dist/upload/file-upload/file-icon.svg +0 -4
  180. package/dist/upload/file-upload/video-icon.svg +0 -4
  181. package/dist/upload/readme.md +0 -37
  182. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  183. package/dist/upload/transaction/audio-icon.svg +0 -4
  184. package/dist/upload/transaction/error-icon.svg +0 -4
  185. package/dist/upload/transaction/file-icon-err.svg +0 -4
  186. package/dist/upload/transaction/file-icon.svg +0 -4
  187. package/dist/upload/transaction/image-icon-err.svg +0 -4
  188. package/dist/upload/transaction/image-icon.svg +0 -4
  189. package/dist/upload/transaction/success-icon.svg +0 -4
  190. package/dist/upload/transaction/video-icon-err.svg +0 -4
  191. package/dist/upload/transaction/video-icon.svg +0 -4
  192. package/dist/wizard/invalid_icon.svg +0 -6
  193. package/dist/wizard/valid_icon.svg +0 -6
  194. package/dist/wizard/validation-wrong.svg +0 -6
  195. package/test/Toggle.test.js +0 -43
@@ -13,16 +13,20 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _react = _interopRequireWildcard(require("react"));
16
+ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
20
  var _variables = require("../common/variables.js");
21
21
 
22
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
22
+ var _utils = require("../common/utils.js");
23
+
24
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
25
+
26
+ var _BackgroundColorContext = require("../BackgroundColorContext.js");
23
27
 
24
28
  function _templateObject2() {
25
- var data = (0, _taggedTemplateLiteral2["default"])(["\n border-collapse: collapse;\n width: 100%;\n\n & tr {\n border-bottom: 1px solid ", ";\n }\n\n & td {\n color: ", ";\n min-height: 48px;\n }\n\n & th {\n padding: 16px 20px 16px 40px;\n min-height: 60px;\n }\n\n & td {\n padding: 14px 20px 12px 40px;\n }\n\n & th {\n text-align: left;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 100;\n background-color: ", ";\n color: ", ";\n }\n\n & th:first-child {\n border-top-left-radius: 4px;\n }\n\n & th:last-child {\n border-top-right-radius: 4px;\n }\n"]);
29
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n border-collapse: collapse;\n width: 100%;\n\n & tr {\n border-bottom: ", ";\n }\n & td {\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-transform: ", ";\n text-align: ", ";\n line-height: ", ";\n padding: ", ";\n }\n & th {\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-transform: ", ";\n text-align: ", ";\n line-height: ", ";\n padding: ", ";\n }\n & th:first-child {\n border-top-left-radius: ", ";\n }\n & th:last-child {\n border-top-right-radius: ", ";\n }\n"]);
26
30
 
27
31
  _templateObject2 = function _templateObject2() {
28
32
  return data;
@@ -32,7 +36,7 @@ function _templateObject2() {
32
36
  }
33
37
 
34
38
  function _templateObject() {
35
- var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow-x: auto;\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n &::-webkit-scrollbar {\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 6px;\n }\n"]);
39
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n overflow: hidden auto;\n &::-webkit-scrollbar {\n width: 8px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 6px;\n }\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 6px;\n }\n"]);
36
40
 
37
41
  _templateObject = function _templateObject() {
38
42
  return data;
@@ -44,17 +48,23 @@ function _templateObject() {
44
48
  var DxcTable = function DxcTable(_ref) {
45
49
  var children = _ref.children,
46
50
  margin = _ref.margin;
47
-
48
- var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]) || _variables.colors;
49
-
51
+ var colorsTheme = (0, _useTheme["default"])();
50
52
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
51
- theme: colorsTheme
53
+ theme: colorsTheme.table
52
54
  }, _react["default"].createElement(DxcTableContainer, {
53
55
  margin: margin
54
- }, _react["default"].createElement(DxcTableContent, null, children)));
56
+ }, _react["default"].createElement(DxcTableContent, null, _react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
57
+ color: colorsTheme.table.dataBackgroundColor
58
+ }, children))));
59
+ };
60
+
61
+ var calculateWidth = function calculateWidth(margin) {
62
+ return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
55
63
  };
56
64
 
57
65
  var DxcTableContainer = _styledComponents["default"].div(_templateObject(), function (props) {
66
+ return calculateWidth(props.margin);
67
+ }, function (props) {
58
68
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
59
69
  }, function (props) {
60
70
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -65,19 +75,57 @@ var DxcTableContainer = _styledComponents["default"].div(_templateObject(), func
65
75
  }, function (props) {
66
76
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
67
77
  }, function (props) {
68
- return props.theme.darkGrey;
78
+ return props.theme.scrollBarThumbColor;
69
79
  }, function (props) {
70
- return props.theme.lightGrey;
80
+ return props.theme.scrollBarTrackColor;
71
81
  });
72
82
 
73
83
  var DxcTableContent = _styledComponents["default"].table(_templateObject2(), function (props) {
74
- return props.theme.lightGrey;
84
+ return "".concat(props.theme.rowSeparatorThickness, " ").concat(props.theme.rowSeparatorStyle, " ").concat(props.theme.rowSeparatorColor);
85
+ }, function (props) {
86
+ return props.theme.dataBackgroundColor;
87
+ }, function (props) {
88
+ return props.theme.dataFontFamily;
89
+ }, function (props) {
90
+ return props.theme.dataFontSize;
91
+ }, function (props) {
92
+ return props.theme.dataFontStyle;
93
+ }, function (props) {
94
+ return props.theme.dataFontWeight;
95
+ }, function (props) {
96
+ return props.theme.dataFontColor;
97
+ }, function (props) {
98
+ return props.theme.dataFontTextTransform;
99
+ }, function (props) {
100
+ return props.theme.dataTextAlign;
101
+ }, function (props) {
102
+ return props.theme.dataTextLineHeight;
103
+ }, function (props) {
104
+ return "".concat(props.theme.dataPaddingTop, " ").concat(props.theme.dataPaddingRight, " ").concat(props.theme.dataPaddingBottom, " ").concat(props.theme.dataPaddingLeft);
105
+ }, function (props) {
106
+ return props.theme.headerBackgroundColor;
107
+ }, function (props) {
108
+ return props.theme.headerFontFamily;
109
+ }, function (props) {
110
+ return props.theme.headerFontSize;
111
+ }, function (props) {
112
+ return props.theme.headerFontStyle;
113
+ }, function (props) {
114
+ return props.theme.headerFontWeight;
115
+ }, function (props) {
116
+ return props.theme.headerFontColor;
117
+ }, function (props) {
118
+ return props.theme.headerFontTextTransform;
119
+ }, function (props) {
120
+ return props.theme.headerTextAlign;
121
+ }, function (props) {
122
+ return props.theme.headerTextLineHeight;
75
123
  }, function (props) {
76
- return props.theme.darkGrey;
124
+ return "".concat(props.theme.headerPaddingTop, " ").concat(props.theme.headerPaddingRight, " ").concat(props.theme.headerPaddingBottom, " ").concat(props.theme.headerPaddingLeft);
77
125
  }, function (props) {
78
- return props.theme.black;
126
+ return props.theme.headerBorderRadius;
79
127
  }, function (props) {
80
- return props.theme.white;
128
+ return props.theme.headerBorderRadius;
81
129
  });
82
130
 
83
131
  var _default = DxcTable;
package/dist/tabs/Tabs.js CHANGED
@@ -11,13 +11,15 @@ exports["default"] = void 0;
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
+
18
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
19
+
18
20
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
21
 
20
- var _react = _interopRequireWildcard(require("react"));
22
+ var _react = _interopRequireDefault(require("react"));
21
23
 
22
24
  var _Tabs = _interopRequireDefault(require("@material-ui/core/Tabs"));
23
25
 
@@ -27,15 +29,75 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
27
29
 
28
30
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
31
 
30
- require("../common/OpenSans.css");
31
-
32
32
  var _variables = require("../common/variables.js");
33
33
 
34
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
34
+ var _Badge = _interopRequireDefault(require("../badge/Badge"));
35
35
 
36
- function _templateObject3() {
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() {
37
49
  var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n"]);
38
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"]);
70
+
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"]);
80
+
81
+ _templateObject5 = function _templateObject5() {
82
+ return data;
83
+ };
84
+
85
+ return data;
86
+ }
87
+
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
+
39
101
  _templateObject3 = function _templateObject3() {
40
102
  return data;
41
103
  };
@@ -44,7 +106,7 @@ function _templateObject3() {
44
106
  }
45
107
 
46
108
  function _templateObject2() {
47
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n .MuiTabs-root {\n background: white;\n .MuiTabs-scroller {\n .MuiTabs-flexContainer + span {\n z-index: 4;\n }\n }\n .MuiButtonBase-root {\n padding: 12px;\n min-height: 48px;\n height: auto;\n font-family: \"Open Sans\", sans-serif;\n font-size: 14px;\n /* height: 64px cuando vengan con icono y texto */\n min-width: 180px;\n background-color: ", ";\n color: ", ";\n opacity: ", ";\n &:hover:not(.Mui-selected):not(.Mui-disabled) {\n opacity: ", ";\n background-color: ", ";\n color: ", ";\n }\n\n &.Mui-selected {\n background-color: ", ";\n color: ", ";\n opacity: 1;\n }\n &.Mui-disabled {\n cursor: not-allowed !important;\n pointer-events: all;\n opacity: ", ";\n }\n }\n .MuiTabs-indicator {\n background-color: ", ";\n }\n }\n"]);
109
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n"]);
48
110
 
49
111
  _templateObject2 = function _templateObject2() {
50
112
  return data;
@@ -54,7 +116,7 @@ function _templateObject2() {
54
116
  }
55
117
 
56
118
  function _templateObject() {
57
- var data = (0, _taggedTemplateLiteral2["default"])(["\n left: 0px;\n bottom: 0;\n width: 100%;\n height: 2px;\n position: absolute;\n background-color: #d9d9d9;\n z-index: 2;\n"]);
119
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"]);
58
120
 
59
121
  _templateObject = function _templateObject() {
60
122
  return data;
@@ -64,24 +126,26 @@ function _templateObject() {
64
126
  }
65
127
 
66
128
  var DxcTabs = function DxcTabs(_ref) {
67
- var _ref$mode = _ref.mode,
68
- mode = _ref$mode === void 0 ? "filled" : _ref$mode,
69
- _ref$theme = _ref.theme,
70
- theme = _ref$theme === void 0 ? "light" : _ref$theme,
71
- _ref$disableRipple = _ref.disableRipple,
72
- disableRipple = _ref$disableRipple === void 0 ? false : _ref$disableRipple,
73
- activeTabIndex = _ref.activeTabIndex,
129
+ var activeTabIndex = _ref.activeTabIndex,
74
130
  _ref$tabs = _ref.tabs,
75
131
  tabs = _ref$tabs === void 0 ? [] : _ref$tabs,
76
132
  onTabClick = _ref.onTabClick,
77
- margin = _ref.margin;
133
+ onTabHover = _ref.onTabHover,
134
+ margin = _ref.margin,
135
+ _ref$iconPosition = _ref.iconPosition,
136
+ iconPosition = _ref$iconPosition === void 0 ? "left" : _ref$iconPosition,
137
+ _ref$tabIndex = _ref.tabIndex,
138
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
78
139
 
79
140
  var _React$useState = _react["default"].useState(0),
80
141
  _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
81
142
  innerActiveTabIndex = _React$useState2[0],
82
143
  setInnerActiveTabIndex = _React$useState2[1];
83
144
 
84
- var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]) || _variables.colors;
145
+ var colorsTheme = (0, _useTheme["default"])();
146
+ var hasLabelAndIcon = tabs && tabs.filter(function (tab) {
147
+ return tab.label && tab.icon;
148
+ }).length > 0;
85
149
 
86
150
  var handleChange = function handleChange(event, newValue) {
87
151
  if (activeTabIndex == null) {
@@ -93,33 +157,90 @@ var DxcTabs = function DxcTabs(_ref) {
93
157
  }
94
158
  };
95
159
 
160
+ var getTabIndex = function getTabIndex(index, disabled) {
161
+ return (activeTabIndex === index || innerActiveTabIndex === index) && !disabled ? tabIndex : -1;
162
+ };
163
+
164
+ var getLabelForTab = function getLabelForTab(tab) {
165
+ return _react["default"].createElement(ParentLabelSpan, null, _react["default"].createElement(MainLabelContainer, {
166
+ hasBadge: tab.notificationNumber
167
+ }, _react["default"].createElement(TabLabelContainer, {
168
+ hasLabelAndIcon: hasLabelAndIcon,
169
+ iconPosition: iconPosition
170
+ }, tab.icon ? _react["default"].createElement(TabIconContainer, {
171
+ hasLabelAndIcon: hasLabelAndIcon,
172
+ iconPosition: iconPosition
173
+ }, (0, _typeof2["default"])(tab.icon) === "object" ? tab.icon : _react["default"].createElement(tab.icon)) : tab.iconSrc && _react["default"].createElement(TabIcon, {
174
+ src: tab.iconSrc
175
+ }), _react["default"].createElement(LabelTextContainer, null, tab.label))), tab.notificationNumber && tab.notificationNumber !== false && _react["default"].createElement(BadgeContainer, {
176
+ hasLabelAndIcon: hasLabelAndIcon,
177
+ iconPosition: iconPosition
178
+ }, _react["default"].createElement(_Badge["default"], {
179
+ notificationText: tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
180
+ })));
181
+ };
182
+
96
183
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
97
- theme: colorsTheme
184
+ theme: colorsTheme.tabs
98
185
  }, _react["default"].createElement(DxCTabs, {
99
- mode: mode,
100
- brightness: theme,
101
- margin: margin
186
+ margin: margin,
187
+ hasLabelAndIcon: hasLabelAndIcon,
188
+ iconPosition: iconPosition
102
189
  }, _react["default"].createElement(Underline, null), _react["default"].createElement(_Tabs["default"], {
103
190
  value: activeTabIndex != null ? activeTabIndex : innerActiveTabIndex,
104
191
  onChange: handleChange,
105
192
  variant: "scrollable",
106
- scrollButtons: "off"
193
+ scrollButtons: "auto"
107
194
  }, 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
+
108
203
  return _react["default"].createElement(_Tab["default"], {
204
+ tabIndex: (activeTabIndex === i || innerActiveTabIndex === i) && !tab.isDisabled ? tabIndex : -1,
109
205
  key: "tab".concat(i).concat(tab.label),
110
- label: tab.label,
111
- icon: tab.iconSrc && _react["default"].createElement(TabIcon, {
112
- src: tab.iconSrc
113
- }),
206
+ label: getLabelForTab(tab),
114
207
  disabled: tab.isDisabled,
115
- disableRipple: disableRipple
208
+ disableRipple: true,
209
+ onMouseEnter: function onMouseEnter() {
210
+ onTabHover(i);
211
+ },
212
+ onMouseLeave: function onMouseLeave() {
213
+ onTabHover(null);
214
+ }
116
215
  });
117
216
  }))));
118
217
  };
119
218
 
120
- var Underline = _styledComponents["default"].div(_templateObject());
219
+ var ParentLabelSpan = _styledComponents["default"].div(_templateObject());
220
+
221
+ var TabLabelContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
222
+ return props.hasLabelAndIcon && props.iconPosition === "top" && "column" || "row";
223
+ });
224
+
225
+ var LabelTextContainer = _styledComponents["default"].div(_templateObject3());
121
226
 
122
- var DxCTabs = _styledComponents["default"].div(_templateObject2(), function (props) {
227
+ var BadgeContainer = _styledComponents["default"].div(_templateObject4(), function (props) {
228
+ return props.hasLabelAndIcon && props.iconPosition === "top" && "0" || "5px";
229
+ });
230
+
231
+ var MainLabelContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
232
+ return props.hasBadge && "35px" || "unset";
233
+ }, function (props) {
234
+ return props.hasBadge && "35px" || "unset";
235
+ });
236
+
237
+ var Underline = _styledComponents["default"].div(_templateObject6(), function (props) {
238
+ return props.theme.dividerThickness;
239
+ }, function (props) {
240
+ return props.theme.dividerColor;
241
+ });
242
+
243
+ var DxCTabs = _styledComponents["default"].div(_templateObject7(), function (props) {
123
244
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
124
245
  }, function (props) {
125
246
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -130,54 +251,93 @@ var DxCTabs = _styledComponents["default"].div(_templateObject2(), function (pro
130
251
  }, function (props) {
131
252
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
132
253
  }, function (props) {
133
- return props.mode === "filled" ? props.brightness === "dark" ? props.theme.darkGrey : props.theme.lightGrey : "transparent";
254
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "48px" || "72px";
255
+ }, function (props) {
256
+ return props.theme.fontTextTransform;
257
+ }, function (props) {
258
+ return props.theme.fontFamily;
259
+ }, function (props) {
260
+ return props.theme.fontSize;
261
+ }, function (props) {
262
+ return props.theme.fontStyle;
263
+ }, function (props) {
264
+ return props.theme.fontWeight;
265
+ }, function (props) {
266
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "12px 16px" || "8px 16px";
267
+ }, function (props) {
268
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "48px" || "72px";
269
+ }, function (props) {
270
+ return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "48px" || "72px";
271
+ }, function (props) {
272
+ return "".concat(props.theme.hoverBackgroundColor, " !important");
134
273
  }, function (props) {
135
- return props.mode === "filled" ? props.brightness === "dark" ? props.theme.white : props.theme.darkGrey : props.theme.darkGrey;
274
+ return "".concat(props.theme.pressedBackgroundColor, " !important");
136
275
  }, function (props) {
137
- return props.mode === "filled" ? props.brightness === "dark" ? 0.8 : 0.5 : 0.5;
276
+ return "".concat(props.theme.pressedFontWeight, " !important");
138
277
  }, function (props) {
139
- return props.mode === "filled" ? props.brightness === "light" ? 0.8 : 1 : 1;
278
+ return props.theme.unselectedBackgroundColor;
140
279
  }, function (props) {
141
- return props.mode === "filled" ? props.theme.darkGrey : "transparent";
280
+ return props.theme.unselectedFontColor;
142
281
  }, function (props) {
143
- return props.mode === "filled" ? props.theme.white : props.theme.darkGrey;
282
+ return props.theme.unselectedIconColor;
144
283
  }, function (props) {
145
- return props.mode === "filled" ? props.brightness === "dark" ? props.theme.white : props.theme.black : "transparent";
284
+ return props.theme.selectedBackgroundColor;
146
285
  }, function (props) {
147
- return props.mode === "filled" ? props.brightness === "dark" ? props.theme.black : props.theme.white : props.theme.black;
286
+ return props.theme.selectedFontColor;
148
287
  }, function (props) {
149
- return props.mode === "underlined" ? "0.4" : "";
288
+ return props.theme.selectedIconColor;
150
289
  }, function (props) {
151
- return props.mode === "filled" ? props.theme.yellow : props.theme.black;
290
+ return props.theme.disabledFontColor;
291
+ }, function (props) {
292
+ return props.theme.disabledFontStyle;
293
+ }, function (props) {
294
+ return props.theme.disabledIconColor;
295
+ }, function (props) {
296
+ return props.theme.focusOutline;
297
+ }, function (props) {
298
+ return props.theme.selectedUnderlineColor;
299
+ }, function (props) {
300
+ return props.theme.selectedUnderlineThickness;
301
+ }, function (props) {
302
+ return props.theme.scrollButtonsWidth;
303
+ }, function (props) {
304
+ return props.theme.scrollButtonsWidth;
152
305
  });
153
306
 
154
- var TabIcon = _styledComponents["default"].img(_templateObject3());
307
+ var TabIcon = _styledComponents["default"].img(_templateObject8());
308
+
309
+ var TabIconContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
310
+ return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
311
+ }, function (props) {
312
+ return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
313
+ });
155
314
 
156
315
  DxcTabs.propTypes = {
157
- mode: _propTypes["default"].oneOf(["filled", "underlined"]),
158
- theme: _propTypes["default"].oneOf(["light", "dark"]),
159
- disableRipple: _propTypes["default"].bool,
160
316
  activeTabIndex: _propTypes["default"].number,
161
317
  onTabClick: _propTypes["default"].func,
318
+ onTabHover: _propTypes["default"].func,
162
319
  tabs: _propTypes["default"].arrayOf(_propTypes["default"].shape({
163
320
  label: _propTypes["default"].string,
321
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
164
322
  iconSrc: _propTypes["default"].string,
165
- isDisabled: _propTypes["default"]["boolean"]
323
+ isDisabled: _propTypes["default"].bool,
324
+ notificationNumber: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].string, _propTypes["default"].number])
166
325
  })),
167
326
  margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
168
327
  top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
169
328
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
170
329
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
171
330
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
172
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(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
173
334
  };
174
335
  DxcTabs.defaultProps = {
175
- mode: "filled",
176
- theme: "light",
177
- disableRipple: false,
178
336
  activeTabIndex: null,
179
337
  tabs: [],
180
- onTabClick: function onTabClick() {}
338
+ onTabClick: function onTabClick() {},
339
+ onTabHover: function onTabHover() {},
340
+ iconPosition: "top"
181
341
  };
182
342
  var _default = DxcTabs;
183
343
  exports["default"] = _default;
@@ -32,13 +32,7 @@ function _templateObject() {
32
32
  var TABS_HEIGHT = 54;
33
33
 
34
34
  var DxcTabsForSections = function DxcTabsForSections(_ref) {
35
- var _ref$tabsMode = _ref.tabsMode,
36
- tabsMode = _ref$tabsMode === void 0 ? "filled" : _ref$tabsMode,
37
- _ref$tabsTheme = _ref.tabsTheme,
38
- tabsTheme = _ref$tabsTheme === void 0 ? "light" : _ref$tabsTheme,
39
- _ref$disableTabsRippl = _ref.disableTabsRipple,
40
- disableTabsRipple = _ref$disableTabsRippl === void 0 ? false : _ref$disableTabsRippl,
41
- _ref$sections = _ref.sections,
35
+ var _ref$sections = _ref.sections,
42
36
  sections = _ref$sections === void 0 ? [] : _ref$sections,
43
37
  _ref$stickAtPx = _ref.stickAtPx,
44
38
  stickAtPx = _ref$stickAtPx === void 0 ? 0 : _ref$stickAtPx;
@@ -66,9 +60,6 @@ var DxcTabsForSections = function DxcTabsForSections(_ref) {
66
60
  return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(StyledTabs, {
67
61
  stickAtPx: stickAtPx
68
62
  }, _react["default"].createElement(_Tabs["default"], {
69
- mode: tabsMode,
70
- brightness: tabsTheme,
71
- disableRipple: disableTabsRipple,
72
63
  tabs: tabs,
73
64
  activeTabIndex: activeTab,
74
65
  onTabClick: onTabClick
@@ -81,9 +72,6 @@ var DxcTabsForSections = function DxcTabsForSections(_ref) {
81
72
  };
82
73
 
83
74
  DxcTabsForSections.propTypes = {
84
- tabsMode: _Tabs["default"].propTypes.mode,
85
- tabsTheme: _Tabs["default"].propTypes.theme,
86
- disableTabsRipple: _Tabs["default"].propTypes.disableRipple,
87
75
  stickAtPx: _propTypes["default"].number,
88
76
  sections: _propTypes["default"].arrayOf(_propTypes["default"].shape({
89
77
  tabLabel: _propTypes["default"].string,
@@ -91,9 +79,6 @@ DxcTabsForSections.propTypes = {
91
79
  }))
92
80
  };
93
81
  DxcTabsForSections.defaultProps = {
94
- tabsMode: _Tabs["default"].defaultProps.mode,
95
- tabsTheme: _Tabs["default"].defaultProps.theme,
96
- disableTabsRipple: _Tabs["default"].defaultProps.disableRipple,
97
82
  stickAtPx: 0,
98
83
  sections: []
99
84
  };