@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,155 @@
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
+ 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; }
11
+ 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; }
12
+ import { defaultFocus } from '../Button/Buttons.styles';
13
+ var test = {
14
+ bg: 'active'
15
+ };
16
+ var slider = {
17
+ display: 'flex',
18
+ '&.is-horizontal': {
19
+ flexDirection: 'column'
20
+ }
21
+ };
22
+ var track = {
23
+ backgroundColor: 'slider.track',
24
+ cursor: 'pointer',
25
+ mb: 'sm',
26
+ position: 'relative',
27
+ '&.is-disabled': {
28
+ opacity: 0.4
29
+ },
30
+ '&.is-horizontal': {
31
+ height: '10px',
32
+ borderRadius: '11px',
33
+ width: '100%'
34
+ },
35
+ '&:before': {
36
+ content: 'attr(x)',
37
+ display: 'block',
38
+ position: 'absolute',
39
+ height: '3px',
40
+ width: '100%',
41
+ top: '50%',
42
+ transform: 'translateY(-50%)'
43
+ },
44
+ '&.is-vertical': {
45
+ width: '10px',
46
+ borderRadius: '11px',
47
+ height: '100%',
48
+ '&:before': {
49
+ content: 'attr(x)',
50
+ display: 'block',
51
+ position: 'absolute',
52
+ width: '3px',
53
+ height: '100%',
54
+ left: '50%',
55
+ transform: 'translateX(-50%)'
56
+ }
57
+ }
58
+ };
59
+ var hiddenTrack = {
60
+ cursor: 'pointer',
61
+ '&.is-horizontal': {
62
+ height: '10px',
63
+ borderRadius: '11px',
64
+ width: 'calc(100% - 9px)',
65
+ ml: '4.5px',
66
+ mr: '4.5px'
67
+ },
68
+ '&.is-vertical': {
69
+ width: '10px',
70
+ borderRadius: '11px',
71
+ height: 'calc(100% - 9px)',
72
+ mt: '4.5px',
73
+ mb: '4.5px'
74
+ }
75
+ };
76
+ var thumb = {
77
+ width: '21px',
78
+ height: '21px',
79
+ borderRadius: '50%',
80
+ bg: 'active',
81
+ cursor: 'pointer',
82
+ '&.is-focused': _objectSpread({}, defaultFocus),
83
+ '&.is-horizontal': {
84
+ top: '50%'
85
+ },
86
+ '&.is-vertical': {
87
+ left: '50%'
88
+ },
89
+ '&.is-hovered': {
90
+ backgroundColor: 'accent.40'
91
+ },
92
+ '&.is-pressed': {
93
+ backgroundColor: 'accent.20'
94
+ }
95
+ };
96
+ var activeTrack = {
97
+ bg: 'active',
98
+ position: 'absolute',
99
+ '&.is-horizontal': {
100
+ borderRadius: '11px 0px 0px 11px',
101
+ height: '100%',
102
+ '&.is-single-track': {
103
+ left: '0%'
104
+ }
105
+ },
106
+ '&.is-vertical': {
107
+ borderRadius: '11px 11px 11px 11px',
108
+ width: '100%',
109
+ bottom: '0%'
110
+ }
111
+ };
112
+ var trackWrapper = {
113
+ '&.is-vertical': {
114
+ py: '9px'
115
+ },
116
+ '&.is-horizontal': {
117
+ px: '9px'
118
+ }
119
+ };
120
+ var labelContainer = {
121
+ '&.is-horizontal': {
122
+ mb: 'xs'
123
+ },
124
+ '&.is-vertical': {
125
+ mt: 'xs',
126
+ gap: 'xs'
127
+ }
128
+ };
129
+ var wrapper = {
130
+ '&.is-horizontal': {
131
+ width: '100%'
132
+ },
133
+ '&.is-vertical': {
134
+ height: '100%',
135
+ ml: 'xs'
136
+ }
137
+ };
138
+ var outputContainer = {
139
+ '&.is-horizontal': {
140
+ marginLeft: 'auto',
141
+ mt: '-3px'
142
+ }
143
+ };
144
+ export default {
145
+ test: test,
146
+ slider: slider,
147
+ activeTrack: activeTrack,
148
+ thumb: thumb,
149
+ track: track,
150
+ hiddenTrack: hiddenTrack,
151
+ trackWrapper: trackWrapper,
152
+ labelContainer: labelContainer,
153
+ outputContainer: outputContainer,
154
+ wrapper: wrapper
155
+ };
@@ -0,0 +1,37 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
4
+ var _excluded = ["className", "isHorizontal", "isMultiThumb", "state", "sx"];
5
+ 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; }
6
+ 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; }
7
+ import _valuesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/values";
8
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
9
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
10
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
11
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
12
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
13
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
14
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
15
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
16
+ import React, { forwardRef } from 'react';
17
+ import { Box } from '../../index';
18
+ import { jsx as ___EmotionJSX } from "@emotion/react";
19
+ var SliderActiveTrack = /*#__PURE__*/forwardRef(function (props, ref) {
20
+ var className = props.className,
21
+ isHorizontal = props.isHorizontal,
22
+ isMultiThumb = props.isMultiThumb,
23
+ state = props.state,
24
+ sx = props.sx,
25
+ others = _objectWithoutProperties(props, _excluded);
26
+ var length = isMultiThumb ? "".concat(_valuesInstanceProperty(state)[1] - _valuesInstanceProperty(state)[0], "%") : "".concat(_valuesInstanceProperty(state)[0], "%");
27
+ var trackStart = "".concat(_valuesInstanceProperty(state)[0], "%");
28
+ var cssLenProp = isHorizontal ? 'width' : 'height';
29
+ var cssStartProp = isHorizontal ? 'left' : 'top';
30
+ return ___EmotionJSX(Box, _extends({
31
+ ref: ref,
32
+ className: className,
33
+ sx: _objectSpread(_objectSpread(_defineProperty({}, cssLenProp, length), isMultiThumb && _defineProperty({}, cssStartProp, trackStart)), sx),
34
+ variant: "slider.activeTrack"
35
+ }, others));
36
+ });
37
+ export default SliderActiveTrack;
@@ -0,0 +1,46 @@
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 _extends from "@babel/runtime-corejs3/helpers/esm/extends";
10
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
11
+ 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; }
12
+ 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; }
13
+ import React, { forwardRef } from 'react';
14
+ import { useSliderField } from '../../hooks';
15
+ import { Box, FieldHelperText } from '../../index';
16
+ import SliderActiveTrack from './SliderActiveTrack';
17
+ import SliderLabelContainer from './SliderLabelContainer';
18
+ import SliderThumb from './SliderThumb';
19
+ import { jsx as ___EmotionJSX } from "@emotion/react";
20
+ var SliderField = /*#__PURE__*/forwardRef(function (props, ref) {
21
+ var helperText = props.helperText,
22
+ _props$isMultiThumb = props.isMultiThumb,
23
+ isMultiThumb = _props$isMultiThumb === void 0 ? false : _props$isMultiThumb;
24
+ var trackRef = React.useRef(null);
25
+ var _useSliderField = useSliderField(_objectSpread(_objectSpread({}, props), {}, {
26
+ trackRef: trackRef
27
+ })),
28
+ containerProps = _useSliderField.containerProps,
29
+ labelContainerProps = _useSliderField.labelContainerProps,
30
+ sliderActiveTrackProps = _useSliderField.sliderActiveTrackProps,
31
+ hiddenTrackProps = _useSliderField.hiddenTrackProps,
32
+ helperTextProps = _useSliderField.helperTextProps,
33
+ thumbPropsSpread = _useSliderField.thumbPropsSpread,
34
+ visibleTrackProps = _useSliderField.visibleTrackProps,
35
+ wrapperProps = _useSliderField.wrapperProps;
36
+ return ___EmotionJSX(Box, _extends({}, containerProps, {
37
+ ref: ref
38
+ }), ___EmotionJSX(Box, wrapperProps, labelContainerProps.isHorizontal && ___EmotionJSX(SliderLabelContainer, labelContainerProps), ___EmotionJSX(Box, visibleTrackProps, ___EmotionJSX(SliderActiveTrack, sliderActiveTrackProps), ___EmotionJSX(Box, _extends({}, hiddenTrackProps, {
39
+ ref: trackRef
40
+ }), ___EmotionJSX(SliderThumb, _extends({}, thumbPropsSpread, {
41
+ index: 0
42
+ })), isMultiThumb && ___EmotionJSX(SliderThumb, _extends({}, thumbPropsSpread, {
43
+ index: 1
44
+ }))))), labelContainerProps.isVertical && ___EmotionJSX(SliderLabelContainer, labelContainerProps), helperText && ___EmotionJSX(FieldHelperText, helperTextProps, helperText));
45
+ });
46
+ export default SliderField;
@@ -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,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
+ };