@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370

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 (213) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +12 -2
  3. package/HalstackContext.d.ts +1330 -7
  4. package/HalstackContext.js +84 -67
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +74 -55
  7. package/accordion/Accordion.stories.tsx +3 -101
  8. package/accordion/Accordion.test.js +34 -19
  9. package/accordion/types.d.ts +4 -16
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +49 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  13. package/accordion-group/AccordionGroup.test.js +62 -54
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -18
  17. package/alert/Alert.js +47 -20
  18. package/alert/Alert.test.js +46 -29
  19. package/alert/types.d.ts +3 -3
  20. package/badge/Badge.js +14 -2
  21. package/badge/types.d.ts +1 -1
  22. package/bleed/Bleed.js +21 -13
  23. package/bleed/Bleed.stories.tsx +1 -0
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +33 -33
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +7 -2
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +36 -9
  31. package/bulleted-list/BulletedList.stories.tsx +7 -1
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +83 -71
  35. package/button/Button.stories.tsx +4 -4
  36. package/button/Button.test.js +28 -8
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +67 -62
  40. package/card/Card.stories.tsx +12 -42
  41. package/card/Card.test.js +22 -11
  42. package/card/types.d.ts +4 -10
  43. package/checkbox/Checkbox.js +71 -27
  44. package/checkbox/Checkbox.test.js +60 -33
  45. package/checkbox/types.d.ts +4 -4
  46. package/chip/Chip.js +51 -48
  47. package/chip/Chip.stories.tsx +25 -17
  48. package/chip/Chip.test.js +29 -17
  49. package/chip/types.d.ts +4 -4
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +8 -3
  55. package/common/variables.d.ts +226 -175
  56. package/common/variables.js +956 -1133
  57. package/date-input/Calendar.js +55 -12
  58. package/date-input/DateInput.js +82 -35
  59. package/date-input/DateInput.test.js +351 -164
  60. package/date-input/DatePicker.js +38 -8
  61. package/date-input/Icons.js +12 -0
  62. package/date-input/YearPicker.js +30 -5
  63. package/date-input/types.d.ts +7 -7
  64. package/dialog/Dialog.d.ts +1 -1
  65. package/dialog/Dialog.js +83 -86
  66. package/dialog/Dialog.stories.tsx +127 -221
  67. package/dialog/Dialog.test.js +331 -18
  68. package/dialog/types.d.ts +1 -14
  69. package/dropdown/Dropdown.js +86 -32
  70. package/dropdown/Dropdown.test.js +211 -104
  71. package/dropdown/DropdownMenu.js +22 -8
  72. package/dropdown/DropdownMenuItem.js +15 -6
  73. package/dropdown/types.d.ts +8 -8
  74. package/file-input/FileInput.js +218 -134
  75. package/file-input/FileInput.test.js +343 -331
  76. package/file-input/FileItem.js +39 -12
  77. package/file-input/types.d.ts +10 -10
  78. package/flex/Flex.js +39 -25
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +74 -9
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +80 -68
  83. package/footer/Footer.stories.tsx +12 -89
  84. package/footer/Footer.test.js +47 -40
  85. package/footer/Icons.js +4 -0
  86. package/footer/types.d.ts +15 -17
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +4 -3
  92. package/header/Header.js +72 -55
  93. package/header/Header.stories.tsx +7 -71
  94. package/header/Header.test.js +26 -13
  95. package/header/Icons.js +4 -0
  96. package/header/types.d.ts +2 -16
  97. package/heading/Heading.js +28 -7
  98. package/heading/Heading.test.js +88 -71
  99. package/heading/types.d.ts +3 -3
  100. package/inset/Inset.js +21 -13
  101. package/inset/Inset.stories.tsx +2 -1
  102. package/inset/types.d.ts +2 -2
  103. package/layout/ApplicationLayout.d.ts +5 -5
  104. package/layout/ApplicationLayout.js +57 -15
  105. package/layout/Icons.js +10 -0
  106. package/layout/SidenavContext.d.ts +1 -1
  107. package/layout/SidenavContext.js +4 -0
  108. package/layout/types.d.ts +5 -6
  109. package/link/Link.js +41 -21
  110. package/link/Link.test.js +42 -26
  111. package/link/types.d.ts +4 -4
  112. package/main.d.ts +2 -1
  113. package/main.js +55 -0
  114. package/nav-tabs/NavTabs.d.ts +2 -2
  115. package/nav-tabs/NavTabs.js +43 -16
  116. package/nav-tabs/NavTabs.stories.tsx +14 -0
  117. package/nav-tabs/NavTabs.test.js +44 -37
  118. package/nav-tabs/Tab.js +71 -45
  119. package/nav-tabs/types.d.ts +10 -11
  120. package/number-input/NumberInput.js +30 -20
  121. package/number-input/NumberInput.test.js +249 -113
  122. package/number-input/NumberInputContext.js +5 -0
  123. package/number-input/numberInputContextTypes.d.ts +1 -1
  124. package/number-input/types.d.ts +4 -4
  125. package/package.json +7 -7
  126. package/paginator/Icons.js +10 -0
  127. package/paginator/Paginator.js +39 -17
  128. package/paginator/Paginator.test.js +156 -104
  129. package/paginator/types.d.ts +1 -1
  130. package/paragraph/Paragraph.d.ts +3 -4
  131. package/paragraph/Paragraph.js +18 -8
  132. package/password-input/PasswordInput.js +51 -22
  133. package/password-input/PasswordInput.test.js +94 -51
  134. package/password-input/types.d.ts +4 -4
  135. package/progress-bar/ProgressBar.d.ts +2 -2
  136. package/progress-bar/ProgressBar.js +39 -14
  137. package/progress-bar/ProgressBar.test.js +53 -36
  138. package/progress-bar/types.d.ts +4 -3
  139. package/quick-nav/QuickNav.js +24 -2
  140. package/quick-nav/types.d.ts +2 -2
  141. package/radio-group/Radio.js +53 -22
  142. package/radio-group/RadioGroup.js +84 -41
  143. package/radio-group/RadioGroup.test.js +288 -186
  144. package/radio-group/types.d.ts +4 -4
  145. package/resultsetTable/Icons.js +3 -0
  146. package/resultsetTable/ResultsetTable.js +56 -21
  147. package/resultsetTable/ResultsetTable.test.js +75 -42
  148. package/resultsetTable/types.d.ts +5 -5
  149. package/select/Icons.js +3 -0
  150. package/select/Listbox.js +35 -10
  151. package/select/Option.js +24 -8
  152. package/select/Select.js +143 -56
  153. package/select/Select.test.js +839 -456
  154. package/select/types.d.ts +12 -12
  155. package/sidenav/Icons.d.ts +7 -0
  156. package/sidenav/Icons.js +51 -0
  157. package/sidenav/Sidenav.d.ts +2 -2
  158. package/sidenav/Sidenav.js +116 -104
  159. package/sidenav/Sidenav.stories.tsx +60 -60
  160. package/sidenav/Sidenav.test.js +10 -3
  161. package/sidenav/types.d.ts +26 -23
  162. package/slider/Slider.js +84 -38
  163. package/slider/Slider.test.js +104 -76
  164. package/slider/types.d.ts +4 -4
  165. package/spinner/Spinner.js +51 -28
  166. package/spinner/Spinner.stories.jsx +28 -28
  167. package/spinner/Spinner.test.js +35 -26
  168. package/spinner/types.d.ts +3 -3
  169. package/switch/Switch.js +66 -24
  170. package/switch/Switch.test.js +97 -52
  171. package/switch/types.d.ts +4 -4
  172. package/table/Table.js +22 -4
  173. package/table/Table.test.js +7 -2
  174. package/table/types.d.ts +3 -3
  175. package/tabs/Tab.js +39 -22
  176. package/tabs/Tabs.js +131 -62
  177. package/tabs/Tabs.test.js +122 -67
  178. package/tabs/types.d.ts +8 -8
  179. package/tag/Tag.js +54 -27
  180. package/tag/Tag.test.js +31 -20
  181. package/tag/types.d.ts +7 -7
  182. package/text-input/Icons.js +3 -0
  183. package/text-input/Suggestion.js +24 -8
  184. package/text-input/Suggestions.js +36 -11
  185. package/text-input/TextInput.js +144 -59
  186. package/text-input/TextInput.stories.tsx +1 -1
  187. package/text-input/TextInput.test.js +858 -539
  188. package/text-input/types.d.ts +9 -9
  189. package/textarea/Textarea.js +73 -38
  190. package/textarea/Textarea.test.js +173 -98
  191. package/textarea/types.d.ts +4 -4
  192. package/toggle-group/ToggleGroup.d.ts +2 -2
  193. package/toggle-group/ToggleGroup.js +59 -21
  194. package/toggle-group/ToggleGroup.test.js +72 -40
  195. package/toggle-group/types.d.ts +11 -11
  196. package/typography/Typography.d.ts +2 -2
  197. package/typography/Typography.js +23 -110
  198. package/typography/Typography.stories.tsx +1 -1
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +1234 -1
  201. package/useTheme.js +6 -0
  202. package/useTranslatedLabels.d.ts +84 -2
  203. package/useTranslatedLabels.js +5 -0
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +47 -13
  209. package/wizard/Wizard.test.js +81 -54
  210. package/wizard/types.d.ts +7 -8
  211. package/card/ice-cream.jpg +0 -0
  212. package/translatedLabelsType.d.ts +0 -82
  213. /package/{translatedLabelsType.js → grid/types.js} +0 -0
