@dxc-technology/halstack-react 0.0.0-c18d61a → 0.0.0-c1a6e05

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 (201) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1329 -5
  4. package/HalstackContext.js +117 -77
  5. package/accordion/Accordion.js +13 -24
  6. package/accordion/Accordion.stories.tsx +102 -13
  7. package/accordion/Accordion.test.js +1 -1
  8. package/accordion/types.d.ts +3 -3
  9. package/accordion-group/AccordionGroup.d.ts +4 -3
  10. package/accordion-group/AccordionGroup.js +23 -44
  11. package/accordion-group/AccordionGroup.test.js +1 -1
  12. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  13. package/accordion-group/AccordionGroupAccordion.js +43 -0
  14. package/accordion-group/types.d.ts +2 -2
  15. package/alert/Alert.js +4 -8
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +1 -1
  18. package/bleed/Bleed.stories.tsx +1 -0
  19. package/box/Box.js +3 -5
  20. package/box/Box.stories.tsx +15 -0
  21. package/box/Box.test.js +1 -1
  22. package/bulleted-list/BulletedList.js +4 -2
  23. package/bulleted-list/BulletedList.stories.tsx +7 -1
  24. package/bulleted-list/types.d.ts +31 -4
  25. package/button/Button.js +13 -16
  26. package/button/Button.stories.tsx +151 -9
  27. package/button/Button.test.js +1 -1
  28. package/button/types.d.ts +3 -3
  29. package/card/Card.js +12 -13
  30. package/card/Card.stories.tsx +12 -13
  31. package/card/Card.test.js +1 -1
  32. package/checkbox/Checkbox.d.ts +2 -2
  33. package/checkbox/Checkbox.js +18 -17
  34. package/checkbox/Checkbox.stories.tsx +131 -59
  35. package/checkbox/Checkbox.test.js +1 -1
  36. package/checkbox/types.d.ts +6 -2
  37. package/chip/Chip.js +28 -49
  38. package/chip/Chip.stories.tsx +121 -26
  39. package/chip/Chip.test.js +3 -5
  40. package/common/OpenSans.css +68 -80
  41. package/common/coreTokens.d.ts +146 -0
  42. package/common/coreTokens.js +167 -0
  43. package/common/utils.d.ts +1 -0
  44. package/common/utils.js +4 -4
  45. package/common/variables.d.ts +1482 -0
  46. package/common/variables.js +981 -1129
  47. package/date-input/Calendar.d.ts +4 -0
  48. package/date-input/Calendar.js +258 -0
  49. package/date-input/DateInput.js +134 -237
  50. package/date-input/DateInput.stories.tsx +199 -33
  51. package/date-input/DateInput.test.js +494 -138
  52. package/date-input/DatePicker.d.ts +4 -0
  53. package/date-input/DatePicker.js +146 -0
  54. package/date-input/Icons.d.ts +6 -0
  55. package/date-input/Icons.js +75 -0
  56. package/date-input/YearPicker.d.ts +4 -0
  57. package/date-input/YearPicker.js +126 -0
  58. package/date-input/types.d.ts +51 -0
  59. package/dialog/Dialog.js +61 -74
  60. package/dialog/Dialog.stories.tsx +211 -159
  61. package/dialog/Dialog.test.js +302 -3
  62. package/dialog/types.d.ts +2 -2
  63. package/dropdown/Dropdown.js +37 -37
  64. package/dropdown/Dropdown.stories.tsx +210 -84
  65. package/dropdown/Dropdown.test.js +20 -24
  66. package/dropdown/DropdownMenu.js +12 -18
  67. package/dropdown/DropdownMenuItem.js +4 -17
  68. package/dropdown/types.d.ts +3 -3
  69. package/file-input/FileInput.d.ts +2 -2
  70. package/file-input/FileInput.js +28 -52
  71. package/file-input/FileInput.stories.tsx +96 -17
  72. package/file-input/FileInput.test.js +14 -55
  73. package/file-input/FileItem.d.ts +2 -12
  74. package/file-input/FileItem.js +29 -41
  75. package/file-input/types.d.ts +17 -0
  76. package/flex/Flex.js +4 -2
  77. package/flex/Flex.stories.tsx +35 -26
  78. package/flex/types.d.ts +70 -5
  79. package/footer/Footer.js +6 -8
  80. package/footer/Footer.stories.tsx +91 -0
  81. package/footer/Footer.test.js +14 -26
  82. package/grid/Grid.d.ts +7 -0
  83. package/grid/Grid.js +91 -0
  84. package/grid/Grid.stories.tsx +219 -0
  85. package/grid/types.d.ts +115 -0
  86. package/header/Header.d.ts +3 -2
  87. package/header/Header.js +21 -23
  88. package/header/Header.stories.tsx +149 -6
  89. package/header/Header.test.js +2 -2
  90. package/header/types.d.ts +2 -2
  91. package/heading/Heading.js +1 -1
  92. package/heading/Heading.test.js +1 -1
  93. package/inset/Inset.stories.tsx +2 -1
  94. package/layout/ApplicationLayout.d.ts +3 -3
  95. package/layout/ApplicationLayout.js +1 -1
  96. package/layout/types.d.ts +2 -3
  97. package/link/Link.js +4 -4
  98. package/link/Link.stories.tsx +60 -0
  99. package/link/Link.test.js +2 -4
  100. package/link/types.d.ts +2 -2
  101. package/main.d.ts +3 -2
  102. package/main.js +9 -1
  103. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  104. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  105. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  106. package/{tabs-nav → nav-tabs}/Tab.js +37 -17
  107. package/nav-tabs/types.js +5 -0
  108. package/number-input/NumberInput.test.js +6 -7
  109. package/package.json +8 -13
  110. package/paginator/Icons.d.ts +5 -0
  111. package/paginator/Icons.js +16 -28
  112. package/paginator/Paginator.js +6 -14
  113. package/paginator/Paginator.stories.tsx +24 -0
  114. package/paginator/Paginator.test.js +44 -47
  115. package/paragraph/Paragraph.d.ts +3 -4
  116. package/paragraph/Paragraph.js +5 -5
  117. package/password-input/PasswordInput.test.js +1 -1
  118. package/progress-bar/ProgressBar.d.ts +2 -2
  119. package/progress-bar/ProgressBar.js +5 -5
  120. package/progress-bar/ProgressBar.stories.jsx +35 -2
  121. package/progress-bar/ProgressBar.test.js +1 -1
  122. package/progress-bar/types.d.ts +4 -3
  123. package/quick-nav/QuickNav.stories.tsx +14 -0
  124. package/radio-group/Radio.js +10 -10
  125. package/radio-group/RadioGroup.js +8 -10
  126. package/radio-group/RadioGroup.stories.tsx +131 -18
  127. package/radio-group/RadioGroup.test.js +1 -1
  128. package/resultsetTable/Icons.d.ts +7 -0
  129. package/resultsetTable/Icons.js +51 -0
  130. package/resultsetTable/ResultsetTable.js +49 -106
  131. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  132. package/resultsetTable/ResultsetTable.test.js +41 -64
  133. package/resultsetTable/types.d.ts +1 -1
  134. package/select/Listbox.d.ts +1 -1
  135. package/select/Listbox.js +5 -34
  136. package/select/Option.js +11 -24
  137. package/select/Select.js +56 -35
  138. package/select/Select.stories.tsx +494 -150
  139. package/select/Select.test.js +76 -81
  140. package/select/types.d.ts +2 -2
  141. package/sidenav/Icons.d.ts +7 -0
  142. package/sidenav/Icons.js +51 -0
  143. package/sidenav/Sidenav.d.ts +2 -2
  144. package/sidenav/Sidenav.js +66 -96
  145. package/sidenav/Sidenav.stories.tsx +165 -63
  146. package/sidenav/types.d.ts +21 -18
  147. package/slider/Slider.d.ts +2 -2
  148. package/slider/Slider.js +11 -11
  149. package/slider/Slider.stories.tsx +57 -0
  150. package/slider/Slider.test.js +1 -1
  151. package/slider/types.d.ts +6 -2
  152. package/spinner/Spinner.js +17 -23
  153. package/spinner/Spinner.stories.jsx +53 -27
  154. package/spinner/Spinner.test.js +1 -1
  155. package/switch/Switch.d.ts +3 -3
  156. package/switch/Switch.js +7 -6
  157. package/switch/Switch.stories.tsx +33 -0
  158. package/switch/Switch.test.js +1 -1
  159. package/switch/types.d.ts +8 -3
  160. package/table/Table.js +2 -2
  161. package/table/Table.stories.jsx +80 -1
  162. package/table/Table.test.js +2 -2
  163. package/tabs/Tab.js +12 -15
  164. package/tabs/Tabs.js +11 -17
  165. package/tabs/Tabs.stories.tsx +45 -5
  166. package/tabs/Tabs.test.js +4 -5
  167. package/tabs/types.d.ts +2 -2
  168. package/tag/Tag.js +7 -9
  169. package/tag/Tag.stories.tsx +14 -1
  170. package/tag/Tag.test.js +1 -1
  171. package/text-input/Suggestion.js +34 -7
  172. package/text-input/TextInput.js +11 -15
  173. package/text-input/TextInput.stories.tsx +93 -5
  174. package/text-input/TextInput.test.js +587 -635
  175. package/textarea/Textarea.js +3 -4
  176. package/textarea/Textarea.stories.jsx +60 -1
  177. package/textarea/Textarea.test.js +2 -4
  178. package/toggle-group/ToggleGroup.d.ts +2 -2
  179. package/toggle-group/ToggleGroup.js +7 -4
  180. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  181. package/toggle-group/ToggleGroup.test.js +1 -1
  182. package/toggle-group/types.d.ts +1 -1
  183. package/typography/Typography.d.ts +2 -2
  184. package/typography/Typography.js +14 -113
  185. package/typography/Typography.stories.tsx +1 -1
  186. package/useTheme.d.ts +1234 -1
  187. package/useTheme.js +1 -1
  188. package/useTranslatedLabels.d.ts +84 -1
  189. package/utils/BaseTypography.d.ts +21 -0
  190. package/utils/BaseTypography.js +108 -0
  191. package/utils/FocusLock.d.ts +13 -0
  192. package/utils/FocusLock.js +138 -0
  193. package/wizard/Wizard.js +2 -2
  194. package/wizard/Wizard.stories.tsx +20 -0
  195. package/wizard/Wizard.test.js +1 -1
  196. package/wizard/types.d.ts +5 -6
  197. package/common/RequiredComponent.js +0 -32
  198. /package/{tabs-nav → grid}/types.js +0 -0
  199. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  200. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  201. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
