@dxc-technology/halstack-react 0.0.0-ecc45e2 → 0.0.0-ede733c

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 (216) 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 +118 -110
  6. package/accordion/Accordion.stories.tsx +103 -15
  7. package/accordion/Accordion.test.js +10 -11
  8. package/accordion/types.d.ts +1 -0
  9. package/accordion-group/AccordionGroup.d.ts +4 -3
  10. package/accordion-group/AccordionGroup.js +24 -65
  11. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  12. package/accordion-group/AccordionGroup.test.js +21 -46
  13. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  14. package/accordion-group/AccordionGroupAccordion.js +43 -0
  15. package/accordion-group/types.d.ts +7 -0
  16. package/alert/Alert.js +5 -9
  17. package/alert/Alert.stories.tsx +28 -0
  18. package/alert/Alert.test.js +1 -1
  19. package/bleed/Bleed.stories.tsx +1 -0
  20. package/box/Box.js +4 -6
  21. package/box/Box.stories.tsx +15 -0
  22. package/box/Box.test.js +1 -1
  23. package/box/types.d.ts +1 -0
  24. package/bulleted-list/BulletedList.js +4 -2
  25. package/bulleted-list/BulletedList.stories.tsx +7 -1
  26. package/bulleted-list/types.d.ts +31 -4
  27. package/button/Button.js +13 -16
  28. package/button/Button.stories.tsx +151 -9
  29. package/button/Button.test.js +1 -1
  30. package/button/types.d.ts +3 -3
  31. package/card/Card.js +12 -13
  32. package/card/Card.stories.tsx +12 -13
  33. package/card/Card.test.js +1 -1
  34. package/card/types.d.ts +1 -0
  35. package/checkbox/Checkbox.d.ts +2 -2
  36. package/checkbox/Checkbox.js +94 -101
  37. package/checkbox/Checkbox.stories.tsx +131 -59
  38. package/checkbox/Checkbox.test.js +94 -17
  39. package/checkbox/types.d.ts +4 -0
  40. package/chip/Chip.js +28 -49
  41. package/chip/Chip.stories.tsx +121 -26
  42. package/chip/Chip.test.js +3 -5
  43. package/common/OpenSans.css +68 -80
  44. package/common/coreTokens.d.ts +146 -0
  45. package/common/coreTokens.js +167 -0
  46. package/common/utils.d.ts +1 -0
  47. package/common/utils.js +4 -4
  48. package/common/variables.d.ts +1482 -0
  49. package/common/variables.js +994 -1137
  50. package/date-input/Calendar.d.ts +4 -0
  51. package/date-input/Calendar.js +258 -0
  52. package/date-input/DateInput.js +134 -237
  53. package/date-input/DateInput.stories.tsx +199 -33
  54. package/date-input/DateInput.test.js +494 -138
  55. package/date-input/DatePicker.d.ts +4 -0
  56. package/date-input/DatePicker.js +146 -0
  57. package/date-input/Icons.d.ts +6 -0
  58. package/date-input/Icons.js +75 -0
  59. package/date-input/YearPicker.d.ts +4 -0
  60. package/date-input/YearPicker.js +126 -0
  61. package/date-input/types.d.ts +51 -0
  62. package/dialog/Dialog.js +60 -73
  63. package/dialog/Dialog.stories.tsx +229 -121
  64. package/dialog/Dialog.test.js +302 -3
  65. package/dialog/types.d.ts +3 -2
  66. package/dropdown/Dropdown.js +43 -42
  67. package/dropdown/Dropdown.stories.tsx +210 -84
  68. package/dropdown/Dropdown.test.js +22 -27
  69. package/dropdown/DropdownMenu.js +12 -18
  70. package/dropdown/DropdownMenuItem.js +5 -18
  71. package/dropdown/types.d.ts +3 -3
  72. package/file-input/FileInput.d.ts +2 -2
  73. package/file-input/FileInput.js +174 -220
  74. package/file-input/FileInput.stories.tsx +122 -11
  75. package/file-input/FileInput.test.js +14 -14
  76. package/file-input/FileItem.d.ts +4 -14
  77. package/file-input/FileItem.js +39 -63
  78. package/file-input/types.d.ts +17 -0
  79. package/flex/Flex.d.ts +1 -1
  80. package/flex/Flex.js +33 -19
  81. package/flex/Flex.stories.tsx +35 -26
  82. package/flex/types.d.ts +83 -7
  83. package/footer/Footer.js +6 -8
  84. package/footer/Footer.stories.tsx +99 -1
  85. package/footer/Footer.test.js +14 -26
  86. package/footer/types.d.ts +1 -0
  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 +3 -2
  92. package/header/Header.js +21 -23
  93. package/header/Header.stories.tsx +152 -9
  94. package/header/Header.test.js +2 -2
  95. package/header/types.d.ts +3 -2
  96. package/heading/Heading.js +1 -1
  97. package/heading/Heading.test.js +1 -1
  98. package/inset/Inset.stories.tsx +2 -1
  99. package/layout/ApplicationLayout.d.ts +3 -3
  100. package/layout/ApplicationLayout.js +1 -1
  101. package/layout/ApplicationLayout.stories.tsx +1 -0
  102. package/layout/types.d.ts +2 -3
  103. package/link/Link.js +4 -4
  104. package/link/Link.stories.tsx +60 -0
  105. package/link/Link.test.js +2 -4
  106. package/link/types.d.ts +2 -2
  107. package/main.d.ts +3 -2
  108. package/main.js +9 -1
  109. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  110. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  111. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  112. package/{tabs-nav → nav-tabs}/Tab.js +38 -18
  113. package/nav-tabs/types.js +5 -0
  114. package/number-input/NumberInput.test.js +44 -8
  115. package/package.json +15 -20
  116. package/paginator/Icons.d.ts +5 -0
  117. package/paginator/Icons.js +16 -28
  118. package/paginator/Paginator.js +7 -15
  119. package/paginator/Paginator.stories.tsx +24 -0
  120. package/paginator/Paginator.test.js +45 -48
  121. package/paragraph/Paragraph.d.ts +3 -4
  122. package/paragraph/Paragraph.js +5 -5
  123. package/password-input/PasswordInput.test.js +14 -13
  124. package/progress-bar/ProgressBar.d.ts +2 -2
  125. package/progress-bar/ProgressBar.js +5 -5
  126. package/progress-bar/ProgressBar.stories.jsx +35 -2
  127. package/progress-bar/ProgressBar.test.js +1 -1
  128. package/progress-bar/types.d.ts +4 -3
  129. package/quick-nav/QuickNav.js +11 -12
  130. package/quick-nav/QuickNav.stories.tsx +111 -19
  131. package/radio-group/Radio.d.ts +1 -1
  132. package/radio-group/Radio.js +43 -28
  133. package/radio-group/RadioGroup.js +15 -13
  134. package/radio-group/RadioGroup.stories.tsx +132 -18
  135. package/radio-group/RadioGroup.test.js +124 -97
  136. package/radio-group/types.d.ts +2 -2
  137. package/resultsetTable/Icons.d.ts +7 -0
  138. package/resultsetTable/Icons.js +51 -0
  139. package/resultsetTable/ResultsetTable.js +49 -108
  140. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  141. package/resultsetTable/ResultsetTable.test.js +41 -64
  142. package/resultsetTable/types.d.ts +1 -1
  143. package/select/Listbox.d.ts +1 -1
  144. package/select/Listbox.js +5 -35
  145. package/select/Option.js +11 -24
  146. package/select/Select.js +59 -36
  147. package/select/Select.stories.tsx +494 -150
  148. package/select/Select.test.js +341 -288
  149. package/select/types.d.ts +2 -2
  150. package/sidenav/Icons.d.ts +7 -0
  151. package/sidenav/Icons.js +51 -0
  152. package/sidenav/Sidenav.d.ts +2 -2
  153. package/sidenav/Sidenav.js +66 -96
  154. package/sidenav/Sidenav.stories.tsx +165 -63
  155. package/sidenav/types.d.ts +21 -18
  156. package/slider/Slider.d.ts +2 -2
  157. package/slider/Slider.js +119 -95
  158. package/slider/Slider.stories.tsx +64 -1
  159. package/slider/Slider.test.js +88 -25
  160. package/slider/types.d.ts +4 -0
  161. package/spinner/Spinner.js +17 -23
  162. package/spinner/Spinner.stories.jsx +53 -27
  163. package/spinner/Spinner.test.js +1 -1
  164. package/switch/Switch.d.ts +3 -3
  165. package/switch/Switch.js +96 -85
  166. package/switch/Switch.stories.tsx +33 -0
  167. package/switch/Switch.test.js +27 -14
  168. package/switch/types.d.ts +8 -3
  169. package/table/Table.js +3 -3
  170. package/table/Table.stories.jsx +80 -1
  171. package/table/Table.test.js +2 -2
  172. package/tabs/Tab.d.ts +4 -0
  173. package/tabs/Tab.js +132 -0
  174. package/tabs/Tabs.js +358 -108
  175. package/tabs/Tabs.stories.tsx +119 -5
  176. package/tabs/Tabs.test.js +220 -10
  177. package/tabs/types.d.ts +12 -2
  178. package/tag/Tag.js +8 -10
  179. package/tag/Tag.stories.tsx +14 -1
  180. package/tag/Tag.test.js +1 -1
  181. package/text-input/Icons.d.ts +8 -0
  182. package/text-input/Icons.js +60 -0
  183. package/text-input/Suggestion.js +40 -11
  184. package/text-input/Suggestions.d.ts +4 -0
  185. package/text-input/Suggestions.js +134 -0
  186. package/text-input/TextInput.js +189 -277
  187. package/text-input/TextInput.stories.tsx +280 -184
  188. package/text-input/TextInput.test.js +736 -725
  189. package/text-input/types.d.ts +21 -2
  190. package/textarea/Textarea.js +3 -4
  191. package/textarea/Textarea.stories.jsx +60 -1
  192. package/textarea/Textarea.test.js +2 -4
  193. package/toggle-group/ToggleGroup.d.ts +2 -2
  194. package/toggle-group/ToggleGroup.js +7 -4
  195. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  196. package/toggle-group/ToggleGroup.test.js +1 -1
  197. package/toggle-group/types.d.ts +1 -1
  198. package/typography/Typography.d.ts +2 -2
  199. package/typography/Typography.js +14 -113
  200. package/typography/Typography.stories.tsx +1 -1
  201. package/useTheme.d.ts +1234 -1
  202. package/useTheme.js +1 -1
  203. package/useTranslatedLabels.d.ts +84 -1
  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 +2 -2
  209. package/wizard/Wizard.stories.tsx +20 -0
  210. package/wizard/Wizard.test.js +1 -1
  211. package/wizard/types.d.ts +5 -6
  212. package/common/RequiredComponent.js +0 -32
  213. /package/{tabs-nav → grid}/types.js +0 -0
  214. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  215. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  216. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
