@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
@@ -1,14 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
3
  declare type SidenavPropsType = {
4
- /**
5
- * The area inside the sidenav. This area can be used to render the content inside the sidenav.
6
- */
7
- children: React.ReactNode;
8
4
  /**
9
5
  * The area assigned to render the sidenav title. It is highly recommended to use the sidenav title.
10
6
  */
11
7
  title?: React.ReactNode;
8
+ /**
9
+ * The area inside the sidenav. This area can be used to render the content inside the sidenav.
10
+ */
11
+ children: React.ReactNode;
12
12
  };
13
13
  export declare type SidenavTitlePropsType = {
14
14
  /**
@@ -23,28 +23,25 @@ export declare type SidenavSectionPropsType = {
23
23
  children: React.ReactNode;
24
24
  };
25
25
  export declare type SidenavGroupPropsType = {
26
- /**
27
- * The area inside the sidenav group. This area can be used to render sidenav links.
28
- */
29
- children: React.ReactNode;
30
26
  /**
31
27
  * The title of the sidenav group.
32
28
  */
33
29
  title?: string;
34
30
  /**
35
- * If true the sidenav group title will be considered a button and the group will be collapsable.
31
+ * If true, the sidenav group will be a button that will allow you to collapse the links contained within it.
32
+ * In addition, if it's collapsed and contains the currently selected link, the group title will also be marked as selected.
36
33
  */
37
34
  collapsable?: boolean;
38
35
  /**
39
36
  * The icon to be displayed next to the title of the group.
40
37
  */
41
38
  icon?: string | SVG;
42
- };
43
- export declare type SidenavLinkPropsType = {
44
39
  /**
45
- * Value of the tabindex.
40
+ * The area inside the sidenav group. This area can be used to render sidenav links.
46
41
  */
47
- tabIndex?: number;
42
+ children: React.ReactNode;
43
+ };
44
+ export declare type SidenavLinkPropsType = {
48
45
  /**
49
46
  * Page to be opened when the user clicks on the link.
50
47
  */
@@ -58,16 +55,22 @@ export declare type SidenavLinkPropsType = {
58
55
  */
59
56
  icon?: string | SVG;
60
57
  /**
61
- * If true, the link will be marked as selected. This can also affect the group if it is closed to indicate that one of its links is selected.
58
+ * If true, the link will be marked as selected. Moreover, in that same case,
59
+ * if it is contained within a collapsed group, and consequently, the currently selected link is not visible,
60
+ * the group title will appear as selected too.
62
61
  */
63
62
  selected?: boolean;
64
63
  /**
65
- * The area inside the sidenav link.
64
+ * This function will be called when the user clicks the link and the event will be passed to this function.
66
65
  */
67
- children: string;
66
+ onClick?: ($event: React.MouseEvent<HTMLAnchorElement>) => void;
68
67
  /**
69
- * This function will be called when the user clicks the link.
68
+ * Value of the tabindex.
69
+ */
70
+ tabIndex?: number;
71
+ /**
72
+ * The area inside the sidenav link.
70
73
  */
71
- onClick?: ($event: any) => void;
74
+ children: React.ReactNode;
72
75
  };
73
76
  export default SidenavPropsType;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import SliderPropsType from "./types";
3
- declare const DxcSlider: ({ label, name, defaultValue, value, helperText, minValue, maxValue, step, showLimitsValues, showInput, disabled, marks, onChange, onDragEnd, labelFormatCallback, margin, size, }: SliderPropsType) => JSX.Element;
3
+ declare const DxcSlider: React.ForwardRefExoticComponent<SliderPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcSlider;
package/slider/Slider.js CHANGED
@@ -21,9 +21,9 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
22
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
23
23
 
24
- var _variables = require("../common/variables.js");
24
+ var _variables = require("../common/variables");
25
25
 
26
- var _utils = require("../common/utils.js");
26
+ var _utils = require("../common/utils");
27
27
 
28
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
29
 
@@ -37,7 +37,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
37
37
 
38
38
  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; }
