@dxc-technology/halstack-react 0.0.0-4687966 → 0.0.0-47ce41d

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 (304) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +124 -137
  7. package/accordion/Accordion.stories.tsx +306 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +17 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.test.js +92 -0
  17. package/alert/types.d.ts +1 -1
  18. package/badge/Badge.d.ts +4 -0
  19. package/badge/Badge.js +6 -4
  20. package/badge/types.d.ts +5 -0
  21. package/{radio → badge}/types.js +0 -0
  22. package/bleed/Bleed.d.ts +3 -0
  23. package/bleed/Bleed.js +51 -0
  24. package/bleed/Bleed.stories.tsx +341 -0
  25. package/bleed/types.d.ts +37 -0
  26. package/bleed/types.js +5 -0
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +27 -40
  29. package/box/Box.test.js +18 -0
  30. package/box/types.d.ts +1 -4
  31. package/bulleted-list/BulletedList.d.ts +7 -0
  32. package/bulleted-list/BulletedList.js +123 -0
  33. package/bulleted-list/BulletedList.stories.tsx +200 -0
  34. package/bulleted-list/types.d.ts +11 -0
  35. package/bulleted-list/types.js +5 -0
  36. package/button/Button.d.ts +1 -1
  37. package/button/Button.js +62 -83
  38. package/button/Button.stories.tsx +231 -241
  39. package/button/Button.test.js +35 -0
  40. package/button/types.d.ts +10 -14
  41. package/card/Card.js +26 -30
  42. package/card/Card.stories.tsx +201 -0
  43. package/card/Card.test.js +50 -0
  44. package/card/ice-cream.jpg +0 -0
  45. package/card/types.d.ts +5 -6
  46. package/checkbox/Checkbox.d.ts +1 -1
  47. package/checkbox/Checkbox.js +104 -108
  48. package/checkbox/Checkbox.stories.tsx +124 -128
  49. package/checkbox/Checkbox.test.js +155 -0
  50. package/checkbox/types.d.ts +11 -7
  51. package/chip/Chip.d.ts +4 -0
  52. package/chip/Chip.js +16 -76
  53. package/chip/Chip.stories.tsx +119 -0
  54. package/chip/Chip.test.js +56 -0
  55. package/chip/types.d.ts +45 -0
  56. package/chip/types.js +5 -0
  57. package/common/variables.js +290 -359
  58. package/date-input/DateInput.js +66 -55
  59. package/date-input/DateInput.stories.tsx +7 -7
  60. package/date-input/DateInput.test.js +479 -0
  61. package/date-input/types.d.ts +16 -9
  62. package/dialog/Dialog.js +50 -53
  63. package/dialog/Dialog.stories.tsx +267 -0
  64. package/dialog/Dialog.test.js +70 -0
  65. package/dialog/types.d.ts +3 -2
  66. package/dropdown/Dropdown.d.ts +1 -1
  67. package/dropdown/Dropdown.js +244 -273
  68. package/dropdown/Dropdown.stories.tsx +312 -0
  69. package/dropdown/Dropdown.test.js +590 -0
  70. package/dropdown/DropdownMenu.d.ts +4 -0
  71. package/dropdown/DropdownMenu.js +80 -0
  72. package/dropdown/DropdownMenuItem.d.ts +4 -0
  73. package/dropdown/DropdownMenuItem.js +92 -0
  74. package/dropdown/types.d.ts +30 -19
  75. package/file-input/FileInput.d.ts +4 -0
  76. package/file-input/FileInput.js +172 -111
  77. package/file-input/FileInput.stories.tsx +507 -0
  78. package/file-input/FileInput.test.js +457 -0
  79. package/file-input/FileItem.d.ts +14 -0
  80. package/file-input/FileItem.js +16 -23
  81. package/file-input/types.d.ts +112 -0
  82. package/file-input/types.js +5 -0
  83. package/flex/Flex.d.ts +4 -0
  84. package/flex/Flex.js +69 -0
  85. package/flex/Flex.stories.tsx +103 -0
  86. package/flex/types.d.ts +32 -0
  87. package/flex/types.js +5 -0
  88. package/footer/Footer.d.ts +1 -1
  89. package/footer/Footer.js +32 -113
  90. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
  91. package/footer/Footer.test.js +109 -0
  92. package/footer/Icons.d.ts +2 -0
  93. package/footer/Icons.js +4 -4
  94. package/footer/types.d.ts +23 -18
  95. package/header/Header.js +97 -116
  96. package/header/Header.stories.tsx +172 -0
  97. package/header/Header.test.js +79 -0
  98. package/header/Icons.d.ts +2 -0
  99. package/header/Icons.js +2 -2
  100. package/header/types.d.ts +7 -4
  101. package/heading/Heading.d.ts +4 -0
  102. package/heading/Heading.js +7 -24
  103. package/heading/Heading.stories.tsx +54 -0
  104. package/heading/Heading.test.js +186 -0
  105. package/heading/types.d.ts +33 -0
  106. package/heading/types.js +5 -0
  107. package/inset/Inset.d.ts +3 -0
  108. package/inset/Inset.js +51 -0
  109. package/inset/Inset.stories.tsx +229 -0
  110. package/inset/types.d.ts +37 -0
  111. package/inset/types.js +5 -0
  112. package/layout/ApplicationLayout.d.ts +20 -0
  113. package/layout/ApplicationLayout.js +71 -135
  114. package/layout/ApplicationLayout.stories.tsx +162 -0
  115. package/layout/Icons.d.ts +5 -0
  116. package/layout/Icons.js +13 -2
  117. package/layout/SidenavContext.d.ts +5 -0
  118. package/layout/SidenavContext.js +19 -0
  119. package/layout/types.d.ts +42 -0
  120. package/layout/types.js +5 -0
  121. package/link/Link.d.ts +3 -2
  122. package/link/Link.js +61 -86
  123. package/link/Link.stories.tsx +139 -16
  124. package/link/Link.test.js +83 -0
  125. package/link/types.d.ts +9 -29
  126. package/main.d.ts +12 -12
  127. package/main.js +64 -58
  128. package/number-input/NumberInput.d.ts +4 -0
  129. package/number-input/NumberInput.js +16 -68
  130. package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +5 -5
  131. package/number-input/NumberInput.test.js +506 -0
  132. package/number-input/NumberInputContext.d.ts +4 -0
  133. package/number-input/NumberInputContext.js +5 -2
  134. package/number-input/numberInputContextTypes.d.ts +19 -0
  135. package/number-input/numberInputContextTypes.js +5 -0
  136. package/number-input/types.d.ts +124 -0
  137. package/number-input/types.js +5 -0
  138. package/package.json +16 -12
  139. package/paginator/Paginator.js +19 -46
  140. package/paginator/Paginator.test.js +308 -0
  141. package/paragraph/Paragraph.d.ts +6 -0
  142. package/paragraph/Paragraph.js +38 -0
  143. package/paragraph/Paragraph.stories.tsx +44 -0
  144. package/password-input/PasswordInput.js +27 -21
  145. package/password-input/PasswordInput.stories.tsx +3 -3
  146. package/password-input/PasswordInput.test.js +181 -0
  147. package/password-input/types.d.ts +29 -19
  148. package/progress-bar/ProgressBar.d.ts +2 -2
  149. package/progress-bar/ProgressBar.js +59 -53
  150. package/progress-bar/ProgressBar.stories.jsx +13 -11
  151. package/progress-bar/ProgressBar.test.js +110 -0
  152. package/progress-bar/types.d.ts +3 -4
  153. package/quick-nav/QuickNav.d.ts +4 -0
  154. package/quick-nav/QuickNav.js +117 -0
  155. package/quick-nav/QuickNav.stories.tsx +342 -0
  156. package/quick-nav/types.d.ts +21 -0
  157. package/quick-nav/types.js +5 -0
  158. package/radio-group/Radio.d.ts +4 -0
  159. package/radio-group/Radio.js +156 -0
  160. package/radio-group/RadioGroup.d.ts +4 -0
  161. package/radio-group/RadioGroup.js +283 -0
  162. package/radio-group/RadioGroup.stories.tsx +101 -0
  163. package/radio-group/RadioGroup.test.js +722 -0
  164. package/radio-group/types.d.ts +114 -0
  165. package/radio-group/types.js +5 -0
  166. package/resultsetTable/ResultsetTable.d.ts +4 -0
  167. package/resultsetTable/ResultsetTable.js +10 -32
  168. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  169. package/resultsetTable/ResultsetTable.test.js +348 -0
  170. package/resultsetTable/types.d.ts +67 -0
  171. package/resultsetTable/types.js +5 -0
  172. package/select/Icons.d.ts +10 -0
  173. package/select/Icons.js +93 -0
  174. package/select/Listbox.d.ts +4 -0
  175. package/select/Listbox.js +198 -0
  176. package/select/Option.d.ts +4 -0
  177. package/select/Option.js +110 -0
  178. package/select/Select.d.ts +4 -0
  179. package/select/Select.js +160 -380
  180. package/select/Select.stories.tsx +627 -0
  181. package/select/Select.test.js +2233 -0
  182. package/select/types.d.ts +210 -0
  183. package/select/types.js +5 -0
  184. package/sidenav/Sidenav.d.ts +10 -0
  185. package/sidenav/Sidenav.js +186 -63
  186. package/sidenav/Sidenav.stories.tsx +180 -0
  187. package/sidenav/Sidenav.test.js +44 -0
  188. package/sidenav/types.d.ts +73 -0
  189. package/sidenav/types.js +5 -0
  190. package/slider/Slider.d.ts +1 -1
  191. package/slider/Slider.js +120 -95
  192. package/slider/Slider.stories.tsx +20 -9
  193. package/slider/Slider.test.js +250 -0
  194. package/slider/types.d.ts +6 -2
  195. package/spinner/Spinner.js +3 -3
  196. package/spinner/Spinner.stories.jsx +1 -0
  197. package/spinner/Spinner.test.js +64 -0
  198. package/switch/Switch.d.ts +2 -2
  199. package/switch/Switch.js +149 -67
  200. package/switch/Switch.stories.tsx +21 -43
  201. package/switch/Switch.test.js +225 -0
  202. package/switch/types.d.ts +9 -6
  203. package/table/Table.js +4 -4
  204. package/table/Table.stories.jsx +2 -1
  205. package/table/Table.test.js +26 -0
  206. package/tabs/Tab.d.ts +4 -0
  207. package/tabs/Tab.js +135 -0
  208. package/tabs/Tabs.d.ts +1 -1
  209. package/tabs/Tabs.js +364 -108
  210. package/tabs/Tabs.stories.tsx +186 -0
  211. package/tabs/Tabs.test.js +351 -0
  212. package/tabs/types.d.ts +41 -20
  213. package/tabs-nav/NavTabs.d.ts +8 -0
  214. package/tabs-nav/NavTabs.js +125 -0
  215. package/tabs-nav/NavTabs.stories.tsx +170 -0
  216. package/tabs-nav/NavTabs.test.js +82 -0
  217. package/tabs-nav/Tab.d.ts +4 -0
  218. package/tabs-nav/Tab.js +130 -0
  219. package/tabs-nav/types.d.ts +53 -0
  220. package/tabs-nav/types.js +5 -0
  221. package/tag/Tag.d.ts +1 -1
  222. package/tag/Tag.js +19 -29
  223. package/tag/Tag.stories.tsx +26 -29
  224. package/tag/Tag.test.js +60 -0
  225. package/tag/types.d.ts +23 -14
  226. package/text-input/Icons.d.ts +8 -0
  227. package/text-input/Icons.js +60 -0
  228. package/text-input/Suggestion.d.ts +4 -0
  229. package/text-input/Suggestion.js +57 -0
  230. package/text-input/Suggestions.d.ts +4 -0
  231. package/text-input/Suggestions.js +134 -0
  232. package/text-input/TextInput.d.ts +4 -0
  233. package/text-input/TextInput.js +223 -375
  234. package/text-input/TextInput.stories.tsx +481 -0
  235. package/text-input/TextInput.test.js +1714 -0
  236. package/text-input/types.d.ts +197 -0
  237. package/text-input/types.js +5 -0
  238. package/textarea/Textarea.d.ts +4 -0
  239. package/textarea/Textarea.js +39 -79
  240. package/textarea/Textarea.stories.jsx +37 -15
  241. package/textarea/Textarea.test.js +437 -0
  242. package/textarea/types.d.ts +137 -0
  243. package/textarea/types.js +5 -0
  244. package/toggle-group/ToggleGroup.d.ts +4 -0
  245. package/toggle-group/ToggleGroup.js +18 -46
  246. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  247. package/toggle-group/ToggleGroup.test.js +156 -0
  248. package/toggle-group/types.d.ts +105 -0
  249. package/toggle-group/types.js +5 -0
  250. package/typography/Typography.d.ts +4 -0
  251. package/typography/Typography.js +131 -0
  252. package/typography/Typography.stories.tsx +198 -0
  253. package/typography/types.d.ts +18 -0
  254. package/typography/types.js +5 -0
  255. package/useTheme.d.ts +2 -0
  256. package/useTheme.js +2 -2
  257. package/useTranslatedLabels.d.ts +2 -0
  258. package/useTranslatedLabels.js +20 -0
  259. package/wizard/Wizard.d.ts +4 -0
  260. package/wizard/Wizard.js +118 -104
  261. package/wizard/Wizard.stories.tsx +233 -0
  262. package/wizard/Wizard.test.js +141 -0
  263. package/wizard/types.d.ts +65 -0
  264. package/wizard/types.js +5 -0
  265. package/ThemeContext.js +0 -246
  266. package/V3Select/V3Select.js +0 -455
  267. package/V3Select/index.d.ts +0 -27
  268. package/V3Textarea/V3Textarea.js +0 -260
  269. package/V3Textarea/index.d.ts +0 -27
  270. package/chip/index.d.ts +0 -22
  271. package/date/Date.js +0 -373
  272. package/date/index.d.ts +0 -27
  273. package/file-input/index.d.ts +0 -81
  274. package/heading/index.d.ts +0 -17
  275. package/input-text/Icons.js +0 -22
  276. package/input-text/InputText.js +0 -611
  277. package/input-text/index.d.ts +0 -36
  278. package/number-input/index.d.ts +0 -113
  279. package/radio/Radio.d.ts +0 -4
  280. package/radio/Radio.js +0 -174
  281. package/radio/Radio.stories.tsx +0 -192
  282. package/radio/types.d.ts +0 -54
  283. package/resultsetTable/index.d.ts +0 -19
  284. package/select/index.d.ts +0 -131
  285. package/sidenav/index.d.ts +0 -13
  286. package/text-input/index.d.ts +0 -135
  287. package/textarea/index.d.ts +0 -117
  288. package/toggle/Toggle.js +0 -186
  289. package/toggle/index.d.ts +0 -21
  290. package/toggle-group/index.d.ts +0 -21
  291. package/upload/Upload.js +0 -201
  292. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  293. package/upload/buttons-upload/Icons.js +0 -40
  294. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  295. package/upload/dragAndDropArea/Icons.js +0 -39
  296. package/upload/file-upload/FileToUpload.js +0 -115
  297. package/upload/file-upload/Icons.js +0 -66
  298. package/upload/files-upload/FilesToUpload.js +0 -109
  299. package/upload/index.d.ts +0 -15
  300. package/upload/transaction/Icons.js +0 -160
  301. package/upload/transaction/Transaction.js +0 -104
  302. package/upload/transactions/Transactions.js +0 -94
  303. package/wizard/Icons.js +0 -65
  304. package/wizard/index.d.ts +0 -18
