@dxc-technology/halstack-react 0.0.0-73f82b7 → 0.0.0-74ba970

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 (297) 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 +11 -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 +16 -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 +0 -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 +15 -8
  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 +4 -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 +211 -0
  64. package/dialog/Dialog.test.js +70 -0
  65. package/dialog/types.d.ts +2 -2
  66. package/dropdown/Dropdown.d.ts +1 -1
  67. package/dropdown/Dropdown.js +243 -273
  68. package/dropdown/Dropdown.stories.tsx +312 -0
  69. package/dropdown/Dropdown.test.js +591 -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 +57 -0
  85. package/flex/Flex.stories.tsx +103 -0
  86. package/flex/types.d.ts +21 -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 +22 -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 +6 -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.js +14 -24
  129. package/number-input/NumberInput.stories.tsx +5 -5
  130. package/number-input/NumberInput.test.js +506 -0
  131. package/number-input/NumberInputContext.d.ts +4 -0
  132. package/number-input/NumberInputContext.js +5 -2
  133. package/number-input/numberInputContextTypes.d.ts +19 -0
  134. package/number-input/numberInputContextTypes.js +5 -0
  135. package/number-input/types.d.ts +17 -10
  136. package/package.json +16 -12
  137. package/paginator/Paginator.js +19 -46
  138. package/paginator/Paginator.test.js +308 -0
  139. package/paragraph/Paragraph.d.ts +6 -0
  140. package/paragraph/Paragraph.js +38 -0
  141. package/paragraph/Paragraph.stories.tsx +44 -0
  142. package/password-input/PasswordInput.js +23 -19
  143. package/password-input/PasswordInput.stories.tsx +3 -3
  144. package/password-input/PasswordInput.test.js +180 -0
  145. package/password-input/types.d.ts +29 -19
  146. package/progress-bar/ProgressBar.d.ts +2 -2
  147. package/progress-bar/ProgressBar.js +59 -53
  148. package/progress-bar/ProgressBar.stories.jsx +13 -11
  149. package/progress-bar/ProgressBar.test.js +110 -0
  150. package/progress-bar/types.d.ts +3 -4
  151. package/quick-nav/QuickNav.d.ts +4 -0
  152. package/quick-nav/QuickNav.js +118 -0
  153. package/quick-nav/QuickNav.stories.tsx +264 -0
  154. package/quick-nav/types.d.ts +21 -0
  155. package/quick-nav/types.js +5 -0
  156. package/radio-group/Radio.d.ts +4 -0
  157. package/radio-group/Radio.js +156 -0
  158. package/radio-group/RadioGroup.d.ts +4 -0
  159. package/radio-group/RadioGroup.js +279 -0
  160. package/radio-group/RadioGroup.stories.tsx +101 -0
  161. package/radio-group/RadioGroup.test.js +665 -0
  162. package/radio-group/types.d.ts +114 -0
  163. package/radio-group/types.js +5 -0
  164. package/resultsetTable/ResultsetTable.d.ts +4 -0
  165. package/resultsetTable/ResultsetTable.js +9 -29
  166. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  167. package/resultsetTable/ResultsetTable.test.js +348 -0
  168. package/resultsetTable/types.d.ts +67 -0
  169. package/resultsetTable/types.js +5 -0
  170. package/select/Icons.d.ts +10 -0
  171. package/select/Icons.js +93 -0
  172. package/select/Listbox.d.ts +4 -0
  173. package/select/Listbox.js +198 -0
  174. package/select/Option.d.ts +4 -0
  175. package/select/Option.js +110 -0
  176. package/select/Select.d.ts +4 -0
  177. package/select/Select.js +158 -380
  178. package/select/Select.stories.tsx +627 -0
  179. package/select/Select.test.js +2175 -0
  180. package/select/types.d.ts +210 -0
  181. package/select/types.js +5 -0
  182. package/sidenav/Sidenav.d.ts +6 -5
  183. package/sidenav/Sidenav.js +186 -54
  184. package/sidenav/Sidenav.stories.tsx +180 -0
  185. package/sidenav/Sidenav.test.js +44 -0
  186. package/sidenav/types.d.ts +50 -27
  187. package/slider/Slider.d.ts +1 -1
  188. package/slider/Slider.js +118 -96
  189. package/slider/Slider.stories.tsx +20 -9
  190. package/slider/Slider.test.js +250 -0
  191. package/slider/types.d.ts +6 -2
  192. package/spinner/Spinner.js +3 -3
  193. package/spinner/Spinner.stories.jsx +1 -0
  194. package/spinner/Spinner.test.js +64 -0
  195. package/switch/Switch.d.ts +2 -2
  196. package/switch/Switch.js +149 -67
  197. package/switch/Switch.stories.tsx +21 -43
  198. package/switch/Switch.test.js +225 -0
  199. package/switch/types.d.ts +9 -6
  200. package/table/Table.js +3 -3
  201. package/table/Table.stories.jsx +2 -1
  202. package/table/Table.test.js +26 -0
  203. package/tabs/Tab.d.ts +4 -0
  204. package/tabs/Tab.js +135 -0
  205. package/tabs/Tabs.d.ts +1 -1
  206. package/tabs/Tabs.js +364 -108
  207. package/tabs/Tabs.stories.tsx +186 -0
  208. package/tabs/Tabs.test.js +351 -0
  209. package/tabs/types.d.ts +41 -20
  210. package/tabs-nav/NavTabs.d.ts +8 -0
  211. package/tabs-nav/NavTabs.js +125 -0
  212. package/tabs-nav/NavTabs.stories.tsx +170 -0
  213. package/tabs-nav/NavTabs.test.js +82 -0
  214. package/tabs-nav/Tab.d.ts +4 -0
  215. package/tabs-nav/Tab.js +130 -0
  216. package/tabs-nav/types.d.ts +53 -0
  217. package/tabs-nav/types.js +5 -0
  218. package/tag/Tag.d.ts +1 -1
  219. package/tag/Tag.js +19 -29
  220. package/tag/Tag.stories.tsx +26 -29
  221. package/tag/Tag.test.js +60 -0
  222. package/tag/types.d.ts +23 -14
  223. package/text-input/Icons.d.ts +8 -0
  224. package/text-input/Icons.js +60 -0
  225. package/text-input/Suggestion.d.ts +4 -0
  226. package/text-input/Suggestion.js +57 -0
  227. package/text-input/Suggestions.d.ts +4 -0
  228. package/text-input/Suggestions.js +134 -0
  229. package/text-input/TextInput.d.ts +4 -0
  230. package/text-input/TextInput.js +166 -328
  231. package/text-input/TextInput.stories.tsx +481 -0
  232. package/text-input/TextInput.test.js +1713 -0
  233. package/text-input/types.d.ts +192 -0
  234. package/text-input/types.js +5 -0
  235. package/textarea/Textarea.d.ts +4 -0
  236. package/textarea/Textarea.js +39 -79
  237. package/textarea/Textarea.stories.jsx +37 -15
  238. package/textarea/Textarea.test.js +437 -0
  239. package/textarea/types.d.ts +137 -0
  240. package/textarea/types.js +5 -0
  241. package/toggle-group/ToggleGroup.d.ts +4 -0
  242. package/toggle-group/ToggleGroup.js +18 -46
  243. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  244. package/toggle-group/ToggleGroup.test.js +156 -0
  245. package/toggle-group/types.d.ts +105 -0
  246. package/toggle-group/types.js +5 -0
  247. package/typography/Typography.d.ts +4 -0
  248. package/typography/Typography.js +131 -0
  249. package/typography/Typography.stories.tsx +198 -0
  250. package/typography/types.d.ts +18 -0
  251. package/typography/types.js +5 -0
  252. package/useTheme.d.ts +2 -0
  253. package/useTheme.js +2 -2
  254. package/useTranslatedLabels.d.ts +2 -0
  255. package/useTranslatedLabels.js +20 -0
  256. package/wizard/Wizard.d.ts +1 -1
  257. package/wizard/Wizard.js +112 -58
  258. package/wizard/Wizard.stories.tsx +233 -0
  259. package/wizard/Wizard.test.js +141 -0
  260. package/wizard/types.d.ts +13 -12
  261. package/ThemeContext.js +0 -246
  262. package/V3Select/V3Select.js +0 -455
  263. package/V3Select/index.d.ts +0 -27
  264. package/V3Textarea/V3Textarea.js +0 -260
  265. package/V3Textarea/index.d.ts +0 -27
  266. package/chip/index.d.ts +0 -22
  267. package/date/Date.js +0 -373
  268. package/date/index.d.ts +0 -27
  269. package/file-input/index.d.ts +0 -81
  270. package/heading/index.d.ts +0 -17
  271. package/input-text/Icons.js +0 -22
  272. package/input-text/InputText.js +0 -611
  273. package/input-text/index.d.ts +0 -36
  274. package/radio/Radio.d.ts +0 -4
  275. package/radio/Radio.js +0 -174
  276. package/radio/Radio.stories.tsx +0 -192
  277. package/radio/types.d.ts +0 -54
  278. package/resultsetTable/index.d.ts +0 -19
  279. package/select/index.d.ts +0 -131
  280. package/text-input/index.d.ts +0 -135
  281. package/textarea/index.d.ts +0 -117
  282. package/toggle/Toggle.js +0 -186
  283. package/toggle/index.d.ts +0 -21
  284. package/toggle-group/index.d.ts +0 -21
  285. package/upload/Upload.js +0 -201
  286. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  287. package/upload/buttons-upload/Icons.js +0 -40
  288. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  289. package/upload/dragAndDropArea/Icons.js +0 -39
  290. package/upload/file-upload/FileToUpload.js +0 -115
  291. package/upload/file-upload/Icons.js +0 -66
  292. package/upload/files-upload/FilesToUpload.js +0 -109
  293. package/upload/index.d.ts +0 -15
  294. package/upload/transaction/Icons.js +0 -160
  295. package/upload/transaction/Transaction.js +0 -104
  296. package/upload/transactions/Transactions.js +0 -94
  297. package/wizard/Icons.js +0 -65
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,43 @@ 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 * 100,
104
+ backgroundType: backgroundType
105
+ }));
106
+ index++;
107
+ }
108
+
109
+ return ticks;
110
+ } else {
111
+ return null;
112
+ }
113
+ }, [minValue, maxValue, step]);
114
+
115
+ var handleSliderChange = function handleSliderChange(event) {
116
+ var valueToCheck = event.target.value;
117
+ (valueToCheck !== value || valueToCheck !== innerValue) && setInnerValue(valueToCheck);
118
+ onChange === null || onChange === void 0 ? void 0 : onChange(valueToCheck);
119
+ };
89
120
 
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);
121
+ var handleSliderDragging = function handleSliderDragging() {
122
+ setDragging(true);
94
123
  };
