@pingux/astro 2.118.0-alpha.0 → 2.118.0-alpha.1
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,230 @@
|
|
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.getDisplayValue = exports.getDefaultValue = exports["default"] = void 0;
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
17
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
18
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
19
|
+
var _reactAria = require("react-aria");
|
20
|
+
var _reactStately = require("react-stately");
|
21
|
+
var _ariaAttributes = require("../../utils/docUtils/ariaAttributes");
|
22
|
+
var _useStatusClasses7 = _interopRequireDefault(require("../useStatusClasses"));
|
23
|
+
var _excluded = ["activeTrackProps", "autoFocus", "className", "defaultValue", "displayValue", "formatOptions", "helperTextProps", "isDisabled", "isDisplayValueHidden", "isMultiThumb", "label", "labelProps", "maxValue", "minValue", "name", "onBlur", "onChange", "onChangeEnd", "onFocus", "onFocusChange", "onKeyDown", "onKeyUp", "orientation", "outputProps", "size", "status", "step", "sx", "thumbProps", "trackProps", "trackRef", "value", "wrapperProps"];
|
24
|
+
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; }
|
25
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
26
|
+
var getDefaultValue = function getDefaultValue(_ref) {
|
27
|
+
var defaultValueProp = _ref.defaultValueProp,
|
28
|
+
minValue = _ref.minValue,
|
29
|
+
step = _ref.step;
|
30
|
+
if (defaultValueProp !== undefined) {
|
31
|
+
return defaultValueProp;
|
32
|
+
}
|
33
|
+
return [minValue, step * 3];
|
34
|
+
};
|
35
|
+
exports.getDefaultValue = getDefaultValue;
|
36
|
+
var getDisplayValue = function getDisplayValue(_ref2) {
|
37
|
+
var displayValueProp = _ref2.displayValueProp,
|
38
|
+
isMultiThumb = _ref2.isMultiThumb,
|
39
|
+
state = _ref2.state;
|
40
|
+
if (displayValueProp) {
|
41
|
+
return displayValueProp;
|
42
|
+
}
|
43
|
+
if (isMultiThumb) {
|
44
|
+
var _context;
|
45
|
+
return (0, _concat["default"])(_context = "".concat(state.getThumbValueLabel(0), " - ")).call(_context, state.getThumbValueLabel(1));
|
46
|
+
}
|
47
|
+
return state.getThumbValueLabel(0);
|
48
|
+
};
|
49
|
+
exports.getDisplayValue = getDisplayValue;
|
50
|
+
var useSliderField = function useSliderField(props) {
|
51
|
+
var activeTrackProps = props.activeTrackProps,
|
52
|
+
autoFocus = props.autoFocus,
|
53
|
+
className = props.className,
|
54
|
+
defaultValueProp = props.defaultValue,
|
55
|
+
displayValueProp = props.displayValue,
|
56
|
+
formatOptions = props.formatOptions,
|
57
|
+
helperTextProps = props.helperTextProps,
|
58
|
+
isDisabled = props.isDisabled,
|
59
|
+
_props$isDisplayValue = props.isDisplayValueHidden,
|
60
|
+
isDisplayValueHidden = _props$isDisplayValue === void 0 ? false : _props$isDisplayValue,
|
61
|
+
_props$isMultiThumb = props.isMultiThumb,
|
62
|
+
isMultiThumb = _props$isMultiThumb === void 0 ? false : _props$isMultiThumb,
|
63
|
+
label = props.label,
|
64
|
+
labelProps = props.labelProps,
|
65
|
+
_props$maxValue = props.maxValue,
|
66
|
+
maxValue = _props$maxValue === void 0 ? 100 : _props$maxValue,
|
67
|
+
_props$minValue = props.minValue,
|
68
|
+
minValue = _props$minValue === void 0 ? 0 : _props$minValue,
|
69
|
+
name = props.name,
|
70
|
+
onBlur = props.onBlur,
|
71
|
+
onChange = props.onChange,
|
72
|
+
onChangeEnd = props.onChangeEnd,
|
73
|
+
onFocus = props.onFocus,
|
74
|
+
onFocusChange = props.onFocusChange,
|
75
|
+
onKeyDown = props.onKeyDown,
|
76
|
+
onKeyUp = props.onKeyUp,
|
77
|
+
orientation = props.orientation,
|
78
|
+
outputProps = props.outputProps,
|
79
|
+
_props$size = props.size,
|
80
|
+
size = _props$size === void 0 ? '300px' : _props$size,
|
81
|
+
status = props.status,
|
82
|
+
_props$step = props.step,
|
83
|
+
step = _props$step === void 0 ? 10 : _props$step,
|
84
|
+
_props$sx = props.sx,
|
85
|
+
sx = _props$sx === void 0 ? {} : _props$sx,
|
86
|
+
thumbProps = props.thumbProps,
|
87
|
+
trackProps = props.trackProps,
|
88
|
+
trackRef = props.trackRef,
|
89
|
+
value = props.value,
|
90
|
+
wrapperProps = props.wrapperProps,
|
91
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
92
|
+
var defaultValue = !isMultiThumb ? defaultValueProp : getDefaultValue({
|
93
|
+
defaultValueProp: defaultValueProp,
|
94
|
+
minValue: minValue,
|
95
|
+
step: step
|
96
|
+
});
|
97
|
+
var numberFormatter = (0, _reactAria.useNumberFormatter)(formatOptions);
|
98
|
+
var sliderStateOptions = {
|
99
|
+
defaultValue: defaultValue,
|
100
|
+
isDisabled: isDisabled,
|
101
|
+
label: label,
|
102
|
+
maxValue: maxValue,
|
103
|
+
minValue: minValue,
|
104
|
+
numberFormatter: numberFormatter,
|
105
|
+
onChange: onChange,
|
106
|
+
onChangeEnd: onChangeEnd,
|
107
|
+
orientation: orientation,
|
108
|
+
step: step,
|
109
|
+
value: value
|
110
|
+
};
|
111
|
+
var state = (0, _reactStately.useSliderState)(sliderStateOptions);
|
112
|
+
var _getAriaAttributeProp = (0, _ariaAttributes.getAriaAttributeProps)(others),
|
113
|
+
ariaProps = _getAriaAttributeProp.ariaProps,
|
114
|
+
nonAriaProps = _getAriaAttributeProp.nonAriaProps;
|
115
|
+
var thumbOptions = _objectSpread(_objectSpread({}, thumbProps), {}, {
|
116
|
+
autoFocus: autoFocus,
|
117
|
+
isDisabled: isDisabled,
|
118
|
+
name: name,
|
119
|
+
onBlur: onBlur,
|
120
|
+
onFocus: onFocus,
|
121
|
+
onFocusChange: onFocusChange,
|
122
|
+
onKeyDown: onKeyDown,
|
123
|
+
onKeyUp: onKeyUp
|
124
|
+
});
|
125
|
+
var sliderOptions = _objectSpread(_objectSpread({}, ariaProps), {}, {
|
126
|
+
defaultValue: defaultValue,
|
127
|
+
isDisabled: isDisabled,
|
128
|
+
label: label,
|
129
|
+
maxValue: maxValue,
|
130
|
+
minValue: minValue,
|
131
|
+
name: name,
|
132
|
+
onChange: onChange,
|
133
|
+
onChangeEnd: onChangeEnd,
|
134
|
+
orientation: orientation,
|
135
|
+
value: value
|
136
|
+
});
|
137
|
+
var _useSlider = (0, _reactAria.useSlider)(sliderOptions, state, trackRef),
|
138
|
+
groupProps = _useSlider.groupProps,
|
139
|
+
raTrackProps = _useSlider.trackProps,
|
140
|
+
raLabelProps = _useSlider.labelProps,
|
141
|
+
raOutputProps = _useSlider.outputProps;
|
142
|
+
var isHorizontal = state.orientation === 'horizontal';
|
143
|
+
var isVertical = state.orientation === 'vertical';
|
144
|
+
var displayValue = getDisplayValue({
|
145
|
+
displayValueProp: displayValueProp,
|
146
|
+
state: state,
|
147
|
+
isMultiThumb: isMultiThumb
|
148
|
+
});
|
149
|
+
var statusClasses = {
|
150
|
+
isHorizontal: isHorizontal,
|
151
|
+
isVertical: isVertical,
|
152
|
+
isMultiThumb: isMultiThumb,
|
153
|
+
isSingleThumb: !isMultiThumb
|
154
|
+
};
|
155
|
+
var _useStatusClasses = (0, _useStatusClasses7["default"])(className, statusClasses),
|
156
|
+
classNames = _useStatusClasses.classNames;
|
157
|
+
var _useStatusClasses2 = (0, _useStatusClasses7["default"])(trackProps === null || trackProps === void 0 ? void 0 : trackProps.className, statusClasses),
|
158
|
+
visibleTrackClassNames = _useStatusClasses2.classNames;
|
159
|
+
var _useStatusClasses3 = (0, _useStatusClasses7["default"])(labelProps === null || labelProps === void 0 ? void 0 : labelProps.className, statusClasses),
|
160
|
+
labelContainerClassNames = _useStatusClasses3.classNames;
|
161
|
+
var _useStatusClasses4 = (0, _useStatusClasses7["default"])(className, statusClasses),
|
162
|
+
hiddenTrackClassNames = _useStatusClasses4.classNames;
|
163
|
+
var _useStatusClasses5 = (0, _useStatusClasses7["default"])(wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.className, statusClasses),
|
164
|
+
wrapperClassName = _useStatusClasses5.classNames;
|
165
|
+
var _useStatusClasses6 = (0, _useStatusClasses7["default"])(activeTrackProps === null || activeTrackProps === void 0 ? void 0 : activeTrackProps.className, statusClasses),
|
166
|
+
activeTrackClassNames = _useStatusClasses6.classNames;
|
167
|
+
var thumbPropsSpread = _objectSpread(_objectSpread(_objectSpread({}, thumbOptions), thumbProps), {}, {
|
168
|
+
isHorizontal: isHorizontal,
|
169
|
+
isVertical: isVertical,
|
170
|
+
state: state,
|
171
|
+
trackRef: trackRef
|
172
|
+
});
|
173
|
+
var mergedOuputProps = (0, _reactAria.mergeProps)(outputProps, raOutputProps, {
|
174
|
+
as: 'output',
|
175
|
+
variant: 'label'
|
176
|
+
});
|
177
|
+
var mergedLabelProps = (0, _reactAria.mergeProps)(labelProps, raLabelProps);
|
178
|
+
var labelContainerProps = {
|
179
|
+
label: label,
|
180
|
+
labelProps: mergedLabelProps,
|
181
|
+
isDisplayValueHidden: isDisplayValueHidden,
|
182
|
+
outputProps: mergedOuputProps,
|
183
|
+
isHorizontal: isHorizontal,
|
184
|
+
displayValue: displayValue,
|
185
|
+
isVertical: isVertical,
|
186
|
+
className: labelContainerClassNames
|
187
|
+
};
|
188
|
+
var sliderActiveTrackProps = _objectSpread(_objectSpread({}, activeTrackProps), {}, {
|
189
|
+
isMultiThumb: isMultiThumb,
|
190
|
+
className: activeTrackClassNames,
|
191
|
+
isHorizontal: isHorizontal,
|
192
|
+
isVertical: isVertical,
|
193
|
+
state: state
|
194
|
+
});
|
195
|
+
var wrapperPropsSpread = _objectSpread(_objectSpread({}, wrapperProps), {}, {
|
196
|
+
className: wrapperClassName,
|
197
|
+
variant: 'slider.wrapper'
|
198
|
+
});
|
199
|
+
var sizeProperty = isHorizontal ? 'width' : 'height';
|
200
|
+
var containerProps = _objectSpread(_objectSpread(_objectSpread({}, others), groupProps), {}, {
|
201
|
+
sx: _objectSpread((0, _defineProperty2["default"])({}, sizeProperty, size), sx),
|
202
|
+
variant: 'slider.slider',
|
203
|
+
className: classNames
|
204
|
+
});
|
205
|
+
var hiddenTrackProps = _objectSpread(_objectSpread({}, raTrackProps), {}, {
|
206
|
+
trackRef: trackRef,
|
207
|
+
variant: 'slider.hiddenTrack',
|
208
|
+
className: hiddenTrackClassNames
|
209
|
+
});
|
210
|
+
var visibleTrackProps = _objectSpread({
|
211
|
+
variant: 'slider.track',
|
212
|
+
className: visibleTrackClassNames
|
213
|
+
}, trackProps);
|
214
|
+
var helperTextPropsSpread = _objectSpread(_objectSpread({}, helperTextProps), {}, {
|
215
|
+
status: status
|
216
|
+
});
|
217
|
+
return {
|
218
|
+
containerProps: containerProps,
|
219
|
+
labelContainerProps: labelContainerProps,
|
220
|
+
sliderActiveTrackProps: sliderActiveTrackProps,
|
221
|
+
hiddenTrackProps: hiddenTrackProps,
|
222
|
+
thumbPropsSpread: thumbPropsSpread,
|
223
|
+
classNames: classNames,
|
224
|
+
visibleTrackProps: visibleTrackProps,
|
225
|
+
helperTextProps: helperTextPropsSpread,
|
226
|
+
wrapperProps: wrapperPropsSpread
|
227
|
+
};
|
228
|
+
};
|
229
|
+
var _default = useSliderField;
|
230
|
+
exports["default"] = _default;
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,109 @@
|
|
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
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
15
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
16
|
+
var _react = require("@testing-library/react");
|
17
|
+
var _useSliderField = _interopRequireWildcard(require("./useSliderField"));
|
18
|
+
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); }
|
19
|
+
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; }
|
20
|
+
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; }
|
21
|
+
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; }
|
22
|
+
var defaultProps = {
|
23
|
+
minValue: 0,
|
24
|
+
maxValue: 100,
|
25
|
+
step: 10,
|
26
|
+
defaultValue: 50,
|
27
|
+
isMultiThumb: false,
|
28
|
+
label: 'test label',
|
29
|
+
trackRef: {
|
30
|
+
current: null
|
31
|
+
}
|
32
|
+
};
|
33
|
+
describe('useSliderField utility functions', function () {
|
34
|
+
describe('getDefaultValue', function () {
|
35
|
+
test('returns defaultValueProp if provided', function () {
|
36
|
+
var result = (0, _useSliderField.getDefaultValue)({
|
37
|
+
defaultValueProp: [10, 50],
|
38
|
+
minValue: 0,
|
39
|
+
step: 10
|
40
|
+
});
|
41
|
+
expect(result).toEqual([10, 50]);
|
42
|
+
});
|
43
|
+
test('calculates default value if defaultValueProp is not provided', function () {
|
44
|
+
var result = (0, _useSliderField.getDefaultValue)({
|
45
|
+
defaultValueProp: undefined,
|
46
|
+
minValue: 0,
|
47
|
+
step: 10
|
48
|
+
});
|
49
|
+
expect(result).toEqual([0, 30]);
|
50
|
+
});
|
51
|
+
});
|
52
|
+
describe('getDisplayValue', function () {
|
53
|
+
var mockState = {
|
54
|
+
getThumbValueLabel: jest.fn(function (index) {
|
55
|
+
return index === 0 ? '10' : '50';
|
56
|
+
})
|
57
|
+
};
|
58
|
+
test('returns displayValueProp if provided', function () {
|
59
|
+
var result = (0, _useSliderField.getDisplayValue)({
|
60
|
+
displayValueProp: 'Custom Display',
|
61
|
+
isMultiThumb: false,
|
62
|
+
state: mockState
|
63
|
+
});
|
64
|
+
expect(result).toEqual('Custom Display');
|
65
|
+
});
|
66
|
+
test('returns single thumb value if isMultiThumb is false', function () {
|
67
|
+
var result = (0, _useSliderField.getDisplayValue)({
|
68
|
+
displayValueProp: undefined,
|
69
|
+
isMultiThumb: false,
|
70
|
+
state: mockState
|
71
|
+
});
|
72
|
+
expect(result).toEqual('10');
|
73
|
+
});
|
74
|
+
test('returns range value if isMultiThumb is true', function () {
|
75
|
+
var result = (0, _useSliderField.getDisplayValue)({
|
76
|
+
displayValueProp: undefined,
|
77
|
+
isMultiThumb: true,
|
78
|
+
state: mockState
|
79
|
+
});
|
80
|
+
expect(result).toEqual('10 - 50');
|
81
|
+
});
|
82
|
+
});
|
83
|
+
});
|
84
|
+
describe('useSliderField hook', function () {
|
85
|
+
test('should initialize with default minValue and maxValue', function () {
|
86
|
+
var _renderHook = (0, _react.renderHook)(function () {
|
87
|
+
return (0, _useSliderField["default"])(defaultProps);
|
88
|
+
}),
|
89
|
+
result = _renderHook.result;
|
90
|
+
var containerProps = result.current.containerProps;
|
91
|
+
expect(containerProps).toBeDefined();
|
92
|
+
expect((0, _values["default"])(result.current.sliderActiveTrackProps.state)).toEqual([50]);
|
93
|
+
});
|
94
|
+
test('should update minValue and maxValue when props change', function () {
|
95
|
+
var _renderHook2 = (0, _react.renderHook)(function (props) {
|
96
|
+
return (0, _useSliderField["default"])(props);
|
97
|
+
}, {
|
98
|
+
initialProps: defaultProps
|
99
|
+
}),
|
100
|
+
result = _renderHook2.result,
|
101
|
+
rerender = _renderHook2.rerender;
|
102
|
+
expect((0, _values["default"])(result.current.sliderActiveTrackProps.state)).toEqual([50]);
|
103
|
+
rerender(_objectSpread(_objectSpread({}, defaultProps), {}, {
|
104
|
+
minValue: 20,
|
105
|
+
maxValue: 80,
|
106
|
+
defaultValue: 30
|
107
|
+
}));
|
108
|
+
});
|
109
|
+
});
|
package/lib/cjs/index.d.ts
CHANGED
@@ -168,6 +168,7 @@ export { default as Separator } from './components/Separator';
|
|
168
168
|
export * from './components/Separator';
|
169
169
|
export { default as Skeleton } from './components/Skeleton';
|
170
170
|
export * from './components/Skeleton';
|
171
|
+
export { default as SliderField } from './components/SliderField/SliderField';
|
171
172
|
export { Step, default as Stepper } from './components/Stepper';
|
172
173
|
export * from './components/Stepper';
|
173
174
|
export { default as Switch } from './components/Switch';
|
package/lib/cjs/index.js
CHANGED
@@ -121,6 +121,7 @@ var _exportNames = {
|
|
121
121
|
SelectField: true,
|
122
122
|
Separator: true,
|
123
123
|
Skeleton: true,
|
124
|
+
SliderField: true,
|
124
125
|
Step: true,
|
125
126
|
Stepper: true,
|
126
127
|
Switch: true,
|
@@ -860,6 +861,12 @@ _Object$defineProperty(exports, "Skeleton", {
|
|
860
861
|
return _Skeleton["default"];
|
861
862
|
}
|
862
863
|
});
|
864
|
+
_Object$defineProperty(exports, "SliderField", {
|
865
|
+
enumerable: true,
|
866
|
+
get: function get() {
|
867
|
+
return _SliderField["default"];
|
868
|
+
}
|
869
|
+
});
|
863
870
|
_Object$defineProperty(exports, "Step", {
|
864
871
|
enumerable: true,
|
865
872
|
get: function get() {
|
@@ -1806,6 +1813,7 @@ _forEachInstanceProperty(_context61 = _Object$keys(_Skeleton)).call(_context61,
|
|
1806
1813
|
}
|
1807
1814
|
});
|
1808
1815
|
});
|
1816
|
+
var _SliderField = _interopRequireDefault(require("./components/SliderField/SliderField"));
|
1809
1817
|
var _Stepper = _interopRequireWildcard(require("./components/Stepper"));
|
1810
1818
|
_forEachInstanceProperty(_context62 = _Object$keys(_Stepper)).call(_context62, function (key) {
|
1811
1819
|
if (key === "default" || key === "__esModule") return;
|
@@ -197,6 +197,9 @@ declare const allColors: {
|
|
197
197
|
dark: string;
|
198
198
|
light: string;
|
199
199
|
};
|
200
|
+
slider: {
|
201
|
+
track: string;
|
202
|
+
};
|
200
203
|
};
|
201
204
|
export default allColors;
|
202
205
|
export declare const flatColorList: any;
|
@@ -299,4 +302,7 @@ export declare const getBaseHexColor: (colorName: string) => string | {
|
|
299
302
|
dark: string;
|
300
303
|
light: string;
|
301
304
|
};
|
305
|
+
slider: {
|
306
|
+
track: string;
|
307
|
+
};
|
302
308
|
};
|
package/lib/cjs/styles/colors.js
CHANGED
@@ -64,6 +64,9 @@ var accentBase = '303F5F';
|
|
64
64
|
var accentLight = 'F7F8FD';
|
65
65
|
var accentSteps = 8;
|
66
66
|
var accentScale = _chromaJs["default"].scale([accentBase, accentLight]).mode('hsl');
|
67
|
+
var slider = {
|
68
|
+
track: '#E4E6E9'
|
69
|
+
};
|
67
70
|
var accent = {
|
68
71
|
5: (0, _chromaJs["default"])(accentBase).darken(1).hex(),
|
69
72
|
10: (0, _chromaJs["default"])(accentBase).darken(0.5).hex(),
|
@@ -154,7 +157,8 @@ var allColors = {
|
|
154
157
|
text: text,
|
155
158
|
line: line,
|
156
159
|
button: button,
|
157
|
-
warning: warning
|
160
|
+
warning: warning,
|
161
|
+
slider: slider
|
158
162
|
};
|
159
163
|
var _default = allColors;
|
160
164
|
exports["default"] = _default;
|
@@ -53,6 +53,7 @@ var _RockerButton = _interopRequireDefault(require("../../components/RockerButto
|
|
53
53
|
var _ScrollBox = _interopRequireDefault(require("../../components/ScrollBox/ScrollBox.styles"));
|
54
54
|
var _Separator = _interopRequireDefault(require("../../components/Separator/Separator.styles"));
|
55
55
|
var _Skeleton = _interopRequireDefault(require("../../components/Skeleton/Skeleton.styles"));
|
56
|
+
var _Slider = _interopRequireDefault(require("../../components/SliderField/Slider.styles"));
|
56
57
|
var _Stepper = _interopRequireDefault(require("../../components/Stepper/Stepper.styles"));
|
57
58
|
var _Table = _interopRequireDefault(require("../../components/Table/Table.styles"));
|
58
59
|
var tab = _interopRequireWildcard(require("../../components/Tabs/Tabs.style"));
|
@@ -101,6 +102,7 @@ var _default = _objectSpread({
|
|
101
102
|
rockerButton: _RockerButton["default"],
|
102
103
|
scrollBox: _ScrollBox["default"],
|
103
104
|
separator: _Separator["default"],
|
105
|
+
slider: _Slider["default"],
|
104
106
|
stepper: _Stepper["default"],
|
105
107
|
skeleton: _Skeleton["default"],
|
106
108
|
table: _Table["default"],
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import React, { ReactNode, RefObject } from 'react';
|
2
|
+
import { SliderState } from 'react-stately';
|
3
|
+
import type { PressEvent } from '@react-types/shared';
|
4
|
+
import { ThemeUICSSObject } from 'theme-ui';
|
5
|
+
import { BoxProps } from './box';
|
6
|
+
import { FieldHelperTextProps } from './fieldHelperText';
|
7
|
+
import { InputProps } from './input';
|
8
|
+
import { Status } from './item';
|
9
|
+
import { LabelProps } from './label';
|
10
|
+
import { TextProps } from './text';
|
11
|
+
export type NumberOrNumberPair = number | [number, number];
|
12
|
+
export interface SliderThumbProps {
|
13
|
+
className?: string;
|
14
|
+
index: number;
|
15
|
+
inputProps?: InputProps;
|
16
|
+
isHorizontal?: boolean;
|
17
|
+
isVertical?: boolean;
|
18
|
+
name?: string;
|
19
|
+
onFocus?: (e: React.FocusEvent) => void;
|
20
|
+
onFocusChange?: (isFocused: boolean) => void;
|
21
|
+
onPress?: (e: PressEvent) => void;
|
22
|
+
state: SliderState;
|
23
|
+
thumbProps?: object;
|
24
|
+
trackRef: RefObject<Element>;
|
25
|
+
}
|
26
|
+
export interface SliderLabelContainerProps {
|
27
|
+
displayValue?: ReactNode;
|
28
|
+
label?: ReactNode;
|
29
|
+
labelProps?: LabelProps;
|
30
|
+
isDisplayValueHidden?: boolean;
|
31
|
+
outputProps?: TextProps;
|
32
|
+
className?: string;
|
33
|
+
}
|
34
|
+
export interface SliderActiveTrackProps {
|
35
|
+
className?: string;
|
36
|
+
isHorizontal?: boolean;
|
37
|
+
isMultiThumb?: boolean;
|
38
|
+
isVertical?: boolean;
|
39
|
+
state: SliderState;
|
40
|
+
sx?: ThemeUICSSObject | object;
|
41
|
+
}
|
42
|
+
export interface SliderFieldProps {
|
43
|
+
activeTrackProps?: BoxProps;
|
44
|
+
autoFocus?: boolean;
|
45
|
+
className?: string;
|
46
|
+
defaultValue?: NumberOrNumberPair;
|
47
|
+
displayValue?: string;
|
48
|
+
formatOptions?: Intl.NumberFormatOptions;
|
49
|
+
helperText?: string;
|
50
|
+
helperTextProps?: FieldHelperTextProps;
|
51
|
+
isDisabled?: boolean;
|
52
|
+
isDisplayValueHidden?: boolean;
|
53
|
+
isMultiThumb?: boolean;
|
54
|
+
label?: ReactNode;
|
55
|
+
labelProps?: LabelProps;
|
56
|
+
maxValue?: number;
|
57
|
+
minValue?: number;
|
58
|
+
name?: string;
|
59
|
+
onBlur?: () => void;
|
60
|
+
onChange?: (value: NumberOrNumberPair) => void;
|
61
|
+
onChangeEnd?: (event: React.KeyboardEvent) => void;
|
62
|
+
onFocus?: () => void;
|
63
|
+
onFocusChange?: (isFocused: boolean) => void;
|
64
|
+
onKeyDown?: (event: React.KeyboardEvent) => void;
|
65
|
+
onKeyUp?: (event: React.KeyboardEvent) => void;
|
66
|
+
orientation?: 'vertical' | 'horizontal';
|
67
|
+
outputProps?: TextProps;
|
68
|
+
size?: string;
|
69
|
+
status?: Status;
|
70
|
+
step?: number;
|
71
|
+
sx?: ThemeUICSSObject | object;
|
72
|
+
trackProps?: BoxProps;
|
73
|
+
thumbProps?: object;
|
74
|
+
value?: NumberOrNumberPair;
|
75
|
+
wrapperProps?: BoxProps;
|
76
|
+
}
|
77
|
+
export interface UseSliderFieldProps extends SliderFieldProps {
|
78
|
+
trackRef: RefObject<Element>;
|
79
|
+
}
|
@@ -67,6 +67,12 @@ var useDefaultProps = function useDefaultProps(componentType) {
|
|
67
67
|
};
|
68
68
|
var handleChange = jest.fn();
|
69
69
|
switch (componentType) {
|
70
|
+
case 'SliderField':
|
71
|
+
return {
|
72
|
+
value: value,
|
73
|
+
onChange: setValue,
|
74
|
+
name: name
|
75
|
+
};
|
70
76
|
case 'CheckboxField':
|
71
77
|
case 'SwitchField':
|
72
78
|
return {
|
@@ -150,6 +156,11 @@ var getDefaultProps = function getDefaultProps(componentType, testValue) {
|
|
150
156
|
name: name,
|
151
157
|
value: testValue
|
152
158
|
};
|
159
|
+
case 'SliderField':
|
160
|
+
return {
|
161
|
+
name: name,
|
162
|
+
value: testValue
|
163
|
+
};
|
153
164
|
case 'SwitchField':
|
154
165
|
return {
|
155
166
|
isDefaultSelected: true,
|
@@ -346,6 +357,12 @@ var universalFieldComponentTests = function universalFieldComponentTests(_ref3)
|
|
346
357
|
return cell.getAttribute('aria-selected') === 'true';
|
347
358
|
});
|
348
359
|
expect(selected === null || selected === void 0 ? void 0 : selected.children[0]).toHaveAttribute('aria-label', 'Wednesday, August 10, 2022 selected');
|
360
|
+
} else if (componentType === 'SliderField') {
|
361
|
+
_react2.fireEvent.change(_react2.screen.getByRole('slider'), {
|
362
|
+
target: {
|
363
|
+
value: testValue
|
364
|
+
}
|
365
|
+
});
|
349
366
|
} else {
|
350
367
|
_react2.fireEvent.change(_react2.screen.getAllByLabelText(testLabel)[0], {
|
351
368
|
target: {
|