@@ -4,12 +4,20 @@ import { BackgroundColorProvider } from "../BackgroundColorContext";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
6
  import DarkContainer from "../../.storybook/components/DarkSection";
7
+ import { HalstackProvider } from "../HalstackContext";
7
8
 
8
9
  export default {
9
10
  title: "Switch",
10
11
  component: DxcSwitch,
11
12
  };
12
13
 
14
+ const opinionatedTheme = {
15
+ switch: {
16
+ checkedBaseColor: "#5f249f",
17
+ fontColor: "#000000",
18
+ },
19
+ };
20
+
13
21
  export const Chromatic = () => (
14
22
  <>
15
23
  <ExampleContainer>
@@ -134,5 +142,30 @@ export const Chromatic = () => (
134
142
  <Title title="FitContent size" theme="light" level={4} />
135
143
  <DxcSwitch label="FitContent" size="fitContent" />
136
144
  </ExampleContainer>
145
+ <Title title="Opinionated theme" theme="light" level={2} />
146
+ <ExampleContainer>
147
+ <Title title="Checked" theme="light" level={4} />
148
+ <HalstackProvider theme={opinionatedTheme}>
149
+ <DxcSwitch label="Switch" defaultChecked />
150
+ </HalstackProvider>
151
+ </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="Default" theme="light" level={4} />
154
+ <HalstackProvider theme={opinionatedTheme}>
155
+ <DxcSwitch label="Switch" />
156
+ </HalstackProvider>
157
+ </ExampleContainer>
158
+ <ExampleContainer>
159
+ <Title title="Disabled" theme="light" level={4} />
160
+ <HalstackProvider theme={opinionatedTheme}>
161
+ <DxcSwitch label="Switch" disabled />
162
+ </HalstackProvider>
163
+ </ExampleContainer>
164
+ <ExampleContainer>
165
+ <Title title="Disabled checked" theme="light" level={4} />
166
+ <HalstackProvider theme={opinionatedTheme}>
167
+ <DxcSwitch label="Switch" disabled defaultChecked />
168
+ </HalstackProvider>
169
+ </ExampleContainer>
137
170
  </>
138
171
  );
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Switch = _interopRequireDefault(require("./Switch"));
9
+ var _Switch = _interopRequireDefault(require("./Switch.tsx"));
10
10
 
11
11
  describe("Switch component tests", function () {
12
12
  test("Switch renders with correct text", function () {
package/switch/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- export declare type Margin = {
1
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ declare type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- export declare type SwitchPropsType = {
8
+ declare type Props = {
9
9
  /**
10
10
  * Initial state of the switch, only when it is uncontrolled.
11
11
  */
@@ -59,3 +59,8 @@ export declare type SwitchPropsType = {
59
59
  */
60
60
  tabIndex?: number;
61
61
  };
62
+ /**
63
+ * Reference to the component.
64
+ */
65
+ export declare type RefType = HTMLDivElement;
66
+ export default Props;
package/table/Table.js CHANGED
@@ -17,9 +17,9 @@ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
- var _variables = require("../common/variables.js");
20
+ var _variables = require("../common/variables");
21
21
 
22
- var _utils = require("../common/utils.js");
22
+ var _utils = require("../common/utils");
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
@@ -2,12 +2,21 @@ import React from "react";
2
2
  import DxcTable from "./Table";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  export default {
7
8
  title: "Table",
8
9
  component: DxcTable,
9
10
  };
10
11
 
12
+ const opinionatedTheme = {
13
+ table: {
14
+ baseColor: "#5f249f",
15
+ headerFontColor: "#ffffff",
16
+ cellFontColor: "#000000",
17
+ },
18
+ };
19
+
11
20
  export const Chromatic = () => (
12
21
  <>
13
22
  <ExampleContainer>
@@ -271,7 +280,77 @@ export const Chromatic = () => (
271
280
  <td>Cell 9</td>
272
281
  </tr>
273
282
  </DxcTable>
274
- <hr />
283
+ </ExampleContainer>
284
+ <Title title="Opinionated theme" theme="light" level={2} />
285
+ <ExampleContainer>
286
+ <HalstackProvider theme={opinionatedTheme}>
287
+ <DxcTable>
288
+ <tr>
289
+ <th>
290
+ header<br></br>subheader
291
+ </th>
292
+ <th>
293
+ header<br></br>subheader
294
+ </th>
295
+ <th>
296
+ header<br></br>subheader
297
+ </th>
298
+ </tr>
299
+ <tr>
300
+ <td>
301
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
302
+ dolore magna aliqua.
303
+ </td>
304
+ <td>
305
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
306
+ consequat.
307
+ </td>
308
+ <td>
309
+ Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
310
+ </td>
311
+ </tr>
312
+ <tr>
313
+ <td>cell data</td>
314
+ <td>cell data</td>
315
+ <td>cell data</td>
316
+ </tr>
317
+ <tr>
318
+ <td>cell data</td>
319
+ <td>cell data</td>
320
+ <td>cell data</td>
321
+ </tr>
322
+ <tr>
323
+ <td>cell data</td>
324
+ <td>cell data</td>
325
+ <td>cell data</td>
326
+ </tr>
327
+ <tr>
328
+ <td>cell data</td>
329
+ <td>cell data</td>
330
+ <td>cell data</td>
331
+ </tr>
332
+ <tr>
333
+ <td>cell data</td>
334
+ <td>cell data</td>
335
+ <td>cell data</td>
336
+ </tr>
337
+ <tr>
338
+ <td>cell data</td>
339
+ <td>cell data</td>
340
+ <td>cell data</td>
341
+ </tr>
342
+ <tr>
343
+ <td>cell data</td>
344
+ <td>cell data</td>
345
+ <td>cell data</td>
346
+ </tr>
347
+ <tr>
348
+ <td>cell data</td>
349
+ <td>cell data</td>
350
+ <td>cell data</td>
351
+ </tr>
352
+ </DxcTable>
353
+ </HalstackProvider>
275
354
  </ExampleContainer>
276
355
  </>
277
356
  );
@@ -6,11 +6,11 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Table = _interopRequireDefault(require("./Table"));
9
+ var _Table = _interopRequireDefault(require("./Table.tsx"));
10
10
 
11
11
  describe("Table component tests", function () {
12
12
  test("Table renders with correct content", function () {
13
- var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6")))),
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6"))))),
14
14
  getByText = _render.getByText;
15
15
 
16
16
  expect(getByText("header-1")).toBeTruthy();
package/tabs/Tab.js CHANGED
@@ -17,11 +17,11 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
17
 
18
18
  var _Badge = _interopRequireDefault(require("../badge/Badge"));
19
19
 
20
- var _Typography = _interopRequireDefault(require("../typography/Typography"));
20
+ var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
21
21
 
22
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
24
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
25
25
 
26
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
27
 
@@ -42,7 +42,6 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
42
42
  type: "button",
43
43
  tabIndex: tabIndex,
44
44
  disabled: tab.isDisabled,
45
- "aria-disabled": tab.isDisabled,
46
45
  "aria-selected": active,
47
46
  hasLabelAndIcon: hasLabelAndIcon,
48
47
  iconPosition: iconPosition,
@@ -57,15 +56,15 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
57
56
  _onMouseLeave();
58
57
  }
59
58
  }, /*#__PURE__*/_react["default"].createElement(MainLabelContainer, {
60
- hasBadge: tab.notificationNumber,
59
+ notificationNumber: tab.notificationNumber,
61
60
  hasLabelAndIcon: hasLabelAndIcon,
62
61
  iconPosition: iconPosition
63
62
  }, tab.icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
64
63
  hasLabelAndIcon: hasLabelAndIcon,
65
64
  iconPosition: iconPosition
66
- }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement(TabIcon, {
65
+ }, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
67
66
  src: tab.icon
68
- }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
67
+ }) : tab.icon), /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
69
68
  color: tab.isDisabled ? colorsTheme.tabs.disabledFontColor : active ? colorsTheme.tabs.selectedFontColor : colorsTheme.tabs.unselectedFontColor,
70
69
  fontFamily: colorsTheme.tabs.fontFamily,
71
70
  fontSize: colorsTheme.tabs.fontSize,
@@ -74,15 +73,15 @@ var Tab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
74
73
  textAlign: "center",
75
74
  letterSpacing: "0.025em",
76
75
  lineHeight: "1.715em"
77
- }, tab.label)), tab.notificationNumber && tab.notificationNumber && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
76
+ }, tab.label)), tab.notificationNumber && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
78
77
  hasLabelAndIcon: hasLabelAndIcon,
79
78
  iconPosition: iconPosition
80
79
  }, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
81
- notificationText: tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
80
+ notificationText: typeof tab.notificationNumber === "number" && tab.notificationNumber > 99 ? "+99" : tab.notificationNumber
82
81
  })));
