@fibery/ui-kit 1.27.2 → 1.28.0
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/package.json +7 -6
- package/src/toggle-on-off.tsx +36 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fibery/ui-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.28.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"files": [
|
|
6
6
|
"src/antd/styles.ts",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"src/dropdown-menu",
|
|
33
33
|
"src/shortcut-badge",
|
|
34
34
|
"src/tsfixme",
|
|
35
|
-
"src/toggle.tsx"
|
|
35
|
+
"src/toggle.tsx",
|
|
36
|
+
"src/toggle-on-off.tsx"
|
|
36
37
|
],
|
|
37
38
|
"license": "UNLICENSED",
|
|
38
39
|
"dependencies": {
|
|
@@ -74,8 +75,8 @@
|
|
|
74
75
|
"screenfull": "6.0.1",
|
|
75
76
|
"ua-parser-js": "0.7.24",
|
|
76
77
|
"@fibery/emoji-data": "2.4.0",
|
|
77
|
-
"@fibery/
|
|
78
|
-
"@fibery/
|
|
78
|
+
"@fibery/react": "1.3.1",
|
|
79
|
+
"@fibery/helpers": "1.2.0"
|
|
79
80
|
},
|
|
80
81
|
"peerDependencies": {
|
|
81
82
|
"react": "^18.2.0",
|
|
@@ -108,8 +109,8 @@
|
|
|
108
109
|
"svgo": "2.8.0",
|
|
109
110
|
"typescript": "5.1.6",
|
|
110
111
|
"unist-util-reduce": "0.2.2",
|
|
111
|
-
"@fibery/
|
|
112
|
-
"@fibery/
|
|
112
|
+
"@fibery/babel-preset": "7.4.0",
|
|
113
|
+
"@fibery/eslint-config": "8.5.1"
|
|
113
114
|
},
|
|
114
115
|
"jest": {
|
|
115
116
|
"testEnvironment": "jsdom",
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import chroma from "chroma-js";
|
|
2
|
+
import {FC, ComponentProps, useMemo} from "react";
|
|
3
|
+
import {opacity, ThemeColors} from "./design-system";
|
|
4
|
+
import {useTheme} from "./theme-provider";
|
|
5
|
+
import {Toggle} from "./toggle";
|
|
6
|
+
|
|
7
|
+
const getBackgroundColors = (accentColor: string | undefined, theme: ThemeColors) => {
|
|
8
|
+
return accentColor && chroma.valid(accentColor)
|
|
9
|
+
? {
|
|
10
|
+
enabledColor: accentColor,
|
|
11
|
+
disabledColor: chroma(accentColor).alpha(opacity.opacity35).css(),
|
|
12
|
+
}
|
|
13
|
+
: {
|
|
14
|
+
enabledColor: theme.primaryBlue,
|
|
15
|
+
disabledColor: theme.disabledTextColor,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
interface ToggleOnOffProps extends Omit<ComponentProps<typeof Toggle>, "backgroundColor"> {
|
|
20
|
+
color?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const ToggleOnOff: FC<ToggleOnOffProps> = ({value, color, ...rest}) => {
|
|
24
|
+
const theme = useTheme();
|
|
25
|
+
const {enabledColor, disabledColor} = useMemo(() => getBackgroundColors(color, theme), [color, theme]);
|
|
26
|
+
return <Toggle value={Boolean(value)} backgroundColor={value ? enabledColor : disabledColor} {...rest} />;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
interface ReduxFormToggleOnOffProps extends ToggleOnOffProps {
|
|
30
|
+
input?: ToggleOnOffProps;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const ReduxFormToggleOnOff: FC<ReduxFormToggleOnOffProps> = ({input, ...rest}) => {
|
|
34
|
+
const theme = useTheme();
|
|
35
|
+
return <ToggleOnOff color={theme.primaryBlue} {...input} {...rest} />;
|
|
36
|
+
};
|