@rovula/ui 0.0.71 → 0.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bundle.css +40 -4
- package/dist/cjs/bundle.js +3 -3
- package/dist/cjs/bundle.js.map +1 -1
- package/dist/cjs/types/components/RadioGroup/RadioGroup.stories.d.ts +6 -0
- package/dist/cjs/types/components/Slider/Slider.d.ts +9 -1
- package/dist/cjs/types/components/Slider/Slider.stories.d.ts +9 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/components/Label/Label.styles.js +2 -2
- package/dist/components/RadioGroup/RadioGroup.stories.js +9 -0
- package/dist/components/Slider/Slider.js +2 -2
- package/dist/components/Slider/Slider.stories.js +22 -2
- package/dist/components/TextInput/TextInput.js +1 -1
- package/dist/esm/bundle.css +40 -4
- package/dist/esm/bundle.js +3 -3
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/types/components/RadioGroup/RadioGroup.stories.d.ts +6 -0
- package/dist/esm/types/components/Slider/Slider.d.ts +9 -1
- package/dist/esm/types/components/Slider/Slider.stories.d.ts +9 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/index.d.ts +14 -2
- package/dist/index.js +1 -0
- package/dist/src/theme/global.css +50 -5
- package/package.json +1 -1
- package/src/components/Label/Label.styles.ts +2 -2
- package/src/components/RadioGroup/RadioGroup.stories.tsx +27 -0
- package/src/components/Slider/Slider.stories.tsx +83 -2
- package/src/components/Slider/Slider.tsx +56 -19
- package/src/components/TextInput/TextInput.tsx +1 -1
- package/src/index.ts +1 -0
|
@@ -298,3 +298,9 @@ export declare const Diabled: {
|
|
|
298
298
|
};
|
|
299
299
|
render: (args: {}) => import("react/jsx-runtime").JSX.Element;
|
|
300
300
|
};
|
|
301
|
+
export declare const Horizontal: {
|
|
302
|
+
args: {
|
|
303
|
+
disabled: boolean;
|
|
304
|
+
};
|
|
305
|
+
render: (args: {}) => import("react/jsx-runtime").JSX.Element;
|
|
306
|
+
};
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3
|
-
|
|
3
|
+
export interface CustomSliderProps extends React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {
|
|
4
|
+
trackClassName?: string;
|
|
5
|
+
rangeClassName?: string;
|
|
6
|
+
thumbClassName?: string;
|
|
7
|
+
trackStyle?: React.CSSProperties;
|
|
8
|
+
thumbStyle?: React.CSSProperties;
|
|
9
|
+
rangeStyle?: React.CSSProperties;
|
|
10
|
+
}
|
|
11
|
+
declare const Slider: React.ForwardRefExoticComponent<CustomSliderProps & React.RefAttributes<HTMLSpanElement>>;
|
|
4
12
|
export type SliderProps = React.ComponentProps<typeof Slider>;
|
|
5
13
|
export { Slider };
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import type { StoryObj } from "@storybook/react";
|
|
2
3
|
declare const meta: {
|
|
3
4
|
title: string;
|
|
4
|
-
component: React.ForwardRefExoticComponent<
|
|
5
|
+
component: React.ForwardRefExoticComponent<import("./Slider").CustomSliderProps & React.RefAttributes<HTMLSpanElement>>;
|
|
5
6
|
tags: string[];
|
|
6
7
|
parameters: {
|
|
7
8
|
layout: string;
|
|
8
9
|
};
|
|
9
10
|
decorators: ((Story: import("@storybook/csf").PartialStoryFn<import("@storybook/react").ReactRenderer, {
|
|
11
|
+
trackClassName?: string | undefined;
|
|
12
|
+
rangeClassName?: string | undefined;
|
|
13
|
+
thumbClassName?: string | undefined;
|
|
14
|
+
trackStyle?: React.CSSProperties | undefined;
|
|
15
|
+
thumbStyle?: React.CSSProperties | undefined;
|
|
16
|
+
rangeStyle?: React.CSSProperties | undefined;
|
|
10
17
|
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
11
18
|
className?: string | undefined | undefined;
|
|
12
19
|
color?: string | undefined | undefined;
|
|
@@ -303,3 +310,4 @@ export declare const Default: {
|
|
|
303
310
|
};
|
|
304
311
|
render: (args: {}) => import("react/jsx-runtime").JSX.Element;
|
|
305
312
|
};
|
|
313
|
+
export declare const GradientColor: StoryObj;
|
|
@@ -34,6 +34,7 @@ export * from "./components/Toast/Toaster";
|
|
|
34
34
|
export * from "./components/Toast/useToast";
|
|
35
35
|
export * from "./components/Tree";
|
|
36
36
|
export * from "./components/FocusedScrollView/FocusedScrollView";
|
|
37
|
+
export * from "./components/RadioGroup/RadioGroup";
|
|
37
38
|
export type { ButtonProps } from "./components/Button/Button";
|
|
38
39
|
export type { InputProps } from "./components/TextInput/TextInput";
|
|
39
40
|
export type { DropdownProps, Options } from "./components/Dropdown/Dropdown";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { cva } from "class-variance-authority";
|
|
2
2
|
export const labelVariant = cva([
|
|
3
|
-
"block duration-450 transition-all px-[2px] text-
|
|
3
|
+
"block cursor-pointer duration-450 transition-all px-[2px] text-foreground peer-focus:text-input-text-active",
|
|
4
4
|
], {
|
|
5
5
|
variants: {
|
|
6
6
|
size: {
|
|
7
7
|
sm: "typography-small1",
|
|
8
|
-
md: "typography-
|
|
8
|
+
md: "typography-subtitile2",
|
|
9
9
|
lg: "typography-subtitile1",
|
|
10
10
|
},
|
|
11
11
|
disabled: {
|
|
@@ -31,3 +31,12 @@ export const Diabled = {
|
|
|
31
31
|
return (_jsx("div", { className: "flex items-center space-x-2", children: _jsxs(RadioGroup, { defaultValue: "option-one", disabled: true, children: [_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx(RadioGroupItem, { value: "option-one", id: "option-one" }), _jsx(Label, { htmlFor: "option-one", children: "Option One" })] }), _jsxs("div", { className: "flex items-center space-x-2", children: [_jsx(RadioGroupItem, { value: "option-two", id: "option-two" }), _jsx(Label, { htmlFor: "option-two", children: "Option Two" })] })] }) }));
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
+
export const Horizontal = {
|
|
35
|
+
args: {
|
|
36
|
+
disabled: true,
|
|
37
|
+
},
|
|
38
|
+
render: (args) => {
|
|
39
|
+
const props = Object.assign({}, args);
|
|
40
|
+
return (_jsxs(RadioGroup, { defaultValue: "option1", className: "flex flex-row space-x-4", children: [_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx(RadioGroupItem, { value: "option1", id: "option1" }), _jsx(Label, { htmlFor: "option1", children: "Option 1" })] }), _jsxs("div", { className: "flex items-center space-x-2", children: [_jsx(RadioGroupItem, { value: "option2", id: "option2" }), _jsx(Label, { htmlFor: "option2", children: "Option 2" })] }), _jsxs("div", { className: "flex items-center space-x-2", children: [_jsx(RadioGroupItem, { value: "option3", id: "option3" }), _jsx(Label, { htmlFor: "option3", children: "Option 3" })] })] }));
|
|
41
|
+
},
|
|
42
|
+
};
|
|
@@ -15,8 +15,8 @@ import * as React from "react";
|
|
|
15
15
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
16
16
|
import { cn } from "@/utils/cn";
|
|
17
17
|
const Slider = React.forwardRef((_a, ref) => {
|
|
18
|
-
var { className } = _a, props = __rest(_a, ["className"]);
|
|
19
|
-
return (_jsxs(SliderPrimitive.Root, Object.assign({ ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className) }, props, { children: [_jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-grey-50", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), _jsx(SliderPrimitive.Thumb, { className: "block
|
|
18
|
+
var { className, trackClassName, rangeClassName, thumbClassName, thumbStyle, trackStyle, rangeStyle } = _a, props = __rest(_a, ["className", "trackClassName", "rangeClassName", "thumbClassName", "thumbStyle", "trackStyle", "rangeStyle"]);
|
|
19
|
+
return (_jsxs(SliderPrimitive.Root, Object.assign({ ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className) }, props, { children: [_jsx(SliderPrimitive.Track, { className: cn("relative h-2 w-full grow overflow-hidden rounded-full bg-grey-50", trackClassName), style: trackStyle, children: _jsx(SliderPrimitive.Range, { className: cn("absolute h-full bg-primary", rangeClassName), style: rangeStyle }) }), _jsx(SliderPrimitive.Thumb, { className: cn("block h-5 w-5 cursor-pointer rounded-full border-[3px] border-primary bg-background outline-none ring-0 transition-colors disabled:pointer-events-none disabled:opacity-50", thumbClassName), style: thumbStyle })] })));
|
|
20
20
|
});
|
|
21
21
|
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
22
22
|
export { Slider };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
2
3
|
import { Slider } from "./Slider";
|
|
3
4
|
// More on how to set up stories at: https://storybook.js.org/docs/7.0/react/writing-stories/introduction
|
|
4
5
|
const meta = {
|
|
@@ -10,7 +11,7 @@ const meta = {
|
|
|
10
11
|
layout: "fullscreen",
|
|
11
12
|
},
|
|
12
13
|
decorators: [
|
|
13
|
-
(Story) => (_jsx("div", { className: "p-5 flex w-full", children: _jsx(Story, {}) })),
|
|
14
|
+
(Story) => (_jsx("div", { className: "p-5 flex w-full bg-background", children: _jsx(Story, {}) })),
|
|
14
15
|
],
|
|
15
16
|
};
|
|
16
17
|
export default meta;
|
|
@@ -31,3 +32,22 @@ export const Default = {
|
|
|
31
32
|
return (_jsx("div", { className: "flex flex-row gap-4 w-full", children: _jsx(Slider, Object.assign({ defaultValue: [50], max: 100, step: 1 }, props)) }));
|
|
32
33
|
},
|
|
33
34
|
};
|
|
35
|
+
export const GradientColor = {
|
|
36
|
+
render: () => {
|
|
37
|
+
const [exposure, setExposure] = useState([50]);
|
|
38
|
+
const [empty, setEmpty] = useState([50]);
|
|
39
|
+
const [rainbow, setRainbow] = useState([50]);
|
|
40
|
+
const [darkRed, setDarkRed] = useState([50]);
|
|
41
|
+
return (_jsxs("div", { className: "w-[400px] p-6 space-y-8 rounded-md shadow-lg bg-surface", children: [_jsx(Slider, { value: exposure, onValueChange: setExposure, className: "bg-grey-transparent-24", trackClassName: "h-1 rounded-full bg-grey-transparent-24 bg-gradient-to-r from-black to-white", rangeClassName: "bg-unset", thumbClassName: "bg-white border border-white shadow", thumbStyle: {
|
|
42
|
+
filter: "drop-shadow(0px 6px 12px rgba(0, 0, 0, 0.12))",
|
|
43
|
+
}, min: 0, max: 100, step: 1 }), _jsx(Slider, { value: empty, onValueChange: setEmpty, className: "bg-grey-transparent-24", trackClassName: "h-1 rounded-full bg-grey-transparent-24", rangeClassName: "bg-unset", thumbClassName: "bg-white border border-white shadow", thumbStyle: {
|
|
44
|
+
filter: "drop-shadow(0px 6px 12px rgba(0, 0, 0, 0.12))",
|
|
45
|
+
}, min: 0, max: 100, step: 1 }), _jsx(Slider, { value: rainbow, onValueChange: setRainbow, className: "bg-grey-transparent-24", trackClassName: "h-1 rounded-full bg-grey-transparent-24", trackStyle: {
|
|
46
|
+
backgroundImage: "linear-gradient(90deg, #F00 0%, #FF8502 11.54%, #F2FF05 23.08%, #06F90F 35.58%, #00E6FF 48.56%, #0404FF 61.54%, #AB02FF 74.52%, #FF069E 87.5%, #FF0408 100%)",
|
|
47
|
+
}, rangeClassName: "bg-unset", thumbClassName: "bg-white border border-white shadow", thumbStyle: {
|
|
48
|
+
filter: "drop-shadow(0px 6px 12px rgba(0, 0, 0, 0.12))",
|
|
49
|
+
}, min: 0, max: 100, step: 1 }), _jsx(Slider, { value: darkRed, onValueChange: setDarkRed, className: "bg-grey-transparent-24", trackClassName: "h-1 rounded-full bg-grey-transparent-24 bg-gradient-to-r from-[#848484] to-[#A00202]", rangeClassName: "bg-unset", thumbClassName: "bg-white border border-white shadow", thumbStyle: {
|
|
50
|
+
filter: "drop-shadow(0px 6px 12px rgba(0, 0, 0, 0.12))",
|
|
51
|
+
}, min: 0, max: 100, step: 1 })] }));
|
|
52
|
+
},
|
|
53
|
+
};
|
|
@@ -123,7 +123,7 @@ export const TextInput = forwardRef((_a, ref) => {
|
|
|
123
123
|
]);
|
|
124
124
|
return (_jsxs("div", { className: `inline-flex flex-col ${fullwidth ? "w-full" : ""}`, children: [_jsxs("div", { className: "relative", children: [hasSearchIcon && !hasLeftSectionIcon && (_jsx("div", { className: iconSearchWrapperClassname, children: _jsx(MagnifyingGlassIcon, { className: iconClassname }) })), _jsx("input", Object.assign({}, props, { placeholder: " ", ref: inputRef, type: type, id: _id, disabled: disabled, className: cn(inputClassname, props.className) })), startIconElement, hasClearIcon && !hasRightSectionIcon && (_jsx("div", { className: iconWrapperClassname, style: {
|
|
125
125
|
display: keepCloseIconOnValue && props.value ? "flex" : undefined,
|
|
126
|
-
}, children: _jsx(XCircleIcon, { type: "button", className: iconClassname, onMouseDown: handleClearInput }) })), endIconElement, _jsxs("label", { htmlFor: _id, className: cn(labelClassname
|
|
126
|
+
}, children: _jsx(XCircleIcon, { type: "button", className: iconClassname, onMouseDown: handleClearInput }) })), endIconElement, _jsxs("label", { htmlFor: _id, className: cn(labelClassname), children: [label, " ", required && (_jsx("span", { className: cn("text-error", {
|
|
127
127
|
"text-input-disable-text": disabled,
|
|
128
128
|
}), children: "*" }))] })] }), (errorMessage || helperText) && (_jsxs("span", { className: helperTextClassname, children: [_jsx("span", { className: "h-full", children: _jsx(ExclamationCircleIcon, { width: 16, height: 16, className: error ? "fill-error" : "" }) }), errorMessage || helperText] }))] }));
|
|
129
129
|
});
|
package/dist/esm/bundle.css
CHANGED
|
@@ -828,6 +828,9 @@ input[type=number] {
|
|
|
828
828
|
width: 100%;
|
|
829
829
|
height: 100%;
|
|
830
830
|
}
|
|
831
|
+
.h-1{
|
|
832
|
+
height: 0.25rem;
|
|
833
|
+
}
|
|
831
834
|
.h-1\/2{
|
|
832
835
|
height: 50%;
|
|
833
836
|
}
|
|
@@ -1156,6 +1159,11 @@ input[type=number] {
|
|
|
1156
1159
|
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
|
|
1157
1160
|
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
|
|
1158
1161
|
}
|
|
1162
|
+
.space-x-4 > :not([hidden]) ~ :not([hidden]){
|
|
1163
|
+
--tw-space-x-reverse: 0;
|
|
1164
|
+
margin-right: calc(1rem * var(--tw-space-x-reverse));
|
|
1165
|
+
margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
|
|
1166
|
+
}
|
|
1159
1167
|
.space-y-2 > :not([hidden]) ~ :not([hidden]){
|
|
1160
1168
|
--tw-space-y-reverse: 0;
|
|
1161
1169
|
margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
|
|
@@ -1166,6 +1174,11 @@ input[type=number] {
|
|
|
1166
1174
|
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
|
|
1167
1175
|
margin-bottom: calc(1rem * var(--tw-space-y-reverse));
|
|
1168
1176
|
}
|
|
1177
|
+
.space-y-8 > :not([hidden]) ~ :not([hidden]){
|
|
1178
|
+
--tw-space-y-reverse: 0;
|
|
1179
|
+
margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
|
|
1180
|
+
margin-bottom: calc(2rem * var(--tw-space-y-reverse));
|
|
1181
|
+
}
|
|
1169
1182
|
.self-center{
|
|
1170
1183
|
align-self: center;
|
|
1171
1184
|
}
|
|
@@ -1472,6 +1485,10 @@ input[type=number] {
|
|
|
1472
1485
|
--tw-border-opacity: 1;
|
|
1473
1486
|
border-color: color-mix(in srgb, var(--state-color-warning-stroke) calc(100% * var(--tw-border-opacity, 1)), transparent);
|
|
1474
1487
|
}
|
|
1488
|
+
.border-white{
|
|
1489
|
+
--tw-border-opacity: 1;
|
|
1490
|
+
border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
|
|
1491
|
+
}
|
|
1475
1492
|
.border-b-\[rgb\(var\(--navbar-border-color\)\)\]{
|
|
1476
1493
|
border-bottom-color: rgb(var(--navbar-border-color));
|
|
1477
1494
|
}
|
|
@@ -2713,6 +2730,25 @@ input[type=number] {
|
|
|
2713
2730
|
--tw-bg-opacity: 1;
|
|
2714
2731
|
background-color: color-mix(in srgb, var(--other-transparency-white-8) calc(100% * var(--tw-bg-opacity, 1)), transparent);
|
|
2715
2732
|
}
|
|
2733
|
+
.bg-gradient-to-r{
|
|
2734
|
+
background-image: linear-gradient(to right, var(--tw-gradient-stops));
|
|
2735
|
+
}
|
|
2736
|
+
.from-\[\#848484\]{
|
|
2737
|
+
--tw-gradient-from: #848484 var(--tw-gradient-from-position);
|
|
2738
|
+
--tw-gradient-to: rgb(132 132 132 / 0) var(--tw-gradient-to-position);
|
|
2739
|
+
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
|
2740
|
+
}
|
|
2741
|
+
.from-black{
|
|
2742
|
+
--tw-gradient-from: #000 var(--tw-gradient-from-position);
|
|
2743
|
+
--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
|
|
2744
|
+
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
|
2745
|
+
}
|
|
2746
|
+
.to-\[\#A00202\]{
|
|
2747
|
+
--tw-gradient-to: #A00202 var(--tw-gradient-to-position);
|
|
2748
|
+
}
|
|
2749
|
+
.to-white{
|
|
2750
|
+
--tw-gradient-to: #fff var(--tw-gradient-to-position);
|
|
2751
|
+
}
|
|
2716
2752
|
.fill-action-button-icon-active{
|
|
2717
2753
|
fill: color-mix(in srgb, var(--action-button-icon-active-text) calc(100% * 1), transparent);
|
|
2718
2754
|
}
|
|
@@ -3563,10 +3599,6 @@ input[type=number] {
|
|
|
3563
3599
|
--tw-ring-opacity: 1;
|
|
3564
3600
|
--tw-ring-color: color-mix(in srgb, var(--input-color-error) calc(100% * var(--tw-ring-opacity, 1)), transparent);
|
|
3565
3601
|
}
|
|
3566
|
-
.ring-primary{
|
|
3567
|
-
--tw-ring-opacity: 1;
|
|
3568
|
-
--tw-ring-color: color-mix(in srgb, var(--state-color-primary-default) calc(100% * var(--tw-ring-opacity, 1)), transparent);
|
|
3569
|
-
}
|
|
3570
3602
|
.ring-offset-background{
|
|
3571
3603
|
--tw-ring-offset-color: color-mix(in srgb, var(--background) calc(100% * 1), transparent);
|
|
3572
3604
|
}
|
|
@@ -3574,6 +3606,10 @@ input[type=number] {
|
|
|
3574
3606
|
--tw-blur: blur(8px);
|
|
3575
3607
|
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
3576
3608
|
}
|
|
3609
|
+
.drop-shadow{
|
|
3610
|
+
--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
|
|
3611
|
+
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
3612
|
+
}
|
|
3577
3613
|
.filter{
|
|
3578
3614
|
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
3579
3615
|
}
|