83
82
  });
84
83
 
85
- var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n svg {\n color: ", ";\n }\n\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg {\n color: ", ";\n }\n opacity: 1;\n }\n\n &[aria-disabled=\"true\"] {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n svg {\n color: ", ";\n }\n outline: none !important;\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
84
+ var TabContainer = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-transform: ", ";\n overflow: hidden;\n flex-shrink: 0;\n border: 0;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n user-select: none;\n vertical-align: middle;\n justify-content: center;\n min-width: 90px;\n max-width: 360px;\n padding: ", ";\n height: ", ";\n min-height: ", ";\n background-color: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 1px;\n outline-offset: -1px;\n }\n svg {\n color: ", ";\n }\n\n &[aria-selected=\"true\"] {\n background-color: ", ";\n svg {\n color: ", ";\n }\n opacity: 1;\n }\n\n &:disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n font-style: ", ";\n outline: none !important;\n\n svg {\n color: ", ";\n }\n > div {\n opacity: 0.5;\n }\n }\n"])), function (props) {
86
85
  return props.theme.fontTextTransform;
87
86
  }, function (props) {
88
87
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "12px 16px" || "8px 16px";
@@ -92,14 +91,14 @@ var TabContainer = _styledComponents["default"].button(_templateObject || (_temp
92
91
  return (!props.hasLabelAndIcon || props.hasLabelAndIcon && props.iconPosition !== "top") && "47px" || "71px";
93
92
  }, function (props) {
94
93
  return props.theme.unselectedBackgroundColor;
95
- }, function (props) {
96
- return props.theme.unselectedIconColor;
97
94
  }, function (props) {
98
95
  return "".concat(props.theme.hoverBackgroundColor, " !important");
99
96
  }, function (props) {
100
97
  return "".concat(props.theme.pressedBackgroundColor, " !important");
101
98
  }, function (props) {
102
99
  return props.theme.focusOutline;
100
+ }, function (props) {
101
+ return props.theme.unselectedIconColor;
103
102
  }, function (props) {
104
103
  return props.theme.selectedBackgroundColor;
105
104
  }, function (props) {
@@ -119,17 +118,15 @@ var BadgeContainer = _styledComponents["default"].div(_templateObject2 || (_temp
119
118
  var MainLabelContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n align-items: center;\n margin-left: ", ";\n"])), function (props) {
120
119
  return props.hasLabelAndIcon && props.iconPosition === "top" && "column" || "row";
121
120
  }, function (props) {
122
- return props.hasBadge ? typeof props.hasBadge === "number" ? "calc(".concat(props.theme.badgeWidthWithNotificationNumber, " + 12px)") : "calc(".concat(props.theme.badgeWidth, " + 12px)") : "unset";
121
+ return props.notificationNumber ? typeof props.notificationNumber === "number" ? "calc(".concat(props.theme.badgeWidthWithNotificationNumber, " + 12px)") : "calc(".concat(props.theme.badgeWidth, " + 12px)") : "unset";
123
122
  });
124
123
 
125
- var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n margin-bottom: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n align-items: center;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
124
+ var TabIconContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-bottom: ", ";\n margin-right: ", ";\n\n img,\n svg {\n height: 22px;\n width: 22px;\n }\n"])), function (props) {
126
125
  return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
127
126
  }, function (props) {
128
127
  return props.hasLabelAndIcon && props.iconPosition === "left" && "12px" || "";
129
128
  });
130
129
 
131
- var TabIcon = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n display: inline-flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n"])));
132
-
133
130
  var _default = /*#__PURE__*/_react["default"].memo(Tab);
134
131
 
135
132
  exports["default"] = _default;
package/tabs/Tabs.js CHANGED
@@ -19,7 +19,7 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _variables = require("../common/variables.js");
22
+ var _variables = require("../common/variables");
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
@@ -193,7 +193,7 @@ var DxcTabs = function DxcTabs(_ref) {
193
193
  var _refTabList$current3;
194
194
 
195
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;
196
- var moveX;
196
+ var moveX = 0;
197
197
 
198
198
  if (countClick <= scrollWidth) {
199
199
  moveX = 0;
@@ -213,7 +213,7 @@ var DxcTabs = function DxcTabs(_ref) {
213
213
  var _refTabList$current4, _refTabList$current5;
214
214
 
215
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;
216
- var moveX;
216
+ var moveX = 0;
217
217
 
218
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) {
219
219
  var _refTabList$current6;
@@ -343,9 +343,8 @@ var DxcTabs = function DxcTabs(_ref) {
343
343
  iconPosition: iconPosition
344
344
  }, /*#__PURE__*/_react["default"].createElement(ScrollIndicator, {
345
345
  onClick: scrollLeft,
346
- scrollLeftEnabled: scrollLeftEnabled,
347
346
  enabled: enabledIndicator,
348
- "aria-disabled": !scrollLeftEnabled,
347
+ disabled: !scrollLeftEnabled,
349
348
  "aria-label": translatedLabels.tabs.scrollLeft,
350
349
  tabIndex: scrollLeftEnabled ? tabIndex : -1,
351
350
  minHeightTabs: minHeightTabs
@@ -386,16 +385,15 @@ var DxcTabs = function DxcTabs(_ref) {
386
385
  "aria-disabled": isActiveIndicatorDisabled
387
386
  }))), /*#__PURE__*/_react["default"].createElement(ScrollIndicator, {
388
387
  onClick: scrollRight,
389
- scrollRightEnabled: scrollRightEnabled,
390
388
  enabled: enabledIndicator,
391
- "aria-disabled": !scrollRightEnabled,
389
+ disabled: !scrollRightEnabled,
392
390
  "aria-label": translatedLabels.tabs.scrollRight,
393
391
  tabIndex: scrollRightEnabled ? tabIndex : -1,
394
392
  minHeightTabs: minHeightTabs
395
393
  }, arrowIcons.right))));