package/slider/Slider.js CHANGED
@@ -17,15 +17,13 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
- var _Slider = _interopRequireDefault(require("@material-ui/lab/Slider"));
21
-
22
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
22
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
25
23
 
26
- var _variables = require("../common/variables.js");
24
+ var _variables = require("../common/variables");
27
25
 
28
- var _utils = require("../common/utils.js");
26
+ var _utils = require("../common/utils");
29
27
 
30
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
31
29
 
@@ -33,13 +31,13 @@ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColor
33
31
 
34
32
  var _uuid = require("uuid");
35
33
 
36
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
37
35
 
38
36
  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); }
39
37
 
40
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; }
41
39
 
42
- var DxcSlider = function DxcSlider(_ref) {
40
+ var DxcSlider = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
43
41
  var _ref$label = _ref.label,
44
42
  label = _ref$label === void 0 ? "" : _ref$label,
45
43
  _ref$name = _ref.name,
@@ -74,12 +72,17 @@ var DxcSlider = function DxcSlider(_ref) {
74
72
  innerValue = _useState2[0],
75
73
  setInnerValue = _useState2[1];
76
74
 
75
+ var _useState3 = (0, _react.useState)(false),
76
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
77
+ dragging = _useState4[0],
78
+ setDragging = _useState4[1];
79
+
77
80
  var colorsTheme = (0, _useTheme["default"])();
78
81
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
79
82
 
80
- var _useState3 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
81
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
82
- labelId = _useState4[0];
83
+ var _useState5 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
84
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
85
+ labelId = _useState6[0];
83
86
 
84
87
  var minLabel = (0, _react.useMemo)(function () {
85
88
  return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
@@ -87,15 +90,44 @@ var DxcSlider = function DxcSlider(_ref) {
87
90
  var maxLabel = (0, _react.useMemo)(function () {
88
91
  return labelFormatCallback ? labelFormatCallback(maxValue) : maxValue;
89
92
  }, [labelFormatCallback, maxValue]);
93
+ var tickMarks = (0, _react.useMemo)(function () {
94
+ var ticks = [];
95
+ var numberOfMarks = Math.floor(maxValue / step - minValue / step);
96
+ var index = 0;
97
+ var range = maxValue - minValue;
98
+
99
+ if (marks) {
100
+ while (index <= numberOfMarks) {
101
+ ticks.push( /*#__PURE__*/_react["default"].createElement(TickMark, {
102
+ disabled: disabled,
103
+ stepPosition: step * index / range,
104
+ backgroundType: backgroundType,
105
+ stepValue: (value !== null && value !== void 0 ? value : innerValue) / maxValue
106
+ }));
107
+ index++;
108
+ }
109
+
110
+ return ticks;
111
+ } else {
112
+ return null;
113
+ }
114
+ }, [minValue, maxValue, step, value, innerValue]);
115
+
116
+ var handleSliderChange = function handleSliderChange(event) {
117
+ var valueToCheck = event.target.value;
118
+ (valueToCheck !== value || valueToCheck !== innerValue) && setInnerValue(valueToCheck);
119
+ onChange === null || onChange === void 0 ? void 0 : onChange(valueToCheck);
120
+ };
90
121
 
91
- var handlerSliderChange = function handlerSliderChange(event, newValue) {
92
- var valueToCheck = value != null && value >= 0 ? value : innerValue;
93
- valueToCheck !== newValue && setInnerValue(newValue);
94
- onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
122
+ var handleSliderDragging = function handleSliderDragging() {
123
+ setDragging(true);
95
124
  };
96
125
 
97
- var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event, selectedValue) {
98
- onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(selectedValue);
126
+ var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event) {
127
+ if (dragging) {
128
+ setDragging(false);
129
+ onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event.target.value);
130
+ }
99
131
  };
100
132
 
101
133
  var handlerInputChange = function handlerInputChange(event) {
@@ -110,11 +142,13 @@ var DxcSlider = function DxcSlider(_ref) {
110
142
  }
111
143
  };
112
144
 
145
+ var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
113
146
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
114
147
  theme: colorsTheme.slider
115
148
  }, /*#__PURE__*/_react["default"].createElement(Container, {
116
149
  margin: margin,
117
- size: size
150
+ size: size,
151
+ ref: ref
118
152
  }, /*#__PURE__*/_react["default"].createElement(Label, {
119
153
  id: labelId,
120
154
  disabled: disabled,
@@ -122,22 +156,29 @@ var DxcSlider = function DxcSlider(_ref) {
122
156
  }, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
123
157
  disabled: disabled,
124
158
  backgroundType: backgroundType
125
- }, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, {
126
- backgroundType: backgroundType
127
- }, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
159
+ }, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, null, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
128
160
  backgroundType: backgroundType,
129
161
  disabled: disabled
130
- }, minLabel), /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
162
+ }, minLabel), /*#__PURE__*/_react["default"].createElement(SliderInputContainer, null, /*#__PURE__*/_react["default"].createElement(SliderInput, {
163
+ role: "slider",
164
+ type: "range",
131
165
  value: value != null && value >= 0 ? value : innerValue,
132
166
  min: minValue,
133
167
  max: maxValue,
134
- onChange: handlerSliderChange,
135
- onChangeCommitted: handleSliderOnChangeCommited,
136
168
  step: step,
137
- marks: marks || [],
138
169
  disabled: disabled,
139
- "aria-labelledby": labelId
140
- }), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
170
+ "aria-labelledby": labelId,
171
+ "aria-orientation": "horizontal",
172
+ "aria-valuemax": maxValue,
173
+ "aria-valuemin": minValue,
174
+ "aria-valuenow": value != null && value >= 0 ? value : innerValue,
175
+ onChange: handleSliderChange,
176
+ onMouseUp: handleSliderOnChangeCommited,
177
+ onMouseDown: handleSliderDragging,
178
+ backgroundType: backgroundType
179
+ }), marks && /*#__PURE__*/_react["default"].createElement(MarksContainer, {
180
+ isFirefox: isFirefox
181
+ }, tickMarks)), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
141
182
  backgroundType: backgroundType,
