@kivid/native-components 1.0.0-alpha.15 → 1.0.0-alpha.17
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/commonjs/components/ActionButton/assets/class-variants.js.map +1 -1
- package/dist/commonjs/components/ActionButton/index.js +35 -48
- package/dist/commonjs/components/ActionButton/index.js.map +1 -1
- package/dist/commonjs/components/Button/assets/class-variants.js +1 -1
- package/dist/commonjs/components/InformationStatus/components/GradientAdd/index.js +115 -60
- package/dist/commonjs/components/InformationStatus/components/GradientAdd/index.js.map +1 -1
- package/dist/commonjs/components/InformationStatus/components/GradientAlert/index.js +117 -60
- package/dist/commonjs/components/InformationStatus/components/GradientAlert/index.js.map +1 -1
- package/dist/commonjs/components/InformationStatus/components/GradientCheck/index.js +113 -58
- package/dist/commonjs/components/InformationStatus/components/GradientCheck/index.js.map +1 -1
- package/dist/commonjs/components/InformationStatus/components/GradientClose/index.js +112 -55
- package/dist/commonjs/components/InformationStatus/components/GradientClose/index.js.map +1 -1
- package/dist/commonjs/components/InformationStatus/index.js +4 -9
- package/dist/commonjs/components/InformationStatus/index.js.map +1 -1
- package/dist/commonjs/components/SelectButton/index.js +2 -1
- package/dist/commonjs/components/SelectButton/index.js.map +1 -1
- package/dist/commonjs/components/TextInput/assets/class-variants.js +2 -2
- package/dist/commonjs/components/TextInput/assets/class-variants.js.map +1 -1
- package/dist/commonjs/components/TextInput/index.js +1 -1
- package/dist/commonjs/components/TextInput/index.js.map +1 -1
- package/dist/module/components/ActionButton/assets/class-variants.js.map +1 -1
- package/dist/module/components/ActionButton/index.js +35 -30
- package/dist/module/components/ActionButton/index.js.map +1 -1
- package/dist/module/components/Button/assets/class-variants.js +1 -1
- package/dist/module/components/InformationStatus/components/GradientAdd/index.js +113 -59
- package/dist/module/components/InformationStatus/components/GradientAdd/index.js.map +1 -1
- package/dist/module/components/InformationStatus/components/GradientAlert/index.js +116 -60
- package/dist/module/components/InformationStatus/components/GradientAlert/index.js.map +1 -1
- package/dist/module/components/InformationStatus/components/GradientCheck/index.js +113 -59
- package/dist/module/components/InformationStatus/components/GradientCheck/index.js.map +1 -1
- package/dist/module/components/InformationStatus/components/GradientClose/index.js +111 -55
- package/dist/module/components/InformationStatus/components/GradientClose/index.js.map +1 -1
- package/dist/module/components/InformationStatus/index.js +4 -9
- package/dist/module/components/InformationStatus/index.js.map +1 -1
- package/dist/module/components/SelectButton/index.js +2 -1
- package/dist/module/components/SelectButton/index.js.map +1 -1
- package/dist/module/components/TextInput/assets/class-variants.js +2 -2
- package/dist/module/components/TextInput/assets/class-variants.js.map +1 -1
- package/dist/module/components/TextInput/index.js +1 -1
- package/dist/module/components/TextInput/index.js.map +1 -1
- package/dist/typescript/components/ActionButton/index.d.ts +0 -1
- package/dist/typescript/components/ActionButton/types.d.ts +15 -24
- package/dist/typescript/components/InformationStatus/components/GradientAdd/index.d.ts +2 -1
- package/dist/typescript/components/InformationStatus/components/GradientAdd/types.d.ts +3 -2
- package/dist/typescript/components/InformationStatus/components/GradientAlert/index.d.ts +2 -1
- package/dist/typescript/components/InformationStatus/components/GradientAlert/types.d.ts +3 -2
- package/dist/typescript/components/InformationStatus/components/GradientCheck/index.d.ts +4 -3
- package/dist/typescript/components/InformationStatus/components/GradientCheck/types.d.ts +3 -2
- package/dist/typescript/components/InformationStatus/components/GradientClose/index.d.ts +2 -1
- package/dist/typescript/components/InformationStatus/components/GradientClose/types.d.ts +3 -2
- package/package.json +5 -5
- package/src/components/ActionButton/assets/class-variants.ts +3 -12
- package/src/components/ActionButton/index.tsx +55 -41
- package/src/components/ActionButton/types.ts +15 -24
- package/src/components/Button/assets/class-variants.ts +1 -1
- package/src/components/InformationStatus/components/GradientAdd/index.tsx +107 -56
- package/src/components/InformationStatus/components/GradientAdd/types.ts +3 -2
- package/src/components/InformationStatus/components/GradientAlert/index.tsx +116 -62
- package/src/components/InformationStatus/components/GradientAlert/types.ts +3 -2
- package/src/components/InformationStatus/components/GradientCheck/index.tsx +111 -59
- package/src/components/InformationStatus/components/GradientCheck/types.ts +3 -3
- package/src/components/InformationStatus/components/GradientClose/index.tsx +106 -53
- package/src/components/InformationStatus/components/GradientClose/types.ts +3 -2
- package/src/components/InformationStatus/index.tsx +4 -10
- package/src/components/SelectButton/index.tsx +1 -0
- package/src/components/TextInput/assets/class-variants.ts +2 -2
- package/src/components/TextInput/index.tsx +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import Svg from "react-native-svg";
|
|
2
3
|
import { GradientAddProps } from "./types";
|
|
3
|
-
export declare
|
|
4
|
+
export declare const GradientAdd: React.ForwardRefExoticComponent<GradientAddProps & React.RefAttributes<Svg>>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SvgProps } from "react-native-svg";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { SizeEnum } from "../../../../enums";
|
|
3
|
+
export interface GradientAddProps extends Omit<SvgProps, "width" | "height"> {
|
|
4
|
+
size?: SizeEnum.SMALL | SizeEnum.MEDIUM | SizeEnum.LARGE;
|
|
4
5
|
color?: string;
|
|
5
6
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import Svg from "react-native-svg";
|
|
2
3
|
import { GradientAlertProps } from "./types";
|
|
3
|
-
export declare function GradientAlert(props: GradientAlertProps, ref?: React.Ref<Svg>):
|
|
4
|
+
export declare function GradientAlert(props: GradientAlertProps, ref?: React.Ref<Svg>): React.JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SvgProps } from "react-native-svg";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { SizeEnum } from "../../../../enums";
|
|
3
|
+
export interface GradientAlertProps extends Omit<SvgProps, "width" | "height"> {
|
|
4
|
+
size?: SizeEnum.SMALL | SizeEnum.MEDIUM | SizeEnum.LARGE;
|
|
4
5
|
color?: string;
|
|
5
6
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Svg from 'react-native-svg';
|
|
3
|
+
import { GradientCheckProps } from './types';
|
|
4
|
+
export declare function GradientCheck(props: GradientCheckProps, ref?: React.Ref<Svg>): React.JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SvgProps } from "react-native-svg";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { SizeEnum } from "../../../../enums";
|
|
3
|
+
export interface GradientCheckProps extends Omit<SvgProps, "width" | "height"> {
|
|
4
|
+
size?: SizeEnum.SMALL | SizeEnum.MEDIUM | SizeEnum.LARGE;
|
|
4
5
|
color?: string;
|
|
5
6
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import Svg from "react-native-svg";
|
|
2
3
|
import { GradientCloseProps } from "./types";
|
|
3
|
-
export declare function GradientClose(props: GradientCloseProps, ref?: React.Ref<Svg>):
|
|
4
|
+
export declare function GradientClose(props: GradientCloseProps, ref?: React.Ref<Svg>): React.JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SvgProps } from "react-native-svg";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { SizeEnum } from "../../../../enums";
|
|
3
|
+
export interface GradientCloseProps extends Omit<SvgProps, "width" | "height"> {
|
|
4
|
+
size?: SizeEnum.SMALL | SizeEnum.MEDIUM | SizeEnum.LARGE;
|
|
4
5
|
color?: string;
|
|
5
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kivid/native-components",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.17",
|
|
4
4
|
"description": "A React Native component library for the Butterfly Design System.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -79,8 +79,8 @@
|
|
|
79
79
|
"react": "19.0.0",
|
|
80
80
|
"ts-jest": "^29.2.5",
|
|
81
81
|
"typescript": "~5.8.3",
|
|
82
|
-
"@kivid/
|
|
83
|
-
"@kivid/
|
|
82
|
+
"@kivid/icons": "1.0.0-alpha.17",
|
|
83
|
+
"@kivid/tailwind-preset": "1.0.0-alpha.17"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"@lottiefiles/dotlottie-react": "^0.15.1",
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
"react-native-svg": "^15.12.0",
|
|
91
91
|
"react-native": "0.79.5",
|
|
92
92
|
"react": "19.0.0",
|
|
93
|
-
"@kivid/
|
|
94
|
-
"@kivid/
|
|
93
|
+
"@kivid/icons": "1.0.0-alpha.17",
|
|
94
|
+
"@kivid/tailwind-preset": "1.0.0-alpha.17"
|
|
95
95
|
},
|
|
96
96
|
"eslintIgnore": [
|
|
97
97
|
"node_modules/",
|
|
@@ -15,19 +15,10 @@ export const menuCardVariants = cva(
|
|
|
15
15
|
grape: ["bg-grape-500", "disabled:bg-grape-200"],
|
|
16
16
|
java: ["bg-java-500", "disabled:bg-java-200"],
|
|
17
17
|
pear: ["bg-pear-500", "disabled:bg-pear-200"],
|
|
18
|
-
tangerine: [
|
|
19
|
-
|
|
20
|
-
"disabled:bg-tangerine-200",
|
|
21
|
-
],
|
|
22
|
-
blackberry: [
|
|
23
|
-
"bg-blackberry-500",
|
|
24
|
-
"disabled:bg-blackberry-200",
|
|
25
|
-
],
|
|
18
|
+
tangerine: ["bg-tangerine-500", "disabled:bg-tangerine-200"],
|
|
19
|
+
blackberry: ["bg-blackberry-500", "disabled:bg-blackberry-200"],
|
|
26
20
|
chia: ["bg-chia-700", "disabled:bg-chia-400"],
|
|
27
|
-
outline: [
|
|
28
|
-
"border-100 border-chia-400",
|
|
29
|
-
"disabled:border-chia-300",
|
|
30
|
-
],
|
|
21
|
+
outline: ["border-100 border-chia-400", "disabled:border-chia-300"],
|
|
31
22
|
},
|
|
32
23
|
corners: {
|
|
33
24
|
[CornersEnum.SMALL]: "rounded-700",
|
|
@@ -3,26 +3,21 @@ import React from "react";
|
|
|
3
3
|
import { Pressable, View } from "react-native";
|
|
4
4
|
import { CornersEnum, FontWeightEnum } from "../../enums";
|
|
5
5
|
import { Typography } from "../Typography";
|
|
6
|
-
import {
|
|
7
|
-
menuCardVariants,
|
|
8
|
-
textVariants,
|
|
9
|
-
} from "./assets/class-variants";
|
|
6
|
+
import { menuCardVariants, textVariants } from "./assets/class-variants";
|
|
10
7
|
import type { ActionButtonProps } from "./types";
|
|
11
8
|
|
|
12
9
|
export function ActionButton(props: ActionButtonProps) {
|
|
13
10
|
const {
|
|
14
11
|
icon,
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
primaryText,
|
|
13
|
+
secondaryText,
|
|
14
|
+
primaryTextProps = {},
|
|
15
|
+
secondaryTextProps = {},
|
|
17
16
|
variant = "grape",
|
|
18
17
|
corners = CornersEnum.MEDIUM,
|
|
19
18
|
disabled = false,
|
|
20
19
|
className,
|
|
21
|
-
|
|
22
|
-
labelClassName,
|
|
23
|
-
subtitleClassName,
|
|
24
|
-
labelWeight = FontWeightEnum.MEDIUM,
|
|
25
|
-
subtitleWeight = FontWeightEnum.MEDIUM,
|
|
20
|
+
iconContainerClassName,
|
|
26
21
|
onPress,
|
|
27
22
|
accessibilityLabel,
|
|
28
23
|
ref,
|
|
@@ -53,23 +48,24 @@ export function ActionButton(props: ActionButtonProps) {
|
|
|
53
48
|
className
|
|
54
49
|
);
|
|
55
50
|
|
|
56
|
-
const textStyle = merge(textVariants({ variant }));
|
|
57
|
-
|
|
58
51
|
// Define icon colors based on variant
|
|
59
52
|
const iconColorMap = {
|
|
60
|
-
grape: "
|
|
61
|
-
java: "
|
|
62
|
-
pear: "
|
|
63
|
-
tangerine: "
|
|
64
|
-
blackberry: "
|
|
65
|
-
chia: "
|
|
66
|
-
outline: "
|
|
53
|
+
grape: "text-chia-100", // chia-100
|
|
54
|
+
java: "text-chia-100",
|
|
55
|
+
pear: "text-chia-100",
|
|
56
|
+
tangerine: "text-chia-100",
|
|
57
|
+
blackberry: "text-chia-100",
|
|
58
|
+
chia: "text-chia-100",
|
|
59
|
+
outline: "text-chia-900", // chia-900
|
|
67
60
|
};
|
|
68
61
|
|
|
69
62
|
// Clone icon element to pass color prop
|
|
70
63
|
const iconWithColor = React.isValidElement(icon)
|
|
71
64
|
? React.cloneElement(icon as React.ReactElement<any>, {
|
|
72
|
-
|
|
65
|
+
className: merge(
|
|
66
|
+
iconColorMap[variant],
|
|
67
|
+
(icon as React.ReactElement<any>).props?.className || ""
|
|
68
|
+
),
|
|
73
69
|
})
|
|
74
70
|
: icon;
|
|
75
71
|
|
|
@@ -83,6 +79,30 @@ export function ActionButton(props: ActionButtonProps) {
|
|
|
83
79
|
onPressOut?.(event);
|
|
84
80
|
};
|
|
85
81
|
|
|
82
|
+
const textStyle = merge(textVariants({ variant }));
|
|
83
|
+
|
|
84
|
+
const mergedPrimaryTextProps = {
|
|
85
|
+
variant: "label_large" as const,
|
|
86
|
+
weight: FontWeightEnum.MEDIUM as const,
|
|
87
|
+
...primaryTextProps,
|
|
88
|
+
className: merge(
|
|
89
|
+
textStyle,
|
|
90
|
+
disabled && "opacity-60",
|
|
91
|
+
primaryTextProps.className
|
|
92
|
+
),
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const mergedSecondaryTextProps = {
|
|
96
|
+
variant: "label_large" as const,
|
|
97
|
+
weight: FontWeightEnum.BOLD as const,
|
|
98
|
+
...secondaryTextProps,
|
|
99
|
+
className: merge(
|
|
100
|
+
textStyle,
|
|
101
|
+
disabled && "opacity-60",
|
|
102
|
+
secondaryTextProps.className
|
|
103
|
+
),
|
|
104
|
+
};
|
|
105
|
+
|
|
86
106
|
return (
|
|
87
107
|
<Pressable
|
|
88
108
|
ref={ref}
|
|
@@ -92,7 +112,10 @@ export function ActionButton(props: ActionButtonProps) {
|
|
|
92
112
|
onPressIn={handlePressIn}
|
|
93
113
|
onPressOut={handlePressOut}
|
|
94
114
|
accessibilityRole="button"
|
|
95
|
-
accessibilityLabel={
|
|
115
|
+
accessibilityLabel={
|
|
116
|
+
accessibilityLabel ||
|
|
117
|
+
`${primaryText}${secondaryText ? ` ${secondaryText}` : ""}`
|
|
118
|
+
}
|
|
96
119
|
accessibilityState={{
|
|
97
120
|
disabled: disabled,
|
|
98
121
|
}}
|
|
@@ -100,27 +123,21 @@ export function ActionButton(props: ActionButtonProps) {
|
|
|
100
123
|
{...rest}
|
|
101
124
|
>
|
|
102
125
|
{/* Icon Container */}
|
|
103
|
-
<View
|
|
126
|
+
<View
|
|
127
|
+
className={merge(
|
|
128
|
+
"flex items-start shrink-0",
|
|
129
|
+
disabled && "opacity-60",
|
|
130
|
+
iconContainerClassName
|
|
131
|
+
)}
|
|
132
|
+
>
|
|
104
133
|
{iconWithColor}
|
|
105
134
|
</View>
|
|
106
135
|
|
|
107
136
|
{/* Label Container */}
|
|
108
137
|
<View className="shrink-0">
|
|
109
|
-
<Typography
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
className={merge(textStyle, disabled && "opacity-60", labelClassName)}
|
|
113
|
-
>
|
|
114
|
-
{label}
|
|
115
|
-
</Typography>
|
|
116
|
-
{subtitle && (
|
|
117
|
-
<Typography
|
|
118
|
-
variant="label_large"
|
|
119
|
-
weight={subtitleWeight as any}
|
|
120
|
-
className={merge(textStyle, disabled && "opacity-60", subtitleClassName)}
|
|
121
|
-
>
|
|
122
|
-
{subtitle}
|
|
123
|
-
</Typography>
|
|
138
|
+
<Typography {...mergedPrimaryTextProps}>{primaryText}</Typography>
|
|
139
|
+
{secondaryText && (
|
|
140
|
+
<Typography {...mergedSecondaryTextProps}>{secondaryText}</Typography>
|
|
124
141
|
)}
|
|
125
142
|
</View>
|
|
126
143
|
</Pressable>
|
|
@@ -128,6 +145,3 @@ export function ActionButton(props: ActionButtonProps) {
|
|
|
128
145
|
}
|
|
129
146
|
|
|
130
147
|
ActionButton.displayName = "ActionButton";
|
|
131
|
-
|
|
132
|
-
export { ActionButtonCorners, ActionButtonProps, ActionButtonVariant } from "./types";
|
|
133
|
-
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { VariantProps } from "class-variance-authority";
|
|
2
2
|
import { PressableProps, View } from "react-native";
|
|
3
|
-
import { CornersEnum
|
|
3
|
+
import { CornersEnum } from "../../enums";
|
|
4
|
+
import { TypographyProps } from "../Typography/types";
|
|
4
5
|
import { menuCardVariants } from "./assets/class-variants";
|
|
5
6
|
|
|
6
7
|
export type ActionButtonVariant =
|
|
@@ -25,13 +26,21 @@ export interface ActionButtonProps
|
|
|
25
26
|
*/
|
|
26
27
|
icon: React.ReactNode;
|
|
27
28
|
/**
|
|
28
|
-
* The main label
|
|
29
|
+
* The primary text (main label)
|
|
29
30
|
*/
|
|
30
|
-
|
|
31
|
+
primaryText: string;
|
|
31
32
|
/**
|
|
32
|
-
* The
|
|
33
|
+
* The secondary text below the primary text
|
|
33
34
|
*/
|
|
34
|
-
|
|
35
|
+
secondaryText?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Props to pass to the primary text Typography component
|
|
38
|
+
*/
|
|
39
|
+
primaryTextProps?: Omit<TypographyProps, "children">;
|
|
40
|
+
/**
|
|
41
|
+
* Props to pass to the secondary text Typography component
|
|
42
|
+
*/
|
|
43
|
+
secondaryTextProps?: Omit<TypographyProps, "children">;
|
|
35
44
|
/**
|
|
36
45
|
* Visual style variant of the card
|
|
37
46
|
*/
|
|
@@ -51,25 +60,7 @@ export interface ActionButtonProps
|
|
|
51
60
|
/**
|
|
52
61
|
* Additional class names for the icon container
|
|
53
62
|
*/
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Additional class names for the label text
|
|
57
|
-
*/
|
|
58
|
-
labelClassName?: string;
|
|
59
|
-
/**
|
|
60
|
-
* Additional class names for the subtitle text
|
|
61
|
-
*/
|
|
62
|
-
subtitleClassName?: string;
|
|
63
|
-
/**
|
|
64
|
-
* Font weight for the label text
|
|
65
|
-
* @default FontWeightEnum.MEDIUM
|
|
66
|
-
*/
|
|
67
|
-
labelWeight?: FontWeightEnum;
|
|
68
|
-
/**
|
|
69
|
-
* Font weight for the subtitle text
|
|
70
|
-
* @default FontWeightEnum.MEDIUM
|
|
71
|
-
*/
|
|
72
|
-
subtitleWeight?: FontWeightEnum;
|
|
63
|
+
iconContainerClassName?: string;
|
|
73
64
|
/**
|
|
74
65
|
* Callback when card is pressed
|
|
75
66
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import Svg, {
|
|
2
3
|
Path,
|
|
3
4
|
Defs,
|
|
@@ -11,64 +12,114 @@ import Svg, {
|
|
|
11
12
|
G,
|
|
12
13
|
} from "react-native-svg";
|
|
13
14
|
import { GradientAddProps } from "./types";
|
|
15
|
+
import { SizeEnum } from "../../../../enums";
|
|
16
|
+
import { View } from "react-native";
|
|
14
17
|
|
|
15
|
-
export
|
|
16
|
-
const { size =
|
|
18
|
+
export const GradientAdd = React.forwardRef((props: GradientAddProps, ref?: React.Ref<Svg>) => {
|
|
19
|
+
const { size = SizeEnum.MEDIUM, color = "currentColor", style, ...rest } = props;
|
|
20
|
+
|
|
21
|
+
const ICON_CONFIG = {
|
|
22
|
+
[SizeEnum.SMALL]: {
|
|
23
|
+
path: "M7.99999 2.66663C8.72036 2.66663 9.30434 3.26358 9.30434 3.99996V6.66663H12.029C12.7493 6.66663 13.3333 7.26358 13.3333 7.99996C13.3333 8.73634 12.7493 9.33329 12.029 9.33329H9.30434V12C9.30434 12.7363 8.72036 13.3333 7.99999 13.3333C7.27962 13.3333 6.69564 12.7363 6.69564 12V9.33329H3.971C3.25063 9.33329 2.66666 8.73634 2.66666 7.99996C2.66666 7.26358 3.25063 6.66663 3.971 6.66663H6.69564V3.99996C6.69564 3.26358 7.27962 2.66663 7.99999 2.66663Z",
|
|
24
|
+
viewBox: "0 0 16 16",
|
|
25
|
+
filter: {
|
|
26
|
+
id: "filter0_i_8151_1877",
|
|
27
|
+
x: "2.66666",
|
|
28
|
+
y: "2.66663",
|
|
29
|
+
width: "11.6667",
|
|
30
|
+
height: "11.6666",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
[SizeEnum.MEDIUM]: {
|
|
34
|
+
path: "M12 4C13.0806 4 13.9565 4.89543 13.9565 6V10H18.0435C19.124 10 20 10.8954 20 12C20 13.1046 19.124 14 18.0435 14H13.9565V18C13.9565 19.1046 13.0806 20 12 20C10.9194 20 10.0435 19.1046 10.0435 18V14H5.95652C4.87596 14 4 13.1046 4 12C4 10.8954 4.87596 10 5.95652 10H10.0435V6C10.0435 4.89543 10.9194 4 12 4Z",
|
|
35
|
+
viewBox: "0 0 24 24",
|
|
36
|
+
filter: {
|
|
37
|
+
id: "filter0_i_8151_1873",
|
|
38
|
+
x: "4",
|
|
39
|
+
y: "4",
|
|
40
|
+
width: "17",
|
|
41
|
+
height: "17",
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
[SizeEnum.LARGE]: {
|
|
45
|
+
path: "M16 5.33337C17.4408 5.33337 18.6087 6.52728 18.6087 8.00004V13.3334H24.058C25.4987 13.3334 26.6667 14.5273 26.6667 16C26.6667 17.4728 25.4987 18.6667 24.058 18.6667H18.6087V24C18.6087 25.4728 17.4408 26.6667 16 26.6667C14.5593 26.6667 13.3913 25.4728 13.3913 24V18.6667H7.94204C6.5013 18.6667 5.33334 17.4728 5.33334 16C5.33334 14.5273 6.5013 13.3334 7.94204 13.3334H13.3913V8.00004C13.3913 6.52728 14.5593 5.33337 16 5.33337Z",
|
|
46
|
+
viewBox: "0 0 32 32",
|
|
47
|
+
filter: {
|
|
48
|
+
id: "filter0_i_8151_1881",
|
|
49
|
+
x: "5.33334",
|
|
50
|
+
y: "5.33337",
|
|
51
|
+
width: "22.3333",
|
|
52
|
+
height: "22.3334",
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const SIZE_MAP = {
|
|
58
|
+
[SizeEnum.SMALL]: 16,
|
|
59
|
+
[SizeEnum.MEDIUM]: 24,
|
|
60
|
+
[SizeEnum.LARGE]: 32,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const config = ICON_CONFIG[size] || ICON_CONFIG[SizeEnum.MEDIUM];
|
|
64
|
+
const filterId = config.filter.id;
|
|
65
|
+
const iconSize = SIZE_MAP[size] || 24;
|
|
17
66
|
|
|
18
67
|
return (
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
</G>
|
|
36
|
-
<Defs>
|
|
37
|
-
<Filter
|
|
38
|
-
id="filter0_i_3359_12285"
|
|
39
|
-
x="2.66666"
|
|
40
|
-
y="2.6665"
|
|
41
|
-
width="11.6667"
|
|
42
|
-
height="11.6665"
|
|
43
|
-
filterUnits="userSpaceOnUse"
|
|
44
|
-
>
|
|
45
|
-
<FeFlood floodOpacity="0" result="BackgroundImageFix" />
|
|
46
|
-
<FeBlend
|
|
47
|
-
mode="normal"
|
|
48
|
-
in="SourceGraphic"
|
|
49
|
-
in2="BackgroundImageFix"
|
|
50
|
-
result="shape"
|
|
51
|
-
/>
|
|
52
|
-
<FeColorMatrix
|
|
53
|
-
in="SourceAlpha"
|
|
54
|
-
type="matrix"
|
|
55
|
-
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
|
56
|
-
result="hardAlpha"
|
|
57
|
-
/>
|
|
58
|
-
<FeOffset dx="1" dy="1" />
|
|
59
|
-
<FeGaussianBlur stdDeviation="1" />
|
|
60
|
-
<FeComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1" />
|
|
61
|
-
<FeColorMatrix
|
|
62
|
-
type="matrix"
|
|
63
|
-
values="0 0 0 0 0.447059 0 0 0 0 0.403922 0 0 0 0 0.894118 0 0 0 0.4 0"
|
|
64
|
-
/>
|
|
65
|
-
<FeBlend
|
|
66
|
-
mode="normal"
|
|
67
|
-
in2="shape"
|
|
68
|
-
result="effect1_innerShadow_3359_12285"
|
|
68
|
+
<View style={[{ width: iconSize, height: iconSize }, style]}>
|
|
69
|
+
<Svg
|
|
70
|
+
width="100%"
|
|
71
|
+
height="100%"
|
|
72
|
+
viewBox={config.viewBox}
|
|
73
|
+
fill="none"
|
|
74
|
+
color={color}
|
|
75
|
+
ref={ref}
|
|
76
|
+
{...rest}
|
|
77
|
+
>
|
|
78
|
+
<G filter={`url(#${filterId})`}>
|
|
79
|
+
<Path
|
|
80
|
+
fillRule="evenodd"
|
|
81
|
+
clipRule="evenodd"
|
|
82
|
+
d={config.path}
|
|
83
|
+
fill="currentColor"
|
|
69
84
|
/>
|
|
70
|
-
</
|
|
71
|
-
|
|
72
|
-
|
|
85
|
+
</G>
|
|
86
|
+
<Defs>
|
|
87
|
+
<Filter
|
|
88
|
+
id={filterId}
|
|
89
|
+
x={config.filter.x}
|
|
90
|
+
y={config.filter.y}
|
|
91
|
+
width={config.filter.width}
|
|
92
|
+
height={config.filter.height}
|
|
93
|
+
filterUnits="userSpaceOnUse"
|
|
94
|
+
>
|
|
95
|
+
<FeFlood floodOpacity="0" result="BackgroundImageFix" />
|
|
96
|
+
<FeBlend
|
|
97
|
+
mode="normal"
|
|
98
|
+
in="SourceGraphic"
|
|
99
|
+
in2="BackgroundImageFix"
|
|
100
|
+
result="shape"
|
|
101
|
+
/>
|
|
102
|
+
<FeColorMatrix
|
|
103
|
+
in="SourceAlpha"
|
|
104
|
+
type="matrix"
|
|
105
|
+
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
|
106
|
+
result="hardAlpha"
|
|
107
|
+
/>
|
|
108
|
+
<FeOffset dx="1" dy="1" />
|
|
109
|
+
<FeGaussianBlur stdDeviation="1" />
|
|
110
|
+
<FeComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1" />
|
|
111
|
+
<FeColorMatrix
|
|
112
|
+
type="matrix"
|
|
113
|
+
values="0 0 0 0 0.447059 0 0 0 0 0.403922 0 0 0 0 0.894118 0 0 0 0.4 0"
|
|
114
|
+
/>
|
|
115
|
+
<FeBlend
|
|
116
|
+
mode="normal"
|
|
117
|
+
in2="shape"
|
|
118
|
+
result={`effect1_innerShadow_${filterId}`}
|
|
119
|
+
/>
|
|
120
|
+
</Filter>
|
|
121
|
+
</Defs>
|
|
122
|
+
</Svg>
|
|
123
|
+
</View>
|
|
73
124
|
);
|
|
74
|
-
}
|
|
125
|
+
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SvgProps } from "react-native-svg";
|
|
2
|
+
import { SizeEnum } from "../../../../enums";
|
|
2
3
|
|
|
3
|
-
export interface GradientAddProps extends SvgProps {
|
|
4
|
-
size?:
|
|
4
|
+
export interface GradientAddProps extends Omit<SvgProps, "width" | "height"> {
|
|
5
|
+
size?: SizeEnum.SMALL | SizeEnum.MEDIUM | SizeEnum.LARGE;
|
|
5
6
|
color?: string;
|
|
6
7
|
}
|