@pingux/astro 2.117.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 (58) hide show
  1. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +0 -1
  2. package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +24 -16
  3. package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +74 -32
  4. package/lib/cjs/components/SliderField/Slider.styles.d.ts +138 -0
  5. package/lib/cjs/components/SliderField/Slider.styles.js +163 -0
  6. package/lib/cjs/components/SliderField/SliderActiveTrack.d.ts +4 -0
  7. package/lib/cjs/components/SliderField/SliderActiveTrack.js +49 -0
  8. package/lib/cjs/components/SliderField/SliderField.d.ts +4 -0
  9. package/lib/cjs/components/SliderField/SliderField.js +58 -0
  10. package/lib/cjs/components/SliderField/SliderField.mdx +127 -0
  11. package/lib/cjs/components/SliderField/SliderField.stories.d.ts +11 -0
  12. package/lib/cjs/components/SliderField/SliderField.stories.js +151 -0
  13. package/lib/cjs/components/SliderField/SliderField.test.d.ts +1 -0
  14. package/lib/cjs/components/SliderField/SliderField.test.js +357 -0
  15. package/lib/cjs/components/SliderField/SliderLabelContainer.d.ts +4 -0
  16. package/lib/cjs/components/SliderField/SliderLabelContainer.js +43 -0
  17. package/lib/cjs/components/SliderField/SliderThumb.d.ts +4 -0
  18. package/lib/cjs/components/SliderField/SliderThumb.js +82 -0
  19. package/lib/cjs/components/SliderField/index.d.ts +1 -0
  20. package/lib/cjs/components/SliderField/index.js +14 -0
  21. package/lib/cjs/hooks/index.d.ts +1 -0
  22. package/lib/cjs/hooks/index.js +7 -0
  23. package/lib/cjs/hooks/useSliderField/index.d.ts +1 -0
  24. package/lib/cjs/hooks/useSliderField/index.js +14 -0
  25. package/lib/cjs/hooks/useSliderField/useSliderField.d.ts +4290 -0
  26. package/lib/cjs/hooks/useSliderField/useSliderField.js +230 -0
  27. package/lib/cjs/hooks/useSliderField/useSliderField.test.d.ts +1 -0
  28. package/lib/cjs/hooks/useSliderField/useSliderField.test.js +109 -0
  29. package/lib/cjs/index.d.ts +1 -0
  30. package/lib/cjs/index.js +8 -0
  31. package/lib/cjs/styles/colors.d.ts +6 -0
  32. package/lib/cjs/styles/colors.js +5 -1
  33. package/lib/cjs/styles/variants/variants.js +2 -0
  34. package/lib/cjs/types/sliderField.d.ts +79 -0
  35. package/lib/cjs/types/sliderField.js +6 -0
  36. package/lib/cjs/utils/testUtils/universalFormSubmitTest.js +17 -0
  37. package/lib/components/ComboBoxField/ComboBoxField.js +0 -1
  38. package/lib/components/ComboBoxField/ComboBoxField.stories.js +24 -16
  39. package/lib/components/ComboBoxField/ComboBoxField.test.js +74 -32
  40. package/lib/components/SliderField/Slider.styles.js +155 -0
  41. package/lib/components/SliderField/SliderActiveTrack.js +37 -0
  42. package/lib/components/SliderField/SliderField.js +46 -0
  43. package/lib/components/SliderField/SliderField.mdx +127 -0
  44. package/lib/components/SliderField/SliderField.stories.js +131 -0
  45. package/lib/components/SliderField/SliderField.test.js +354 -0
  46. package/lib/components/SliderField/SliderLabelContainer.js +29 -0
  47. package/lib/components/SliderField/SliderThumb.js +68 -0
  48. package/lib/components/SliderField/index.js +1 -0
  49. package/lib/hooks/index.js +1 -0
  50. package/lib/hooks/useSliderField/index.js +1 -0
  51. package/lib/hooks/useSliderField/useSliderField.js +220 -0
  52. package/lib/hooks/useSliderField/useSliderField.test.js +102 -0
  53. package/lib/index.js +1 -0
  54. package/lib/styles/colors.js +5 -1
  55. package/lib/styles/variants/variants.js +2 -0
  56. package/lib/types/sliderField.js +1 -0
  57. package/lib/utils/testUtils/universalFormSubmitTest.js +17 -0
  58. package/package.json +3 -1