package/slider/Slider.js CHANGED
@@ -17,8 +17,6 @@ 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"));
@@ -27,13 +25,13 @@ var _variables = require("../common/variables.js");
27
25
 
28
26
  var _utils = require("../common/utils.js");
29
27
 
30
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
28
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
31
29
 
32
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
30
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
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
 
@@ -44,6 +42,7 @@ var DxcSlider = function DxcSlider(_ref) {
44
42
  label = _ref$label === void 0 ? "" : _ref$label,
45
43
  _ref$name = _ref.name,
46
44
  name = _ref$name === void 0 ? "" : _ref$name,
45
+ defaultValue = _ref.defaultValue,
47
46
  value = _ref.value,
48
47
  _ref$helperText = _ref.helperText,
49
48
  helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
@@ -68,17 +67,22 @@ var DxcSlider = function DxcSlider(_ref) {
68
67
  _ref$size = _ref.size,
69
68
  size = _ref$size === void 0 ? "fillParent" : _ref$size;
70
69
 
71
- var _useState = (0, _react.useState)(0),
70
+ var _useState = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : 0),
72
71
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
73
72
  innerValue = _useState2[0],
74
73
  setInnerValue = _useState2[1];
75
74
 
75
+ var _useState3 = (0, _react.useState)(false),
76
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
77
+ dragging = _useState4[0],
78
+ setDragging = _useState4[1];
79
+
76
80
  var colorsTheme = (0, _useTheme["default"])();
77
81
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
78
82
 
79
- var _useState3 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
80
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
81
- 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];
82
86
 