396
394
  };
397
395
 
398
- 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 z-index: 1;\n"])), function (props) {
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) {
399
397
  return props.theme.dividerThickness;
400
398
  }, function (props) {
401
399
  return props.theme.dividerColor;
@@ -421,16 +419,12 @@ var Tabs = _styledComponents["default"].div(_templateObject3 || (_templateObject
421
419
  return props.theme.unselectedBackgroundColor;
422
420
  });
423
421
 
424
- 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) {
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) {
425
423
  return props.enabled ? "flex" : "none";
426
424
  }, function (props) {
427
425
  return props.theme.scrollButtonsWidth;
428
426
  }, function (props) {
429
427
  return props.minHeightTabs - 1;
430
- }, function (props) {
431
- return props.theme.dividerThickness;
432
- }, function (props) {
433
- return props.theme.dividerColor;
434
428
  }, function (props) {
435
429
  return "".concat(props.theme.hoverBackgroundColor, " !important");
436
430
  }, function (props) {
@@ -441,19 +435,19 @@ var ScrollIndicator = _styledComponents["default"].button(_templateObject4 || (_
441
435
  return props.theme.unselectedFontColor;
442
436
  });
443
437
 
444
- var ActiveIndicator = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n left: ", ";\n width: ", ";\n z-index: 2;\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) {
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) {
445
439
  return "".concat(props.tabLeft, "px");
446
440
  }, function (props) {
447
441
  return "".concat(props.tabWidth, "px");
448
- }, function (props) {
449
- return props.theme.selectedUnderlineColor;
450
442
  }, function (props) {
451
443
  return props.theme.selectedUnderlineThickness;
444
+ }, function (props) {
445
+ return props.theme.selectedUnderlineColor;
452
446
  }, function (props) {
453
447
  return props.theme.disabledFontColor;
454
448
  });