142
183
  disabled: disabled,
143
184
  step: step
@@ -148,7 +189,7 @@ var DxcSlider = function DxcSlider(_ref) {
148
189
  onChange: handlerInputChange,
149
190
  size: "fillParent"
150
191
  })))));
151
- };
192
+ });
152
193
 
153
194
  var sizes = {
154
195
  medium: "360px",
@@ -160,6 +201,14 @@ var calculateWidth = function calculateWidth(margin, size) {
160
201
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
161
202
  };
162
203
 
204
+ var getChromeStyles = function getChromeStyles() {
205
+ return "\n width: 100%;\n margin-right: 4px;";
206
+ };
207
+
208
+ var getFireFoxStyles = function getFireFoxStyles() {
209
+ return "\n width: calc(100% - 16px);\n margin-right: 3px;";
210
+ };
211
+
163
212
  var Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n"])), function (props) {
164
213
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
165
214
  }, function (props) {
@@ -188,7 +237,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
188
237
  return props.theme.labelLineHeight;
189
238
  });
190
239
 
191
- var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
240
+ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
192
241
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
193
242
  }, function (props) {
194
243
  return props.theme.fontFamily;
@@ -202,83 +251,51 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
202
251
  return props.theme.helperTextLineHeight;
203
252
  });
204
253
 