package/tabs/Tabs.js CHANGED
@@ -1,23 +1,38 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
10
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
11
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
12
18
  var _react = _interopRequireWildcard(require("react"));
19
+
13
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
14
22
  var _variables = require("../common/variables");
23
+
15
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
+
16
26
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
+
17
28
  var _Tab = _interopRequireDefault(require("./Tab"));
29
+
18
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
31
+
19
32
  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); }
33
+
20
34
  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; }
35
+
21
36
  var arrowIcons = {
22
37
  left: /*#__PURE__*/_react["default"].createElement("svg", {
23
38
  focusable: "false",
@@ -34,13 +49,16 @@ var arrowIcons = {
34
49
  d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"
35
50
  }))
36
51
  };
52
+
37
53
  var useResize = function useResize(refTabList) {
38
54
  var _useState = (0, _react.useState)(0),
39
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
40
- viewWidth = _useState2[0],
41
- setViewWidth = _useState2[1];
55
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
+ viewWidth = _useState2[0],
57
+ setViewWidth = _useState2[1];
58
+
42
59
  var handleWindowSizeChange = (0, _react.useCallback)(function () {
43
60
  var _refTabList$current;
61
+
44
62
  setViewWidth(refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current = refTabList.current) === null || _refTabList$current === void 0 ? void 0 : _refTabList$current.offsetWidth);
45
63
  }, [refTabList]);
