@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.
Files changed (52) hide show
  1. package/lib/cjs/components/SliderField/Slider.styles.d.ts +138 -0
  2. package/lib/cjs/components/SliderField/Slider.styles.js +163 -0
  3. package/lib/cjs/components/SliderField/SliderActiveTrack.d.ts +4 -0
  4. package/lib/cjs/components/SliderField/SliderActiveTrack.js +49 -0
  5. package/lib/cjs/components/SliderField/SliderField.d.ts +4 -0
  6. package/lib/cjs/components/SliderField/SliderField.js +58 -0
  7. package/lib/cjs/components/SliderField/SliderField.mdx +127 -0
  8. package/lib/cjs/components/SliderField/SliderField.stories.d.ts +11 -0
  9. package/lib/cjs/components/SliderField/SliderField.stories.js +151 -0
  10. package/lib/cjs/components/SliderField/SliderField.test.d.ts +1 -0
  11. package/lib/cjs/components/SliderField/SliderField.test.js +357 -0
  12. package/lib/cjs/components/SliderField/SliderLabelContainer.d.ts +4 -0
  13. package/lib/cjs/components/SliderField/SliderLabelContainer.js +43 -0
  14. package/lib/cjs/components/SliderField/SliderThumb.d.ts +4 -0
  15. package/lib/cjs/components/SliderField/SliderThumb.js +82 -0
  16. package/lib/cjs/components/SliderField/index.d.ts +1 -0
  17. package/lib/cjs/components/SliderField/index.js +14 -0
  18. package/lib/cjs/hooks/index.d.ts +1 -0
  19. package/lib/cjs/hooks/index.js +7 -0
  20. package/lib/cjs/hooks/useSliderField/index.d.ts +1 -0
  21. package/lib/cjs/hooks/useSliderField/index.js +14 -0
  22. package/lib/cjs/hooks/useSliderField/useSliderField.d.ts +4290 -0
  23. package/lib/cjs/hooks/useSliderField/useSliderField.js +230 -0
  24. package/lib/cjs/hooks/useSliderField/useSliderField.test.d.ts +1 -0
  25. package/lib/cjs/hooks/useSliderField/useSliderField.test.js +109 -0
  26. package/lib/cjs/index.d.ts +1 -0
  27. package/lib/cjs/index.js +8 -0
  28. package/lib/cjs/styles/colors.d.ts +6 -0
  29. package/lib/cjs/styles/colors.js +5 -1
  30. package/lib/cjs/styles/variants/variants.js +2 -0
  31. package/lib/cjs/types/sliderField.d.ts +79 -0
  32. package/lib/cjs/types/sliderField.js +6 -0
  33. package/lib/cjs/utils/testUtils/universalFormSubmitTest.js +17 -0
  34. package/lib/components/SliderField/Slider.styles.js +155 -0
  35. package/lib/components/SliderField/SliderActiveTrack.js +37 -0
  36. package/lib/components/SliderField/SliderField.js +46 -0
  37. package/lib/components/SliderField/SliderField.mdx +127 -0
  38. package/lib/components/SliderField/SliderField.stories.js +131 -0
  39. package/lib/components/SliderField/SliderField.test.js +354 -0
  40. package/lib/components/SliderField/SliderLabelContainer.js +29 -0
  41. package/lib/components/SliderField/SliderThumb.js +68 -0
  42. package/lib/components/SliderField/index.js +1 -0
  43. package/lib/hooks/index.js +1 -0
  44. package/lib/hooks/useSliderField/index.js +1 -0
  45. package/lib/hooks/useSliderField/useSliderField.js +220 -0
  46. package/lib/hooks/useSliderField/useSliderField.test.js +102 -0
  47. package/lib/index.js +1 -0
  48. package/lib/styles/colors.js +5 -1
  49. package/lib/styles/variants/variants.js +2 -0
  50. package/lib/types/sliderField.js +1 -0
  51. package/lib/utils/testUtils/universalFormSubmitTest.js +17 -0
  52. 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,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
+ });
@@ -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
  };
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
@@ -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: {