205
- var SliderContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n\n .MuiSlider-root {\n min-width: 15rem;\n }\n .MuiSlider-container {\n padding: 30px 24px;\n }\n .MuiSlider-root.Mui-disabled {\n color: ", ";\n cursor: not-allowed;\n }\n .Mui-disabled {\n & .MuiSlider-thumb {\n height: ", ";\n width: ", ";\n background-color: ", ";\n top: ", ";\n }\n & .MuiSlider-track {\n background-color: ", ";\n }\n & .MuiSlider-rail {\n background-color: ", ";\n }\n & > .MuiSlider-mark.MuiSlider-markActive {\n background-color: ", " !important;\n }\n & > .MuiSlider-mark {\n background-color: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n top: ", ";\n }\n }\n .MuiSlider-thumb {\n height: ", ";\n width: ", ";\n background-color: ", ";\n top: ", ";\n border-radius: 9999px;\n\n :hover,\n &.Mui-focusVisible {\n box-shadow: none;\n }\n &.MuiSlider-active {\n box-shadow: none;\n }\n :focus {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n background-color: ", ";\n }\n :hover {\n background-color: ", ";\n transform: scale(", ");\n transform-origin: center;\n height: ", ";\n width: ", ";\n top: ", ";\n }\n :active {\n background-color: ", ";\n transform: scale(", ");\n transform-origin: center;\n }\n }\n .MuiSlider-track {\n background-color: ", ";\n height: ", ";\n top: ", ";\n border-radius: 9999px;\n }\n .MuiSlider-track.MuiSlider-trackAfter {\n background-color: ", ";\n }\n .MuiSlider-rail {\n background-color: ", ";\n height: ", ";\n top: ", ";\n }\n .MuiSlider-mark.MuiSlider-markActive {\n background-color: ", ";\n }\n .MuiSlider-mark {\n background-color: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n top: ", ";\n }\n"])), function (props) {
206
- return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
207
- }, function (props) {
208
- return props.theme.thumbHeight;
209
- }, function (props) {
210
- return props.theme.thumbWidth;
211
- }, function (props) {
212
- return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
213
- }, function (props) {
214
- return props.theme.disabledThumbVerticalPosition;
215
- }, function (props) {
216
- return props.backgroundType === "dark" ? props.theme.disabledTrackLineColorOnDark : props.theme.disabledTrackLineColor;
217
- }, function (props) {
218
- return props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark : props.theme.disabledTotalLineColor;
219
- }, function (props) {
220
- return props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor;
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
+ return props.theme.trackLineThickness;
221
256
  }, function (props) {
222
- return props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor;
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;
223
258
  }, function (props) {
224
- return props.theme.tickHeight;
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, ")");
225
260
  }, function (props) {
226
- return props.theme.tickWidth;
261
+ return (props.value - props.min) * 100 / (props.max - props.min) + "% 100%";
227
262
  }, function (props) {
228
- return props.theme.disabledTickVerticalPosition;
263
+ return props.disabled ? "not-allowed" : "pointer";
229
264
  }, function (props) {
230
265
  return props.theme.thumbHeight;
231
266
  }, function (props) {
232
267
  return props.theme.thumbWidth;
233
268
  }, function (props) {
234
- return props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
235
- }, function (props) {
236
- return props.theme.thumbVerticalPosition;
237
- }, function (props) {
238
- return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
269
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
239
270
  }, function (props) {
240
- return props.backgroundType === "dark" ? props.theme.focusThumbBackgroundColorOnDark : props.theme.focusThumbBackgroundColor;
271
+ if (!props.disabled) {
272
+ return "\n background: ".concat(props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor, ";\n transform: scale(1.16667);");
273
+ }
241
274
  }, function (props) {
242
- return props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor;
275
+ if (!props.disabled) {
276
+ return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor, ";");
277
+ }
243
278
  }, function (props) {
244
- return props.theme.hoverThumbScale;
245
- }, function (props) {
246
- return props.theme.hoverThumbHeight;
279
+ return props.theme.thumbHeight;
247
280
  }, function (props) {
248
- return props.theme.hoverThumbWidth;
281
+ return props.theme.thumbWidth;
249
282
  }, function (props) {
250
- return props.theme.hoverThumbVerticalPosition;
283
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
251
284
  }, function (props) {
252
285
  return props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor;
253
286
  }, function (props) {
254
- return props.theme.activeThumbScale;
255
- }, function (props) {
256
- return props.backgroundType === "dark" ? props.theme.trackLineColorOnDark : props.theme.trackLineColor;
287
+ if (!props.disabled) {
288
+ return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor, ";");
289
+ }
257
290
  }, function (props) {
258
- return props.theme.trackLineThickness;
259
- }, function (props) {
260
- return props.theme.trackLineVerticalPosition;
261
- }, function (props) {
262
- return props.backgroundType === "dark" ? props.theme.trackLineColorOnDark : props.theme.trackLineColor;
263
- }, function (props) {
264
- return props.backgroundType === "dark" ? props.theme.totalLineColorOnDark : props.theme.totalLineColor;
265
- }, function (props) {
266
- return props.theme.totalLineThickness;
267
- }, function (props) {
268
- return props.theme.totalLineVerticalPosition;
269
- }, function (props) {
270
- return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
271
- }, function (props) {
272
- return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
291
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
273
292
  }, function (props) {
274
- return props.theme.tickHeight;
275
- }, function (props) {
276
- return props.theme.tickWidth;
277
- }, function (props) {
278
- return props.theme.tickVerticalPosition;
293
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
279
294
  });