46
64
  (0, _react.useEffect)(function () {
@@ -53,17 +71,18 @@ var useResize = function useResize(refTabList) {
53
71
  }, [handleWindowSizeChange]);
54
72
  return viewWidth;
55
73
  };
74
+
56
75
  var DxcTabs = function DxcTabs(_ref) {
57
76
  var defaultActiveTabIndex = _ref.defaultActiveTabIndex,
58
- activeTabIndex = _ref.activeTabIndex,
59
- tabs = _ref.tabs,
60
- onTabClick = _ref.onTabClick,
61
- onTabHover = _ref.onTabHover,
62
- margin = _ref.margin,
63
- _ref$iconPosition = _ref.iconPosition,
64
- iconPosition = _ref$iconPosition === void 0 ? "top" : _ref$iconPosition,
65
- _ref$tabIndex = _ref.tabIndex,
66
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
77
+ activeTabIndex = _ref.activeTabIndex,
78
+ tabs = _ref.tabs,
79
+ onTabClick = _ref.onTabClick,
80
+ onTabHover = _ref.onTabHover,
81
+ margin = _ref.margin,
82
+ _ref$iconPosition = _ref.iconPosition,
83
+ iconPosition = _ref$iconPosition === void 0 ? "top" : _ref$iconPosition,
84
+ _ref$tabIndex = _ref.tabIndex,
85
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
67
86
  var colorsTheme = (0, _useTheme["default"])();
68
87
  var hasLabelAndIcon = tabs && tabs.filter(function (tab) {
69
88
  return tab.label && tab.icon;
@@ -71,50 +90,62 @@ var DxcTabs = function DxcTabs(_ref) {
71
90
  var firstFocus = tabs && tabs.findIndex(function (tab) {
72
91
  return !tab.isDisabled;
73
92
  });
93
+
74
94
  var _useState3 = (0, _react.useState)(tabs && defaultActiveTabIndex && !tabs[defaultActiveTabIndex].isDisabled ? defaultActiveTabIndex : firstFocus),
75
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
76
- innerActiveTabIndex = _useState4[0],
77
- setInnerActiveTabIndex = _useState4[1];
95
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
96
+ innerActiveTabIndex = _useState4[0],
97
+ setInnerActiveTabIndex = _useState4[1];
98
+
78
99
  var _useState5 = (0, _react.useState)(0),
79
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
80
- activeIndicatorWidth = _useState6[0],
81
- setActiveIndicatorWidth = _useState6[1];
100
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
101
+ activeIndicatorWidth = _useState6[0],
102
+ setActiveIndicatorWidth = _useState6[1];
103
+
82
104
  var _useState7 = (0, _react.useState)(0),
83
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
84
- activeIndicatorLeft = _useState8[0],
85
- setActiveIndicatorLeft = _useState8[1];
105
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
106
+ activeIndicatorLeft = _useState8[0],
107
+ setActiveIndicatorLeft = _useState8[1];
108
+
86
109
  var _useState9 = (0, _react.useState)(0),
87
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
88
- translateScroll = _useState10[0],
89
- setTranslateScroll = _useState10[1];
110
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
111
+ translateScroll = _useState10[0],
112
+ setTranslateScroll = _useState10[1];
113
+
90
114
  var _useState11 = (0, _react.useState)(true),
91
- _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
92
- scrollRightEnabled = _useState12[0],
93
- setScrollRightEnabled = _useState12[1];
115
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
116
+ scrollRightEnabled = _useState12[0],
117
+ setScrollRightEnabled = _useState12[1];
118
+
94
119
  var _useState13 = (0, _react.useState)(false),
95
- _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
96
- scrollLeftEnabled = _useState14[0],
97
- setScrollLeftEnabled = _useState14[1];
120
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
121
+ scrollLeftEnabled = _useState14[0],
122
+ setScrollLeftEnabled = _useState14[1];
123
+
98
124
  var _useState15 = (0, _react.useState)(0),
99
- _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
100
- countClick = _useState16[0],
101
- setCountClick = _useState16[1];
125
+ _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
126
+ countClick = _useState16[0],
127
+ setCountClick = _useState16[1];
128
+
102
129
  var _useState17 = (0, _react.useState)(0),
103
- _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
104
- totalTabsWidth = _useState18[0],
105
- setTotalTabsWidth = _useState18[1];
130
+ _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
131
+ totalTabsWidth = _useState18[0],
132
+ setTotalTabsWidth = _useState18[1];
133
+
106
134
  var _useState19 = (0, _react.useState)(activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : innerActiveTabIndex),
107
- _useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
108
- currentFocusIndex = _useState20[0],
109
- setCurrentFocusIndex = _useState20[1];
135
+ _useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
136
+ currentFocusIndex = _useState20[0],
137
+ setCurrentFocusIndex = _useState20[1];
138
+
110
139
  var _useState21 = (0, _react.useState)(activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : innerActiveTabIndex),
111
- _useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
112
- temporalFocusIndex = _useState22[0],
113
- setTemporalFocusIndex = _useState22[1];
140
+ _useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
141
+ temporalFocusIndex = _useState22[0],
142
+ setTemporalFocusIndex = _useState22[1];
143
+
114
144
  var _useState23 = (0, _react.useState)(0),
115
- _useState24 = (0, _slicedToArray2["default"])(_useState23, 2),
116
- minHeightTabs = _useState24[0],
117
- setMinHeightTabs = _useState24[1];
145
+ _useState24 = (0, _slicedToArray2["default"])(_useState23, 2),
146
+ minHeightTabs = _useState24[0],
147
+ setMinHeightTabs = _useState24[1];
148
+
118
149
  var refTabs = (0, _react.useRef)([]);
119
150
  var refTabList = (0, _react.useRef)(null);
120
151
  var viewWidth = useResize(refTabList);
@@ -124,6 +155,7 @@ var DxcTabs = function DxcTabs(_ref) {
124
155
  }, [viewWidth]);
125
156
  (0, _react.useEffect)(function () {
126
157
  var _refTabs$current, _refTabs$current2, _refTabs$current3;
158
+
127
159
  var sumWidth = refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current = refTabs.current) === null || _refTabs$current === void 0 ? void 0 : _refTabs$current.reduce(function (count, obj) {
128
160
  return count + obj.offsetWidth;
129
161
  }, 0);
@@ -133,28 +165,36 @@ var DxcTabs = function DxcTabs(_ref) {
133
165
  }, [refTabs]);
134
166
  (0, _react.useEffect)(function () {
135
167
  var _refTabList$current2;
168
+
136
169
  setMinHeightTabs((refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current2 = refTabList.current) === null || _refTabList$current2 === void 0 ? void 0 : _refTabList$current2.offsetHeight) + 1);
137
170
  }, [refTabList]);
138
171
  (0, _react.useEffect)(function () {
139
172
  if (activeTabIndex >= 0) {
140
173
  var _refTabs$current$acti, _refTabs$current$acti2;
174
+
141
175
  setActiveIndicatorWidth(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$acti = refTabs.current[activeTabIndex]) === null || _refTabs$current$acti === void 0 ? void 0 : _refTabs$current$acti.offsetWidth);
142
176
  setActiveIndicatorLeft(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$acti2 = refTabs.current[activeTabIndex]) === null || _refTabs$current$acti2 === void 0 ? void 0 : _refTabs$current$acti2.offsetLeft);
143
177
  }
144
178
  }, [activeTabIndex]);