39
39
 
40
- var DxcSlider = function DxcSlider(_ref) {
40
+ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
41
41
  var _ref$label = _ref.label,
42
42
  label = _ref$label === void 0 ? "" : _ref$label,
43
43
  _ref$name = _ref.name,
@@ -147,7 +147,8 @@ var DxcSlider = function DxcSlider(_ref) {
147
147
  theme: colorsTheme.slider
148
148
  }, /*#__PURE__*/_react["default"].createElement(Container, {
149
149
  margin: margin,
150
- size: size
150
+ size: size,
151
+ ref: ref
151
152
  }, /*#__PURE__*/_react["default"].createElement(Label, {
152
153
  id: labelId,
153
154
  disabled: disabled,
@@ -165,7 +166,6 @@ var DxcSlider = function DxcSlider(_ref) {
165
166
  min: minValue,
166
167
  max: maxValue,
167
168
  step: step,
168
- marks: marks,
169
169
  disabled: disabled,
170
170
  "aria-labelledby": labelId,
171
171
  "aria-orientation": "horizontal",
@@ -189,7 +189,7 @@ var DxcSlider = function DxcSlider(_ref) {
189
189
  onChange: handlerInputChange,
190
190
  size: "fillParent"
191
191
  })))));
192
- };
192
+ });
193
193
 
194
194
  var sizes = {
195
195
  medium: "360px",
@@ -251,10 +251,10 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
251
251
  return props.theme.helperTextLineHeight;
252
252
  });
253
253
 
254
- var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 240px;\n height: ", ";\n display: inline-block;\n vertical-align: middle;\n -webkit-appearance: none;\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 5px;\n z-index: 1;\n cursor: ", ";\n &::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n margin: 0px -8px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n ", "\n }\n &:hover {\n ", "\n }\n }\n &::-moz-range-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n &::-moz-range-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n background: ", ";\n transform: scale(1.16667);\n }\n &:hover {\n ", "\n }\n }\n &:focus {\n outline: none;\n &::-webkit-slider-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n &::-moz-range-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n }\n"])), function (props) {
254
+ var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 240px;\n height: ", ";\n display: inline-block;\n vertical-align: middle;\n -webkit-appearance: none;\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 5px;\n cursor: ", ";\n &::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n margin: 0px -8px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n ", "\n }\n &:hover {\n ", "\n }\n }\n &::-moz-range-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n &::-moz-range-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n background: ", ";\n transform: scale(1.16667);\n }\n &:hover {\n ", "\n }\n }\n &:focus {\n outline: none;\n &::-webkit-slider-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n &::-moz-range-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n }\n"])), function (props) {
255
255
  return props.theme.trackLineThickness;
256
256
  }, function (props) {
257
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark + "61" : props.theme.disabledTotalLineColor + "61" : props.backgroundType === "dark" ? props.theme.totalLineColorOnDark + "61" : props.theme.totalLineColor + "61";
257
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark + "61" : props.theme.disabledTotalLineColor + "61" : props.backgroundType === "dark" ? props.theme.totalLineColorOnDark + "61" : props.theme.totalLineColor;
258
258
  }, function (props) {
259
259
  return props.disabled ? props.backgroundType === "dark" ? "linear-gradient(".concat(props.theme.disabledTrackLineColorOnDark, ", ").concat(props.theme.disabledTrackLineColorOnDark, ")") : "linear-gradient(".concat(props.theme.disabledTrackLineColor, ", ").concat(props.theme.disabledTrackLineColor, ")") : props.backgroundType === "dark" ? "linear-gradient(".concat(props.theme.trackLineColorOnDark, ", ").concat(props.theme.trackLineColorOnDark, ")") : "linear-gradient(".concat(props.theme.trackLineColor, ", ").concat(props.theme.trackLineColor, ")");
260
260
  }, function (props) {
@@ -316,13 +316,13 @@ var MaxLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_
316
316
  return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
317
317
  });