@@ -0,0 +1,131 @@
1
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
2
+ import _objectDestructuringEmpty from "@babel/runtime-corejs3/helpers/esm/objectDestructuringEmpty";
3
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
4
+ import React, { useState } from 'react';
5
+ import DocsLayout from '../../../.storybook/storybookDocsLayout';
6
+ import { Label, SliderField } from '../../index';
7
+ import SliderFieldReadme from './SliderField.mdx';
8
+ import { jsx as ___EmotionJSX } from "@emotion/react";
9
+ export default {
10
+ title: 'Form/SliderField',
11
+ component: SliderField,
12
+ parameters: {
13
+ docs: {
14
+ page: function page() {
15
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(SliderFieldReadme, null), ___EmotionJSX(DocsLayout, null));
16
+ }
17
+ }
18
+ },
19
+ argTypes: {
20
+ defaultValue: {
21
+ control: {
22
+ type: 'number'
23
+ }
24
+ },
25
+ orientation: {
26
+ control: {
27
+ type: 'select',
28
+ options: ['vertical', 'horizontal']
29
+ }
30
+ },
31
+ step: {
32
+ control: {
33
+ type: 'number'
34
+ }
35
+ },
36
+ minValue: {
37
+ control: {
38
+ type: 'number'
39
+ }
40
+ },
41
+ maxValue: {
42
+ control: {
43
+ type: 'number'
44
+ }
45
+ },
46
+ helperText: {
47
+ control: {
48
+ type: 'text'
49
+ }
50
+ },
51
+ label: {
52
+ control: {
53
+ type: 'text'
54
+ }
55
+ }
56
+ },
57
+ args: {
58
+ defaultValue: 40,
59
+ step: 10,
60
+ minValue: 0,
61
+ maxValue: 100,
62
+ label: 'Lorem ipsum',
63
+ helperText: 'Lorem ipsum...'
64
+ }
65
+ };
66
+ var loremText = 'Lorem ipsum';
67
+ export var Default = function Default(_ref) {
68
+ var args = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
69
+ return ___EmotionJSX(SliderField, _extends({
70
+ label: loremText,
71
+ defaultValue: 40
72
+ }, args));
73
+ };
74
+ export var Controlled = function Controlled() {
75
+ var _useState = useState(0),
76
+ _useState2 = _slicedToArray(_useState, 2),
77
+ value = _useState2[0],
78
+ setValue = _useState2[1];
79
+ return ___EmotionJSX(SliderField, {
80
+ value: value,
81
+ onChange: setValue,
82
+ displayValue: "(".concat(value, "px)"),
83
+ label: loremText
84
+ });
85
+ };
86
+ export var Vertical = function Vertical() {
87
+ return ___EmotionJSX(SliderField, {
88
+ label: loremText,
89
+ orientation: "vertical",
90
+ size: "150px"
91
+ });
92
+ };
93
+ export var MultiThumb = function MultiThumb() {
94
+ return ___EmotionJSX(SliderField, {
95
+ label: loremText,
96
+ isMultiThumb: true
97
+ });
98
+ };
99
+ export var ControlledMultiThumb = function ControlledMultiThumb() {
100
+ var _useState3 = useState([0, 50]),
101
+ _useState4 = _slicedToArray(_useState3, 2),
102
+ value = _useState4[0],
103
+ setValue = _useState4[1];
104
+ return ___EmotionJSX(SliderField, {
105
+ label: loremText,
106
+ isMultiThumb: true,
107
+ onChange: setValue,
108
+ value: value
109
+ });
110
+ };
111
+ export var CustomProps = function CustomProps() {
112
+ var CustomLabel = function CustomLabel() {
113
+ return ___EmotionJSX(Label, {
114
+ hintText: loremText
115
+ }, loremText);
116
+ };
117
+ return ___EmotionJSX(SliderField, {
118
+ size: "1000px",
119
+ label: ___EmotionJSX(CustomLabel, null),
120
+ thumbProps: {
121
+ bg: 'orange'
122
+ },
123
+ activeTrackProps: {
124
+ bg: 'cyan'
125
+ },
126
+ trackProps: {
127
+ bg: 'magenta'
128
+ },
129
+ helperText: "Helper text"
130
+ });
131
+ };
@@ -0,0 +1,354 @@
1
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
4
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
5
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
6
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
7
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
8
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
9
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
11
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
12
+ 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; }
13
+ 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) { _defineProperty(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; }
14
+ import React from 'react';
15
+ import userEvent from '@testing-library/user-event';
16
+ import { fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
17
+ import { universalComponentTests } from '../../utils/testUtils/universalComponentTest';
18
+ import { universalFieldComponentTests } from '../../utils/testUtils/universalFormSubmitTest';
19
+ import SliderField from './SliderField';
20
+ import { jsx as ___EmotionJSX } from "@emotion/react";
21
+ var thumbId = 'thumb';
22
+ var outputId = 'output';
23
+ var wrapperId = 'wrapper';
24
+ var labelId = 'label';
25
+ var trackId = 'track-id';
26
+ var activeTrackId = 'active-track-id';
27
+ var labelClassName = 'labelClass';
28
+ var wrapperClassName = 'wrapperClass';
29
+ var testLabel = 'Slider Field';
30
+ var wrapperProps = {
31
+ 'data-testid': wrapperId,
32
+ className: wrapperClassName
33
+ };
34
+ var labelProps = {
35
+ 'data-testid': labelId,
36
+ className: labelClassName
37
+ };
38
+ var sliderTestId = 'slider-id';
39
+ var outputProps = {
40
+ 'data-testid': outputId
41
+ };
42
+ var defaultProps = {
43
+ thumbProps: {
44
+ 'data-testid': thumbId
45
+ },
46
+ outputProps: outputProps,
47
+ label: testLabel,
48
+ 'data-testid': sliderTestId
49
+ };
50
+ var getComponent = function getComponent() {
51
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52
+ return render(___EmotionJSX(SliderField, _extends({}, defaultProps, props)));
53
+ };
54
+ universalComponentTests({
55
+ renderComponent: function renderComponent(props) {
56
+ return ___EmotionJSX(SliderField, _extends({}, props, defaultProps));
57
+ }
58
+ });
59
+ universalFieldComponentTests({
60
+ renderComponent: function renderComponent(props) {
61
+ return ___EmotionJSX(SliderField, _extends({}, defaultProps, props));
62
+ },
63
+ testValue: 50,
64
+ testLabel: testLabel,
65
+ componentType: 'SliderField'
66
+ });
67
+ describe('SliderField Component', function () {
68
+ test('renders SliderField with default props', function () {
69
+ getComponent({
70
+ label: 'Slider Field',
71
+ defaultValue: 50
72
+ });
73
+ expect(screen.getByText('Slider Field')).toBeInTheDocument();
74
+ expect(screen.getByRole('slider')).toHaveValue('50');
75
+ });
76
+ test('renders SliderField with custom value', function () {
77
+ getComponent({
78
+ label: 'Custom Slider',
79
+ value: 30
80
+ });
81
+ expect(screen.getByText('Custom Slider')).toBeInTheDocument();
82
+ expect(screen.getByRole('slider')).toHaveValue('30');
83
+ });
84
+ test('calls onChange when slider value changes', function () {
85
+ var onChangeMock = jest.fn();
86
+ getComponent({
87
+ label: 'Slider Field',
88
+ onChange: onChangeMock,
89
+ defaultValue: 40
90
+ });
91
+ var slider = screen.getByRole('slider');
92
+ fireEvent.change(slider, {
93
+ target: {
94
+ value: 60
95
+ }
96
+ });
97
+ expect(onChangeMock).toHaveBeenCalledWith(60);
98
+ });
99
+ test('renders vertical orientation', function () {
100
+ getComponent({
101
+ label: 'Vertical Slider',
102
+ orientation: 'vertical',
103
+ defaultValue: 20
104
+ });
105
+ expect(screen.getByText('Vertical Slider')).toBeInTheDocument();
106
+ expect(screen.getByRole('slider')).toHaveAttribute('aria-orientation', 'vertical');
107
+ });
108
+ test('disables the slider when isDisabled is true', function () {
109
+ getComponent({
110
+ label: 'Disabled Slider',
111
+ isDisabled: true
112
+ });
113
+ var slider = screen.getByRole('slider');
114
+ expect(slider).toBeDisabled();
115
+ });
116
+ test('renders display value correctly', function () {
117
+ getComponent({
118
+ label: 'Slider with Display',
119
+ defaultValue: 70,
120
+ displayValue: '70%'
121
+ });
122
+ expect(screen.getByText('70%')).toBeInTheDocument();
123
+ });
124
+ test('hides display value when isDisplayValueHidden is true', function () {
125
+ getComponent({
126
+ label: 'Hidden Display Slider',
127
+ defaultValue: 50,
128
+ isDisplayValueHidden: true
129
+ });
130
+ expect(screen.queryByText('50')).not.toBeInTheDocument();
131
+ });
132
+ test('calls onChangeEnd when slider interaction ends', function () {
133
+ var onChangeEndMock = jest.fn();
134
+ getComponent({
135
+ label: 'Slider Field',
136
+ onChangeEnd: onChangeEndMock,
137
+ defaultValue: 40
138
+ });
139
+ var slider = screen.getByRole('slider');
140
+ fireEvent.mouseDown(slider);
141
+ fireEvent.mouseUp(slider);
142
+ expect(onChangeEndMock).toHaveBeenCalled();
143
+ });
144
+ test('handles keyboard functionality', function () {
145
+ var onChangeMock = jest.fn();
146
+ getComponent({
147
+ label: 'Keyboard Slider',
148
+ onChange: onChangeMock,
149
+ defaultValue: 50,
150
+ step: 10
151
+ });
152
+ var slider = screen.getByRole('slider');
153
+ var output = screen.getByTestId(outputId);
154
+ userEvent.tab();
155
+ fireEvent.keyDown(slider, {
156
+ key: 'ArrowRight'
157
+ });
158
+ fireEvent.keyUp(slider, {
159
+ key: 'ArrowRight'
160
+ });
161
+ expect(onChangeMock).toHaveBeenCalledTimes(1);
162
+ output = screen.getByTestId(outputId);
163
+ expect(output).toHaveTextContent('60');
164
+ fireEvent.keyDown(slider, {
165
+ key: 'ArrowLeft'
166
+ });
167
+ fireEvent.keyUp(slider, {
168
+ key: 'ArrowLeft'
169
+ });
170
+ expect(onChangeMock).toHaveBeenCalledTimes(2);
171
+ output = screen.getByTestId(outputId);
172
+ expect(output).toHaveTextContent('50');
173
+ fireEvent.keyDown(slider, {
174
+ key: 'Home'
175
+ });
176
+ fireEvent.keyUp(slider, {
177
+ key: 'Home'
178
+ });
179
+ expect(onChangeMock).toHaveBeenCalledTimes(3);
180
+ output = screen.getByTestId(outputId);
181
+ expect(output).toHaveTextContent('0');
182
+ fireEvent.keyDown(slider, {
183
+ key: 'End'
184
+ });
185
+ fireEvent.keyUp(slider, {
186
+ key: 'End'
187
+ });
188
+ expect(onChangeMock).toHaveBeenCalledTimes(4);
189
+ output = screen.getByTestId(outputId);
190
+ expect(output).toHaveTextContent('100');
191
+ });
192
+ test('handles minValue and maxValue', function () {
193
+ var onChangeMock = jest.fn();
194
+ getComponent({
195
+ label: 'Keyboard Slider',
196
+ onChange: onChangeMock,
197
+ defaultValue: 50,
198
+ step: 10,
199
+ minValue: 10,
200
+ maxValue: 190
201
+ });
202
+ var slider = screen.getByRole('slider');
203
+ var output = screen.getByTestId(outputId);
204
+ userEvent.tab();
205
+ fireEvent.keyDown(slider, {
206
+ key: 'Home'
207
+ });
208
+ fireEvent.keyUp(slider, {
209
+ key: 'Home'
210
+ });
211
+ expect(onChangeMock).toHaveBeenCalledTimes(1);
212
+ output = screen.getByTestId(outputId);
213
+ expect(output).toHaveTextContent('10');
214
+ fireEvent.keyDown(slider, {
215
+ key: 'End'
216
+ });
217
+ fireEvent.keyUp(slider, {
218
+ key: 'End'
219
+ });
220
+ expect(onChangeMock).toHaveBeenCalledTimes(2);
221
+ output = screen.getByTestId(outputId);
222
+ expect(output).toHaveTextContent('190');
223
+ });
224
+ test('handles vertical slider keyboard functionality', function () {
225
+ var onChangeMock = jest.fn();
226
+ getComponent({
227
+ label: 'Vertical Slider',
228
+ onChange: onChangeMock,
229
+ defaultValue: 50,
230
+ step: 10,
231
+ orientation: 'vertical'
232
+ });
233
+ var slider = screen.getByRole('slider');
234
+ var output = screen.getByTestId(outputId);
235
+ userEvent.tab();
236
+ fireEvent.keyDown(slider, {
237
+ key: 'ArrowUp'
238
+ });
239
+ fireEvent.keyUp(slider, {
240
+ key: 'ArrowUp'
241
+ });
242
+ expect(onChangeMock).toHaveBeenCalledTimes(1);
243
+ output = screen.getByTestId(outputId);
244
+ expect(output).toHaveTextContent('60');
245
+ fireEvent.keyDown(slider, {
246
+ key: 'ArrowDown'
247
+ });
248
+ fireEvent.keyUp(slider, {
249
+ key: 'ArrowDown'
250
+ });
251
+ expect(onChangeMock).toHaveBeenCalledTimes(2);
252
+ output = screen.getByTestId(outputId);
253
+ expect(output).toHaveTextContent('50');
254
+ });
255
+ test('handles multi-thumb slider functionality', function () {
256
+ var onChangeMock = jest.fn();
257
+ getComponent({
258
+ label: 'Multi Thumb Slider',
259
+ onChange: onChangeMock,
260
+ defaultValue: [20, 80],
261
+ isMultiThumb: true
262
+ });
263
+ var thumbs = screen.getAllByTestId(thumbId);
264
+ expect(thumbs).toHaveLength(2);
265
+ var _thumbs = _slicedToArray(thumbs, 2),
266
+ thumb1 = _thumbs[0],
267
+ thumb2 = _thumbs[1];
268
+ fireEvent.keyDown(thumb1, {
269
+ key: 'ArrowRight'
270
+ });
271
+ fireEvent.keyUp(thumb1, {
272
+ key: 'ArrowRight'
273
+ });
274
+ expect(onChangeMock).toHaveBeenCalledWith([30, 80]);
275
+ fireEvent.keyDown(thumb2, {
276
+ key: 'ArrowLeft'
277
+ });
278
+ fireEvent.keyUp(thumb2, {
279
+ key: 'ArrowLeft'
280
+ });
281
+ expect(onChangeMock).toHaveBeenCalledWith([30, 70]);
282
+ });
283
+ test('adds custom class names to trackProps and activeTrackProps', function () {
284
+ var trackClassName = 'custom-track-class';
285
+ var activeTrackClassName = 'custom-active-track-class';
286
+ getComponent(_objectSpread({
287
+ trackProps: {
288
+ className: trackClassName,
289
+ 'data-testid': trackId
290
+ },
291
+ activeTrackProps: {
292
+ className: activeTrackClassName,
293
+ 'data-testid': activeTrackId
294
+ }
295
+ }, defaultProps));
296
+ var track = screen.getByTestId(trackId);
297
+ var activeTrack = screen.getByTestId(activeTrackId);
298
+ var slider = screen.getByRole('slider');
299
+ userEvent.tab();
300
+ fireEvent.keyDown(slider, {
301
+ key: 'ArrowRight'
302
+ });
303
+ fireEvent.keyUp(slider, {
304
+ key: 'ArrowRight'
305
+ });
306
+ expect(track).toBeInTheDocument();
307
+ expect(track).toHaveClass(trackClassName);
308
+ expect(activeTrack).toBeInTheDocument();
309
+ expect(activeTrack).toHaveClass(activeTrackClassName);
310
+ });
311
+ test('adds custom class names to labelProps and wrapperProps', function () {
312
+ getComponent(_objectSpread({
313
+ labelProps: labelProps,
314
+ wrapperProps: wrapperProps
315
+ }, defaultProps));
316
+ var label = screen.getByText('Slider Field');
317
+ var wrapper = screen.getByTestId(wrapperId);
318
+ userEvent.tab();
319
+ expect(label).toBeInTheDocument();
320
+ expect(label).toHaveClass(labelClassName);
321
+ expect(wrapper).toBeInTheDocument();
322
+ expect(wrapper).toHaveClass(wrapperClassName);
323
+ });
324
+ test('changes size property', function () {
325
+ var _getComponent = getComponent({
326
+ size: '300px'
327
+ }),
328
+ rerender = _getComponent.rerender;
329
+ var container = screen.getByTestId(sliderTestId);
330
+ expect(container).toHaveStyle({
331
+ width: '300px'
332
+ });
333
+ rerender(___EmotionJSX(SliderField, _extends({}, defaultProps, {
334
+ size: "500px"
335
+ })));
336
+ expect(container).toHaveStyle({
337
+ width: '500px'
338
+ });
339
+ });
340
+ test('applies custom styles via sx prop', function () {
341
+ var customStyles = {
342
+ backgroundColor: 'red',
343
+ padding: '20px'
344
+ };
345
+ getComponent({
346
+ sx: customStyles
347
+ });
348
+ var container = screen.getByTestId(sliderTestId);
349
+ expect(container).toHaveStyle({
350
+ backgroundColor: 'red',
351
+ padding: '20px'
352
+ });
353
+ });
354
+ });
@@ -0,0 +1,29 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import React, { forwardRef } from 'react';
3
+ import { Box, Label, Text } from '../../index';
4
+ import { jsx as ___EmotionJSX } from "@emotion/react";
5
+ var SliderLabelContainer = /*#__PURE__*/forwardRef(function (props, ref) {
6
+ var displayValue = props.displayValue,
7
+ label = props.label,
8
+ labelProps = props.labelProps,
9
+ isDisplayValueHidden = props.isDisplayValueHidden,
10
+ outputProps = props.outputProps,
11
+ className = props.className;
12
+ return ___EmotionJSX(Box, {
13
+ ref: ref,
14
+ className: className,
15
+ variant: "slider.labelContainer"
16
+ }, label && ___EmotionJSX(Box, {
17
+ sx: {
18
+ gap: '0px'
19
+ }
20
+ }, ___EmotionJSX(Label, _extends({}, labelProps, {
21
+ sx: {
22
+ mb: '0px'
23
+ }
24
+ }), label)), !isDisplayValueHidden && ___EmotionJSX(Box, {
25
+ className: className,
26
+ variant: "slider.outputContainer"
27
+ }, ___EmotionJSX(Text, outputProps, displayValue)));
28
+ });
29
+ export default SliderLabelContainer;
@@ -0,0 +1,68 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["className", "index", "inputProps", "isHorizontal", "isVertical", "name", "onFocus", "onFocusChange", "onPress", "state", "trackRef"];
4
+ import React, { forwardRef, useRef } from 'react';
5
+ import { mergeProps, useFocusRing, useSliderThumb, VisuallyHidden } from 'react-aria';
6
+ import { useHover, usePress } from '@react-aria/interactions';
7
+ import { useLocalOrForwardRef, useStatusClasses } from '../../hooks';
8
+ import Box from '../Box';
9
+ import Input from '../Input';
10
+ import { jsx as ___EmotionJSX } from "@emotion/react";
11
+ var SliderThumb = /*#__PURE__*/forwardRef(function (props, ref) {
12
+ var inputRef = useRef(null);
13
+ var thumbRef = useLocalOrForwardRef(ref);
14
+ var className = props.className,
15
+ index = props.index,
16
+ inputProps = props.inputProps,
17
+ isHorizontal = props.isHorizontal,
18
+ isVertical = props.isVertical,
19
+ name = props.name,
20
+ onFocus = props.onFocus,
21
+ onFocusChange = props.onFocusChange,
22
+ onPress = props.onPress,
23
+ state = props.state,
24
+ trackRef = props.trackRef,
25
+ others = _objectWithoutProperties(props, _excluded);
26
+ var _useSliderThumb = useSliderThumb({
27
+ index: index,
28
+ trackRef: trackRef,
29
+ inputRef: inputRef,
30
+ name: name
31
+ }, state),
32
+ thumbProps = _useSliderThumb.thumbProps,
33
+ raInputProps = _useSliderThumb.inputProps,
34
+ isDragging = _useSliderThumb.isDragging;
35
+ var _useFocusRing = useFocusRing(),
36
+ focusProps = _useFocusRing.focusProps,
37
+ isFocusVisible = _useFocusRing.isFocusVisible;
38
+ var _useHover = useHover({}),
39
+ hoverProps = _useHover.hoverProps,
40
+ isHovered = _useHover.isHovered;
41
+ var _usePress = usePress({
42
+ ref: thumbRef,
43
+ onPress: onPress
44
+ }),
45
+ pressProps = _usePress.pressProps,
46
+ isPressed = _usePress.isPressed;
47
+ var _useStatusClasses = useStatusClasses(className, {
48
+ isDragging: isDragging,
49
+ isFocused: isFocusVisible,
50
+ isHorizontal: isHorizontal,
51
+ isVertical: isVertical,
52
+ isHovered: isHovered,
53
+ isPressed: isPressed
54
+ }),
55
+ classNames = _useStatusClasses.classNames;
56
+ var mergedThumbProps = mergeProps(pressProps, others, hoverProps, thumbProps);
57
+ return ___EmotionJSX(Box, _extends({
58
+ className: classNames,
59
+ variant: "slider.thumb",
60
+ "data-testid": "thumb"
61
+ }, mergedThumbProps), ___EmotionJSX(VisuallyHidden, null, ___EmotionJSX(Input, _extends({
62
+ ref: inputRef,
63
+ "data-testid": "input"
64
+ }, mergeProps(inputProps, raInputProps, focusProps), {
65
+ name: name
66
+ }))));
67
+ });
68
+ export default SliderThumb;
@@ -0,0 +1 @@
1
+ export { default } from './SliderField';
@@ -19,5 +19,6 @@ export { default as useProgressiveState } from './useProgressiveState';
19
19
  export { default as usePropWarning } from './usePropWarning';
20
20
  export { default as useRockerButton } from './useRockerButton';
21
21
  export { default as useSelectField } from './useSelectField';
22
+ export { default as useSliderField } from './useSliderField';
22
23
  export { default as useStatusClasses } from './useStatusClasses';
23
24
  export { default as useTShirtSize } from './useTShirtSize';
@@ -0,0 +1 @@
1
+ export { default } from './useSliderField';