83
87
  var minLabel = (0, _react.useMemo)(function () {
84
88
  return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
@@ -86,15 +90,44 @@ var DxcSlider = function DxcSlider(_ref) {
86
90
  var maxLabel = (0, _react.useMemo)(function () {
87
91
  return labelFormatCallback ? labelFormatCallback(maxValue) : maxValue;
88
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
+ };
89
121
 
90
- var handlerSliderChange = function handlerSliderChange(event, newValue) {
91
- var valueToCheck = value !== null && value !== void 0 ? value : innerValue;
92
- valueToCheck !== newValue && setInnerValue(newValue);
93
- onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
122
+ var handleSliderDragging = function handleSliderDragging() {
123
+ setDragging(true);
94
124
  };
95
125
 
96
- var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event, selectedValue) {
97
- 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
+ }
98
131
  };
99
132
 
100
133
  var handlerInputChange = function handlerInputChange(event) {
@@ -109,6 +142,7 @@ var DxcSlider = function DxcSlider(_ref) {
109
142
  }
110
143
  };
111
144
 
145
+ var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
112
146
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
113
147
  theme: colorsTheme.slider
114
148
  }, /*#__PURE__*/_react["default"].createElement(Container, {
@@ -121,28 +155,36 @@ var DxcSlider = function DxcSlider(_ref) {
121
155
  }, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
122
156
  disabled: disabled,
123
157
  backgroundType: backgroundType
124
- }, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, {
125
- backgroundType: backgroundType
126
- }, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
158
+ }, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, null, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
127
159
  backgroundType: backgroundType,
128
160
  disabled: disabled
129
- }, minLabel), /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
130
- value: value != null && value >= 0 && value || innerValue,
161
+ }, minLabel), /*#__PURE__*/_react["default"].createElement(SliderInputContainer, null, /*#__PURE__*/_react["default"].createElement(SliderInput, {
162
+ role: "slider",
163
+ type: "range",
164
+ value: value != null && value >= 0 ? value : innerValue,
131
165
  min: minValue,
132
166
  max: maxValue,
133
- onChange: handlerSliderChange,
134
- onChangeCommitted: handleSliderOnChangeCommited,
135
167
  step: step,
136
- marks: marks || [],
168
+ marks: marks,
137
169
  disabled: disabled,
138
- "aria-labelledby": labelId
139
- }), 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, {
140
182
  backgroundType: backgroundType,
141
183
  disabled: disabled,
142
184
  step: step
143
185
  }, maxLabel), showInput && /*#__PURE__*/_react["default"].createElement(StyledTextInput, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
144
186
  name: name,
145
- value: value != null && value >= 0 && value || innerValue,
187
+ value: value != null && value >= 0 ? value.toString() : innerValue.toString(),
146
188
  disabled: disabled,
147
189
  onChange: handlerInputChange,
148
190
  size: "fillParent"
@@ -150,7 +192,7 @@ var DxcSlider = function DxcSlider(_ref) {
150
192
  };
151
193
 
152
194
  var sizes = {
153
- medium: "240px",
195
+ medium: "360px",
154
196
  large: "480px",
155
197
  fillParent: "100%"
156
198
  };
@@ -159,6 +201,14 @@ var calculateWidth = function calculateWidth(margin, size) {
159
201
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
160
202
  };
161
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
+
162
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) {
163
213
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
164
214
  }, function (props) {
@@ -201,83 +251,51 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
201
251
  return props.theme.helperTextLineHeight;
202
252
  });