179
+
145
180
  var handleSelected = function handleSelected(newValue) {
146
181
  activeTabIndex !== null && activeTabIndex !== void 0 ? activeTabIndex : setInnerActiveTabIndex(newValue);
147
182
  onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(newValue);
183
+
148
184
  if (activeTabIndex === undefined) {
149
185
  var _refTabs$current$newV, _refTabs$current$newV2;
186
+
150
187
  setActiveIndicatorWidth(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$newV = refTabs.current[newValue]) === null || _refTabs$current$newV === void 0 ? void 0 : _refTabs$current$newV.offsetWidth);
151
188
  setActiveIndicatorLeft(refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current$newV2 = refTabs.current[newValue]) === null || _refTabs$current$newV2 === void 0 ? void 0 : _refTabs$current$newV2.offsetLeft);
152
189
  }
153
190
  };
191
+
154
192
  var scrollLeft = function scrollLeft() {
155
193
  var _refTabList$current3;
194
+
156
195
  var scrollWidth = (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current3 = refTabList.current) === null || _refTabList$current3 === void 0 ? void 0 : _refTabList$current3.offsetWidth) * 0.75;
157
- var moveX;
196
+ var moveX = 0;
197
+
158
198
  if (countClick <= scrollWidth) {
159
199
  moveX = 0;
160
200
  setScrollLeftEnabled(false);
@@ -164,15 +204,20 @@ var DxcTabs = function DxcTabs(_ref) {
164
204
  setScrollRightEnabled(true);
165
205
  setScrollLeftEnabled(true);
166
206
  }
207
+
167
208
  setTranslateScroll(-moveX);
168
209
  setCountClick(moveX);
169
210
  };