95
124
 
96
- var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event, selectedValue) {
97
- onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(selectedValue);
125
+ var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event) {
126
+ if (dragging) {
127
+ setDragging(false);
128
+ onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event.target.value);
129
+ }
98
130
  };
99
131
 
100
132
  var handlerInputChange = function handlerInputChange(event) {
@@ -109,6 +141,7 @@ var DxcSlider = function DxcSlider(_ref) {
109
141
  }
110
142
  };
111
143
 
144
+ var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
112
145
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
113
146
  theme: colorsTheme.slider
114
147
  }, /*#__PURE__*/_react["default"].createElement(Container, {
@@ -121,28 +154,36 @@ var DxcSlider = function DxcSlider(_ref) {
121
154
  }, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
122
155
  disabled: disabled,
123
156
  backgroundType: backgroundType
124
- }, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, {
125
- backgroundType: backgroundType
126
- }, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
157
+ }, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, null, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
127
158
  backgroundType: backgroundType,
128
159
  disabled: disabled
129
- }, minLabel), /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
130
- value: value != null && value >= 0 && value || innerValue,
160
+ }, minLabel), /*#__PURE__*/_react["default"].createElement(SliderInputContainer, null, /*#__PURE__*/_react["default"].createElement(SliderInput, {
161
+ role: "slider",
162
+ type: "range",
163
+ value: value != null && value >= 0 ? value : innerValue,
131
164
  min: minValue,
132
165
  max: maxValue,
133
- onChange: handlerSliderChange,
134
- onChangeCommitted: handleSliderOnChangeCommited,
135
166
  step: step,
136
- marks: marks || [],
167
+ marks: marks,
137
168
  disabled: disabled,
138
- "aria-labelledby": labelId
139
- }), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
169
+ "aria-labelledby": labelId,
170
+ "aria-orientation": "horizontal",
171
+ "aria-valuemax": maxValue,
172
+ "aria-valuemin": minValue,
173
+ "aria-valuenow": value != null && value >= 0 ? value : innerValue,
174
+ onChange: handleSliderChange,
175
+ onMouseUp: handleSliderOnChangeCommited,
176
+ onMouseDown: handleSliderDragging,
177
+ backgroundType: backgroundType
178
+ }), marks && /*#__PURE__*/_react["default"].createElement(MarksContainer, {
179
+ isFirefox: isFirefox
180
+ }, tickMarks)), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
140
181
  backgroundType: backgroundType,