280
295
 
281
- var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n white-space: nowrap;\n margin-right: ", ";\n"])), function (props) {
296
+ var SliderContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n"])));
297
+
298
+ var LimitLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n white-space: nowrap;\n"])), function (props) {
282
299
  return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
283
300
  }, function (props) {
284
301
  return props.theme.fontFamily;
@@ -290,27 +307,34 @@ var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_
290
307
  return props.theme.limitValuesFontWeight;
291
308
  }, function (props) {
292
309
  return props.theme.limitValuesFontLetterSpacing;
293
- }, function (props) {
310
+ });
311
+
312
+ var MinLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n"])), function (props) {
294
313
  return props.theme.floorLabelMarginRight;
295
314
  });
315
+ var MaxLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n"])), function (props) {
316
+ return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
317
+ });
296
318
 
297
- var MaxLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n white-space: nowrap;\n margin-left: ", ";\n"])), function (props) {
298
- return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
299
- }, function (props) {
300
- return props.theme.fontFamily;
301
- }, function (props) {
302
- return props.theme.limitValuesFontSize;
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
+
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
+ return props.isFirefox ? getFireFoxStyles() : getChromeStyles();
323
+ });
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 z-index: ", ";\n"])), function (props) {
326
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor : props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
303
327
  }, function (props) {
304
- return props.theme.limitValuesFontStyle;
328
+ return props.theme.tickHeight;
305
329
  }, function (props) {
306
- return props.theme.limitValuesFontWeight;
330
+ return props.theme.tickWidth;
307
331
  }, function (props) {
308
- return props.theme.limitValuesFontLetterSpacing;
332
+ return "calc(".concat(props.stepPosition, " * 100%)");
309
333
  }, function (props) {
310
- return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
334
+ return "".concat(props.stepPosition <= props.stepValue ? "-1" : "0");
311
335
  });
312
336
 
313
- var StyledTextInput = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n label + .MuiInput-formControl {\n margin-top: 2px;\n }\n max-width: 70px;\n"])), function (props) {
337
+ var StyledTextInput = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n max-width: 70px;\n"])), function (props) {
314
338
  return props.theme.inputMarginLeft;
315
339
  });
316
340
 
@@ -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} />
@@ -171,7 +180,61 @@ export const Chromatic = () => (
171
180
  </ExampleContainer>
172
181
  <ExampleContainer>
173
182
  <Title title="Large limit values labels" theme="light" level={4} />
174
- <DxcSlider label="Slider" helperText="Help message" showLimitsValues labelFormatCallback={labelFormat} size="large" />
183
+ <DxcSlider
184
+ label="Slider"
185
+ helperText="Help message"
186
+ showLimitsValues
187
+ labelFormatCallback={labelFormat}
188
+ size="large"
189
+ />
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>
175
238
  </ExampleContainer>
176
239
  </>
177
240
  );