211
+
170
212
  var scrollRight = function scrollRight() {
171
213
  var _refTabList$current4, _refTabList$current5;
214
+
172
215
  var scrollWidth = (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current4 = refTabList.current) === null || _refTabList$current4 === void 0 ? void 0 : _refTabList$current4.offsetWidth) * 0.75;
173
- var moveX;
216
+ var moveX = 0;
217
+
174
218
  if (countClick + scrollWidth + (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current5 = refTabList.current) === null || _refTabList$current5 === void 0 ? void 0 : _refTabList$current5.offsetWidth) >= totalTabsWidth) {
175
219
  var _refTabList$current6;
220
+
176
221
  moveX = totalTabsWidth - (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current6 = refTabList.current) === null || _refTabList$current6 === void 0 ? void 0 : _refTabList$current6.offsetWidth);
177
222
  setScrollRightEnabled(false);
178
223
  setScrollLeftEnabled(true);
@@ -181,15 +226,19 @@ var DxcTabs = function DxcTabs(_ref) {
181
226
  setScrollLeftEnabled(true);
182
227
  setScrollRightEnabled(true);
183
228
  }
229
+
184
230
  setTranslateScroll(-moveX);
185
231
  setCountClick(moveX);
186
232
  };
233
+
187
234
  var setPreviousTabFocus = function setPreviousTabFocus() {
188
235
  setTemporalFocusIndex(function (temporalFocusIndex) {
189
236
  var index = temporalFocusIndex === 0 ? tabs.length - 1 : temporalFocusIndex - 1;
237
+
190
238
  while (tabs[index].isDisabled) {
191
239
  index = index === 0 ? tabs.length - 1 : index - 1;
192
240
  }
241
+
193
242
  refTabs === null || refTabs === void 0 ? void 0 : refTabs.current[index].focus({
194
243
  preventScroll: true
195
244
  });
@@ -197,12 +246,15 @@ var DxcTabs = function DxcTabs(_ref) {
197
246
  return index;
198
247
  });
199
248
  };
249
+
200
250
  var setNextTabFocus = function setNextTabFocus() {
201
251
  setTemporalFocusIndex(function (temporalFocusIndex) {
202
252
  var index = temporalFocusIndex === tabs.length - 1 ? 0 : temporalFocusIndex + 1;
253
+
203
254
  while (tabs[index].isDisabled) {
204
255
  index = index === tabs.length - 1 ? 0 : index + 1;
205
256
  }
257
+
206
258
  refTabs === null || refTabs === void 0 ? void 0 : refTabs.current[index].focus({
207
259
  preventScroll: true
208
260
  });
@@ -210,8 +262,10 @@ var DxcTabs = function DxcTabs(_ref) {
210
262
  return index;
211
263
  });
212
264
  };
265
+
213
266
  var setScrollFocus = function setScrollFocus(actualIndex) {
214
267
  var _refTabs$current4, _refTabList$current8;
268
+
215
269
  var sumPrev = 0;
216
270
  refTabs === null || refTabs === void 0 ? void 0 : (_refTabs$current4 = refTabs.current) === null || _refTabs$current4 === void 0 ? void 0 : _refTabs$current4.map(function (item, index) {
217
271
  if (index <= actualIndex) {
@@ -219,23 +273,29 @@ var DxcTabs = function DxcTabs(_ref) {
219
273
  }
220
274
  });
221
275
  var moveX = 0;
276
+
222
277
  if (actualIndex === tabs.length - 1) {
223
278
  var _refTabList$current7;
279
+
224
280
  moveX = totalTabsWidth - (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current7 = refTabList.current) === null || _refTabList$current7 === void 0 ? void 0 : _refTabList$current7.offsetWidth);
225
281
  setScrollLeftEnabled(true);
226
282
  setScrollRightEnabled(false);
227
283
  } else if (sumPrev > (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current8 = refTabList.current) === null || _refTabList$current8 === void 0 ? void 0 : _refTabList$current8.offsetWidth)) {
228
284
  var _refTabList$current9;
285
+
229
286
  moveX = sumPrev - (refTabList === null || refTabList === void 0 ? void 0 : (_refTabList$current9 = refTabList.current) === null || _refTabList$current9 === void 0 ? void 0 : _refTabList$current9.offsetWidth) + 1; //plus 1px for the outline
287
+
230
288
  setScrollLeftEnabled(true);
231
289
  setScrollRightEnabled(true);
232
290
  } else {
233
291
  setScrollLeftEnabled(false);
234
292
  setScrollRightEnabled(true);
235
293
  }
294
+
236
295
  setTranslateScroll(-moveX);
237
296
  setCountClick(moveX);
238
297
  };
298
+
239
299
  var handleOnKeyDown = function handleOnKeyDown(event) {
240
300
  switch (event.key) {
241
301
  case "Left":
@@ -243,33 +303,39 @@ var DxcTabs = function DxcTabs(_ref) {
243
303
  event.preventDefault();
244
304
  setPreviousTabFocus();
245
305
  break;
306
+
246
307
  case "Right":
247
308
  case "ArrowRight":
248
309
  event.preventDefault();
249
310
  setNextTabFocus();
250
311
  break;
312
+
251
313
  case "Enter":
252
314
  case " ":
253
315
  event.preventDefault();
254
316
  setCurrentFocusIndex(temporalFocusIndex);
255
317
  handleSelected(temporalFocusIndex);
256
318
  break;
319
+
257
320
  case "Tab":
258
321
  if (temporalFocusIndex !== currentFocusIndex) {
259
322
  event.preventDefault();
260
323
  setTemporalFocusIndex(currentFocusIndex);
261
324
  refTabs === null || refTabs === void 0 ? void 0 : refTabs.current[currentFocusIndex].focus();
262
325
  }
326
+
263
327
  handleSelected(currentFocusIndex);
264
328
  break;
265
329
  }
266
330
  };
331
+
267
332
  var isTabActive = function isTabActive(index) {
268
333
  return activeTabIndex >= 0 ? activeTabIndex === index : innerActiveTabIndex === index;
269
334
  };
335
+
270
336
  var isActiveIndicatorDisabled = firstFocus === -1 || tabs && activeTabIndex >= 0 && tabs[activeTabIndex].isDisabled;
271
337
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
272
- theme: colorsTheme["tabs"]
338
+ theme: colorsTheme.tabs
273
339
  }, /*#__PURE__*/_react["default"].createElement(TabsContainer, {
274
340
  margin: margin
275
341
  }, /*#__PURE__*/_react["default"].createElement(Underline, null), /*#__PURE__*/_react["default"].createElement(Tabs, {
@@ -277,9 +343,8 @@ var DxcTabs = function DxcTabs(_ref) {
277
343
  iconPosition: iconPosition
278
344
  }, /*#__PURE__*/_react["default"].createElement(ScrollIndicator, {
279
345
  onClick: scrollLeft,
280
- scrollLeftEnabled: scrollLeftEnabled,
281
346
  enabled: enabledIndicator,
282
- "aria-disabled": !scrollLeftEnabled,
347
+ disabled: !scrollLeftEnabled,
283
348
  "aria-label": translatedLabels.tabs.scrollLeft,
284
349
  tabIndex: scrollLeftEnabled ? tabIndex : -1,
285
350
  minHeightTabs: minHeightTabs
@@ -320,19 +385,20 @@ var DxcTabs = function DxcTabs(_ref) {
320
385
  "aria-disabled": isActiveIndicatorDisabled
321
386
  }))), /*#__PURE__*/_react["default"].createElement(ScrollIndicator, {
322
387
  onClick: scrollRight,
323
- scrollRightEnabled: scrollRightEnabled,
324
388
  enabled: enabledIndicator,
325
- "aria-disabled": !scrollRightEnabled,
389
+ disabled: !scrollRightEnabled,
326
390
  "aria-label": translatedLabels.tabs.scrollRight,
327
391
  tabIndex: scrollRightEnabled ? tabIndex : -1,
328
392
  minHeightTabs: minHeightTabs
329
393
  }, arrowIcons.right))));