455
449
 
456
- var TabsContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n z-index: 1;\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"])));
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"])));
457
451
 
458
452
  var TabList = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n min-height: ", "px;\n"])), function (props) {
459
453
  return props.minHeightTabs;
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import DxcTabs from "./Tabs";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  export default {
7
8
  title: "Tabs",
@@ -9,9 +10,8 @@ export default {
9
10
  };
10
11
 
11
12
  const iconSVG = (
12
- <svg viewBox="0 0 24 24" fill="currentColor">
13
- <path d="M0 0h24v24H0z" fill="none" />
14
- <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
13
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" height="20" width="20" fill="currentColor">
14
+ <path d="m10 17-1.042-.938q-2.083-1.854-3.437-3.177-1.354-1.323-2.136-2.354Q2.604 9.5 2.302 8.646 2 7.792 2 6.896q0-1.854 1.271-3.125T6.396 2.5q1.021 0 1.979.438.958.437 1.625 1.229.667-.792 1.625-1.229.958-.438 1.979-.438 1.854 0 3.125 1.271T18 6.896q0 .896-.292 1.729-.291.833-1.073 1.854-.781 1.021-2.145 2.365-1.365 1.344-3.49 3.26Zm0-2.021q1.938-1.729 3.188-2.948 1.25-1.219 1.989-2.125.74-.906 1.031-1.614.292-.709.292-1.396 0-1.229-.833-2.063Q14.833 4 13.604 4q-.729 0-1.364.302-.636.302-1.094.844L10.417 6h-.834l-.729-.854q-.458-.542-1.114-.844Q7.083 4 6.396 4q-1.229 0-2.063.833-.833.834-.833 2.063 0 .687.271 1.364.271.678.989 1.573.719.896 1.98 2.125Q8 13.188 10 14.979Zm0-5.5Z" />
15
15
  </svg>
16
16
  );
17
17
 
@@ -74,10 +74,20 @@ const tabsNotification = tabs.map((tab, index) => ({
74
74
  notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 200),
75
75
  }));
