@pingux/astro 2.118.0-alpha.0 → 2.118.0
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/lib/cjs/components/SliderField/Slider.styles.d.ts +138 -0
- package/lib/cjs/components/SliderField/Slider.styles.js +163 -0
- package/lib/cjs/components/SliderField/SliderActiveTrack.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderActiveTrack.js +49 -0
- package/lib/cjs/components/SliderField/SliderField.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderField.js +58 -0
- package/lib/cjs/components/SliderField/SliderField.mdx +127 -0
- package/lib/cjs/components/SliderField/SliderField.stories.d.ts +11 -0
- package/lib/cjs/components/SliderField/SliderField.stories.js +151 -0
- package/lib/cjs/components/SliderField/SliderField.test.d.ts +1 -0
- package/lib/cjs/components/SliderField/SliderField.test.js +357 -0
- package/lib/cjs/components/SliderField/SliderLabelContainer.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderLabelContainer.js +43 -0
- package/lib/cjs/components/SliderField/SliderThumb.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderThumb.js +82 -0
- package/lib/cjs/components/SliderField/index.d.ts +1 -0
- package/lib/cjs/components/SliderField/index.js +14 -0
- package/lib/cjs/hooks/index.d.ts +1 -0
- package/lib/cjs/hooks/index.js +7 -0
- package/lib/cjs/hooks/useSliderField/index.d.ts +1 -0
- package/lib/cjs/hooks/useSliderField/index.js +14 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.d.ts +4290 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.js +230 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.test.d.ts +1 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.test.js +109 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +8 -0
- package/lib/cjs/styles/colors.d.ts +6 -0
- package/lib/cjs/styles/colors.js +5 -1
- package/lib/cjs/styles/variants/variants.js +2 -0
- package/lib/cjs/types/sliderField.d.ts +79 -0
- package/lib/cjs/types/sliderField.js +6 -0
- package/lib/cjs/utils/testUtils/universalFormSubmitTest.js +17 -0
- package/lib/components/SliderField/Slider.styles.js +155 -0
- package/lib/components/SliderField/SliderActiveTrack.js +37 -0
- package/lib/components/SliderField/SliderField.js +46 -0
- package/lib/components/SliderField/SliderField.mdx +127 -0
- package/lib/components/SliderField/SliderField.stories.js +131 -0
- package/lib/components/SliderField/SliderField.test.js +354 -0
- package/lib/components/SliderField/SliderLabelContainer.js +29 -0
- package/lib/components/SliderField/SliderThumb.js +68 -0
- package/lib/components/SliderField/index.js +1 -0
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/useSliderField/index.js +1 -0
- package/lib/hooks/useSliderField/useSliderField.js +220 -0
- package/lib/hooks/useSliderField/useSliderField.test.js +102 -0
- package/lib/index.js +1 -0
- package/lib/styles/colors.js +5 -1
- package/lib/styles/variants/variants.js +2 -0
- package/lib/types/sliderField.js +1 -0
- package/lib/utils/testUtils/universalFormSubmitTest.js +17 -0
- package/package.json +3 -1
@@ -0,0 +1,138 @@
|
|
1
|
+
declare const _default: {
|
2
|
+
test: {
|
3
|
+
bg: string;
|
4
|
+
};
|
5
|
+
slider: {
|
6
|
+
display: string;
|
7
|
+
'&.is-horizontal': {
|
8
|
+
flexDirection: string;
|
9
|
+
};
|
10
|
+
};
|
11
|
+
activeTrack: {
|
12
|
+
bg: string;
|
13
|
+
position: string;
|
14
|
+
'&.is-horizontal': {
|
15
|
+
borderRadius: string;
|
16
|
+
height: string;
|
17
|
+
'&.is-single-track': {
|
18
|
+
left: string;
|
19
|
+
};
|
20
|
+
};
|
21
|
+
'&.is-vertical': {
|
22
|
+
borderRadius: string;
|
23
|
+
width: string;
|
24
|
+
bottom: string;
|
25
|
+
};
|
26
|
+
};
|
27
|
+
thumb: {
|
28
|
+
width: string;
|
29
|
+
height: string;
|
30
|
+
borderRadius: string;
|
31
|
+
bg: string;
|
32
|
+
cursor: string;
|
33
|
+
'&.is-focused': {
|
34
|
+
outline: string;
|
35
|
+
outlineColor: string;
|
36
|
+
outlineOffset: string;
|
37
|
+
};
|
38
|
+
'&.is-horizontal': {
|
39
|
+
top: string;
|
40
|
+
};
|
41
|
+
'&.is-vertical': {
|
42
|
+
left: string;
|
43
|
+
};
|
44
|
+
'&.is-hovered': {
|
45
|
+
backgroundColor: string;
|
46
|
+
};
|
47
|
+
'&.is-pressed': {
|
48
|
+
backgroundColor: string;
|
49
|
+
};
|
50
|
+
};
|
51
|
+
track: {
|
52
|
+
backgroundColor: string;
|
53
|
+
cursor: string;
|
54
|
+
mb: string;
|
55
|
+
position: string;
|
56
|
+
'&.is-disabled': {
|
57
|
+
opacity: number;
|
58
|
+
};
|
59
|
+
'&.is-horizontal': {
|
60
|
+
height: string;
|
61
|
+
borderRadius: string;
|
62
|
+
width: string;
|
63
|
+
};
|
64
|
+
'&:before': {
|
65
|
+
content: string;
|
66
|
+
display: string;
|
67
|
+
position: string;
|
68
|
+
height: string;
|
69
|
+
width: string;
|
70
|
+
top: string;
|
71
|
+
transform: string;
|
72
|
+
};
|
73
|
+
'&.is-vertical': {
|
74
|
+
width: string;
|
75
|
+
borderRadius: string;
|
76
|
+
height: string;
|
77
|
+
'&:before': {
|
78
|
+
content: string;
|
79
|
+
display: string;
|
80
|
+
position: string;
|
81
|
+
width: string;
|
82
|
+
height: string;
|
83
|
+
left: string;
|
84
|
+
transform: string;
|
85
|
+
};
|
86
|
+
};
|
87
|
+
};
|
88
|
+
hiddenTrack: {
|
89
|
+
cursor: string;
|
90
|
+
'&.is-horizontal': {
|
91
|
+
height: string;
|
92
|
+
borderRadius: string;
|
93
|
+
width: string;
|
94
|
+
ml: string;
|
95
|
+
mr: string;
|
96
|
+
};
|
97
|
+
'&.is-vertical': {
|
98
|
+
width: string;
|
99
|
+
borderRadius: string;
|
100
|
+
height: string;
|
101
|
+
mt: string;
|
102
|
+
mb: string;
|
103
|
+
};
|
104
|
+
};
|
105
|
+
trackWrapper: {
|
106
|
+
'&.is-vertical': {
|
107
|
+
py: string;
|
108
|
+
};
|
109
|
+
'&.is-horizontal': {
|
110
|
+
px: string;
|
111
|
+
};
|
112
|
+
};
|
113
|
+
labelContainer: {
|
114
|
+
'&.is-horizontal': {
|
115
|
+
mb: string;
|
116
|
+
};
|
117
|
+
'&.is-vertical': {
|
118
|
+
mt: string;
|
119
|
+
gap: string;
|
120
|
+
};
|
121
|
+
};
|
122
|
+
outputContainer: {
|
123
|
+
'&.is-horizontal': {
|
124
|
+
marginLeft: string;
|
125
|
+
mt: string;
|
126
|
+
};
|
127
|
+
};
|
128
|
+
wrapper: {
|
129
|
+
'&.is-horizontal': {
|
130
|
+
width: string;
|
131
|
+
};
|
132
|
+
'&.is-vertical': {
|
133
|
+
height: string;
|
134
|
+
ml: string;
|
135
|
+
};
|
136
|
+
};
|
137
|
+
};
|
138
|
+
export default _default;
|
@@ -0,0 +1,163 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
5
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
7
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
8
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
9
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
10
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
11
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
12
|
+
_Object$defineProperty(exports, "__esModule", {
|
13
|
+
value: true
|
14
|
+
});
|
15
|
+
exports["default"] = void 0;
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
17
|
+
var _Buttons = require("../Button/Buttons.styles");
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
20
|
+
var test = {
|
21
|
+
bg: 'active'
|
22
|
+
};
|
23
|
+
var slider = {
|
24
|
+
display: 'flex',
|
25
|
+
'&.is-horizontal': {
|
26
|
+
flexDirection: 'column'
|
27
|
+
}
|
28
|
+
};
|
29
|
+
var track = {
|
30
|
+
backgroundColor: 'slider.track',
|
31
|
+
cursor: 'pointer',
|
32
|
+
mb: 'sm',
|
33
|
+
position: 'relative',
|
34
|
+
'&.is-disabled': {
|
35
|
+
opacity: 0.4
|
36
|
+
},
|
37
|
+
'&.is-horizontal': {
|
38
|
+
height: '10px',
|
39
|
+
borderRadius: '11px',
|
40
|
+
width: '100%'
|
41
|
+
},
|
42
|
+
'&:before': {
|
43
|
+
content: 'attr(x)',
|
44
|
+
display: 'block',
|
45
|
+
position: 'absolute',
|
46
|
+
height: '3px',
|
47
|
+
width: '100%',
|
48
|
+
top: '50%',
|
49
|
+
transform: 'translateY(-50%)'
|
50
|
+
},
|
51
|
+
'&.is-vertical': {
|
52
|
+
width: '10px',
|
53
|
+
borderRadius: '11px',
|
54
|
+
height: '100%',
|
55
|
+
'&:before': {
|
56
|
+
content: 'attr(x)',
|
57
|
+
display: 'block',
|
58
|
+
position: 'absolute',
|
59
|
+
width: '3px',
|
60
|
+
height: '100%',
|
61
|
+
left: '50%',
|
62
|
+
transform: 'translateX(-50%)'
|
63
|
+
}
|
64
|
+
}
|
65
|
+
};
|
66
|
+
var hiddenTrack = {
|
67
|
+
cursor: 'pointer',
|
68
|
+
'&.is-horizontal': {
|
69
|
+
height: '10px',
|
70
|
+
borderRadius: '11px',
|
71
|
+
width: 'calc(100% - 9px)',
|
72
|
+
ml: '4.5px',
|
73
|
+
mr: '4.5px'
|
74
|
+
},
|
75
|
+
'&.is-vertical': {
|
76
|
+
width: '10px',
|
77
|
+
borderRadius: '11px',
|
78
|
+
height: 'calc(100% - 9px)',
|
79
|
+
mt: '4.5px',
|
80
|
+
mb: '4.5px'
|
81
|
+
}
|
82
|
+
};
|
83
|
+
var thumb = {
|
84
|
+
width: '21px',
|
85
|
+
height: '21px',
|
86
|
+
borderRadius: '50%',
|
87
|
+
bg: 'active',
|
88
|
+
cursor: 'pointer',
|
89
|
+
'&.is-focused': _objectSpread({}, _Buttons.defaultFocus),
|
90
|
+
'&.is-horizontal': {
|
91
|
+
top: '50%'
|
92
|
+
},
|
93
|
+
'&.is-vertical': {
|
94
|
+
left: '50%'
|
95
|
+
},
|
96
|
+
'&.is-hovered': {
|
97
|
+
backgroundColor: 'accent.40'
|
98
|
+
},
|
99
|
+
'&.is-pressed': {
|
100
|
+
backgroundColor: 'accent.20'
|
101
|
+
}
|
102
|
+
};
|
103
|
+
var activeTrack = {
|
104
|
+
bg: 'active',
|
105
|
+
position: 'absolute',
|
106
|
+
'&.is-horizontal': {
|
107
|
+
borderRadius: '11px 0px 0px 11px',
|
108
|
+
height: '100%',
|
109
|
+
'&.is-single-track': {
|
110
|
+
left: '0%'
|
111
|
+
}
|
112
|
+
},
|
113
|
+
'&.is-vertical': {
|
114
|
+
borderRadius: '11px 11px 11px 11px',
|
115
|
+
width: '100%',
|
116
|
+
bottom: '0%'
|
117
|
+
}
|
118
|
+
};
|
119
|
+
var trackWrapper = {
|
120
|
+
'&.is-vertical': {
|
121
|
+
py: '9px'
|
122
|
+
},
|
123
|
+
'&.is-horizontal': {
|
124
|
+
px: '9px'
|
125
|
+
}
|
126
|
+
};
|
127
|
+
var labelContainer = {
|
128
|
+
'&.is-horizontal': {
|
129
|
+
mb: 'xs'
|
130
|
+
},
|
131
|
+
'&.is-vertical': {
|
132
|
+
mt: 'xs',
|
133
|
+
gap: 'xs'
|
134
|
+
}
|
135
|
+
};
|
136
|
+
var wrapper = {
|
137
|
+
'&.is-horizontal': {
|
138
|
+
width: '100%'
|
139
|
+
},
|
140
|
+
'&.is-vertical': {
|
141
|
+
height: '100%',
|
142
|
+
ml: 'xs'
|
143
|
+
}
|
144
|
+
};
|
145
|
+
var outputContainer = {
|
146
|
+
'&.is-horizontal': {
|
147
|
+
marginLeft: 'auto',
|
148
|
+
mt: '-3px'
|
149
|
+
}
|
150
|
+
};
|
151
|
+
var _default = {
|
152
|
+
test: test,
|
153
|
+
slider: slider,
|
154
|
+
activeTrack: activeTrack,
|
155
|
+
thumb: thumb,
|
156
|
+
track: track,
|
157
|
+
hiddenTrack: hiddenTrack,
|
158
|
+
trackWrapper: trackWrapper,
|
159
|
+
labelContainer: labelContainer,
|
160
|
+
outputContainer: outputContainer,
|
161
|
+
wrapper: wrapper
|
162
|
+
};
|
163
|
+
exports["default"] = _default;
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
6
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
8
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
11
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
12
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
13
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
14
|
+
_Object$defineProperty(exports, "__esModule", {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
exports["default"] = void 0;
|
18
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
19
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
21
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
22
|
+
var _react = _interopRequireWildcard(require("react"));
|
23
|
+
var _index = require("../../index");
|
24
|
+
var _react2 = require("@emotion/react");
|
25
|
+
var _excluded = ["className", "isHorizontal", "isMultiThumb", "state", "sx"];
|
26
|
+
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); }
|
27
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
29
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
30
|
+
var SliderActiveTrack = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
31
|
+
var className = props.className,
|
32
|
+
isHorizontal = props.isHorizontal,
|
33
|
+
isMultiThumb = props.isMultiThumb,
|
34
|
+
state = props.state,
|
35
|
+
sx = props.sx,
|
36
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
37
|
+
var length = isMultiThumb ? "".concat((0, _values["default"])(state)[1] - (0, _values["default"])(state)[0], "%") : "".concat((0, _values["default"])(state)[0], "%");
|
38
|
+
var trackStart = "".concat((0, _values["default"])(state)[0], "%");
|
39
|
+
var cssLenProp = isHorizontal ? 'width' : 'height';
|
40
|
+
var cssStartProp = isHorizontal ? 'left' : 'top';
|
41
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
42
|
+
ref: ref,
|
43
|
+
className: className,
|
44
|
+
sx: _objectSpread(_objectSpread((0, _defineProperty2["default"])({}, cssLenProp, length), isMultiThumb && (0, _defineProperty2["default"])({}, cssStartProp, trackStart)), sx),
|
45
|
+
variant: "slider.activeTrack"
|
46
|
+
}, others));
|
47
|
+
});
|
48
|
+
var _default = SliderActiveTrack;
|
49
|
+
exports["default"] = _default;
|
@@ -0,0 +1,58 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
6
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
8
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
11
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
12
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
13
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
14
|
+
_Object$defineProperty(exports, "__esModule", {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
exports["default"] = void 0;
|
18
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
19
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
21
|
+
var _hooks = require("../../hooks");
|
22
|
+
var _index = require("../../index");
|
23
|
+
var _SliderActiveTrack = _interopRequireDefault(require("./SliderActiveTrack"));
|
24
|
+
var _SliderLabelContainer = _interopRequireDefault(require("./SliderLabelContainer"));
|
25
|
+
var _SliderThumb = _interopRequireDefault(require("./SliderThumb"));
|
26
|
+
var _react2 = require("@emotion/react");
|
27
|
+
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); }
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
29
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
31
|
+
var SliderField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
32
|
+
var helperText = props.helperText,
|
33
|
+
_props$isMultiThumb = props.isMultiThumb,
|
34
|
+
isMultiThumb = _props$isMultiThumb === void 0 ? false : _props$isMultiThumb;
|
35
|
+
var trackRef = _react["default"].useRef(null);
|
36
|
+
var _useSliderField = (0, _hooks.useSliderField)(_objectSpread(_objectSpread({}, props), {}, {
|
37
|
+
trackRef: trackRef
|
38
|
+
})),
|
39
|
+
containerProps = _useSliderField.containerProps,
|
40
|
+
labelContainerProps = _useSliderField.labelContainerProps,
|
41
|
+
sliderActiveTrackProps = _useSliderField.sliderActiveTrackProps,
|
42
|
+
hiddenTrackProps = _useSliderField.hiddenTrackProps,
|
43
|
+
helperTextProps = _useSliderField.helperTextProps,
|
44
|
+
thumbPropsSpread = _useSliderField.thumbPropsSpread,
|
45
|
+
visibleTrackProps = _useSliderField.visibleTrackProps,
|
46
|
+
wrapperProps = _useSliderField.wrapperProps;
|
47
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, containerProps, {
|
48
|
+
ref: ref
|
49
|
+
}), (0, _react2.jsx)(_index.Box, wrapperProps, labelContainerProps.isHorizontal && (0, _react2.jsx)(_SliderLabelContainer["default"], labelContainerProps), (0, _react2.jsx)(_index.Box, visibleTrackProps, (0, _react2.jsx)(_SliderActiveTrack["default"], sliderActiveTrackProps), (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, hiddenTrackProps, {
|
50
|
+
ref: trackRef
|
51
|
+
}), (0, _react2.jsx)(_SliderThumb["default"], (0, _extends2["default"])({}, thumbPropsSpread, {
|
52
|
+
index: 0
|
53
|
+
})), isMultiThumb && (0, _react2.jsx)(_SliderThumb["default"], (0, _extends2["default"])({}, thumbPropsSpread, {
|
54
|
+
index: 1
|
55
|
+
}))))), labelContainerProps.isVertical && (0, _react2.jsx)(_SliderLabelContainer["default"], labelContainerProps), helperText && (0, _react2.jsx)(_index.FieldHelperText, helperTextProps, helperText));
|
56
|
+
});
|
57
|
+
var _default = SliderField;
|
58
|
+
exports["default"] = _default;
|
@@ -0,0 +1,127 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
|
3
|
+
<Meta title="Components/SliderField" />
|
4
|
+
|
5
|
+
# SliderField
|
6
|
+
|
7
|
+
The `SliderField` component is used to allow users to select a value from a range by dragging a thumb along a track. It supports both horizontal and vertical orientations, multi-thumb sliders, and provides a customizable display value.
|
8
|
+
|
9
|
+
### Recommended Use
|
10
|
+
|
11
|
+
- Use the `SliderField` component for selecting numeric values within a defined range.
|
12
|
+
- Display the current value dynamically as the user interacts with the slider.
|
13
|
+
- Use multi-thumb sliders for selecting a range of values.
|
14
|
+
|
15
|
+
### Features
|
16
|
+
|
17
|
+
- **Horizontal and Vertical Orientations**: Supports both orientations for flexible UI design.
|
18
|
+
- **Multi-Thumb Sliders**: Allows selecting a range of values.
|
19
|
+
- **Customizable Display Value**: Allows dynamic display of the current value.
|
20
|
+
- **Keyboard Accessibility**: Fully accessible with keyboard navigation.
|
21
|
+
- **Customizable Tracks and Thumbs**: Add custom class names or styles to `trackProps` and `activeTrackProps`.
|
22
|
+
|
23
|
+
### Props
|
24
|
+
|
25
|
+
| Prop | Type | Description |
|
26
|
+
| --------------------- | -------------------- | --------------------------------------------------------------------------- |
|
27
|
+
| `activeTrackProps` | `object` | Props passed to the active track element. |
|
28
|
+
| `autoFocus` | `boolean` | Automatically focuses the slider when it is rendered. |
|
29
|
+
| `className` | `string` | Additional class names for custom styling. |
|
30
|
+
| `defaultValue` | `number` `[number, number]` | The default value of the slider. |
|
31
|
+
| `displayValue` | `string` | Custom display value for the slider. |
|
32
|
+
| `formatOptions` | `Intl.NumberFormatOptions` | Options for formatting the display value. |
|
33
|
+
| `helperText` | `string` | Text displayed below the slider for additional context. |
|
34
|
+
| `helperTextProps` | `object` | Props passed to the helper text element. |
|
35
|
+
| `isDisabled` | `boolean` | Disables the slider. |
|
36
|
+
| `isDisplayValueHidden`| `boolean` | Hides the display value if set to `true`. |
|
37
|
+
| `isMultiThumb` | `boolean` | Enables multi-thumb slider functionality. |
|
38
|
+
| `label` | `string` `ReactNode` | Label for the slider. |
|
39
|
+
| `maxValue` | `number` | Maximum value of the slider. |
|
40
|
+
| `minValue` | `number` | Minimum value of the slider. |
|
41
|
+
| `name` | `string` | Name of the slider input. |
|
42
|
+
| `onBlur` | `function` | Callback triggered when the slider loses focus. |
|
43
|
+
| `onChange` | `function` | Callback triggered when the slider value changes. |
|
44
|
+
| `onChangeEnd` | `function` | Callback triggered when the slider interaction ends. |
|
45
|
+
| `onFocus` | `function` | Callback triggered when the slider gains focus. |
|
46
|
+
| `onFocusChange` | `function` | Callback triggered when the focus state changes. |
|
47
|
+
| `onKeyDown` | `function` | Callback triggered on key down events. |
|
48
|
+
| `onKeyUp` | `function` | Callback triggered on key up events. |
|
49
|
+
| `orientation` | `'horizontal' 'vertical'` | Orientation of the slider. |
|
50
|
+
| `step` | `number` | Step size for the slider. |
|
51
|
+
| `thumbProps` | `object` | Props passed to the slider thumb. |
|
52
|
+
| `trackProps` | `object` | Props passed to the track element. |
|
53
|
+
| `value` | `number` `[number, number]` | Controlled value of the slider. |
|
54
|
+
|
55
|
+
### Accessibility
|
56
|
+
|
57
|
+
This component adheres to accessibility guidelines to ensure a better user experience for all users.
|
58
|
+
|
59
|
+
#### Keyboard Navigation
|
60
|
+
|
61
|
+
| Keys | Function |
|
62
|
+
| ------------ | ----------------------------------------------------------------------- |
|
63
|
+
| Tab | Moves focus to the slider. |
|
64
|
+
| Arrow Keys | Adjusts the slider value incrementally. |
|
65
|
+
| Home | Moves the slider to the minimum value. |
|
66
|
+
| End | Moves the slider to the maximum value. |
|
67
|
+
|
68
|
+
#### Screen Readers
|
69
|
+
|
70
|
+
- **`aria-valuenow`**: Announces the current value of the slider.
|
71
|
+
- **`aria-valuemin` and `aria-valuemax`**: Define the minimum and maximum values of the slider.
|
72
|
+
- **`aria-orientation`**: Indicates whether the slider is horizontal or vertical.
|
73
|
+
|
74
|
+
### Example Usage
|
75
|
+
|
76
|
+
#### Single Thumb Slider
|
77
|
+
|
78
|
+
```jsx
|
79
|
+
<SliderField
|
80
|
+
label="Volume"
|
81
|
+
defaultValue={50}
|
82
|
+
minValue={0}
|
83
|
+
maxValue={100}
|
84
|
+
step={1}
|
85
|
+
onChange={(value) => console.log('Value:', value)}
|
86
|
+
/>
|
87
|
+
```
|
88
|
+
|
89
|
+
#### Multi-Thumb Slider
|
90
|
+
|
91
|
+
```jsx
|
92
|
+
<SliderField
|
93
|
+
label="Range"
|
94
|
+
isMultiThumb
|
95
|
+
defaultValue={[20, 80]}
|
96
|
+
minValue={0}
|
97
|
+
maxValue={100}
|
98
|
+
step={5}
|
99
|
+
onChange={(value) => console.log('Range:', value)}
|
100
|
+
/>
|
101
|
+
```
|
102
|
+
|
103
|
+
#### Custom Tracks and Thumbs
|
104
|
+
|
105
|
+
```jsx
|
106
|
+
<SliderField
|
107
|
+
label="Custom Slider"
|
108
|
+
trackProps={{ className: 'custom-track' }}
|
109
|
+
activeTrackProps={{ className: 'custom-active-track' }}
|
110
|
+
thumbProps={{ className: 'custom-thumb' }}
|
111
|
+
defaultValue={50}
|
112
|
+
minValue={0}
|
113
|
+
maxValue={100}
|
114
|
+
/>
|
115
|
+
```
|
116
|
+
|
117
|
+
#### Vertical Slider
|
118
|
+
|
119
|
+
```jsx
|
120
|
+
<SliderField
|
121
|
+
label="Vertical Slider"
|
122
|
+
orientation="vertical"
|
123
|
+
defaultValue={50}
|
124
|
+
minValue={0}
|
125
|
+
maxValue={100}
|
126
|
+
/>
|
127
|
+
```
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
|
3
|
+
export default _default;
|
4
|
+
export declare const Default: ({ ...args }: {
|
5
|
+
[x: string]: any;
|
6
|
+
}) => React.JSX.Element;
|
7
|
+
export declare const Controlled: () => React.JSX.Element;
|
8
|
+
export declare const Vertical: () => React.JSX.Element;
|
9
|
+
export declare const MultiThumb: () => React.JSX.Element;
|
10
|
+
export declare const ControlledMultiThumb: () => React.JSX.Element;
|
11
|
+
export declare const CustomProps: () => React.JSX.Element;
|