203
253
 
204
- var SliderContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n\n .MultiSlider-root {\n display: flex;\n align-items: center;\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) {
205
- return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
206
- }, function (props) {
207
- return props.theme.thumbHeight;
208
- }, function (props) {
209
- return props.theme.thumbWidth;
210
- }, function (props) {
211
- return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
212
- }, function (props) {
213
- return props.theme.disabledThumbVerticalPosition;
214
- }, function (props) {
215
- return props.backgroundType === "dark" ? props.theme.disabledTrackLineColorOnDark : props.theme.disabledTrackLineColor;
216
- }, function (props) {
217
- return props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark : props.theme.disabledTotalLineColor;
218
- }, function (props) {
219
- 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 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) {
255
+ return props.theme.trackLineThickness;
220
256
  }, function (props) {
221
- 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 + "61";
222
258
  }, function (props) {
223
- 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, ")");
224
260
  }, function (props) {
225
- return props.theme.tickWidth;
261
+ return (props.value - props.min) * 100 / (props.max - props.min) + "% 100%";
226
262
  }, function (props) {
227
- return props.theme.disabledTickVerticalPosition;
263
+ return props.disabled ? "not-allowed" : "pointer";
228
264
  }, function (props) {
229
265
  return props.theme.thumbHeight;
230
266
  }, function (props) {
231
267
  return props.theme.thumbWidth;
232
268
  }, function (props) {
233
- return props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
269
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
234
270
  }, function (props) {
235
- return props.theme.thumbVerticalPosition;
271
+ if (!props.disabled) {
272
+ return "\n background: ".concat(props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor, ";\n transform: scale(1.16667);");
273
+ }
236
274
  }, function (props) {
237
- return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
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
+ }
238
278
  }, function (props) {
239
- return props.backgroundType === "dark" ? props.theme.focusThumbBackgroundColorOnDark : props.theme.focusThumbBackgroundColor;
240
- }, function (props) {
241
- return props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor;
242
- }, function (props) {
243
- return props.theme.hoverThumbScale;
244
- }, function (props) {
245
- return props.theme.hoverThumbHeight;
279
+ return props.theme.thumbHeight;
246
280
  }, function (props) {
247
- return props.theme.hoverThumbWidth;
281
+ return props.theme.thumbWidth;
248
282
  }, function (props) {
249
- 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;
250
284
  }, function (props) {
251
285
  return props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor;
252
286
  }, function (props) {
253
- return props.theme.activeThumbScale;
254
- }, function (props) {
255
- return props.backgroundType === "dark" ? props.theme.trackLineColorOnDark : props.theme.trackLineColor;
256
- }, function (props) {
257
- return props.theme.trackLineThickness;
258
- }, function (props) {
259
- return props.theme.trackLineVerticalPosition;
260
- }, function (props) {
261
- return props.backgroundType === "dark" ? props.theme.trackLineColorOnDark : props.theme.trackLineColor;
262
- }, function (props) {
263
- return props.backgroundType === "dark" ? props.theme.totalLineColorOnDark : props.theme.totalLineColor;
264
- }, function (props) {
265
- return props.theme.totalLineThickness;
266
- }, function (props) {
267
- return props.theme.totalLineVerticalPosition;
268
- }, function (props) {
269
- return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
270
- }, function (props) {
271
- return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
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
+ }
272
290
  }, function (props) {
273
- return props.theme.tickHeight;
274
- }, function (props) {
275
- return props.theme.tickWidth;
291
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
276
292
  }, function (props) {
277
- 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;
278
294
  });