141
182
  disabled: disabled,
142
183
  step: step
143
184
  }, maxLabel), showInput && /*#__PURE__*/_react["default"].createElement(StyledTextInput, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
144
185
  name: name,
145
- value: value != null && value >= 0 && value || innerValue,
186
+ value: value != null && value >= 0 ? value.toString() : innerValue.toString(),
146
187
  disabled: disabled,
147
188
  onChange: handlerInputChange,
148
189
  size: "fillParent"
@@ -150,7 +191,7 @@ var DxcSlider = function DxcSlider(_ref) {
150
191
  };
151
192
 
152
193
  var sizes = {
153
- medium: "240px",
194
+ medium: "360px",
154
195
  large: "480px",
155
196
  fillParent: "100%"
156
197
  };
@@ -159,6 +200,14 @@ var calculateWidth = function calculateWidth(margin, size) {
159
200
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
160
201
  };
161
202
 
203
+ var getChromeStyles = function getChromeStyles() {
204
+ return "\n width: 100%;\n margin-right: 4px;";
205
+ };
206
+
207
+ var getFireFoxStyles = function getFireFoxStyles() {
208
+ return "\n width: calc(100% - 16px);\n margin-right: 3px;";
209
+ };
210
+
162
211
  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
212
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
164
213
  }, function (props) {
@@ -201,83 +250,51 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
201
250
  return props.theme.helperTextLineHeight;
202
251
  });
