@mirohq/design-system-slider 0.1.0-slider.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/main.js +231 -0
- package/dist/main.js.map +1 -0
- package/dist/module.js +223 -0
- package/dist/module.js.map +1 -0
- package/dist/types.d.ts +98 -0
- package/package.json +39 -0
package/dist/main.js
ADDED
@@ -0,0 +1,231 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
+
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
6
|
+
var React = require('react');
|
7
|
+
var designSystemUtils = require('@mirohq/design-system-utils');
|
8
|
+
var reactSlider = require('@radix-ui/react-slider');
|
9
|
+
var designSystemStitches = require('@mirohq/design-system-stitches');
|
10
|
+
var designSystemPrimitive = require('@mirohq/design-system-primitive');
|
11
|
+
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
13
|
+
|
14
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
15
|
+
|
16
|
+
const StyledRange = designSystemStitches.styled(reactSlider.Range, {
|
17
|
+
position: "absolute",
|
18
|
+
backgroundColor: "$background-primary-prominent",
|
19
|
+
borderRadius: "$round",
|
20
|
+
height: "100%",
|
21
|
+
variants: {
|
22
|
+
disabled: {
|
23
|
+
true: {
|
24
|
+
backgroundColor: "$background-neutrals-disabled"
|
25
|
+
}
|
26
|
+
},
|
27
|
+
ariaDisabled: {
|
28
|
+
true: {
|
29
|
+
backgroundColor: "$background-neutrals-disabled"
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
});
|
34
|
+
|
35
|
+
const SliderContext = React.createContext({});
|
36
|
+
const SliderProvider = ({
|
37
|
+
children,
|
38
|
+
disabled,
|
39
|
+
ariaDisabled
|
40
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
41
|
+
SliderContext.Provider,
|
42
|
+
{
|
43
|
+
value: {
|
44
|
+
disabled,
|
45
|
+
ariaDisabled
|
46
|
+
},
|
47
|
+
children
|
48
|
+
}
|
49
|
+
);
|
50
|
+
const useSliderContext = () => React.useContext(SliderContext);
|
51
|
+
|
52
|
+
const Range = React__default["default"].forwardRef((props, forwardRef) => {
|
53
|
+
const { disabled, ariaDisabled } = useSliderContext();
|
54
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
55
|
+
StyledRange,
|
56
|
+
{
|
57
|
+
...props,
|
58
|
+
disabled,
|
59
|
+
ariaDisabled,
|
60
|
+
ref: forwardRef
|
61
|
+
}
|
62
|
+
);
|
63
|
+
});
|
64
|
+
|
65
|
+
const StyledTrack = designSystemStitches.styled(reactSlider.Track, {
|
66
|
+
backgroundColor: "$background-neutrals-scrollbar",
|
67
|
+
position: "relative",
|
68
|
+
flexGrow: 1,
|
69
|
+
borderRadius: "$round",
|
70
|
+
height: "6px",
|
71
|
+
variants: {
|
72
|
+
disabled: {
|
73
|
+
true: {
|
74
|
+
backgroundColor: "$background-neutrals-disabled"
|
75
|
+
}
|
76
|
+
},
|
77
|
+
ariaDisabled: {
|
78
|
+
true: {
|
79
|
+
backgroundColor: "$background-neutrals-disabled"
|
80
|
+
}
|
81
|
+
}
|
82
|
+
}
|
83
|
+
});
|
84
|
+
|
85
|
+
const Track = React__default["default"].forwardRef((props, forwardRef) => {
|
86
|
+
const { disabled, ariaDisabled } = useSliderContext();
|
87
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
88
|
+
StyledTrack,
|
89
|
+
{
|
90
|
+
...props,
|
91
|
+
disabled,
|
92
|
+
ariaDisabled,
|
93
|
+
ref: forwardRef
|
94
|
+
}
|
95
|
+
);
|
96
|
+
});
|
97
|
+
|
98
|
+
const StyledThumb = designSystemStitches.styled(reactSlider.Thumb, {
|
99
|
+
display: "block",
|
100
|
+
width: "20px",
|
101
|
+
height: "20px",
|
102
|
+
backgroundColor: "$background-neutrals",
|
103
|
+
borderRadius: "$round",
|
104
|
+
border: "1px solid $border-neutrals-controls",
|
105
|
+
_hover: {
|
106
|
+
boxShadow: "$focus-controls",
|
107
|
+
border: "1px solid $border-primary-hover"
|
108
|
+
},
|
109
|
+
"&:active": {
|
110
|
+
boxShadow: "$focus-controls",
|
111
|
+
border: "1px solid $border-primary-active"
|
112
|
+
},
|
113
|
+
variants: {
|
114
|
+
disabled: {
|
115
|
+
true: {
|
116
|
+
backgroundColor: "$background-neutrals-controls-disabled",
|
117
|
+
border: "none",
|
118
|
+
boxShadow: "none",
|
119
|
+
_hover: {
|
120
|
+
boxShadow: "none",
|
121
|
+
border: "none"
|
122
|
+
},
|
123
|
+
"&:active": {
|
124
|
+
boxShadow: "none",
|
125
|
+
border: "none"
|
126
|
+
}
|
127
|
+
}
|
128
|
+
},
|
129
|
+
ariaDisabled: {
|
130
|
+
true: {
|
131
|
+
backgroundColor: "$background-neutrals-controls-disabled",
|
132
|
+
border: "none",
|
133
|
+
boxShadow: "none"
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
});
|
138
|
+
|
139
|
+
const Thumb = React__default["default"].forwardRef((props, forwardRef) => {
|
140
|
+
const { disabled, ariaDisabled } = useSliderContext();
|
141
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
142
|
+
StyledThumb,
|
143
|
+
{
|
144
|
+
...props,
|
145
|
+
disabled,
|
146
|
+
ariaDisabled,
|
147
|
+
ref: forwardRef
|
148
|
+
}
|
149
|
+
);
|
150
|
+
});
|
151
|
+
|
152
|
+
const StyledSliderComponent = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
|
153
|
+
display: "flex",
|
154
|
+
flexDirection: "row",
|
155
|
+
gap: "$100"
|
156
|
+
});
|
157
|
+
const StyledSliderRoot = designSystemStitches.styled(reactSlider.Root, {
|
158
|
+
position: "relative",
|
159
|
+
display: "flex",
|
160
|
+
alignItems: "center",
|
161
|
+
userSelect: "none",
|
162
|
+
touchAction: "none",
|
163
|
+
width: "200px",
|
164
|
+
height: "20px"
|
165
|
+
});
|
166
|
+
|
167
|
+
const Slider = React__default["default"].forwardRef(
|
168
|
+
({
|
169
|
+
step = 1,
|
170
|
+
disabled = false,
|
171
|
+
"aria-disabled": ariaDisabled = false,
|
172
|
+
min,
|
173
|
+
max,
|
174
|
+
value,
|
175
|
+
onValueCommit,
|
176
|
+
onValueChange,
|
177
|
+
children,
|
178
|
+
...restProps
|
179
|
+
}, forwardRef) => {
|
180
|
+
var _a, _b;
|
181
|
+
const [sliderValue, setSliderValue] = React.useState(
|
182
|
+
(_b = (_a = value == null ? void 0 : value[0]) != null ? _a : min) != null ? _b : 0
|
183
|
+
);
|
184
|
+
const onSliderValueChange = React.useCallback(
|
185
|
+
(value2) => {
|
186
|
+
setSliderValue(value2[0]);
|
187
|
+
if (onValueChange != null) {
|
188
|
+
onValueChange(value2);
|
189
|
+
}
|
190
|
+
},
|
191
|
+
[onValueChange]
|
192
|
+
);
|
193
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
194
|
+
SliderProvider,
|
195
|
+
{
|
196
|
+
disabled,
|
197
|
+
ariaDisabled: designSystemUtils.booleanify(ariaDisabled),
|
198
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(StyledSliderComponent, { children: [
|
199
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
200
|
+
StyledSliderRoot,
|
201
|
+
{
|
202
|
+
...restProps,
|
203
|
+
step,
|
204
|
+
disabled,
|
205
|
+
"aria-disabled": ariaDisabled,
|
206
|
+
defaultValue: [sliderValue],
|
207
|
+
ref: forwardRef,
|
208
|
+
min,
|
209
|
+
max,
|
210
|
+
onValueCommit,
|
211
|
+
onValueChange: onSliderValueChange,
|
212
|
+
onPointerDown: (e) => {
|
213
|
+
if (designSystemUtils.booleanify(ariaDisabled)) {
|
214
|
+
e.preventDefault();
|
215
|
+
}
|
216
|
+
},
|
217
|
+
children
|
218
|
+
}
|
219
|
+
),
|
220
|
+
sliderValue
|
221
|
+
] })
|
222
|
+
}
|
223
|
+
);
|
224
|
+
}
|
225
|
+
);
|
226
|
+
Slider.Track = Track;
|
227
|
+
Slider.Range = Range;
|
228
|
+
Slider.Thumb = Thumb;
|
229
|
+
|
230
|
+
exports.Slider = Slider;
|
231
|
+
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/partials/range.styled.tsx","../src/use-slider-context.tsx","../src/partials/range.tsx","../src/partials/track.styled.tsx","../src/partials/track.tsx","../src/partials/thumb.styled.tsx","../src/partials/thumb.tsx","../src/slider.styled.tsx","../src/slider.tsx"],"sourcesContent":["import { Range as RadixRange } from '@radix-ui/react-slider'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledRange = styled(RadixRange, {\n position: 'absolute',\n backgroundColor: '$background-primary-prominent',\n borderRadius: '$round',\n height: '100%',\n\n variants: {\n disabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n ariaDisabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n },\n})\nexport type StyledRangeProps = StrictComponentProps<typeof StyledRange>\n","import React, { createContext, useContext } from 'react'\n\ninterface SliderContextProps {\n disabled: boolean\n ariaDisabled: boolean\n}\n\nexport interface SliderProviderProps {\n disabled: boolean\n ariaDisabled: boolean\n}\n\nconst SliderContext = createContext<SliderContextProps>({} as any)\n\nexport const SliderProvider = ({\n children,\n disabled,\n ariaDisabled,\n}: React.PropsWithChildren<SliderProviderProps>): JSX.Element => (\n <SliderContext.Provider\n value={{\n disabled,\n ariaDisabled,\n }}\n >\n {children}\n </SliderContext.Provider>\n)\n\nexport const useSliderContext = (): SliderContextProps =>\n useContext(SliderContext)\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport type { StyledRangeProps } from './range.styled'\nimport { StyledRange } from './range.styled'\nimport { useSliderContext } from '../use-slider-context'\n\nexport interface RangeProps extends StyledRangeProps {}\n\nexport const Range = React.forwardRef<\n ElementRef<typeof StyledRange>,\n RangeProps\n>((props, forwardRef) => {\n const { disabled, ariaDisabled } = useSliderContext()\n\n return (\n <StyledRange\n {...props}\n disabled={disabled}\n ariaDisabled={ariaDisabled}\n ref={forwardRef}\n />\n )\n})\n","import { Track as RadixTrack } from '@radix-ui/react-slider'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledTrack = styled(RadixTrack, {\n backgroundColor: '$background-neutrals-scrollbar',\n position: 'relative',\n flexGrow: 1,\n borderRadius: '$round',\n height: '6px',\n\n variants: {\n disabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n ariaDisabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n },\n})\nexport type StyledTrackProps = StrictComponentProps<typeof StyledTrack>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport type { StyledTrackProps } from './track.styled'\nimport { StyledTrack } from './track.styled'\nimport { useSliderContext } from '../use-slider-context'\n\nexport interface TrackProps extends StyledTrackProps {}\n\nexport const Track = React.forwardRef<\n ElementRef<typeof StyledTrack>,\n TrackProps\n>((props, forwardRef) => {\n const { disabled, ariaDisabled } = useSliderContext()\n\n return (\n <StyledTrack\n {...props}\n disabled={disabled}\n ariaDisabled={ariaDisabled}\n ref={forwardRef}\n />\n )\n})\n","import { Thumb as RadixThumb } from '@radix-ui/react-slider'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledThumb = styled(RadixThumb, {\n display: 'block',\n width: '20px',\n height: '20px',\n backgroundColor: '$background-neutrals',\n borderRadius: '$round',\n border: '1px solid $border-neutrals-controls',\n\n _hover: {\n boxShadow: '$focus-controls',\n border: '1px solid $border-primary-hover',\n },\n\n '&:active': {\n boxShadow: '$focus-controls',\n border: '1px solid $border-primary-active',\n },\n\n variants: {\n disabled: {\n true: {\n backgroundColor: '$background-neutrals-controls-disabled',\n border: 'none',\n boxShadow: 'none',\n\n _hover: {\n boxShadow: 'none',\n border: 'none',\n },\n\n '&:active': {\n boxShadow: 'none',\n border: 'none',\n },\n },\n },\n ariaDisabled: {\n true: {\n backgroundColor: '$background-neutrals-controls-disabled',\n border: 'none',\n boxShadow: 'none',\n },\n },\n },\n})\nexport type StyledThumbProps = StrictComponentProps<typeof StyledThumb>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport type { StyledThumbProps } from './thumb.styled'\nimport { StyledThumb } from './thumb.styled'\nimport { useSliderContext } from '../use-slider-context'\n\nexport interface ThumbProps extends StyledThumbProps {}\n\nexport const Thumb = React.forwardRef<\n ElementRef<typeof StyledThumb>,\n ThumbProps\n>((props, forwardRef) => {\n const { disabled, ariaDisabled } = useSliderContext()\n\n return (\n <StyledThumb\n {...props}\n disabled={disabled}\n ariaDisabled={ariaDisabled}\n ref={forwardRef}\n />\n )\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root } from '@radix-ui/react-slider'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSliderComponent = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'row',\n gap: '$100',\n})\n\nexport const StyledSliderRoot = styled(Root, {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n userSelect: 'none',\n touchAction: 'none',\n width: '200px',\n height: '20px',\n})\n\nexport type StyledSliderProps = StrictComponentProps<typeof StyledSliderRoot>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React, { useCallback, useState } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { Range } from './partials/range'\nimport { Track } from './partials/track'\nimport { Thumb } from './partials/thumb'\nimport type { StyledSliderProps } from './slider.styled'\nimport { StyledSliderComponent, StyledSliderRoot } from './slider.styled'\nimport { SliderProvider } from './use-slider-context'\n\nexport interface SliderProps extends StyledSliderProps {\n /**\n * The maximum value for the range.\n */\n max: number\n\n /**\n * The children components of the slider.\n */\n children: React.ReactNode\n\n /**\n * The controlled value of the slider. Must be used in conjunction with onValueChange.\n */\n value?: number[]\n\n /**\n * The minimum value for the range.\n */\n min?: number\n\n /**\n * The stepping interval.\n */\n step?: number\n\n /**\n * When true, prevents the user from interacting with the slider.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the value changes at the end of an interaction.\n * Useful when you only need to capture a final value e.g. to update a backend service.\n */\n onValueCommit?: (value: number[]) => void\n\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: number[]) => void\n\n /**\n * When true, prevents the user from interacting with the slider but focus\n * is still possible.\n */\n 'aria-disabled'?: Booleanish\n}\n\nexport const Slider = React.forwardRef<\n ElementRef<typeof StyledSliderRoot>,\n SliderProps\n>(\n (\n {\n step = 1,\n disabled = false,\n 'aria-disabled': ariaDisabled = false,\n min,\n max,\n value,\n onValueCommit,\n onValueChange,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const [sliderValue, setSliderValue] = useState<number>(\n value?.[0] ?? min ?? 0\n )\n const onSliderValueChange = useCallback(\n (value: number[]): void => {\n setSliderValue(value[0])\n if (onValueChange != null) {\n onValueChange(value)\n }\n },\n [onValueChange]\n )\n\n return (\n <SliderProvider\n disabled={disabled}\n ariaDisabled={booleanify(ariaDisabled)}\n >\n <StyledSliderComponent>\n <StyledSliderRoot\n {...restProps}\n step={step}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n defaultValue={[sliderValue]}\n ref={forwardRef}\n min={min}\n max={max}\n onValueCommit={onValueCommit}\n onValueChange={onSliderValueChange}\n onPointerDown={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n }\n }}\n >\n {children}\n </StyledSliderRoot>\n {sliderValue}\n </StyledSliderComponent>\n </SliderProvider>\n )\n }\n) as ForwardRefExoticComponent<SliderProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\nexport interface Partials {\n Track: typeof Track\n Range: typeof Range\n Thumb: typeof Thumb\n}\n\nSlider.Track = Track\nSlider.Range = Range\nSlider.Thumb = Thumb\n"],"names":["styled","RadixRange","createContext","jsx","useContext","React","RadixTrack","RadixThumb","Primitive","Root","useState","useCallback","value","booleanify"],"mappings":"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"}
|
package/dist/module.js
ADDED
@@ -0,0 +1,223 @@
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
2
|
+
import React, { createContext, useContext, useState, useCallback } from 'react';
|
3
|
+
import { booleanify } from '@mirohq/design-system-utils';
|
4
|
+
import { Range as Range$1, Track as Track$1, Thumb as Thumb$1, Root } from '@radix-ui/react-slider';
|
5
|
+
import { styled } from '@mirohq/design-system-stitches';
|
6
|
+
import { Primitive } from '@mirohq/design-system-primitive';
|
7
|
+
|
8
|
+
const StyledRange = styled(Range$1, {
|
9
|
+
position: "absolute",
|
10
|
+
backgroundColor: "$background-primary-prominent",
|
11
|
+
borderRadius: "$round",
|
12
|
+
height: "100%",
|
13
|
+
variants: {
|
14
|
+
disabled: {
|
15
|
+
true: {
|
16
|
+
backgroundColor: "$background-neutrals-disabled"
|
17
|
+
}
|
18
|
+
},
|
19
|
+
ariaDisabled: {
|
20
|
+
true: {
|
21
|
+
backgroundColor: "$background-neutrals-disabled"
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
});
|
26
|
+
|
27
|
+
const SliderContext = createContext({});
|
28
|
+
const SliderProvider = ({
|
29
|
+
children,
|
30
|
+
disabled,
|
31
|
+
ariaDisabled
|
32
|
+
}) => /* @__PURE__ */ jsx(
|
33
|
+
SliderContext.Provider,
|
34
|
+
{
|
35
|
+
value: {
|
36
|
+
disabled,
|
37
|
+
ariaDisabled
|
38
|
+
},
|
39
|
+
children
|
40
|
+
}
|
41
|
+
);
|
42
|
+
const useSliderContext = () => useContext(SliderContext);
|
43
|
+
|
44
|
+
const Range = React.forwardRef((props, forwardRef) => {
|
45
|
+
const { disabled, ariaDisabled } = useSliderContext();
|
46
|
+
return /* @__PURE__ */ jsx(
|
47
|
+
StyledRange,
|
48
|
+
{
|
49
|
+
...props,
|
50
|
+
disabled,
|
51
|
+
ariaDisabled,
|
52
|
+
ref: forwardRef
|
53
|
+
}
|
54
|
+
);
|
55
|
+
});
|
56
|
+
|
57
|
+
const StyledTrack = styled(Track$1, {
|
58
|
+
backgroundColor: "$background-neutrals-scrollbar",
|
59
|
+
position: "relative",
|
60
|
+
flexGrow: 1,
|
61
|
+
borderRadius: "$round",
|
62
|
+
height: "6px",
|
63
|
+
variants: {
|
64
|
+
disabled: {
|
65
|
+
true: {
|
66
|
+
backgroundColor: "$background-neutrals-disabled"
|
67
|
+
}
|
68
|
+
},
|
69
|
+
ariaDisabled: {
|
70
|
+
true: {
|
71
|
+
backgroundColor: "$background-neutrals-disabled"
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
});
|
76
|
+
|
77
|
+
const Track = React.forwardRef((props, forwardRef) => {
|
78
|
+
const { disabled, ariaDisabled } = useSliderContext();
|
79
|
+
return /* @__PURE__ */ jsx(
|
80
|
+
StyledTrack,
|
81
|
+
{
|
82
|
+
...props,
|
83
|
+
disabled,
|
84
|
+
ariaDisabled,
|
85
|
+
ref: forwardRef
|
86
|
+
}
|
87
|
+
);
|
88
|
+
});
|
89
|
+
|
90
|
+
const StyledThumb = styled(Thumb$1, {
|
91
|
+
display: "block",
|
92
|
+
width: "20px",
|
93
|
+
height: "20px",
|
94
|
+
backgroundColor: "$background-neutrals",
|
95
|
+
borderRadius: "$round",
|
96
|
+
border: "1px solid $border-neutrals-controls",
|
97
|
+
_hover: {
|
98
|
+
boxShadow: "$focus-controls",
|
99
|
+
border: "1px solid $border-primary-hover"
|
100
|
+
},
|
101
|
+
"&:active": {
|
102
|
+
boxShadow: "$focus-controls",
|
103
|
+
border: "1px solid $border-primary-active"
|
104
|
+
},
|
105
|
+
variants: {
|
106
|
+
disabled: {
|
107
|
+
true: {
|
108
|
+
backgroundColor: "$background-neutrals-controls-disabled",
|
109
|
+
border: "none",
|
110
|
+
boxShadow: "none",
|
111
|
+
_hover: {
|
112
|
+
boxShadow: "none",
|
113
|
+
border: "none"
|
114
|
+
},
|
115
|
+
"&:active": {
|
116
|
+
boxShadow: "none",
|
117
|
+
border: "none"
|
118
|
+
}
|
119
|
+
}
|
120
|
+
},
|
121
|
+
ariaDisabled: {
|
122
|
+
true: {
|
123
|
+
backgroundColor: "$background-neutrals-controls-disabled",
|
124
|
+
border: "none",
|
125
|
+
boxShadow: "none"
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
});
|
130
|
+
|
131
|
+
const Thumb = React.forwardRef((props, forwardRef) => {
|
132
|
+
const { disabled, ariaDisabled } = useSliderContext();
|
133
|
+
return /* @__PURE__ */ jsx(
|
134
|
+
StyledThumb,
|
135
|
+
{
|
136
|
+
...props,
|
137
|
+
disabled,
|
138
|
+
ariaDisabled,
|
139
|
+
ref: forwardRef
|
140
|
+
}
|
141
|
+
);
|
142
|
+
});
|
143
|
+
|
144
|
+
const StyledSliderComponent = styled(Primitive.div, {
|
145
|
+
display: "flex",
|
146
|
+
flexDirection: "row",
|
147
|
+
gap: "$100"
|
148
|
+
});
|
149
|
+
const StyledSliderRoot = styled(Root, {
|
150
|
+
position: "relative",
|
151
|
+
display: "flex",
|
152
|
+
alignItems: "center",
|
153
|
+
userSelect: "none",
|
154
|
+
touchAction: "none",
|
155
|
+
width: "200px",
|
156
|
+
height: "20px"
|
157
|
+
});
|
158
|
+
|
159
|
+
const Slider = React.forwardRef(
|
160
|
+
({
|
161
|
+
step = 1,
|
162
|
+
disabled = false,
|
163
|
+
"aria-disabled": ariaDisabled = false,
|
164
|
+
min,
|
165
|
+
max,
|
166
|
+
value,
|
167
|
+
onValueCommit,
|
168
|
+
onValueChange,
|
169
|
+
children,
|
170
|
+
...restProps
|
171
|
+
}, forwardRef) => {
|
172
|
+
var _a, _b;
|
173
|
+
const [sliderValue, setSliderValue] = useState(
|
174
|
+
(_b = (_a = value == null ? void 0 : value[0]) != null ? _a : min) != null ? _b : 0
|
175
|
+
);
|
176
|
+
const onSliderValueChange = useCallback(
|
177
|
+
(value2) => {
|
178
|
+
setSliderValue(value2[0]);
|
179
|
+
if (onValueChange != null) {
|
180
|
+
onValueChange(value2);
|
181
|
+
}
|
182
|
+
},
|
183
|
+
[onValueChange]
|
184
|
+
);
|
185
|
+
return /* @__PURE__ */ jsx(
|
186
|
+
SliderProvider,
|
187
|
+
{
|
188
|
+
disabled,
|
189
|
+
ariaDisabled: booleanify(ariaDisabled),
|
190
|
+
children: /* @__PURE__ */ jsxs(StyledSliderComponent, { children: [
|
191
|
+
/* @__PURE__ */ jsx(
|
192
|
+
StyledSliderRoot,
|
193
|
+
{
|
194
|
+
...restProps,
|
195
|
+
step,
|
196
|
+
disabled,
|
197
|
+
"aria-disabled": ariaDisabled,
|
198
|
+
defaultValue: [sliderValue],
|
199
|
+
ref: forwardRef,
|
200
|
+
min,
|
201
|
+
max,
|
202
|
+
onValueCommit,
|
203
|
+
onValueChange: onSliderValueChange,
|
204
|
+
onPointerDown: (e) => {
|
205
|
+
if (booleanify(ariaDisabled)) {
|
206
|
+
e.preventDefault();
|
207
|
+
}
|
208
|
+
},
|
209
|
+
children
|
210
|
+
}
|
211
|
+
),
|
212
|
+
sliderValue
|
213
|
+
] })
|
214
|
+
}
|
215
|
+
);
|
216
|
+
}
|
217
|
+
);
|
218
|
+
Slider.Track = Track;
|
219
|
+
Slider.Range = Range;
|
220
|
+
Slider.Thumb = Thumb;
|
221
|
+
|
222
|
+
export { Slider };
|
223
|
+
//# sourceMappingURL=module.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../src/partials/range.styled.tsx","../src/use-slider-context.tsx","../src/partials/range.tsx","../src/partials/track.styled.tsx","../src/partials/track.tsx","../src/partials/thumb.styled.tsx","../src/partials/thumb.tsx","../src/slider.styled.tsx","../src/slider.tsx"],"sourcesContent":["import { Range as RadixRange } from '@radix-ui/react-slider'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledRange = styled(RadixRange, {\n position: 'absolute',\n backgroundColor: '$background-primary-prominent',\n borderRadius: '$round',\n height: '100%',\n\n variants: {\n disabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n ariaDisabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n },\n})\nexport type StyledRangeProps = StrictComponentProps<typeof StyledRange>\n","import React, { createContext, useContext } from 'react'\n\ninterface SliderContextProps {\n disabled: boolean\n ariaDisabled: boolean\n}\n\nexport interface SliderProviderProps {\n disabled: boolean\n ariaDisabled: boolean\n}\n\nconst SliderContext = createContext<SliderContextProps>({} as any)\n\nexport const SliderProvider = ({\n children,\n disabled,\n ariaDisabled,\n}: React.PropsWithChildren<SliderProviderProps>): JSX.Element => (\n <SliderContext.Provider\n value={{\n disabled,\n ariaDisabled,\n }}\n >\n {children}\n </SliderContext.Provider>\n)\n\nexport const useSliderContext = (): SliderContextProps =>\n useContext(SliderContext)\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport type { StyledRangeProps } from './range.styled'\nimport { StyledRange } from './range.styled'\nimport { useSliderContext } from '../use-slider-context'\n\nexport interface RangeProps extends StyledRangeProps {}\n\nexport const Range = React.forwardRef<\n ElementRef<typeof StyledRange>,\n RangeProps\n>((props, forwardRef) => {\n const { disabled, ariaDisabled } = useSliderContext()\n\n return (\n <StyledRange\n {...props}\n disabled={disabled}\n ariaDisabled={ariaDisabled}\n ref={forwardRef}\n />\n )\n})\n","import { Track as RadixTrack } from '@radix-ui/react-slider'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledTrack = styled(RadixTrack, {\n backgroundColor: '$background-neutrals-scrollbar',\n position: 'relative',\n flexGrow: 1,\n borderRadius: '$round',\n height: '6px',\n\n variants: {\n disabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n ariaDisabled: {\n true: {\n backgroundColor: '$background-neutrals-disabled',\n },\n },\n },\n})\nexport type StyledTrackProps = StrictComponentProps<typeof StyledTrack>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport type { StyledTrackProps } from './track.styled'\nimport { StyledTrack } from './track.styled'\nimport { useSliderContext } from '../use-slider-context'\n\nexport interface TrackProps extends StyledTrackProps {}\n\nexport const Track = React.forwardRef<\n ElementRef<typeof StyledTrack>,\n TrackProps\n>((props, forwardRef) => {\n const { disabled, ariaDisabled } = useSliderContext()\n\n return (\n <StyledTrack\n {...props}\n disabled={disabled}\n ariaDisabled={ariaDisabled}\n ref={forwardRef}\n />\n )\n})\n","import { Thumb as RadixThumb } from '@radix-ui/react-slider'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledThumb = styled(RadixThumb, {\n display: 'block',\n width: '20px',\n height: '20px',\n backgroundColor: '$background-neutrals',\n borderRadius: '$round',\n border: '1px solid $border-neutrals-controls',\n\n _hover: {\n boxShadow: '$focus-controls',\n border: '1px solid $border-primary-hover',\n },\n\n '&:active': {\n boxShadow: '$focus-controls',\n border: '1px solid $border-primary-active',\n },\n\n variants: {\n disabled: {\n true: {\n backgroundColor: '$background-neutrals-controls-disabled',\n border: 'none',\n boxShadow: 'none',\n\n _hover: {\n boxShadow: 'none',\n border: 'none',\n },\n\n '&:active': {\n boxShadow: 'none',\n border: 'none',\n },\n },\n },\n ariaDisabled: {\n true: {\n backgroundColor: '$background-neutrals-controls-disabled',\n border: 'none',\n boxShadow: 'none',\n },\n },\n },\n})\nexport type StyledThumbProps = StrictComponentProps<typeof StyledThumb>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport type { StyledThumbProps } from './thumb.styled'\nimport { StyledThumb } from './thumb.styled'\nimport { useSliderContext } from '../use-slider-context'\n\nexport interface ThumbProps extends StyledThumbProps {}\n\nexport const Thumb = React.forwardRef<\n ElementRef<typeof StyledThumb>,\n ThumbProps\n>((props, forwardRef) => {\n const { disabled, ariaDisabled } = useSliderContext()\n\n return (\n <StyledThumb\n {...props}\n disabled={disabled}\n ariaDisabled={ariaDisabled}\n ref={forwardRef}\n />\n )\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root } from '@radix-ui/react-slider'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSliderComponent = styled(Primitive.div, {\n display: 'flex',\n flexDirection: 'row',\n gap: '$100',\n})\n\nexport const StyledSliderRoot = styled(Root, {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n userSelect: 'none',\n touchAction: 'none',\n width: '200px',\n height: '20px',\n})\n\nexport type StyledSliderProps = StrictComponentProps<typeof StyledSliderRoot>\n","import type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport React, { useCallback, useState } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { Range } from './partials/range'\nimport { Track } from './partials/track'\nimport { Thumb } from './partials/thumb'\nimport type { StyledSliderProps } from './slider.styled'\nimport { StyledSliderComponent, StyledSliderRoot } from './slider.styled'\nimport { SliderProvider } from './use-slider-context'\n\nexport interface SliderProps extends StyledSliderProps {\n /**\n * The maximum value for the range.\n */\n max: number\n\n /**\n * The children components of the slider.\n */\n children: React.ReactNode\n\n /**\n * The controlled value of the slider. Must be used in conjunction with onValueChange.\n */\n value?: number[]\n\n /**\n * The minimum value for the range.\n */\n min?: number\n\n /**\n * The stepping interval.\n */\n step?: number\n\n /**\n * When true, prevents the user from interacting with the slider.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the value changes at the end of an interaction.\n * Useful when you only need to capture a final value e.g. to update a backend service.\n */\n onValueCommit?: (value: number[]) => void\n\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: number[]) => void\n\n /**\n * When true, prevents the user from interacting with the slider but focus\n * is still possible.\n */\n 'aria-disabled'?: Booleanish\n}\n\nexport const Slider = React.forwardRef<\n ElementRef<typeof StyledSliderRoot>,\n SliderProps\n>(\n (\n {\n step = 1,\n disabled = false,\n 'aria-disabled': ariaDisabled = false,\n min,\n max,\n value,\n onValueCommit,\n onValueChange,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const [sliderValue, setSliderValue] = useState<number>(\n value?.[0] ?? min ?? 0\n )\n const onSliderValueChange = useCallback(\n (value: number[]): void => {\n setSliderValue(value[0])\n if (onValueChange != null) {\n onValueChange(value)\n }\n },\n [onValueChange]\n )\n\n return (\n <SliderProvider\n disabled={disabled}\n ariaDisabled={booleanify(ariaDisabled)}\n >\n <StyledSliderComponent>\n <StyledSliderRoot\n {...restProps}\n step={step}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n defaultValue={[sliderValue]}\n ref={forwardRef}\n min={min}\n max={max}\n onValueCommit={onValueCommit}\n onValueChange={onSliderValueChange}\n onPointerDown={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n }\n }}\n >\n {children}\n </StyledSliderRoot>\n {sliderValue}\n </StyledSliderComponent>\n </SliderProvider>\n )\n }\n) as ForwardRefExoticComponent<SliderProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\nexport interface Partials {\n Track: typeof Track\n Range: typeof Range\n Thumb: typeof Thumb\n}\n\nSlider.Track = Track\nSlider.Range = Range\nSlider.Thumb = Thumb\n"],"names":["RadixRange","RadixTrack","RadixThumb","value"],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
import * as react from 'react';
|
2
|
+
import react__default, { ForwardRefExoticComponent } from 'react';
|
3
|
+
import { Booleanish } from '@mirohq/design-system-types';
|
4
|
+
import * as _stitches_react_types_styled_component from '@stitches/react/types/styled-component';
|
5
|
+
import * as _mirohq_design_system_stitches from '@mirohq/design-system-stitches';
|
6
|
+
import { StrictComponentProps } from '@mirohq/design-system-stitches';
|
7
|
+
import * as _radix_ui_react_slider from '@radix-ui/react-slider';
|
8
|
+
|
9
|
+
declare const StyledRange: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderRangeProps & react.RefAttributes<HTMLSpanElement>>>, "disabled" | "ariaDisabled"> & _stitches_react_types_styled_component.TransformProps<{
|
10
|
+
disabled?: boolean | "true" | undefined;
|
11
|
+
ariaDisabled?: boolean | "true" | undefined;
|
12
|
+
}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLSpanElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderRangeProps & react.RefAttributes<HTMLSpanElement>>, {
|
13
|
+
disabled?: boolean | "true" | undefined;
|
14
|
+
ariaDisabled?: boolean | "true" | undefined;
|
15
|
+
}, {}>;
|
16
|
+
declare type StyledRangeProps = StrictComponentProps<typeof StyledRange>;
|
17
|
+
|
18
|
+
interface RangeProps extends StyledRangeProps {
|
19
|
+
}
|
20
|
+
declare const Range: react__default.ForwardRefExoticComponent<Omit<RangeProps, "ref"> & react__default.RefAttributes<HTMLSpanElement>>;
|
21
|
+
|
22
|
+
declare const StyledTrack: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderTrackProps & react.RefAttributes<HTMLSpanElement>>>, "disabled" | "ariaDisabled"> & _stitches_react_types_styled_component.TransformProps<{
|
23
|
+
disabled?: boolean | "true" | undefined;
|
24
|
+
ariaDisabled?: boolean | "true" | undefined;
|
25
|
+
}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLSpanElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderTrackProps & react.RefAttributes<HTMLSpanElement>>, {
|
26
|
+
disabled?: boolean | "true" | undefined;
|
27
|
+
ariaDisabled?: boolean | "true" | undefined;
|
28
|
+
}, {}>;
|
29
|
+
declare type StyledTrackProps = StrictComponentProps<typeof StyledTrack>;
|
30
|
+
|
31
|
+
interface TrackProps extends StyledTrackProps {
|
32
|
+
}
|
33
|
+
declare const Track: react__default.ForwardRefExoticComponent<Omit<TrackProps, "ref"> & react__default.RefAttributes<HTMLSpanElement>>;
|
34
|
+
|
35
|
+
declare const StyledThumb: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderThumbProps & react.RefAttributes<HTMLSpanElement>>>, "disabled" | "ariaDisabled"> & _stitches_react_types_styled_component.TransformProps<{
|
36
|
+
disabled?: boolean | "true" | undefined;
|
37
|
+
ariaDisabled?: boolean | "true" | undefined;
|
38
|
+
}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLSpanElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderThumbProps & react.RefAttributes<HTMLSpanElement>>, {
|
39
|
+
disabled?: boolean | "true" | undefined;
|
40
|
+
ariaDisabled?: boolean | "true" | undefined;
|
41
|
+
}, {}>;
|
42
|
+
declare type StyledThumbProps = StrictComponentProps<typeof StyledThumb>;
|
43
|
+
|
44
|
+
interface ThumbProps extends StyledThumbProps {
|
45
|
+
}
|
46
|
+
declare const Thumb: react__default.ForwardRefExoticComponent<Omit<ThumbProps, "ref"> & react__default.RefAttributes<HTMLSpanElement>>;
|
47
|
+
|
48
|
+
declare const StyledSliderRoot: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderProps & react.RefAttributes<HTMLSpanElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLSpanElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_slider.SliderProps & react.RefAttributes<HTMLSpanElement>>, {}, {}>;
|
49
|
+
declare type StyledSliderProps = StrictComponentProps<typeof StyledSliderRoot>;
|
50
|
+
|
51
|
+
interface SliderProps extends StyledSliderProps {
|
52
|
+
/**
|
53
|
+
* The maximum value for the range.
|
54
|
+
*/
|
55
|
+
max: number;
|
56
|
+
/**
|
57
|
+
* The children components of the slider.
|
58
|
+
*/
|
59
|
+
children: react__default.ReactNode;
|
60
|
+
/**
|
61
|
+
* The controlled value of the slider. Must be used in conjunction with onValueChange.
|
62
|
+
*/
|
63
|
+
value?: number[];
|
64
|
+
/**
|
65
|
+
* The minimum value for the range.
|
66
|
+
*/
|
67
|
+
min?: number;
|
68
|
+
/**
|
69
|
+
* The stepping interval.
|
70
|
+
*/
|
71
|
+
step?: number;
|
72
|
+
/**
|
73
|
+
* When true, prevents the user from interacting with the slider.
|
74
|
+
*/
|
75
|
+
disabled?: boolean;
|
76
|
+
/**
|
77
|
+
* Event handler called when the value changes at the end of an interaction.
|
78
|
+
* Useful when you only need to capture a final value e.g. to update a backend service.
|
79
|
+
*/
|
80
|
+
onValueCommit?: (value: number[]) => void;
|
81
|
+
/**
|
82
|
+
* Event handler called when the value changes.
|
83
|
+
*/
|
84
|
+
onValueChange?: (value: number[]) => void;
|
85
|
+
/**
|
86
|
+
* When true, prevents the user from interacting with the slider but focus
|
87
|
+
* is still possible.
|
88
|
+
*/
|
89
|
+
'aria-disabled'?: Booleanish;
|
90
|
+
}
|
91
|
+
declare const Slider: ForwardRefExoticComponent<SliderProps> & Partials;
|
92
|
+
interface Partials {
|
93
|
+
Track: typeof Track;
|
94
|
+
Range: typeof Range;
|
95
|
+
Thumb: typeof Thumb;
|
96
|
+
}
|
97
|
+
|
98
|
+
export { Slider, SliderProps, RangeProps as SliderRangeProps, ThumbProps as SliderThumbProps, TrackProps as SliderTrackProps };
|
package/package.json
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
{
|
2
|
+
"name": "@mirohq/design-system-slider",
|
3
|
+
"version": "0.1.0-slider.0",
|
4
|
+
"description": "",
|
5
|
+
"author": "Miro",
|
6
|
+
"source": "src/index.ts",
|
7
|
+
"main": "dist/main.js",
|
8
|
+
"module": "dist/module.js",
|
9
|
+
"types": "dist/types.d.ts",
|
10
|
+
"sideEffects": false,
|
11
|
+
"exports": {
|
12
|
+
".": {
|
13
|
+
"require": "./dist/main.js",
|
14
|
+
"import": "./dist/module.js",
|
15
|
+
"types": "./dist/types.d.ts"
|
16
|
+
}
|
17
|
+
},
|
18
|
+
"files": [
|
19
|
+
"dist"
|
20
|
+
],
|
21
|
+
"publishConfig": {
|
22
|
+
"access": "public"
|
23
|
+
},
|
24
|
+
"peerDependencies": {
|
25
|
+
"@stitches/react": "^1.2.8",
|
26
|
+
"react": "^16.14 || ^17 || ^18"
|
27
|
+
},
|
28
|
+
"dependencies": {
|
29
|
+
"@radix-ui/react-slider": "^1.2.0",
|
30
|
+
"@mirohq/design-system-primitive": "^1.1.2",
|
31
|
+
"@mirohq/design-system-utils": "^0.15.4",
|
32
|
+
"@mirohq/design-system-stitches": "^2.6.11"
|
33
|
+
},
|
34
|
+
"scripts": {
|
35
|
+
"build": "rollup -c ../../../rollup.config.js",
|
36
|
+
"clean": "rm -rf dist",
|
37
|
+
"prebuild": "pnpm clean"
|
38
|
+
}
|
39
|
+
}
|