@dxc-technology/halstack-react 0.0.0-6e92c02 → 0.0.0-7197f3e

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 (194) hide show
  1. package/README.md +66 -0
  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 +93 -42
  13. package/dist/card/Card.js +64 -56
  14. package/dist/checkbox/Checkbox.js +118 -39
  15. package/dist/chip/Chip.js +265 -0
  16. package/dist/common/RequiredComponent.js +5 -15
  17. package/dist/common/variables.js +1502 -10
  18. package/dist/date/Date.js +115 -81
  19. package/dist/date-input/DateInput.js +400 -0
  20. package/dist/date-input/index.d.ts +95 -0
  21. package/dist/dialog/Dialog.js +87 -33
  22. package/dist/dropdown/Dropdown.js +226 -94
  23. package/dist/file-input/FileInput.js +644 -0
  24. package/dist/file-input/FileItem.js +280 -0
  25. package/dist/file-input/index.d.ts +81 -0
  26. package/dist/footer/Footer.js +125 -45
  27. package/dist/footer/Icons.js +77 -0
  28. package/dist/header/Header.js +176 -85
  29. package/dist/header/Icons.js +59 -0
  30. package/dist/heading/Heading.js +81 -22
  31. package/dist/input-text/Icons.js +22 -0
  32. package/dist/input-text/InputText.js +302 -107
  33. package/dist/layout/ApplicationLayout.js +327 -0
  34. package/dist/layout/Icons.js +55 -0
  35. package/dist/link/Link.js +142 -34
  36. package/dist/main.d.ts +8 -0
  37. package/dist/main.js +119 -15
  38. package/dist/new-select/NewSelect.js +836 -0
  39. package/dist/new-select/index.d.ts +53 -0
  40. package/dist/number-input/NumberInput.js +136 -0
  41. package/dist/number-input/NumberInputContext.js +16 -0
  42. package/dist/number-input/index.d.ts +113 -0
  43. package/dist/paginator/Icons.js +66 -0
  44. package/dist/paginator/Paginator.js +162 -57
  45. package/dist/password-input/PasswordInput.js +198 -0
  46. package/dist/password-input/index.d.ts +94 -0
  47. package/dist/progress-bar/ProgressBar.js +97 -44
  48. package/dist/radio/Radio.js +39 -34
  49. package/dist/resultsetTable/ResultsetTable.js +94 -70
  50. package/dist/select/Select.js +253 -129
  51. package/dist/sidenav/Sidenav.js +87 -125
  52. package/dist/slider/Slider.js +219 -83
  53. package/dist/spinner/Spinner.js +249 -64
  54. package/dist/switch/Switch.js +54 -51
  55. package/dist/table/Table.js +63 -15
  56. package/dist/tabs/Tabs.js +210 -50
  57. package/dist/tabs-for-sections/TabsForSections.js +1 -16
  58. package/dist/tag/Tag.js +100 -35
  59. package/dist/text-input/TextInput.js +971 -0
  60. package/dist/text-input/index.d.ts +135 -0
  61. package/dist/textarea/Textarea.js +250 -107
  62. package/dist/textarea/index.d.ts +117 -0
  63. package/dist/toggle/Toggle.js +16 -19
  64. package/dist/toggle-group/ToggleGroup.js +327 -0
  65. package/dist/upload/Upload.js +16 -11
  66. package/dist/upload/buttons-upload/ButtonsUpload.js +35 -25
  67. package/dist/upload/buttons-upload/Icons.js +40 -0
  68. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -37
  69. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  70. package/dist/upload/file-upload/FileToUpload.js +64 -33
  71. package/dist/upload/file-upload/Icons.js +66 -0
  72. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  73. package/dist/upload/transaction/Icons.js +160 -0
  74. package/dist/upload/transaction/Transaction.js +42 -49
  75. package/dist/upload/transactions/Transactions.js +38 -20
  76. package/dist/useTheme.js +22 -0
  77. package/dist/wizard/Icons.js +65 -0
  78. package/dist/wizard/Wizard.js +156 -61
  79. package/package.json +18 -7
  80. package/test/AccordionGroup.test.js +125 -0
  81. package/test/Chip.test.js +25 -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/InputText.test.js +53 -41
  89. package/test/Link.test.js +25 -7
  90. package/test/NumberInput.test.js +259 -0
  91. package/test/Paginator.test.js +72 -60
  92. package/test/PasswordInput.test.js +83 -0
  93. package/test/ResultsetTable.test.js +66 -19
  94. package/test/Select.test.js +55 -34
  95. package/test/Sidenav.test.js +22 -64
  96. package/test/Slider.test.js +24 -15
  97. package/test/Spinner.test.js +5 -0
  98. package/test/Tabs.test.js +21 -0
  99. package/test/TextInput.test.js +732 -0
  100. package/test/Textarea.test.js +193 -0
  101. package/test/ToggleGroup.test.js +85 -0
  102. package/test/Upload.test.js +5 -5
  103. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  104. package/dist/accordion/Accordion.stories.js +0 -207
  105. package/dist/accordion/readme.md +0 -96
  106. package/dist/alert/Alert.stories.js +0 -158
  107. package/dist/alert/close.svg +0 -4
  108. package/dist/alert/error.svg +0 -4
  109. package/dist/alert/info.svg +0 -4
  110. package/dist/alert/readme.md +0 -43
  111. package/dist/alert/success.svg +0 -4
  112. package/dist/alert/warning.svg +0 -4
  113. package/dist/button/Button.stories.js +0 -224
  114. package/dist/button/readme.md +0 -93
  115. package/dist/checkbox/Checkbox.stories.js +0 -144
  116. package/dist/checkbox/readme.md +0 -116
  117. package/dist/common/services/example-service.js +0 -10
  118. package/dist/common/services/example-service.test.js +0 -12
  119. package/dist/date/Date.stories.js +0 -205
  120. package/dist/date/calendar.svg +0 -1
  121. package/dist/date/calendar_dark.svg +0 -1
  122. package/dist/date/readme.md +0 -73
  123. package/dist/dialog/Dialog.stories.js +0 -217
  124. package/dist/dialog/readme.md +0 -32
  125. package/dist/dropdown/Dropdown.stories.js +0 -249
  126. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  127. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  128. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  129. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  130. package/dist/dropdown/readme.md +0 -69
  131. package/dist/footer/Footer.stories.js +0 -94
  132. package/dist/footer/dxc_logo_wht.png +0 -0
  133. package/dist/footer/readme.md +0 -41
  134. package/dist/header/Header.stories.js +0 -176
  135. package/dist/header/close_icon.svg +0 -1
  136. package/dist/header/dxc_logo_black.png +0 -0
  137. package/dist/header/dxc_logo_white.png +0 -0
  138. package/dist/header/hamb_menu_black.svg +0 -1
  139. package/dist/header/hamb_menu_white.svg +0 -1
  140. package/dist/header/readme.md +0 -33
  141. package/dist/input-text/InputText.stories.js +0 -209
  142. package/dist/input-text/error.svg +0 -1
  143. package/dist/input-text/readme.md +0 -91
  144. package/dist/link/readme.md +0 -51
  145. package/dist/paginator/images/next.svg +0 -3
  146. package/dist/paginator/images/nextPage.svg +0 -3
  147. package/dist/paginator/images/previous.svg +0 -3
  148. package/dist/paginator/images/previousPage.svg +0 -3
  149. package/dist/paginator/readme.md +0 -50
  150. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  151. package/dist/progress-bar/readme.md +0 -63
  152. package/dist/radio/Radio.stories.js +0 -166
  153. package/dist/radio/readme.md +0 -70
  154. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  155. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  156. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  157. package/dist/select/Select.stories.js +0 -235
  158. package/dist/select/readme.md +0 -72
  159. package/dist/sidenav/arrow_icon.svg +0 -3
  160. package/dist/slider/Slider.stories.js +0 -241
  161. package/dist/slider/readme.md +0 -64
  162. package/dist/spinner/Spinner.stories.js +0 -183
  163. package/dist/spinner/readme.md +0 -65
  164. package/dist/switch/Switch.stories.js +0 -134
  165. package/dist/switch/readme.md +0 -133
  166. package/dist/tabs/Tabs.stories.js +0 -130
  167. package/dist/tabs/readme.md +0 -78
  168. package/dist/tabs-for-sections/readme.md +0 -78
  169. package/dist/toggle/Toggle.stories.js +0 -297
  170. package/dist/toggle/readme.md +0 -80
  171. package/dist/upload/Upload.stories.js +0 -72
  172. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  173. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  174. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  175. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  176. package/dist/upload/file-upload/audio-icon.svg +0 -4
  177. package/dist/upload/file-upload/close.svg +0 -4
  178. package/dist/upload/file-upload/file-icon.svg +0 -4
  179. package/dist/upload/file-upload/video-icon.svg +0 -4
  180. package/dist/upload/readme.md +0 -37
  181. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  182. package/dist/upload/transaction/audio-icon.svg +0 -4
  183. package/dist/upload/transaction/error-icon.svg +0 -4
  184. package/dist/upload/transaction/file-icon-err.svg +0 -4
  185. package/dist/upload/transaction/file-icon.svg +0 -4
  186. package/dist/upload/transaction/image-icon-err.svg +0 -4
  187. package/dist/upload/transaction/image-icon.svg +0 -4
  188. package/dist/upload/transaction/success-icon.svg +0 -4
  189. package/dist/upload/transaction/video-icon-err.svg +0 -4
  190. package/dist/upload/transaction/video-icon.svg +0 -4
  191. package/dist/wizard/invalid_icon.svg +0 -6
  192. package/dist/wizard/valid_icon.svg +0 -6
  193. package/dist/wizard/validation-wrong.svg +0 -6
  194. 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
  };