203
252
 
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;
253
+ 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
+ return props.theme.trackLineThickness;
220
255
  }, function (props) {
221
- return props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor;
256
+ 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
257
  }, function (props) {
223
- return props.theme.tickHeight;
258
+ 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
259
  }, function (props) {
225
- return props.theme.tickWidth;
260
+ return (props.value - props.min) * 100 / (props.max - props.min) + "% 100%";
226
261
  }, function (props) {
227
- return props.theme.disabledTickVerticalPosition;
262
+ return props.disabled ? "not-allowed" : "pointer";
228
263
  }, function (props) {
229
264
  return props.theme.thumbHeight;
230
265
  }, function (props) {
231
266
  return props.theme.thumbWidth;
232
267
  }, function (props) {
233
- return props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
268
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
234
269
  }, function (props) {
235
- return props.theme.thumbVerticalPosition;
270
+ if (!props.disabled) {
271
+ return "\n background: ".concat(props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor, ";\n transform: scale(1.16667);");
272
+ }
236
273
  }, function (props) {
237
- return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
274
+ if (!props.disabled) {
275
+ 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, ";");
276
+ }
238
277
  }, 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;
278
+ return props.theme.thumbHeight;
246
279
  }, function (props) {
247
- return props.theme.hoverThumbWidth;
280
+ return props.theme.thumbWidth;
248
281
  }, function (props) {
249
- return props.theme.hoverThumbVerticalPosition;
282
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
250
283
  }, function (props) {
251
284
  return props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor;
252
285
  }, 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;
286
+ if (!props.disabled) {
287
+ 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, ";");
288
+ }
258
289
  }, function (props) {
259
- return props.theme.trackLineVerticalPosition;
290
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
260
291
  }, 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;
272
- }, function (props) {
273
- return props.theme.tickHeight;
274
- }, function (props) {
275
- return props.theme.tickWidth;
276
- }, function (props) {
277
- return props.theme.tickVerticalPosition;
292
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
278
293
  });
279
294
 
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) {
295
+ var SliderContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n"])));
296
+
297
+ 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
298
  return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
282
299
  }, function (props) {
283
300
  return props.theme.fontFamily;
@@ -289,27 +306,32 @@ var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_
289
306
  return props.theme.limitValuesFontWeight;
290
307
  }, function (props) {
291
308
  return props.theme.limitValuesFontLetterSpacing;
292
- }, function (props) {
309
+ });
310
+
311
+ var MinLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n"])), function (props) {
293
312
  return props.theme.floorLabelMarginRight;
294
313
  });
314
+ var MaxLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n"])), function (props) {
315
+ return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
316
+ });
295
317
 
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;
302
- }, function (props) {
303
- return props.theme.limitValuesFontStyle;
318
+ 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
+
320
+ 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) {
321
+ return props.isFirefox ? getFireFoxStyles() : getChromeStyles();
322
+ });
323
+
324
+ 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"])), function (props) {
325
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor : props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
304
326
  }, function (props) {
305
- return props.theme.limitValuesFontWeight;
327
+ return props.theme.tickHeight;
306
328
  }, function (props) {
307
- return props.theme.limitValuesFontLetterSpacing;
329
+ return props.theme.tickWidth;
308
330
  }, function (props) {
309
- return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
331
+ return "".concat(props.stepPosition, "%");
310
332
  });
311
333
 
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) {
334
+ var StyledTextInput = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n max-width: 70px;\n"])), function (props) {
313
335
  return props.theme.inputMarginLeft;
314
336
  });
315
337
 
@@ -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
  );