279
295
 
280
- 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 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) {
281
299
  return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
282
300
  }, function (props) {
283
301
  return props.theme.fontFamily;
@@ -289,27 +307,34 @@ var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_
289
307
  return props.theme.limitValuesFontWeight;
290
308
  }, function (props) {
291
309
  return props.theme.limitValuesFontLetterSpacing;
292
- }, function (props) {
310
+ });
311
+
312
+ var MinLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n"])), function (props) {
293
313
  return props.theme.floorLabelMarginRight;
294
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
+ });
295
318
 
296
- 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 margin-left: ", ";\n"])), function (props) {
297
- return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
298
- }, function (props) {
299
- return props.theme.fontFamily;
300
- }, function (props) {
301
- 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"])));
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 ", ";\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;
302
327
  }, function (props) {
303
- return props.theme.limitValuesFontStyle;
328
+ return props.theme.tickHeight;
304
329
  }, function (props) {
305
- return props.theme.limitValuesFontWeight;
330
+ return props.theme.tickWidth;
306
331
  }, function (props) {
307
- return props.theme.limitValuesFontLetterSpacing;
332
+ return "calc(".concat(props.stepPosition, " * 100%)");
308
333
  }, function (props) {
309
- return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
334
+ return !props.disabled ? "z-index: ".concat(props.stepPosition <= props.stepValue ? "0" : "1") : "";
310
335
  });