76
76
 
77
- const tabsIcon = tabs.map((tab) => ({ ...tab, icon: iconSVG }));
77
+ const tabsIcon = tabs.map((tab, index) =>
78
+ index <= tabs.length / 2
79
+ ? { ...tab, icon: "https://cdn-icons-png.flaticon.com/512/5039/5039041.png" }
80
+ : { ...tab, icon: iconSVG }
81
+ );
78
82
 
79
83
  const tabsNotificationIcon = tabsNotification.map((tab) => ({ ...tab, icon: iconSVG }));
80
84
 
85
+ const opinionatedTheme = {
86
+ tabs: {
87
+ baseColor: "#5f249f",
88
+ },
89
+ };
90
+
81
91
  export const Chromatic = () => (
82
92
  <>
83
93
  <ExampleContainer>
@@ -152,7 +162,37 @@ export const Chromatic = () => (
152
162
  <ExampleContainer>
153
163
  <Title title="Xxlarge margin" theme="light" level={4} />
154
164
  <DxcTabs tabs={tabs} margin="xxlarge" />
155
- <hr />
165
+ </ExampleContainer>
166
+ <Title title="Opinionated theme" theme="light" level={2} />
167
+ <ExampleContainer>
168
+ <Title title="With icon and notification" theme="light" level={4} />
169
+ <HalstackProvider theme={opinionatedTheme}>
170
+ <DxcTabs tabs={tabsNotificationIcon} />
171
+ </HalstackProvider>
172
+ </ExampleContainer>
173
+ <ExampleContainer>
174
+ <Title title="Disabled" theme="light" level={4} />
175
+ <HalstackProvider theme={opinionatedTheme}>
176
+ <DxcTabs activeTabIndex={0} tabs={disabledTabs} />
177
+ </HalstackProvider>
178
+ </ExampleContainer>
179
+ <ExampleContainer pseudoState="pseudo-hover">
180
+ <Title title="Hovered" theme="light" level={4} />
181
+ <HalstackProvider theme={opinionatedTheme}>
182
+ <DxcTabs tabs={tabs} />
183
+ </HalstackProvider>
184
+ </ExampleContainer>
185
+ <ExampleContainer pseudoState="pseudo-focus">
186
+ <Title title="Focused" theme="light" level={4} />
187
+ <HalstackProvider theme={opinionatedTheme}>
188
+ <DxcTabs tabs={tabs} />
189
+ </HalstackProvider>
190
+ </ExampleContainer>
191
+ <ExampleContainer pseudoState="pseudo-active">
192
+ <Title title="Actived" theme="light" level={4} />
193
+ <HalstackProvider theme={opinionatedTheme}>
194
+ <DxcTabs tabs={tabs} />
195
+ </HalstackProvider>
156
196
  </ExampleContainer>
157
197
  </>
158
198
  );
package/tabs/Tabs.test.js CHANGED
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Tabs = _interopRequireDefault(require("./Tabs"));
9
+ var _Tabs = _interopRequireDefault(require("./Tabs.tsx"));
10
10
 
11
11
  var sampleTabs = [{
12
12
  label: "Tab-1"
@@ -17,13 +17,13 @@ var sampleTabs = [{
17
17
  }];
18
18
  var sampleTabsWithBadge = [{
19
19
  label: "Tab-1",
20
- notificationNumber: "10"
20
+ notificationNumber: 10
21
21
  }, {
22
22
  label: "Tab-2",
23
- notificationNumber: "20"
23
+ notificationNumber: 20
24
24
  }, {
25
25
  label: "Tab-3",
26
- notificationNumber: "101"
26
+ notificationNumber: 101
27
27
  }];
28
28
  var sampleTabsMiddleDisabled = [{
29
29
  label: "Tab-1"
@@ -149,7 +149,6 @@ describe("Tabs component tests", function () {
149
149
  onTabClick: onTabClick,
150
150
  activeTabIndex: 0
151
151
  })),
152
- getByText = _render7.getByText,
153
152
  getAllByRole = _render7.getAllByRole;
154
153
 
155
154
  var tabs = getAllByRole("tab");
package/tabs/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- export declare type Margin = {
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
package/tag/Tag.js CHANGED
@@ -19,11 +19,11 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _variables = require("../common/variables.js");
22
+ var _variables = require("../common/variables");
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
- var _utils = require("../common/utils.js");
26
+ var _utils = require("../common/utils");
27
27
 
28
28
  var _Box = _interopRequireDefault(require("../box/Box"));
29
29
 
@@ -64,9 +64,7 @@ var DxcTag = function DxcTag(_ref) {
64
64
  var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
65
65
  size: size,
66
66
  shadowDepth: isHovered && (onClick || linkHref) && 2 || 1
67
- }, /*#__PURE__*/_react["default"].createElement(TagContent, {
68
- labelPosition: labelPosition
69
- }, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
67
+ }, /*#__PURE__*/_react["default"].createElement(TagContent, null, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
70
68
  iconBgColor: iconBgColor
71
69
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(TagIcon, {
72
70
  src: icon
@@ -114,16 +112,16 @@ var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templat
114
112
  return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
115
113
  }, function (_ref4) {
116
114
  var margin = _ref4.margin;
117
- return margin && margin.top ? _variables.spaces[margin.top] : "";
115
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.top ? _variables.spaces[margin.top] : "";
118
116
  }, function (_ref5) {
119
117
  var margin = _ref5.margin;
120
- return margin && margin.right ? _variables.spaces[margin.right] : "";
118
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.right ? _variables.spaces[margin.right] : "";
121
119
  }, function (_ref6) {
122
120
  var margin = _ref6.margin;
123
- return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
121
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.bottom ? _variables.spaces[margin.bottom] : "";
124
122
  }, function (_ref7) {
125
123
  var margin = _ref7.margin;
126
- return margin && margin.left ? _variables.spaces[margin.left] : "";
124
+ return margin && (0, _typeof2["default"])(margin) === "object" && margin.left ? _variables.spaces[margin.left] : "";
127
125
  }, function (props) {
128
126
  return calculateWidth(props.margin, props.size);
129
127
  }, function (props) {
@@ -3,6 +3,7 @@ import { userEvent, within } from "@storybook/testing-library";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
5
  import DxcTag from "./Tag";
6
+ import { HalstackProvider } from "../HalstackContext";
6
7
 
7
8
  export default {
8
9
  title: "Tag",
@@ -23,6 +24,13 @@ const largeIcon = (
23
24
  </svg>
24
25
  );
25
26
 
27
+ const opinionatedTheme = {
28
+ tag: {
29
+ fontColor: "#000000",
30
+ iconColor: "#ffffff",
31
+ },
32
+ };
33
+
26
34
  export const Chromatic = () => (
27
35
  <>
28
36
  <ExampleContainer>
@@ -124,7 +132,12 @@ export const Chromatic = () => (
124
132
  <Title title="FitContent size" theme="light" level={4} />
125
133
  <DxcTag label="FitContent" size="fitContent" icon={icon} />
126
134
  </ExampleContainer>
127
- <hr />
135
+ <Title title="Opinionated theme" theme="light" level={2} />
136
+ <ExampleContainer>
137
+ <HalstackProvider theme={opinionatedTheme}>
138
+ <DxcTag label="Tag" icon={icon} />
139
+ </HalstackProvider>
140
+ </ExampleContainer>
128
141
  </>
129
142
  );
130
143
 
package/tag/Tag.test.js CHANGED
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Tag = _interopRequireDefault(require("./Tag"));
9
+ var _Tag = _interopRequireDefault(require("./Tag.tsx"));
10
10
 
11
11
  describe("Tag component tests", function () {
12
12
  test("Tag renders with correct label", function () {