330
394
  };
331
- var Underline = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n height: ", ";\n background-color: ", ";\n"])), function (props) {
395
+
396
+ var Underline = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n height: ", ";\n background-color: ", ";\n"])), function (props) {
332
397
  return props.theme.dividerThickness;
333
398
  }, function (props) {
334
399
  return props.theme.dividerColor;
335
400
  });
401
+
336
402
  var TabsContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
337
403
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
338
404
  }, function (props) {
@@ -344,6 +410,7 @@ var TabsContainer = _styledComponents["default"].div(_templateObject2 || (_templ
344
410
  }, function (props) {
345
411
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
346
412
  });
413
+
347
414
  var Tabs = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: ", ";\n height: ", ";\n display: flex;\n overflow: hidden;\n background-color: ", ";\n"])), function (props) {
348
415
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "48px" || "72px";
349
416
  }, function (props) {
@@ -351,16 +418,13 @@ var Tabs = _styledComponents["default"].div(_templateObject3 || (_templateObject
351
418
  }, function (props) {
352
419
  return props.theme.unselectedBackgroundColor;
353
420
  });
354
- var ScrollIndicator = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n background-color: #ffffff;\n font-size: 1.25rem;\n min-width: ", ";\n height: ", "px;\n padding: 0;\n justify-content: center;\n cursor: pointer;\n border-bottom: solid ", " ", ";\n box-sizing: border-box;\n border: none;\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n &:active {\n background-color: ", ";\n }\n svg {\n height: 20px;\n width: 20px;\n align-self: center;\n fill: ", ";\n visibility: visible;\n }\n &[aria-disabled=\"true\"] {\n pointer-events: none;\n cursor: default;\n svg {\n visibility: hidden;\n }\n &:focus {\n outline: none;\n }\n &:hover,\n &:active {\n background-color: transparent !important;\n }\n }\n"])), function (props) {
421
+
422
+ var ScrollIndicator = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: ", ";\n justify-content: center;\n min-width: ", ";\n height: ", "px;\n padding: 0;\n border: none;\n background-color: #ffffff;\n font-size: 1.25rem;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n &:active {\n background-color: ", ";\n }\n &:disabled {\n cursor: default;\n svg {\n visibility: hidden;\n }\n &:focus {\n outline: none;\n }\n &:hover,\n &:active {\n background-color: transparent !important;\n }\n }\n\n svg {\n align-self: center;\n height: 20px;\n width: 20px;\n fill: ", ";\n }\n"])), function (props) {
355
423
  return props.enabled ? "flex" : "none";
356
424
  }, function (props) {
357
425
  return props.theme.scrollButtonsWidth;
358
426
  }, function (props) {
359
427
  return props.minHeightTabs - 1;
360
- }, function (props) {
361
- return props.theme.dividerThickness;
362
- }, function (props) {
363
- return props.theme.dividerColor;
364
428
  }, function (props) {
365
429
  return "".concat(props.theme.hoverBackgroundColor, " !important");
366
430
  }, function (props) {
@@ -370,23 +434,28 @@ var ScrollIndicator = _styledComponents["default"].button(_templateObject4 || (_
370
434
  }, function (props) {
371
435
  return props.theme.unselectedFontColor;
372
436
  });
373
- var ActiveIndicator = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n left: ", ";\n width: ", ";\n background-color: ", ";\n bottom: 0;\n height: ", ";\n position: absolute;\n &[aria-disabled=\"true\"] {\n background-color: ", ";\n display: none;\n }\n"])), function (props) {
437
+
438
+ var ActiveIndicator = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n bottom: 0;\n left: ", ";\n width: ", ";\n height: ", ";\n background-color: ", ";\n &[aria-disabled=\"true\"] {\n background-color: ", ";\n display: none;\n }\n"])), function (props) {
374
439
  return "".concat(props.tabLeft, "px");
375
440
  }, function (props) {
376
441
  return "".concat(props.tabWidth, "px");
377
- }, function (props) {
378
- return props.theme.selectedUnderlineColor;
379
442
  }, function (props) {
380
443
  return props.theme.selectedUnderlineThickness;
444
+ }, function (props) {
445
+ return props.theme.selectedUnderlineColor;
381
446
  }, function (props) {
382
447
  return props.theme.disabledFontColor;
383
448
  });
384
- var TabsContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex: 1 1 auto;\n display: inline-block;\n position: relative;\n white-space: nowrap;\n overflow-x: scroll;\n ::-webkit-scrollbar {\n display: none;\n }\n"])));
449
+
450
+ var TabsContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1 1 auto;\n display: inline-block;\n position: relative;\n white-space: nowrap;\n overflow-x: scroll;\n ::-webkit-scrollbar {\n display: none;\n }\n"])));
451
+
385
452
  var TabList = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n min-height: ", "px;\n"])), function (props) {
386
453
  return props.minHeightTabs;
387
454
  });
455
+
388
456
  var TabsContentScroll = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n ", ";\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n"])), function (props) {
389
457
  return props.enabled ? "transform: translateX(".concat(props.translateScroll, "px)") : "transform: translateX(0px)";
390
458
  });
459
+
391
460
  var _default = DxcTabs;
392
461
  exports["default"] = _default;