311
336
 
312
- 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) {
313
338
  return props.theme.inputMarginLeft;
314
339
  });
315
340
 
@@ -4,13 +4,14 @@ 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 { userEvent, within } from "@storybook/testing-library";
8
7
 
9
8
  export default {
10
9
  title: "Slider",
11
10
  component: DxcSlider,
12
11
  };
13
12
 
13
+ const labelFormat = (value) => `${value}E100000000000000000000000`;
14
+
14
15
  export const Chromatic = () => (
15
16
  <>
16
17
  <Title title="States" theme="light" level={2} />
@@ -36,7 +37,7 @@ export const Chromatic = () => (
36
37
  label="Slider"
37
38
  helperText="Help message"
38
39
  disabled
39
- value={40}
40
+ defaultValue={40}
40
41
  minValue={0}
41
42
  maxValue={50}
42
43
  showLimitsValues
@@ -48,16 +49,16 @@ export const Chromatic = () => (
48
49
  <Title title="Variants" theme="light" level={2} />
49
50
  <ExampleContainer>
50
51
  <Title title="Continuous slider" theme="light" level={4} />
51
- <DxcSlider value={65} label="Slider" helperText="Help message" showLimitsValues />
52
+ <DxcSlider defaultValue={65} label="Slider" helperText="Help message" showLimitsValues />
52
53
  </ExampleContainer>
53
54
  <ExampleContainer>
54
55
  <Title title="Discrete slider" theme="light" level={4} />
55
- <DxcSlider value={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
56
+ <DxcSlider defaultValue={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
56
57
  </ExampleContainer>
57
58
  <ExampleContainer>
58
59
  <Title title="Discrete slider with input" theme="light" level={4} />
59
60
  <DxcSlider
60
- value={20}
61
+ defaultValue={20}
61
62
  minValue={0}
62
63
  maxValue={50}
63
64
  label="Slider"
@@ -93,7 +94,7 @@ export const Chromatic = () => (
93
94
  label="Slider"
94
95
  helperText="Help message"
95
96
  disabled
96
- value={40}
97
+ defaultValue={40}
97
98
  minValue={0}
98
99
  maxValue={50}
99
100
  showLimitsValues
@@ -104,16 +105,16 @@ export const Chromatic = () => (
104
105
  </ExampleContainer>
105
106
  <ExampleContainer>
106
107
  <Title title="Continuous slider" theme="dark" level={4} />
107
- <DxcSlider value={65} label="Slider" helperText="Help message" showLimitsValues />
108
+ <DxcSlider defaultValue={65} label="Slider" helperText="Help message" showLimitsValues />
108
109
  </ExampleContainer>
109
110
  <ExampleContainer>
110
111
  <Title title="Discrete slider" theme="dark" level={4} />
111
- <DxcSlider value={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
112
+ <DxcSlider defaultValue={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
112
113
  </ExampleContainer>
113
114
  <ExampleContainer>
114
115
  <Title title="Discrete slider with input" theme="dark" level={4} />
115
116
  <DxcSlider
116
- value={20}
117
+ defaultValue={20}
117
118
  minValue={0}
118
119
  maxValue={50}
119
120
  label="Slider"
@@ -168,5 +169,15 @@ export const Chromatic = () => (
168
169
  <Title title="FillParent" theme="light" level={4} />
169
170
  <DxcSlider label="FillParent" size="fillParent" />
170
171
  </ExampleContainer>
172
+ <ExampleContainer>
173
+ <Title title="Large limit values labels" theme="light" level={4} />
174
+ <DxcSlider
175
+ label="Slider"
176
+ helperText="Help message"
177
+ showLimitsValues
178
+ labelFormatCallback={labelFormat}
179
+ size="large"
180
+ />
181
+ </ExampleContainer>
171
182
  </>
172
183
  );