318
318
 
319
- var SliderInputContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: -2px;\n padding-top: 1px;\n"])));
319
+ var SliderInputContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: -2px;\n padding-top: 1px;\n z-index: 0;\n"])));
320
320
 
321
321
  var MarksContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n position: absolute;\n pointer-events: none;\n height: 100%;\n display: flex;\n align-items: center;\n"])), function (props) {
322
322
  return props.isFirefox ? getFireFoxStyles() : getChromeStyles();
323
323
  });
324
324
 
325
- var TickMark = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n background: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n left: ", ";\n ", ";\n"])), function (props) {
325
+ var TickMark = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n background: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n left: ", ";\n z-index: ", ";\n"])), function (props) {
326
326
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor : props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
327
327
  }, function (props) {
328
328
  return props.theme.tickHeight;
@@ -331,7 +331,7 @@ var TickMark = _styledComponents["default"].span(_templateObject11 || (_template
331
331
  }, function (props) {
332
332
  return "calc(".concat(props.stepPosition, " * 100%)");
333
333
  }, function (props) {
334
- return !props.disabled ? "z-index: ".concat(props.stepPosition <= props.stepValue ? "0" : "1") : "";
334
+ return "".concat(props.stepPosition <= props.stepValue ? "-1" : "0");
335
335
  });
336
336
 
337
337
  var StyledTextInput = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n max-width: 70px;\n"])), function (props) {
@@ -4,6 +4,7 @@ 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: "Slider",
@@ -12,6 +13,14 @@ export default {
12
13
 
13
14
  const labelFormat = (value) => `${value}E100000000000000000000000`;
14
15
 
16
+ const opinionatedTheme = {
17
+ slider: {
18
+ baseColor: "#0067b3",
19
+ fontColor: "#000000",
20
+ totalLineColor: "#e6e6e6",
21
+ },
22
+ };
23
+
15
24
  export const Chromatic = () => (
16
25
  <>
17
26
  <Title title="States" theme="light" level={2} />
@@ -179,5 +188,53 @@ export const Chromatic = () => (
179
188
  size="large"
180
189
  />
181
190
  </ExampleContainer>
191
+ <Title title="Opinionated theme" theme="light" level={2} />
192
+ <ExampleContainer pseudoState="pseudo-hover">
193
+ <Title title="Hovered" theme="light" level={4} />
194
+ <HalstackProvider theme={opinionatedTheme}>
195
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
196
+ </HalstackProvider>
197
+ </ExampleContainer>
198
+ <ExampleContainer pseudoState="pseudo-active">
199
+ <Title title="Active" theme="light" level={4} />
200
+ <HalstackProvider theme={opinionatedTheme}>
201
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
202
+ </HalstackProvider>
203
+ </ExampleContainer>
204
+ <ExampleContainer pseudoState="pseudo-focus">
205
+ <Title title="Focused" theme="light" level={4} />
206
+ <HalstackProvider theme={opinionatedTheme}>
207
+ <DxcSlider label="Slider" helperText="Help message" showLimitsValues />
208
+ </HalstackProvider>
209
+ </ExampleContainer>
210
+ <ExampleContainer>
211
+ <Title title="Disabled discrete slider with input" theme="light" level={4} />{" "}
212
+ <HalstackProvider theme={opinionatedTheme}>
213
+ <DxcSlider
214
+ label="Slider"
215
+ helperText="Help message"
216
+ disabled
217
+ defaultValue={40}
218
+ minValue={0}
219
+ maxValue={50}
220
+ showLimitsValues
221
+ showInput
222
+ marks
223
+ step={10}
224
+ />
225
+ </HalstackProvider>
226
+ </ExampleContainer>
227
+ <ExampleContainer>
228
+ <Title title="Continuous slider" theme="light" level={4} />
229
+ <HalstackProvider theme={opinionatedTheme}>
230
+ <DxcSlider defaultValue={65} label="Slider" helperText="Help message" showLimitsValues />
231
+ </HalstackProvider>
232
+ </ExampleContainer>
233
+ <ExampleContainer>
234
+ <Title title="Discrete slider" theme="light" level={4} />
235
+ <HalstackProvider theme={opinionatedTheme}>
236
+ <DxcSlider defaultValue={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
237
+ </HalstackProvider>
238
+ </ExampleContainer>
182
239
  </>
183
240
  );
@@ -8,7 +8,7 @@ var _react2 = require("@testing-library/react");
8
8
 
9
9
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
10
 
11
- var _Slider = _interopRequireDefault(require("./Slider"));
11
+ var _Slider = _interopRequireDefault(require("./Slider.tsx"));
12
12
 
13
13
  describe("Slider component tests", function () {
14
14
  test("Slider renders with correct text and label id", function () {
package/slider/types.d.ts CHANGED
@@ -1,5 +1,5 @@
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;
@@ -79,4 +79,8 @@ declare type Props = {
79
79
  */
80
80
  size?: "medium" | "large" | "fillParent";
81
81
  };
82
+ /**
83
+ * Reference to the component.
84
+ */
85
+ export declare type RefType = HTMLDivElement;
82
86
  export default Props;
@@ -17,7 +17,7 @@ var _react = _interopRequireWildcard(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
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
@@ -46,11 +46,8 @@ var DxcSpinner = function DxcSpinner(_ref) {
46
46
  margin: margin,
47
47
  mode: mode
48
48
  }, /*#__PURE__*/_react["default"].createElement(SpinnerContainer, {
49
- backgroundType: backgroundType,
50
- mode: mode
51
- }, mode === "overlay" && /*#__PURE__*/_react["default"].createElement(BackOverlay, null), /*#__PURE__*/_react["default"].createElement(BackgroundSpinner, {
52
49
  mode: mode
53
- }, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGBackground, {
50
+ }, mode === "overlay" && /*#__PURE__*/_react["default"].createElement(BackOverlay, null), /*#__PURE__*/_react["default"].createElement(BackgroundSpinner, null, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGBackground, {
54
51
  viewBox: "0 0 140 140"
55
52
  }, /*#__PURE__*/_react["default"].createElement(CircleBackground, {
56
53
  cx: "70",
@@ -65,8 +62,7 @@ var DxcSpinner = function DxcSpinner(_ref) {
65
62
  r: "6",
66
63
  mode: mode
67
64
  }))), value >= 0 && value <= 100 ? /*#__PURE__*/_react["default"].createElement(Spinner, {
68
- role: "progressbar",
69
- mode: mode
65
+ role: "progressbar"
70
66
  }, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGSpinner, {
71
67
  viewBox: "0 0 140 140",
72
68
  isDeterminated: true
@@ -90,8 +86,7 @@ var DxcSpinner = function DxcSpinner(_ref) {
90
86
  isDeterminated: true,
91
87
  value: value
92
88
  }))) : /*#__PURE__*/_react["default"].createElement(Spinner, {
93
- role: "progressbar",
94
- mode: mode
89
+ role: "progressbar"
95
90
  }, mode !== "small" && /*#__PURE__*/_react["default"].createElement(SVGSpinner, {
96
91
  viewBox: "0 0 140 140",
97
92
  isDeterminated: false
@@ -101,7 +96,8 @@ var DxcSpinner = function DxcSpinner(_ref) {
101
96
  r: "65",
102
97
  backgroundType: backgroundType,
103
98
  mode: mode,
104
- isDeterminated: false
99
+ isDeterminated: false,
100
+ value: value
105
101
  })), mode === "small" && /*#__PURE__*/_react["default"].createElement(SVGSpinner, {
106
102
  viewBox: "0 0 16 16",
107
103
  isDeterminated: false
@@ -111,26 +107,24 @@ var DxcSpinner = function DxcSpinner(_ref) {
111
107
  r: "6",
112
108
  backgroundType: backgroundType,
113
109
  mode: mode,
114
- isDeterminated: false
115
- }))), mode !== "small" && /*#__PURE__*/_react["default"].createElement(LabelsContainer, {
116
- label: label,
117
- value: value,
118
- showValue: showValue
119
- }, /*#__PURE__*/_react["default"].createElement(SpinnerLabel, {
110
+ isDeterminated: false,
111
+ value: value
112
+ }))), mode !== "small" && /*#__PURE__*/_react["default"].createElement(LabelsContainer, null, /*#__PURE__*/_react["default"].createElement(SpinnerLabel, {
120
113
  backgroundType: backgroundType,
121
114
  mode: mode
122
115
  }, label), (value || value === 0) && showValue && /*#__PURE__*/_react["default"].createElement(SpinnerProgress, {
116
+ value: value,
123
117
  backgroundType: backgroundType,
124
118
  mode: mode,
125
119
  showValue: showValue
126
120
  }, value, "%")))));
127
121
  };
128
122
 
129
- var determinatedValue = function determinatedValue(props, strokeDashArray) {
123
+ var determinatedValue = function determinatedValue(value, strokeDashArray) {
130
124
  var val = 0;
131
125
 
132
- if (props.value >= 0 && props.value <= 100) {
133
- val = strokeDashArray * (1 - props.value / 100);
126
+ if (value >= 0 && value <= 100) {
127
+ val = strokeDashArray * (1 - value / 100);
134
128
  }
135
129
 
136
130
  return val;
@@ -178,7 +172,7 @@ var BackOverlay = _styledComponents["default"].div(_templateObject3 || (_templat
178
172
  return "".concat(props.theme.overlayOpacity);
179
173
  });
180
174
 
181
- var BackgroundSpinner = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: absolute;\n z-index: 1;\n"])));
175
+ var BackgroundSpinner = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: absolute;\n"])));
182
176
 
183
177
  var SVGBackground = _styledComponents["default"].svg(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n"])));
184
178
 
@@ -190,7 +184,7 @@ var CircleBackground = _styledComponents["default"].circle(_templateObject6 || (
190
184
  return props.mode !== "small" ? "8.5px" : "2px";
191
185
  });
192
186
 
193
- var Spinner = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: relative;\n z-index: 2;\n"])));
187
+ var Spinner = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n position: relative;\n"])));
194
188
 
195
189
  var SVGSpinner = _styledComponents["default"].svg(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n height: inherit;\n width: inherit;\n transform: rotate(-90deg);\n top: 0;\n left: 0;\n transform-origin: center;\n overflow: visible;\n animation: ", ";\n"])), function (props) {
196
190
  return !props.isDeterminated ? "1.4s linear infinite both spinner-svg" : "";
@@ -207,7 +201,7 @@ var CircleSpinner = _styledComponents["default"].circle(_templateObject9 || (_te
207
201
  }, function (props) {
208
202
  return props.mode !== "small" ? "8.5px" : "2px";
209
203
  }, function (props) {
210
- return props.isDeterminated ? props.mode !== "small" ? determinatedValue(props, 409) : determinatedValue(props, 38) : "";
204
+ return props.isDeterminated ? props.mode !== "small" ? determinatedValue(props.value, 409) : determinatedValue(props.value, 38) : "";
211
205
  });
212
206
 
213
207
  var LabelsContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: block;\n margin: 0 auto;\n position: absolute;\n text-align: center;\n width: 110px;\n"])));
@@ -229,7 +223,7 @@ var SpinnerLabel = _styledComponents["default"].p(_templateObject11 || (_templat
229
223
  });
230
224
 
231
225
  var SpinnerProgress = _styledComponents["default"].p(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n font-style: ", ";\n color: ", ";\n text-align: ", ";\n letter-spacing: ", ";\n"])), function (props) {
232
- return props.value !== "" && props.showValue === true && "block" || "none";
226
+ return props.value && props.showValue === true && "block" || "none";
233
227
  }, function (props) {
234
228
  return props.mode === "overlay" ? props.theme.overlayProgressValueFontFamily : props.theme.progressValueFontFamily;
235
229
  }, function (props) {
@@ -2,67 +2,84 @@ import React from "react";
2
2
  import DxcSpinner from "./Spinner";
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: "Spinner",
8
9
  component: DxcSpinner,
9
10
  };
10
11
 
12
+ const opinionatedTheme = {
13
+ spinner: {
14
+ accentColor: "#5f249f",
15
+ baseColor: "#ffffff",
16
+ fontColor: "#000000",
17
+ overlayColor: "#a46ede",
18
+ overlayFontColor: "#ffffff",
19
+ },
20
+ };
21
+
11
22
  export const Chromatic = () => (
12
23
  <>
13
24
  <ExampleContainer>
14
25
  <Title title="With label" theme="light" level={4} />
15
- <DxcSpinner label="Label" value="50"></DxcSpinner>
26
+ <DxcSpinner label="Label" value={50}></DxcSpinner>
16
27
  <Title title="With value label" theme="light" level={4} />
17
- <DxcSpinner value="50" showValue></DxcSpinner>
28
+ <DxcSpinner value={50} showValue></DxcSpinner>
18
29
  <Title title="With label and value label" theme="light" level={4} />
19
- <DxcSpinner label="Label" value="50" showValue></DxcSpinner>
30
+ <DxcSpinner label="Label" value={50} showValue></DxcSpinner>
20
31
  <Title title="With 100%" theme="light" level={4} />
21
- <DxcSpinner label="Label" value="100" showValue></DxcSpinner>
32
+ <DxcSpinner label="Label" value={100} showValue></DxcSpinner>
22
33
  </ExampleContainer>
23
34
  <Title title="Modes" theme="light" level={2} />
24
35
  <ExampleContainer>
25
36
  <Title title="Mode large" theme="light" level={4} />
26
- <DxcSpinner mode="large" value="50"></DxcSpinner>
37
+ <DxcSpinner mode="large" value={50}></DxcSpinner>
27
38
  <Title title="Mode small" theme="light" level={4} />
28
- <DxcSpinner mode="small" value="50"></DxcSpinner>
39
+ <DxcSpinner mode="small" value={50}></DxcSpinner>
29
40
  <Title title="Mode small with 100%" theme="light" level={4} />
30
- <DxcSpinner mode="small" value="100" showValue></DxcSpinner>
41
+ <DxcSpinner mode="small" value={100} showValue></DxcSpinner>
31
42
  </ExampleContainer>
32
43
  <Title title="Margins with large mode" theme="light" level={2} />
33
44
  <ExampleContainer>
34
45
  <Title title="Xxsmall margin" theme="light" level={4} />
35
- <DxcSpinner margin="xxsmall" value="75"></DxcSpinner>
46
+ <DxcSpinner margin="xxsmall" value={75}></DxcSpinner>
36
47
  <Title title="Xsmall margin" theme="light" level={4} />
37
- <DxcSpinner margin="xsmall" value="75"></DxcSpinner>
48
+ <DxcSpinner margin="xsmall" value={75}></DxcSpinner>
38
49
  <Title title="Small margin" theme="light" level={4} />
39
- <DxcSpinner margin="small" value="75"></DxcSpinner>
50
+ <DxcSpinner margin="small" value={75}></DxcSpinner>
40
51
  <Title title="Medium margin" theme="light" level={4} />
41
- <DxcSpinner margin="medium" value="75"></DxcSpinner>
52
+ <DxcSpinner margin="medium" value={75}></DxcSpinner>
42
53
  <Title title="Large margin" theme="light" level={4} />
43
- <DxcSpinner margin="large" value="75"></DxcSpinner>
54
+ <DxcSpinner margin="large" value={75}></DxcSpinner>
44
55
  <Title title="Xlarge margin" theme="light" level={4} />
45
- <DxcSpinner margin="xlarge" value="75"></DxcSpinner>
56
+ <DxcSpinner margin="xlarge" value={75}></DxcSpinner>
46
57
  <Title title="Xxlarge margin" theme="light" level={4} />
47
- <DxcSpinner margin="xxlarge" value="75"></DxcSpinner>
58
+ <DxcSpinner margin="xxlarge" value={75}></DxcSpinner>
48
59
  </ExampleContainer>
49
60
  <Title title="Margins with small mode" theme="light" level={2} />
50
61
  <ExampleContainer>
51
62
  <Title title="Xxsmall margin" theme="light" level={4} />
52
- <DxcSpinner margin="xxsmall" mode="small" value="75"></DxcSpinner>
63
+ <DxcSpinner margin="xxsmall" mode="small" value={75}></DxcSpinner>
53
64
  <Title title="Xsmall margin" theme="light" level={4} />
54
- <DxcSpinner margin="xsmall" mode="small" value="75"></DxcSpinner>
65
+ <DxcSpinner margin="xsmall" mode="small" value={75}></DxcSpinner>
55
66
  <Title title="Small margin" theme="light" level={4} />
56
- <DxcSpinner margin="small" mode="small" value="75"></DxcSpinner>
67
+ <DxcSpinner margin="small" mode="small" value={75}></DxcSpinner>
57
68
  <Title title="Medium margin" theme="light" level={4} />
58
- <DxcSpinner margin="medium" mode="small" value="75"></DxcSpinner>
69
+ <DxcSpinner margin="medium" mode="small" value={75}></DxcSpinner>
59
70
  <Title title="Large margin" theme="light" level={4} />
60
- <DxcSpinner margin="large" mode="small" value="75"></DxcSpinner>
71
+ <DxcSpinner margin="large" mode="small" value={75}></DxcSpinner>
61
72
  <Title title="Xlarge margin" theme="light" level={4} />
62
- <DxcSpinner margin="xlarge" mode="small" value="75"></DxcSpinner>
73
+ <DxcSpinner margin="xlarge" mode="small" value={75}></DxcSpinner>
63
74
  <Title title="Xxlarge margin" theme="light" level={4} />
64
- <DxcSpinner margin="xxlarge" mode="small" value="75"></DxcSpinner>
65
- <hr />
75
+ <DxcSpinner margin="xxlarge" mode="small" value={75}></DxcSpinner>
76
+ </ExampleContainer>
77
+ <Title title="Opinionated theme" theme="light" level={2} />
78
+ <ExampleContainer>
79
+ <Title title="With label and value label" theme="light" level={4} />
80
+ <HalstackProvider theme={opinionatedTheme}>
81
+ <DxcSpinner label="Label" value={50} showValue></DxcSpinner>
82
+ </HalstackProvider>
66
83
  </ExampleContainer>
67
84
  </>
68
85
  );
@@ -70,34 +87,43 @@ export const Chromatic = () => (
70
87
  export const SpinnerOverlay = () => (
71
88
  <ExampleContainer>
72
89
  <Title title="Mode overlay" theme="light" level={4} />
73
- <DxcSpinner mode="overlay" value="25"></DxcSpinner>
90
+ <DxcSpinner mode="overlay" value={25}></DxcSpinner>
74
91
  </ExampleContainer>
75
92
  );
76
93
 
77
94
  export const SpinnerOverlayWith100 = () => (
78
95
  <ExampleContainer>
79
96
  <Title title="Mode overlay" theme="light" level={4} />
80
- <DxcSpinner mode="overlay" value="100"></DxcSpinner>
97
+ <DxcSpinner mode="overlay" value={100}></DxcSpinner>
81
98
  </ExampleContainer>
82
99
  );
83
100
 
84
101
  export const SpinnerOverlayWithLabel = () => (
85
102
  <ExampleContainer>
86
103
  <Title title="Mode overlay" theme="light" level={4} />
87
- <DxcSpinner mode="overlay" value="50" label="Label"></DxcSpinner>
104
+ <DxcSpinner mode="overlay" value={50} label="Label"></DxcSpinner>
88
105
  </ExampleContainer>
89
106
  );
90
107
 
91
108
  export const SpinnerOverlayWithValue = () => (
92
109
  <ExampleContainer>
93
110
  <Title title="Mode overlay" theme="light" level={4} />
94
- <DxcSpinner mode="overlay" value="50" showValue></DxcSpinner>
111
+ <DxcSpinner mode="overlay" value={50} showValue></DxcSpinner>
95
112
  </ExampleContainer>
96
113
  );
97
114
 
98
115
  export const SpinnerOverlayWithValueAndLabel = () => (
99
116
  <ExampleContainer>
100
117
  <Title title="Mode overlay" theme="light" level={4} />
101
- <DxcSpinner mode="overlay" label="Label" value="50" showValue></DxcSpinner>
118
+ <DxcSpinner mode="overlay" label="Label" value={50} showValue></DxcSpinner>
119
+ </ExampleContainer>
120
+ );
121
+
122
+ export const SpinnerOverlayWithValueAndLabelOpinionated = () => (
123
+ <ExampleContainer>
124
+ <HalstackProvider theme={opinionatedTheme}>
125
+ <Title title="Mode overlay" theme="light" level={4} />
126
+ <DxcSpinner mode="overlay" label="Label" value={50} showValue></DxcSpinner>
127
+ </HalstackProvider>
102
128
  </ExampleContainer>
103
129
  );
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Spinner = _interopRequireDefault(require("./Spinner"));
9
+ var _Spinner = _interopRequireDefault(require("./Spinner.tsx"));
10
10
 
11
11
  describe("Spinner component tests", function () {
12
12
  test("Spinner renders with correct label", function () {
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
2
- import { SwitchPropsType } from "./types";
3
- declare const DxcSwitch: ({ defaultChecked, checked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: SwitchPropsType) => JSX.Element;
1
+ import React from "react";
2
+ import SwitchPropsType from "./types";
3
+ declare const DxcSwitch: React.ForwardRefExoticComponent<SwitchPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcSwitch;
package/switch/Switch.js CHANGED
@@ -21,9 +21,9 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
22
  var _uuid = require("uuid");
23
23
 
24
- var _variables = require("../common/variables.js");
24
+ var _variables = require("../common/variables");
25
25
 
26
- var _utils = require("../common/utils.js");
26
+ var _utils = require("../common/utils");
27
27
 
28
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
29
 
@@ -37,7 +37,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
37
37
 
38
38
  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; }
39
39
 
40
- var DxcSwitch = function DxcSwitch(_ref) {
40
+ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
41
41
  var defaultChecked = _ref.defaultChecked,
42
42
  checked = _ref.checked,
43
43
  value = _ref.value,
@@ -102,7 +102,8 @@ var DxcSwitch = function DxcSwitch(_ref) {
102
102
  size: size,
103
103
  onKeyDown: handleOnKeyDown,
104
104
  disabled: disabled,
105
- onClick: !disabled ? handlerSwitchChange : undefined
105
+ onClick: !disabled ? handlerSwitchChange : undefined,
106
+ ref: ref
106
107
  }, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
107
108
  id: labelId,
108
109
  labelPosition: labelPosition,
@@ -133,7 +134,7 @@ var DxcSwitch = function DxcSwitch(_ref) {
133
134
  backgroundType: backgroundType,
134
135
  label: label
135
136
  }, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
136
- };
137
+ });
137
138
 
138
139
  var sizes = {
139
140
  small: "60px",
@@ -233,7 +234,7 @@ var SwitchBase = _styledComponents["default"].label(_templateObject3 || (_templa
233
234
 
234
235
  var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
235
236
 
236
- var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n cursor: ", ";\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n z-index: 1;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
237
+ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n cursor: ", ";\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
237
238
  return props.theme.trackWidth;
238
239
  }, function (props) {
239
240
  return props.theme.trackHeight;