@dxc-technology/halstack-react 0.0.0-e081e21 → 0.0.0-e1a279c
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.
- package/accordion/Accordion.d.ts +4 -0
- package/accordion/Accordion.js +12 -43
- package/accordion/types.d.ts +68 -0
- package/accordion/types.js +5 -0
- package/accordion-group/AccordionGroup.d.ts +7 -0
- package/accordion-group/AccordionGroup.js +58 -72
- package/accordion-group/types.d.ts +72 -0
- package/accordion-group/types.js +5 -0
- package/alert/Alert.stories.tsx +170 -0
- package/box/Box.d.ts +4 -0
- package/box/Box.js +9 -32
- package/box/Box.stories.tsx +132 -0
- package/box/types.d.ts +47 -0
- package/box/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +7 -12
- package/button/Button.stories.tsx +244 -274
- package/button/types.d.ts +10 -10
- package/card/Card.d.ts +4 -0
- package/card/Card.js +13 -48
- package/card/types.d.ts +69 -0
- package/card/types.js +5 -0
- package/checkbox/Checkbox.stories.tsx +192 -0
- package/checkbox/types.d.ts +2 -3
- package/chip/Chip.stories.tsx +121 -0
- package/common/variables.js +30 -22
- package/date-input/DateInput.d.ts +4 -0
- package/date-input/DateInput.js +3 -38
- package/date-input/DateInput.stories.tsx +138 -0
- package/date-input/types.d.ts +100 -0
- package/date-input/types.js +5 -0
- package/dialog/Dialog.d.ts +4 -0
- package/dialog/Dialog.js +4 -23
- package/dialog/Dialog.stories.tsx +212 -0
- package/dialog/types.d.ts +43 -0
- package/dialog/types.js +5 -0
- package/dropdown/Dropdown.d.ts +4 -0
- package/dropdown/Dropdown.js +7 -40
- package/dropdown/types.d.ts +89 -0
- package/dropdown/types.js +5 -0
- package/footer/Footer.d.ts +4 -0
- package/footer/Footer.js +4 -35
- package/footer/Footer.stories.jsx +151 -0
- package/footer/types.d.ts +61 -0
- package/footer/types.js +5 -0
- package/header/Header.d.ts +7 -0
- package/header/Header.js +26 -28
- package/header/Icons.js +2 -27
- package/header/types.d.ts +45 -0
- package/header/types.js +5 -0
- package/link/Link.d.ts +3 -0
- package/link/Link.js +1 -23
- package/link/Link.stories.tsx +70 -0
- package/link/types.d.ts +74 -0
- package/link/types.js +5 -0
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +2 -44
- package/number-input/NumberInput.stories.tsx +115 -0
- package/number-input/types.d.ts +117 -0
- package/number-input/types.js +5 -0
- package/package.json +3 -3
- package/paginator/Paginator.stories.tsx +63 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/password-input/PasswordInput.js +2 -39
- package/password-input/PasswordInput.stories.tsx +131 -0
- package/password-input/types.d.ts +100 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.d.ts +4 -0
- package/progress-bar/ProgressBar.js +3 -21
- package/progress-bar/ProgressBar.stories.jsx +58 -0
- package/progress-bar/types.d.ts +37 -0
- package/progress-bar/types.js +5 -0
- package/radio/Radio.d.ts +4 -0
- package/radio/Radio.js +3 -24
- package/radio/Radio.stories.tsx +192 -0
- package/radio/types.d.ts +54 -0
- package/radio/types.js +5 -0
- package/select/Select.stories.tsx +572 -0
- package/select/index.d.ts +4 -4
- package/sidenav/Sidenav.d.ts +9 -0
- package/sidenav/Sidenav.js +4 -13
- package/sidenav/types.d.ts +50 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +4 -0
- package/slider/Slider.js +59 -82
- package/slider/Slider.stories.tsx +177 -0
- package/slider/types.d.ts +78 -0
- package/slider/types.js +5 -0
- package/spinner/Spinner.d.ts +4 -0
- package/spinner/Spinner.js +6 -23
- package/spinner/Spinner.stories.jsx +102 -0
- package/spinner/types.d.ts +32 -0
- package/spinner/types.js +5 -0
- package/switch/Switch.js +2 -2
- package/switch/Switch.stories.tsx +160 -0
- package/table/Table.d.ts +4 -0
- package/table/Table.stories.jsx +276 -0
- package/table/types.d.ts +21 -0
- package/table/types.js +5 -0
- package/tabs/Tabs.d.ts +4 -0
- package/tabs/Tabs.js +5 -53
- package/tabs/types.d.ts +71 -0
- package/tabs/types.js +5 -0
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +20 -35
- package/tag/Tag.stories.tsx +145 -0
- package/tag/types.d.ts +60 -0
- package/tag/types.js +5 -0
- package/text-input/index.d.ts +2 -2
- package/textarea/Textarea.stories.jsx +135 -0
- package/toggle-group/ToggleGroup.stories.tsx +178 -0
- package/wizard/Wizard.d.ts +4 -0
- package/wizard/Wizard.js +11 -51
- package/wizard/Wizard.stories.jsx +224 -0
- package/wizard/types.d.ts +64 -0
- package/wizard/types.js +5 -0
- package/accordion/index.d.ts +0 -28
- package/accordion-group/index.d.ts +0 -16
- package/box/index.d.ts +0 -25
- package/card/index.d.ts +0 -22
- package/date-input/index.d.ts +0 -95
- package/dialog/index.d.ts +0 -18
- package/dropdown/index.d.ts +0 -26
- package/footer/index.d.ts +0 -25
- package/header/index.d.ts +0 -25
- package/link/index.d.ts +0 -23
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/progress-bar/index.d.ts +0 -18
- package/radio/index.d.ts +0 -23
- package/sidenav/index.d.ts +0 -13
- package/slider/index.d.ts +0 -29
- package/spinner/index.d.ts +0 -17
- package/table/index.d.ts +0 -13
- package/tabs/index.d.ts +0 -19
- package/tag/index.d.ts +0 -24
- package/wizard/index.d.ts +0 -18
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
declare type Padding = {
|
|
4
|
+
top?: Space;
|
|
5
|
+
bottom?: Space;
|
|
6
|
+
left?: Space;
|
|
7
|
+
right?: Space;
|
|
8
|
+
};
|
|
9
|
+
export declare type SidenavLinkPropsType = {
|
|
10
|
+
/**
|
|
11
|
+
* Value of the tabindex.
|
|
12
|
+
*/
|
|
13
|
+
tabIndex?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Page to be opened when the user clicks on the link.
|
|
16
|
+
*/
|
|
17
|
+
href?: string;
|
|
18
|
+
/**
|
|
19
|
+
* This function will be called when the user clicks the link.
|
|
20
|
+
*/
|
|
21
|
+
onClick?: () => void;
|
|
22
|
+
/**
|
|
23
|
+
* The area inside the sidenav link. This area can be used to render custom content.
|
|
24
|
+
*/
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
};
|
|
27
|
+
export declare type SidenavTitlePropsType = {
|
|
28
|
+
/**
|
|
29
|
+
* The area inside the sidenav title. This area can be used to render custom content.
|
|
30
|
+
*/
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
};
|
|
33
|
+
export declare type SidenavSubtitlePropsType = {
|
|
34
|
+
/**
|
|
35
|
+
* The area inside the sidenav subtitle. This area can be used to render custom content.
|
|
36
|
+
*/
|
|
37
|
+
children: React.ReactNode;
|
|
38
|
+
};
|
|
39
|
+
declare type SidenavPropsType = {
|
|
40
|
+
/**
|
|
41
|
+
* Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
42
|
+
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
|
|
43
|
+
*/
|
|
44
|
+
padding?: Space | Padding;
|
|
45
|
+
/**
|
|
46
|
+
* The area inside the sidenav. This area can be used to render custom content.
|
|
47
|
+
*/
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
};
|
|
50
|
+
export default SidenavPropsType;
|
package/sidenav/types.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import SliderPropsType from "./types";
|
|
3
|
+
declare const DxcSlider: ({ label, name, value, helperText, minValue, maxValue, step, showLimitsValues, showInput, disabled, marks, onChange, onDragEnd, labelFormatCallback, margin, size, }: SliderPropsType) => JSX.Element;
|
|
4
|
+
export default DxcSlider;
|
package/slider/Slider.js
CHANGED
|
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
|
|
14
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
13
|
|
|
16
14
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
@@ -23,8 +21,6 @@ var _Slider = _interopRequireDefault(require("@material-ui/lab/Slider"));
|
|
|
23
21
|
|
|
24
22
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
25
23
|
|
|
26
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
24
|
var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
29
25
|
|
|
30
26
|
var _variables = require("../common/variables.js");
|
|
@@ -35,6 +31,8 @@ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
|
|
|
35
31
|
|
|
36
32
|
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
|
|
37
33
|
|
|
34
|
+
var _uuid = require("uuid");
|
|
35
|
+
|
|
38
36
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
39
37
|
|
|
40
38
|
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); }
|
|
@@ -42,26 +40,29 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
42
40
|
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; }
|
|
43
41
|
|
|
44
42
|
var DxcSlider = function DxcSlider(_ref) {
|
|
45
|
-
var label = _ref.label,
|
|
46
|
-
|
|
43
|
+
var _ref$label = _ref.label,
|
|
44
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
45
|
+
_ref$name = _ref.name,
|
|
46
|
+
name = _ref$name === void 0 ? "" : _ref$name,
|
|
47
|
+
value = _ref.value,
|
|
48
|
+
_ref$helperText = _ref.helperText,
|
|
49
|
+
helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
|
|
47
50
|
_ref$minValue = _ref.minValue,
|
|
48
51
|
minValue = _ref$minValue === void 0 ? 0 : _ref$minValue,
|
|
49
52
|
_ref$maxValue = _ref.maxValue,
|
|
50
53
|
maxValue = _ref$maxValue === void 0 ? 100 : _ref$maxValue,
|
|
51
54
|
_ref$step = _ref.step,
|
|
52
55
|
step = _ref$step === void 0 ? 1 : _ref$step,
|
|
53
|
-
value = _ref.value,
|
|
54
56
|
_ref$showLimitsValues = _ref.showLimitsValues,
|
|
55
57
|
showLimitsValues = _ref$showLimitsValues === void 0 ? false : _ref$showLimitsValues,
|
|
56
58
|
_ref$showInput = _ref.showInput,
|
|
57
59
|
showInput = _ref$showInput === void 0 ? false : _ref$showInput,
|
|
58
|
-
name = _ref.name,
|
|
59
|
-
onChange = _ref.onChange,
|
|
60
|
-
onDragEnd = _ref.onDragEnd,
|
|
61
60
|
_ref$disabled = _ref.disabled,
|
|
62
61
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
63
62
|
_ref$marks = _ref.marks,
|
|
64
63
|
marks = _ref$marks === void 0 ? false : _ref$marks,
|
|
64
|
+
onChange = _ref.onChange,
|
|
65
|
+
onDragEnd = _ref.onDragEnd,
|
|
65
66
|
labelFormatCallback = _ref.labelFormatCallback,
|
|
66
67
|
margin = _ref.margin,
|
|
67
68
|
_ref$size = _ref.size,
|
|
@@ -74,6 +75,11 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
74
75
|
|
|
75
76
|
var colorsTheme = (0, _useTheme["default"])();
|
|
76
77
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
78
|
+
|
|
79
|
+
var _useState3 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
|
|
80
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
81
|
+
labelId = _useState4[0];
|
|
82
|
+
|
|
77
83
|
var minLabel = (0, _react.useMemo)(function () {
|
|
78
84
|
return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
|
|
79
85
|
}, [labelFormatCallback, minValue]);
|
|
@@ -82,36 +88,24 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
82
88
|
}, [labelFormatCallback, maxValue]);
|
|
83
89
|
|
|
84
90
|
var handlerSliderChange = function handlerSliderChange(event, newValue) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
setInnerValue(newValue);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
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);
|
|
94
|
+
};
|
|
92
95
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
+
var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event, selectedValue) {
|
|
97
|
+
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(selectedValue);
|
|
96
98
|
};
|
|
97
99
|
|
|
98
100
|
var handlerInputChange = function handlerInputChange(event) {
|
|
99
101
|
var intValue = parseInt(event.value, 10);
|
|
100
102
|
|
|
101
103
|
if (value == null) {
|
|
102
|
-
if (!Number.isNaN(intValue))
|
|
103
|
-
setInnerValue(intValue > maxValue ? maxValue : intValue);
|
|
104
|
-
} else {
|
|
105
|
-
setInnerValue("");
|
|
106
|
-
}
|
|
104
|
+
if (!Number.isNaN(intValue)) setInnerValue(intValue > maxValue ? maxValue : intValue);
|
|
107
105
|
}
|
|
108
106
|
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
onChange(intValue > maxValue ? maxValue : intValue);
|
|
112
|
-
} else {
|
|
113
|
-
onChange("");
|
|
114
|
-
}
|
|
107
|
+
if (!Number.isNaN(intValue)) {
|
|
108
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(intValue > maxValue ? maxValue : intValue);
|
|
115
109
|
}
|
|
116
110
|
};
|
|
117
111
|
|
|
@@ -120,7 +114,14 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
120
114
|
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
121
115
|
margin: margin,
|
|
122
116
|
size: size
|
|
123
|
-
}, /*#__PURE__*/_react["default"].createElement(Label,
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement(Label, {
|
|
118
|
+
id: labelId,
|
|
119
|
+
disabled: disabled,
|
|
120
|
+
backgroundType: backgroundType
|
|
121
|
+
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
122
|
+
disabled: disabled,
|
|
123
|
+
backgroundType: backgroundType
|
|
124
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, {
|
|
124
125
|
backgroundType: backgroundType
|
|
125
126
|
}, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
|
|
126
127
|
backgroundType: backgroundType,
|
|
@@ -130,12 +131,11 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
130
131
|
min: minValue,
|
|
131
132
|
max: maxValue,
|
|
132
133
|
onChange: handlerSliderChange,
|
|
133
|
-
onChangeCommitted:
|
|
134
|
-
return onDragEnd(selectedValue);
|
|
135
|
-
},
|
|
134
|
+
onChangeCommitted: handleSliderOnChangeCommited,
|
|
136
135
|
step: step,
|
|
137
136
|
marks: marks || [],
|
|
138
|
-
disabled: disabled
|
|
137
|
+
disabled: disabled,
|
|
138
|
+
"aria-labelledby": labelId
|
|
139
139
|
}), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
|
|
140
140
|
backgroundType: backgroundType,
|
|
141
141
|
disabled: disabled,
|
|
@@ -150,7 +150,7 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
150
150
|
};
|
|
151
151
|
|
|
152
152
|
var sizes = {
|
|
153
|
-
medium: "
|
|
153
|
+
medium: "360px",
|
|
154
154
|
large: "480px",
|
|
155
155
|
fillParent: "100%"
|
|
156
156
|
};
|
|
@@ -173,10 +173,10 @@ var Container = _styledComponents["default"].div(_templateObject || (_templateOb
|
|
|
173
173
|
return calculateWidth(props.margin, props.size);
|
|
174
174
|
});
|
|
175
175
|
|
|
176
|
-
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
177
|
-
return props.theme.labelFontColor;
|
|
176
|
+
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
177
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
178
178
|
}, function (props) {
|
|
179
|
-
return props.theme.
|
|
179
|
+
return props.theme.fontFamily;
|
|
180
180
|
}, function (props) {
|
|
181
181
|
return props.theme.labelFontSize;
|
|
182
182
|
}, function (props) {
|
|
@@ -187,21 +187,21 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
|
|
|
187
187
|
return props.theme.labelLineHeight;
|
|
188
188
|
});
|
|
189
189
|
|
|
190
|
-
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) {
|
|
191
|
-
return props.theme.helperTextFontColor;
|
|
190
|
+
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) {
|
|
191
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
|
|
192
192
|
}, function (props) {
|
|
193
|
-
return props.theme.
|
|
193
|
+
return props.theme.fontFamily;
|
|
194
194
|
}, function (props) {
|
|
195
195
|
return props.theme.helperTextFontSize;
|
|
196
196
|
}, function (props) {
|
|
197
|
-
return props.theme.
|
|
197
|
+
return props.theme.helperTextFontStyle;
|
|
198
198
|
}, function (props) {
|
|
199
199
|
return props.theme.helperTextFontWeight;
|
|
200
200
|
}, function (props) {
|
|
201
201
|
return props.theme.helperTextLineHeight;
|
|
202
202
|
});
|
|
203
203
|
|
|
204
|
-
var SliderContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n\n .
|
|
204
|
+
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) {
|
|
205
205
|
return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
|
|
206
206
|
}, function (props) {
|
|
207
207
|
return props.theme.thumbHeight;
|
|
@@ -277,34 +277,34 @@ var SliderContainer = _styledComponents["default"].div(_templateObject4 || (_tem
|
|
|
277
277
|
return props.theme.tickVerticalPosition;
|
|
278
278
|
});
|
|
279
279
|
|
|
280
|
-
var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
281
|
-
return props.theme.
|
|
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 white-space: nowrap;\n margin-right: ", ";\n"])), function (props) {
|
|
281
|
+
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
|
|
282
282
|
}, function (props) {
|
|
283
|
-
return props.theme.
|
|
283
|
+
return props.theme.fontFamily;
|
|
284
284
|
}, function (props) {
|
|
285
|
-
return props.theme.
|
|
285
|
+
return props.theme.limitValuesFontSize;
|
|
286
286
|
}, function (props) {
|
|
287
|
-
return props.theme.
|
|
287
|
+
return props.theme.limitValuesFontStyle;
|
|
288
288
|
}, function (props) {
|
|
289
|
-
return props.
|
|
289
|
+
return props.theme.limitValuesFontWeight;
|
|
290
290
|
}, function (props) {
|
|
291
|
-
return props.theme.
|
|
291
|
+
return props.theme.limitValuesFontLetterSpacing;
|
|
292
292
|
}, function (props) {
|
|
293
293
|
return props.theme.floorLabelMarginRight;
|
|
294
294
|
});
|
|
295
295
|
|
|
296
|
-
var MaxLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
297
|
-
return props.theme.
|
|
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 white-space: nowrap;\n margin-left: ", ";\n"])), function (props) {
|
|
297
|
+
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
|
|
298
298
|
}, function (props) {
|
|
299
|
-
return props.theme.
|
|
299
|
+
return props.theme.fontFamily;
|
|
300
300
|
}, function (props) {
|
|
301
|
-
return props.theme.
|
|
301
|
+
return props.theme.limitValuesFontSize;
|
|
302
302
|
}, function (props) {
|
|
303
|
-
return props.theme.
|
|
303
|
+
return props.theme.limitValuesFontStyle;
|
|
304
304
|
}, function (props) {
|
|
305
|
-
return props.
|
|
305
|
+
return props.theme.limitValuesFontWeight;
|
|
306
306
|
}, function (props) {
|
|
307
|
-
return props.theme.
|
|
307
|
+
return props.theme.limitValuesFontLetterSpacing;
|
|
308
308
|
}, function (props) {
|
|
309
309
|
return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
|
|
310
310
|
});
|
|
@@ -313,28 +313,5 @@ var StyledTextInput = _styledComponents["default"].div(_templateObject7 || (_tem
|
|
|
313
313
|
return props.theme.inputMarginLeft;
|
|
314
314
|
});
|
|
315
315
|
|
|
316
|
-
DxcSlider.propTypes = {
|
|
317
|
-
label: _propTypes["default"].string,
|
|
318
|
-
helperText: _propTypes["default"].string,
|
|
319
|
-
size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
|
|
320
|
-
minValue: _propTypes["default"].number,
|
|
321
|
-
maxValue: _propTypes["default"].number,
|
|
322
|
-
step: _propTypes["default"].number,
|
|
323
|
-
value: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
|
|
324
|
-
showLimitsValues: _propTypes["default"].bool,
|
|
325
|
-
showInput: _propTypes["default"].bool,
|
|
326
|
-
name: _propTypes["default"].string,
|
|
327
|
-
onChange: _propTypes["default"].func,
|
|
328
|
-
onDragEnd: _propTypes["default"].func,
|
|
329
|
-
disabled: _propTypes["default"].bool,
|
|
330
|
-
marks: _propTypes["default"].bool,
|
|
331
|
-
labelFormatCallback: _propTypes["default"].func,
|
|
332
|
-
margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
|
333
|
-
top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
334
|
-
bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
335
|
-
left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
336
|
-
right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
|
|
337
|
-
}), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
|
|
338
|
-
};
|
|
339
316
|
var _default = DxcSlider;
|
|
340
317
|
exports["default"] = _default;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcSlider from "./Slider";
|
|
3
|
+
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
4
|
+
import Title from "../../.storybook/components/Title";
|
|
5
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: "Slider",
|
|
10
|
+
component: DxcSlider,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const labelFormat = (value) => `${value}E100000000000000000000000`;
|
|
14
|
+
|
|
15
|
+
export const Chromatic = () => (
|
|
16
|
+
<>
|
|
17
|
+
<Title title="States" theme="light" level={2} />
|
|
18
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
19
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
20
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
21
|
+
</ExampleContainer>
|
|
22
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
23
|
+
<Title title="Active" theme="light" level={4} />
|
|
24
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
25
|
+
</ExampleContainer>
|
|
26
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
27
|
+
<Title title="Focused" theme="light" level={4} />
|
|
28
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
29
|
+
</ExampleContainer>
|
|
30
|
+
<ExampleContainer>
|
|
31
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
32
|
+
<DxcSlider label="Slider" helperText="Help message" disabled showLimitsValues />
|
|
33
|
+
</ExampleContainer>
|
|
34
|
+
<ExampleContainer>
|
|
35
|
+
<Title title="Disabled discrete slider with input" theme="light" level={4} />
|
|
36
|
+
<DxcSlider
|
|
37
|
+
label="Slider"
|
|
38
|
+
helperText="Help message"
|
|
39
|
+
disabled
|
|
40
|
+
value={40}
|
|
41
|
+
minValue={0}
|
|
42
|
+
maxValue={50}
|
|
43
|
+
showLimitsValues
|
|
44
|
+
showInput
|
|
45
|
+
marks
|
|
46
|
+
step={10}
|
|
47
|
+
/>
|
|
48
|
+
</ExampleContainer>
|
|
49
|
+
<Title title="Variants" theme="light" level={2} />
|
|
50
|
+
<ExampleContainer>
|
|
51
|
+
<Title title="Continuous slider" theme="light" level={4} />
|
|
52
|
+
<DxcSlider value={65} label="Slider" helperText="Help message" showLimitsValues />
|
|
53
|
+
</ExampleContainer>
|
|
54
|
+
<ExampleContainer>
|
|
55
|
+
<Title title="Discrete slider" theme="light" level={4} />
|
|
56
|
+
<DxcSlider value={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
|
|
57
|
+
</ExampleContainer>
|
|
58
|
+
<ExampleContainer>
|
|
59
|
+
<Title title="Discrete slider with input" theme="light" level={4} />
|
|
60
|
+
<DxcSlider
|
|
61
|
+
value={20}
|
|
62
|
+
minValue={0}
|
|
63
|
+
maxValue={50}
|
|
64
|
+
label="Slider"
|
|
65
|
+
helperText="Help message"
|
|
66
|
+
showLimitsValues
|
|
67
|
+
showInput
|
|
68
|
+
marks
|
|
69
|
+
step={10}
|
|
70
|
+
/>
|
|
71
|
+
</ExampleContainer>
|
|
72
|
+
<BackgroundColorProvider color="#333333">
|
|
73
|
+
<DarkContainer>
|
|
74
|
+
<Title title="Dark" theme="dark" level={2} />
|
|
75
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
76
|
+
<Title title="Hovered" theme="dark" level={4} />
|
|
77
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
78
|
+
</ExampleContainer>
|
|
79
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
80
|
+
<Title title="Active" theme="dark" level={4} />
|
|
81
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
82
|
+
</ExampleContainer>
|
|
83
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
84
|
+
<Title title="Focused" theme="dark" level={4} />
|
|
85
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
86
|
+
</ExampleContainer>
|
|
87
|
+
<ExampleContainer>
|
|
88
|
+
<Title title="Disabled" theme="dark" level={4} />
|
|
89
|
+
<DxcSlider label="Slider" helperText="Help message" disabled showLimitsValues />
|
|
90
|
+
</ExampleContainer>
|
|
91
|
+
<ExampleContainer>
|
|
92
|
+
<Title title="Disabled discrete slider with input" theme="dark" level={4} />
|
|
93
|
+
<DxcSlider
|
|
94
|
+
label="Slider"
|
|
95
|
+
helperText="Help message"
|
|
96
|
+
disabled
|
|
97
|
+
value={40}
|
|
98
|
+
minValue={0}
|
|
99
|
+
maxValue={50}
|
|
100
|
+
showLimitsValues
|
|
101
|
+
showInput
|
|
102
|
+
marks
|
|
103
|
+
step={5}
|
|
104
|
+
/>
|
|
105
|
+
</ExampleContainer>
|
|
106
|
+
<ExampleContainer>
|
|
107
|
+
<Title title="Continuous slider" theme="dark" level={4} />
|
|
108
|
+
<DxcSlider value={65} label="Slider" helperText="Help message" showLimitsValues />
|
|
109
|
+
</ExampleContainer>
|
|
110
|
+
<ExampleContainer>
|
|
111
|
+
<Title title="Discrete slider" theme="dark" level={4} />
|
|
112
|
+
<DxcSlider value={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
<ExampleContainer>
|
|
115
|
+
<Title title="Discrete slider with input" theme="dark" level={4} />
|
|
116
|
+
<DxcSlider
|
|
117
|
+
value={20}
|
|
118
|
+
minValue={0}
|
|
119
|
+
maxValue={50}
|
|
120
|
+
label="Slider"
|
|
121
|
+
helperText="Help message"
|
|
122
|
+
showLimitsValues
|
|
123
|
+
showInput
|
|
124
|
+
marks
|
|
125
|
+
step={10}
|
|
126
|
+
/>
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
</DarkContainer>
|
|
129
|
+
</BackgroundColorProvider>
|
|
130
|
+
<Title title="Margins" theme="light" level={2} />
|
|
131
|
+
<ExampleContainer>
|
|
132
|
+
<Title title="Xxsmall" theme="light" level={4} />
|
|
133
|
+
<DxcSlider label="Xxsmall" margin="xxsmall" />
|
|
134
|
+
</ExampleContainer>
|
|
135
|
+
<ExampleContainer>
|
|
136
|
+
<Title title="Xsmall" theme="light" level={4} />
|
|
137
|
+
<DxcSlider label="Xsmall" margin="xsmall" />
|
|
138
|
+
</ExampleContainer>
|
|
139
|
+
<ExampleContainer>
|
|
140
|
+
<Title title="Small" theme="light" level={4} />
|
|
141
|
+
<DxcSlider label="Small" margin="small" />
|
|
142
|
+
</ExampleContainer>
|
|
143
|
+
<ExampleContainer>
|
|
144
|
+
<Title title="Medium" theme="light" level={4} />
|
|
145
|
+
<DxcSlider label="Medium" margin="medium" />
|
|
146
|
+
</ExampleContainer>
|
|
147
|
+
<ExampleContainer>
|
|
148
|
+
<Title title="Large" theme="light" level={4} />
|
|
149
|
+
<DxcSlider label="Large" margin="large" />
|
|
150
|
+
</ExampleContainer>
|
|
151
|
+
<ExampleContainer>
|
|
152
|
+
<Title title="Xlarge" theme="light" level={4} />
|
|
153
|
+
<DxcSlider label="Xlarge" margin="xlarge" />
|
|
154
|
+
</ExampleContainer>
|
|
155
|
+
<ExampleContainer>
|
|
156
|
+
<Title title="Xxlarge" theme="light" level={4} />
|
|
157
|
+
<DxcSlider label="Xxlarge" margin="xxlarge" />
|
|
158
|
+
</ExampleContainer>
|
|
159
|
+
<Title title="Sizes" theme="light" level={2} />
|
|
160
|
+
<ExampleContainer>
|
|
161
|
+
<Title title="Medium" theme="light" level={4} />
|
|
162
|
+
<DxcSlider label="Medium" size="medium" />
|
|
163
|
+
</ExampleContainer>
|
|
164
|
+
<ExampleContainer>
|
|
165
|
+
<Title title="Large" theme="light" level={4} />
|
|
166
|
+
<DxcSlider label="Large" size="large" />
|
|
167
|
+
</ExampleContainer>
|
|
168
|
+
<ExampleContainer>
|
|
169
|
+
<Title title="FillParent" theme="light" level={4} />
|
|
170
|
+
<DxcSlider label="FillParent" size="fillParent" />
|
|
171
|
+
</ExampleContainer>
|
|
172
|
+
<ExampleContainer>
|
|
173
|
+
<Title title="Large limit values labels" theme="light" level={4} />
|
|
174
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues labelFormatCallback={labelFormat} size="large" />
|
|
175
|
+
</ExampleContainer>
|
|
176
|
+
</>
|
|
177
|
+
);
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
declare type Margin = {
|
|
3
|
+
top?: Space;
|
|
4
|
+
bottom?: Space;
|
|
5
|
+
left?: Space;
|
|
6
|
+
right?: Space;
|
|
7
|
+
};
|
|
8
|
+
declare type Props = {
|
|
9
|
+
/**
|
|
10
|
+
* Text to be placed above the slider.
|
|
11
|
+
*/
|
|
12
|
+
label?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Name attribute of the input element.
|
|
15
|
+
*/
|
|
16
|
+
name?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The selected value. If undefined, the component will be uncontrolled and the value will be managed internally by the component.
|
|
19
|
+
*/
|
|
20
|
+
value?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Helper text to be placed above the slider.
|
|
23
|
+
*/
|
|
24
|
+
helperText?: string;
|
|
25
|
+
/**
|
|
26
|
+
* The minimum value available for selection.
|
|
27
|
+
*/
|
|
28
|
+
minValue?: number;
|
|
29
|
+
/**
|
|
30
|
+
* The maximum value available for selection.
|
|
31
|
+
*/
|
|
32
|
+
maxValue?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The step interval between values available for selection.
|
|
35
|
+
*/
|
|
36
|
+
step?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Whether the min/max value labels should be displayed next to the slider
|
|
39
|
+
*/
|
|
40
|
+
showLimitsValues?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the input element for displaying/controlling the slider value should be displayed next to the slider.
|
|
43
|
+
*/
|
|
44
|
+
showInput?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* If true, the component will be disabled.
|
|
47
|
+
*/
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the marks between each step should be shown or not.
|
|
51
|
+
*/
|
|
52
|
+
marks?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* This function will be called when the slider changes its value, as it's being dragged.
|
|
55
|
+
* The new value will be passed as a parameter when this function is executed.
|
|
56
|
+
*/
|
|
57
|
+
onChange?: (value: number) => void;
|
|
58
|
+
/**
|
|
59
|
+
* This function will be called when the slider changes its value, but only when the thumb is released.
|
|
60
|
+
* The new value will be passed as a parameter when this function is executed.
|
|
61
|
+
*/
|
|
62
|
+
onDragEnd?: (value: number) => void;
|
|
63
|
+
/**
|
|
64
|
+
* This function will be used to format the labels displayed next to the slider.
|
|
65
|
+
* The value will be passed as parameter and the function must return the formatted value.
|
|
66
|
+
*/
|
|
67
|
+
labelFormatCallback?: (value: number) => string;
|
|
68
|
+
/**
|
|
69
|
+
* Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
70
|
+
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
71
|
+
*/
|
|
72
|
+
margin?: Space | Margin;
|
|
73
|
+
/**
|
|
74
|
+
* Size of the component.
|
|
75
|
+
*/
|
|
76
|
+
size?: "medium" | "large" | "fillParent";
|
|
77
|
+
};
|
|
78
|
+
export default Props;
|
package/slider/types.js
ADDED