@metamask-previews/design-system-react-native 0.0.0-preview.5f5c97a → 0.0.0-preview.646ebcc
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/components/Button/variants/ButtonPrimary/ButtonPrimary.cjs +32 -55
- package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.cjs.map +1 -1
- package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.d.cts +1 -1
- package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.d.cts.map +1 -1
- package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.d.mts +1 -1
- package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.d.mts.map +1 -1
- package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.mjs +34 -57
- package/dist/components/Button/variants/ButtonPrimary/ButtonPrimary.mjs.map +1 -1
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.cjs +48 -50
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.cjs.map +1 -1
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.d.cts +1 -1
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.d.cts.map +1 -1
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.d.mts +1 -1
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.d.mts.map +1 -1
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.mjs +49 -51
- package/dist/components/Button/variants/ButtonSecondary/ButtonSecondary.mjs.map +1 -1
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.cjs +52 -55
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.cjs.map +1 -1
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.d.cts +1 -1
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.d.cts.map +1 -1
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.d.mts +1 -1
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.d.mts.map +1 -1
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.mjs +53 -56
- package/dist/components/Button/variants/ButtonTertiary/ButtonTertiary.mjs.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.cjs +110 -28
- package/dist/components/ButtonBase/ButtonBase.cjs.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.constants.cjs +10 -0
- package/dist/components/ButtonBase/ButtonBase.constants.cjs.map +1 -0
- package/dist/components/ButtonBase/ButtonBase.constants.d.cts +3 -0
- package/dist/components/ButtonBase/ButtonBase.constants.d.cts.map +1 -0
- package/dist/components/ButtonBase/ButtonBase.constants.d.mts +3 -0
- package/dist/components/ButtonBase/ButtonBase.constants.d.mts.map +1 -0
- package/dist/components/ButtonBase/ButtonBase.constants.mjs +7 -0
- package/dist/components/ButtonBase/ButtonBase.constants.mjs.map +1 -0
- package/dist/components/ButtonBase/ButtonBase.d.cts +1 -1
- package/dist/components/ButtonBase/ButtonBase.d.cts.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.d.mts +1 -1
- package/dist/components/ButtonBase/ButtonBase.d.mts.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.mjs +88 -26
- package/dist/components/ButtonBase/ButtonBase.mjs.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.types.cjs.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.types.d.cts +42 -2
- package/dist/components/ButtonBase/ButtonBase.types.d.cts.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.types.d.mts +42 -2
- package/dist/components/ButtonBase/ButtonBase.types.d.mts.map +1 -1
- package/dist/components/ButtonBase/ButtonBase.types.mjs.map +1 -1
- package/dist/components/ButtonBase/index.cjs +3 -1
- package/dist/components/ButtonBase/index.cjs.map +1 -1
- package/dist/components/ButtonBase/index.d.cts +1 -0
- package/dist/components/ButtonBase/index.d.cts.map +1 -1
- package/dist/components/ButtonBase/index.d.mts +1 -0
- package/dist/components/ButtonBase/index.d.mts.map +1 -1
- package/dist/components/ButtonBase/index.mjs +1 -0
- package/dist/components/ButtonBase/index.mjs.map +1 -1
- package/dist/types/index.cjs +3 -3
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +3 -3
- package/dist/types/index.d.mts +3 -3
- package/dist/types/index.mjs +3 -3
- package/dist/types/index.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -5,77 +5,75 @@ function $importDefault(module) {
|
|
|
5
5
|
return module;
|
|
6
6
|
}
|
|
7
7
|
import { useTailwind } from "@metamask-previews/design-system-twrnc-preset";
|
|
8
|
-
import $React, {
|
|
8
|
+
import $React, { useCallback } from "react";
|
|
9
9
|
const React = $importDefault($React);
|
|
10
10
|
import { ButtonBase } from "../../../ButtonBase/index.mjs";
|
|
11
11
|
import { IconSize } from "../../../Icon/index.mjs";
|
|
12
12
|
import { TextVariant, FontWeight } from "../../../Text/index.mjs";
|
|
13
|
-
export const ButtonSecondary = ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger = false, isInverse = false, isLoading = false,
|
|
14
|
-
const [isPressed, setIsPressed] = useState(false);
|
|
13
|
+
export const ButtonSecondary = ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger = false, isInverse = false, isLoading = false, twClassName = '', style, ...props }) => {
|
|
15
14
|
const tw = useTailwind();
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
15
|
+
const getContainerClassName = useCallback((pressed) => {
|
|
16
|
+
const baseClasses = `
|
|
17
|
+
border-[1.5px]
|
|
18
|
+
${twClassName}
|
|
19
|
+
`;
|
|
20
|
+
let backgroundClass = '';
|
|
21
|
+
let borderClass = '';
|
|
22
|
+
if (isInverse && isDanger) {
|
|
23
|
+
backgroundClass =
|
|
24
|
+
pressed || isLoading ? 'bg-default-pressed' : 'bg-default';
|
|
25
|
+
borderClass =
|
|
26
|
+
pressed || isLoading
|
|
27
|
+
? 'border-background-default-pressed'
|
|
28
|
+
: 'border-background-default';
|
|
29
|
+
}
|
|
30
|
+
else if (isDanger) {
|
|
31
|
+
backgroundClass =
|
|
32
|
+
pressed || isLoading ? 'bg-muted-pressed' : 'bg-muted';
|
|
33
|
+
borderClass = 'border-transparent';
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
backgroundClass = isInverse
|
|
37
|
+
? pressed || isLoading
|
|
38
|
+
? 'bg-pressed'
|
|
39
|
+
: 'bg-transparent'
|
|
40
|
+
: pressed || isLoading
|
|
41
|
+
? 'bg-muted-pressed'
|
|
42
|
+
: 'bg-muted';
|
|
43
|
+
borderClass = isInverse
|
|
38
44
|
? 'border-primary-inverse'
|
|
39
|
-
: 'border-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
};
|
|
45
|
+
: 'border-transparent';
|
|
46
|
+
}
|
|
47
|
+
return `${backgroundClass} ${borderClass} ${baseClasses}`;
|
|
48
|
+
}, [isInverse, isDanger, isLoading, twClassName]);
|
|
49
|
+
const getTextClassName = useCallback((pressed) => {
|
|
50
|
+
if (isDanger) {
|
|
51
|
+
return pressed || isLoading
|
|
52
|
+
? 'text-error-default-pressed'
|
|
53
|
+
: 'text-error-default';
|
|
54
|
+
}
|
|
55
|
+
else if (isInverse) {
|
|
56
|
+
return 'text-primary-inverse';
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return 'text-default';
|
|
60
|
+
}
|
|
61
|
+
}, [isDanger, isInverse, isLoading]);
|
|
57
62
|
return (<ButtonBase textProps={{
|
|
58
63
|
variant: TextVariant.BodyMd,
|
|
59
64
|
fontWeight: FontWeight.Medium,
|
|
60
65
|
numberOfLines: 1,
|
|
61
66
|
ellipsizeMode: 'clip',
|
|
62
67
|
...textProps,
|
|
63
|
-
twClassName: `${twTextClassNames} ${textProps?.twClassName ?? ''}`,
|
|
64
68
|
}} spinnerProps={{
|
|
65
|
-
color: twTextClassNames,
|
|
66
|
-
loadingTextProps: {
|
|
67
|
-
twClassName: twTextClassNames,
|
|
68
|
-
},
|
|
69
69
|
...spinnerProps,
|
|
70
70
|
}} startIconProps={{
|
|
71
71
|
size: IconSize.Sm,
|
|
72
72
|
...startIconProps,
|
|
73
|
-
twClassName: `${twTextClassNames} ${startIconProps?.twClassName ?? ''}`,
|
|
74
73
|
}} endIconProps={{
|
|
75
74
|
size: IconSize.Sm,
|
|
76
75
|
...endIconProps,
|
|
77
|
-
|
|
78
|
-
}} isLoading={isLoading} onPressIn={onPressInHandler} onPressOut={onPressOutHandler} style={[tw `${twContainerClassNames}`, style]} {...props}>
|
|
76
|
+
}} isLoading={isLoading} twClassName={getContainerClassName} textClassName={getTextClassName} iconClassName={getTextClassName} style={style} {...props}>
|
|
79
77
|
{children}
|
|
80
78
|
</ButtonBase>);
|
|
81
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonSecondary.mjs","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonSecondary/ButtonSecondary.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,sDAAsD;AAC5E,OAAO,QAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ButtonSecondary.mjs","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonSecondary/ButtonSecondary.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, { useCallback } from 'react';\n\nimport { ButtonBase } from '../../../ButtonBase';\nimport type { IconColor } from '../../../Icon';\nimport { IconSize } from '../../../Icon';\nimport { TextVariant, FontWeight } from '../../../Text';\n\nimport type { ButtonSecondaryProps } from './ButtonSecondary.types';\n\nexport const ButtonSecondary = ({\n children,\n textProps,\n spinnerProps,\n startIconProps,\n endIconProps,\n isDanger = false,\n isInverse = false,\n isLoading = false,\n twClassName = '',\n style,\n ...props\n}: ButtonSecondaryProps) => {\n const tw = useTailwind();\n\n const getContainerClassName = useCallback(\n (pressed: boolean): string => {\n const baseClasses = `\n border-[1.5px]\n ${twClassName}\n `;\n\n let backgroundClass = '';\n let borderClass = '';\n\n if (isInverse && isDanger) {\n backgroundClass =\n pressed || isLoading ? 'bg-default-pressed' : 'bg-default';\n borderClass =\n pressed || isLoading\n ? 'border-background-default-pressed'\n : 'border-background-default';\n } else if (isDanger) {\n backgroundClass =\n pressed || isLoading ? 'bg-muted-pressed' : 'bg-muted';\n borderClass = 'border-transparent';\n } else {\n backgroundClass = isInverse\n ? pressed || isLoading\n ? 'bg-pressed'\n : 'bg-transparent'\n : pressed || isLoading\n ? 'bg-muted-pressed'\n : 'bg-muted';\n borderClass = isInverse\n ? 'border-primary-inverse'\n : 'border-transparent';\n }\n\n return `${backgroundClass} ${borderClass} ${baseClasses}`;\n },\n [isInverse, isDanger, isLoading, twClassName],\n );\n\n const getTextClassName = useCallback(\n (pressed: boolean): string => {\n if (isDanger) {\n return pressed || isLoading\n ? 'text-error-default-pressed'\n : 'text-error-default';\n } else if (isInverse) {\n return 'text-primary-inverse';\n } else {\n return 'text-default';\n }\n },\n [isDanger, isInverse, isLoading],\n );\n\n return (\n <ButtonBase\n textProps={{\n variant: TextVariant.BodyMd,\n fontWeight: FontWeight.Medium,\n numberOfLines: 1,\n ellipsizeMode: 'clip',\n ...textProps,\n }}\n spinnerProps={{\n ...spinnerProps,\n }}\n startIconProps={{\n size: IconSize.Sm,\n ...startIconProps,\n }}\n endIconProps={{\n size: IconSize.Sm,\n ...endIconProps,\n }}\n isLoading={isLoading}\n twClassName={getContainerClassName}\n textClassName={getTextClassName}\n iconClassName={getTextClassName}\n style={style}\n {...props}\n >\n {children}\n </ButtonBase>\n );\n};\n"]}
|
|
@@ -29,79 +29,76 @@ const react_1 = __importStar(require("react"));
|
|
|
29
29
|
const ButtonBase_1 = require("../../../ButtonBase/index.cjs");
|
|
30
30
|
const Icon_1 = require("../../../Icon/index.cjs");
|
|
31
31
|
const Text_1 = require("../../../Text/index.cjs");
|
|
32
|
-
const ButtonTertiary = ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger = false, isInverse = false, isLoading = false,
|
|
33
|
-
const [isPressed, setIsPressed] = (0, react_1.useState)(false);
|
|
32
|
+
const ButtonTertiary = ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger = false, isInverse = false, isLoading = false, twClassName = '', style, ...props }) => {
|
|
34
33
|
const tw = (0, design_system_twrnc_preset_1.useTailwind)();
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
?
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
34
|
+
const getContainerClassName = (0, react_1.useCallback)((pressed) => {
|
|
35
|
+
const baseClasses = `
|
|
36
|
+
${isInverse && !isDanger ? 'border-[1.5px]' : 'border-0'}
|
|
37
|
+
${twClassName}
|
|
38
|
+
`;
|
|
39
|
+
let backgroundClass = '';
|
|
40
|
+
let borderClass = '';
|
|
41
|
+
if (isInverse && isDanger) {
|
|
42
|
+
backgroundClass =
|
|
43
|
+
pressed || isLoading ? 'bg-default-pressed' : 'bg-default';
|
|
44
|
+
borderClass =
|
|
45
|
+
pressed || isLoading
|
|
46
|
+
? 'border-background-default-pressed'
|
|
47
|
+
: 'border-background-default';
|
|
48
|
+
}
|
|
49
|
+
else if (isDanger) {
|
|
50
|
+
backgroundClass =
|
|
51
|
+
pressed || isLoading ? 'bg-error-muted-pressed' : 'bg-transparent';
|
|
52
|
+
borderClass =
|
|
53
|
+
pressed || isLoading
|
|
54
|
+
? 'border-error-muted-pressed'
|
|
55
|
+
: 'border-transparent';
|
|
56
|
+
}
|
|
57
|
+
else if (isInverse) {
|
|
58
|
+
backgroundClass =
|
|
59
|
+
pressed || isLoading ? 'bg-pressed' : 'bg-transparent';
|
|
60
|
+
borderClass = 'border-primary-inverse';
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
backgroundClass =
|
|
64
|
+
pressed || isLoading ? 'bg-pressed' : 'bg-transparent';
|
|
65
|
+
borderClass =
|
|
66
|
+
pressed || isLoading
|
|
63
67
|
? 'border-background-pressed'
|
|
64
|
-
: 'border-transparent'
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
: 'border-transparent';
|
|
69
|
+
}
|
|
70
|
+
return `${backgroundClass} ${borderClass} ${baseClasses}`;
|
|
71
|
+
}, [isInverse, isDanger, isLoading, twClassName]);
|
|
72
|
+
const getTextClassName = (0, react_1.useCallback)((pressed) => {
|
|
73
|
+
if (isDanger) {
|
|
74
|
+
return pressed || isLoading
|
|
75
|
+
? 'text-error-default-pressed'
|
|
76
|
+
: 'text-error-default';
|
|
77
|
+
}
|
|
78
|
+
else if (isInverse) {
|
|
79
|
+
return 'text-primary-inverse';
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return pressed || isLoading
|
|
73
83
|
? 'text-primary-default-pressed'
|
|
74
84
|
: 'text-primary-default';
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
onPressIn?.(event);
|
|
78
|
-
};
|
|
79
|
-
const onPressOutHandler = (event) => {
|
|
80
|
-
setIsPressed(false);
|
|
81
|
-
onPressOut?.(event);
|
|
82
|
-
};
|
|
85
|
+
}
|
|
86
|
+
}, [isDanger, isInverse, isLoading]);
|
|
83
87
|
return (<ButtonBase_1.ButtonBase textProps={{
|
|
84
88
|
variant: Text_1.TextVariant.BodyMd,
|
|
85
89
|
fontWeight: Text_1.FontWeight.Medium,
|
|
86
90
|
numberOfLines: 1,
|
|
87
91
|
ellipsizeMode: 'clip',
|
|
88
92
|
...textProps,
|
|
89
|
-
twClassName: `${twTextClassNames} ${textProps?.twClassName ?? ''}`,
|
|
90
93
|
}} spinnerProps={{
|
|
91
|
-
color: twTextClassNames,
|
|
92
|
-
loadingTextProps: {
|
|
93
|
-
twClassName: twTextClassNames,
|
|
94
|
-
},
|
|
95
94
|
...spinnerProps,
|
|
96
95
|
}} startIconProps={{
|
|
97
96
|
size: Icon_1.IconSize.Sm,
|
|
98
97
|
...startIconProps,
|
|
99
|
-
twClassName: `${twTextClassNames} ${startIconProps?.twClassName ?? ''}`,
|
|
100
98
|
}} endIconProps={{
|
|
101
99
|
size: Icon_1.IconSize.Sm,
|
|
102
100
|
...endIconProps,
|
|
103
|
-
|
|
104
|
-
}} isLoading={isLoading} onPressIn={onPressInHandler} onPressOut={onPressOutHandler} style={[tw `${twContainerClassNames}`, style]} {...props}>
|
|
101
|
+
}} isLoading={isLoading} twClassName={getContainerClassName} textClassName={getTextClassName} iconClassName={getTextClassName} style={style} {...props}>
|
|
105
102
|
{children}
|
|
106
103
|
</ButtonBase_1.ButtonBase>);
|
|
107
104
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonTertiary.cjs","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8FAA4E;AAC5E,+
|
|
1
|
+
{"version":3,"file":"ButtonTertiary.cjs","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, { useCallback } from 'react';\n\nimport { ButtonBase } from '../../../ButtonBase';\nimport type { IconColor } from '../../../Icon';\nimport { IconSize } from '../../../Icon';\nimport { TextVariant, FontWeight } from '../../../Text';\n\nimport type { ButtonTertiaryProps } from './ButtonTertiary.types';\n\nexport const ButtonTertiary = ({\n children,\n textProps,\n spinnerProps,\n startIconProps,\n endIconProps,\n isDanger = false,\n isInverse = false,\n isLoading = false,\n twClassName = '',\n style,\n ...props\n}: ButtonTertiaryProps) => {\n const tw = useTailwind();\n\n const getContainerClassName = useCallback(\n (pressed: boolean): string => {\n const baseClasses = `\n ${isInverse && !isDanger ? 'border-[1.5px]' : 'border-0'}\n ${twClassName}\n `;\n\n let backgroundClass = '';\n let borderClass = '';\n\n if (isInverse && isDanger) {\n backgroundClass =\n pressed || isLoading ? 'bg-default-pressed' : 'bg-default';\n borderClass =\n pressed || isLoading\n ? 'border-background-default-pressed'\n : 'border-background-default';\n } else if (isDanger) {\n backgroundClass =\n pressed || isLoading ? 'bg-error-muted-pressed' : 'bg-transparent';\n borderClass =\n pressed || isLoading\n ? 'border-error-muted-pressed'\n : 'border-transparent';\n } else if (isInverse) {\n backgroundClass =\n pressed || isLoading ? 'bg-pressed' : 'bg-transparent';\n borderClass = 'border-primary-inverse';\n } else {\n backgroundClass =\n pressed || isLoading ? 'bg-pressed' : 'bg-transparent';\n borderClass =\n pressed || isLoading\n ? 'border-background-pressed'\n : 'border-transparent';\n }\n\n return `${backgroundClass} ${borderClass} ${baseClasses}`;\n },\n [isInverse, isDanger, isLoading, twClassName],\n );\n\n const getTextClassName = useCallback(\n (pressed: boolean): string => {\n if (isDanger) {\n return pressed || isLoading\n ? 'text-error-default-pressed'\n : 'text-error-default';\n } else if (isInverse) {\n return 'text-primary-inverse';\n } else {\n return pressed || isLoading\n ? 'text-primary-default-pressed'\n : 'text-primary-default';\n }\n },\n [isDanger, isInverse, isLoading],\n );\n\n return (\n <ButtonBase\n textProps={{\n variant: TextVariant.BodyMd,\n fontWeight: FontWeight.Medium,\n numberOfLines: 1,\n ellipsizeMode: 'clip',\n ...textProps,\n }}\n spinnerProps={{\n ...spinnerProps,\n }}\n startIconProps={{\n size: IconSize.Sm,\n ...startIconProps,\n }}\n endIconProps={{\n size: IconSize.Sm,\n ...endIconProps,\n }}\n isLoading={isLoading}\n twClassName={getContainerClassName}\n textClassName={getTextClassName}\n iconClassName={getTextClassName}\n style={style}\n {...props}\n >\n {children}\n </ButtonBase>\n );\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { ButtonTertiaryProps } from "./ButtonTertiary.types.cjs";
|
|
3
|
-
export declare const ButtonTertiary: ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger, isInverse, isLoading,
|
|
3
|
+
export declare const ButtonTertiary: ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger, isInverse, isLoading, twClassName, style, ...props }: ButtonTertiaryProps) => React.JSX.Element;
|
|
4
4
|
//# sourceMappingURL=ButtonTertiary.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonTertiary.d.cts","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"ButtonTertiary.d.cts","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,cAAc;AAO3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,mCAA+B;AAElE,eAAO,MAAM,cAAc,sIAYxB,mBAAmB,sBA4FrB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { ButtonTertiaryProps } from "./ButtonTertiary.types.mjs";
|
|
3
|
-
export declare const ButtonTertiary: ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger, isInverse, isLoading,
|
|
3
|
+
export declare const ButtonTertiary: ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger, isInverse, isLoading, twClassName, style, ...props }: ButtonTertiaryProps) => React.JSX.Element;
|
|
4
4
|
//# sourceMappingURL=ButtonTertiary.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonTertiary.d.mts","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"ButtonTertiary.d.mts","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,cAAc;AAO3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,mCAA+B;AAElE,eAAO,MAAM,cAAc,sIAYxB,mBAAmB,sBA4FrB,CAAC"}
|
|
@@ -5,84 +5,81 @@ function $importDefault(module) {
|
|
|
5
5
|
return module;
|
|
6
6
|
}
|
|
7
7
|
import { useTailwind } from "@metamask-previews/design-system-twrnc-preset";
|
|
8
|
-
import $React, {
|
|
8
|
+
import $React, { useCallback } from "react";
|
|
9
9
|
const React = $importDefault($React);
|
|
10
10
|
import { ButtonBase } from "../../../ButtonBase/index.mjs";
|
|
11
11
|
import { IconSize } from "../../../Icon/index.mjs";
|
|
12
12
|
import { TextVariant, FontWeight } from "../../../Text/index.mjs";
|
|
13
|
-
export const ButtonTertiary = ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger = false, isInverse = false, isLoading = false,
|
|
14
|
-
const [isPressed, setIsPressed] = useState(false);
|
|
13
|
+
export const ButtonTertiary = ({ children, textProps, spinnerProps, startIconProps, endIconProps, isDanger = false, isInverse = false, isLoading = false, twClassName = '', style, ...props }) => {
|
|
15
14
|
const tw = useTailwind();
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
?
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
15
|
+
const getContainerClassName = useCallback((pressed) => {
|
|
16
|
+
const baseClasses = `
|
|
17
|
+
${isInverse && !isDanger ? 'border-[1.5px]' : 'border-0'}
|
|
18
|
+
${twClassName}
|
|
19
|
+
`;
|
|
20
|
+
let backgroundClass = '';
|
|
21
|
+
let borderClass = '';
|
|
22
|
+
if (isInverse && isDanger) {
|
|
23
|
+
backgroundClass =
|
|
24
|
+
pressed || isLoading ? 'bg-default-pressed' : 'bg-default';
|
|
25
|
+
borderClass =
|
|
26
|
+
pressed || isLoading
|
|
27
|
+
? 'border-background-default-pressed'
|
|
28
|
+
: 'border-background-default';
|
|
29
|
+
}
|
|
30
|
+
else if (isDanger) {
|
|
31
|
+
backgroundClass =
|
|
32
|
+
pressed || isLoading ? 'bg-error-muted-pressed' : 'bg-transparent';
|
|
33
|
+
borderClass =
|
|
34
|
+
pressed || isLoading
|
|
35
|
+
? 'border-error-muted-pressed'
|
|
36
|
+
: 'border-transparent';
|
|
37
|
+
}
|
|
38
|
+
else if (isInverse) {
|
|
39
|
+
backgroundClass =
|
|
40
|
+
pressed || isLoading ? 'bg-pressed' : 'bg-transparent';
|
|
41
|
+
borderClass = 'border-primary-inverse';
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
backgroundClass =
|
|
45
|
+
pressed || isLoading ? 'bg-pressed' : 'bg-transparent';
|
|
46
|
+
borderClass =
|
|
47
|
+
pressed || isLoading
|
|
44
48
|
? 'border-background-pressed'
|
|
45
|
-
: 'border-transparent'
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
: 'border-transparent';
|
|
50
|
+
}
|
|
51
|
+
return `${backgroundClass} ${borderClass} ${baseClasses}`;
|
|
52
|
+
}, [isInverse, isDanger, isLoading, twClassName]);
|
|
53
|
+
const getTextClassName = useCallback((pressed) => {
|
|
54
|
+
if (isDanger) {
|
|
55
|
+
return pressed || isLoading
|
|
56
|
+
? 'text-error-default-pressed'
|
|
57
|
+
: 'text-error-default';
|
|
58
|
+
}
|
|
59
|
+
else if (isInverse) {
|
|
60
|
+
return 'text-primary-inverse';
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return pressed || isLoading
|
|
54
64
|
? 'text-primary-default-pressed'
|
|
55
65
|
: 'text-primary-default';
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
onPressIn?.(event);
|
|
59
|
-
};
|
|
60
|
-
const onPressOutHandler = (event) => {
|
|
61
|
-
setIsPressed(false);
|
|
62
|
-
onPressOut?.(event);
|
|
63
|
-
};
|
|
66
|
+
}
|
|
67
|
+
}, [isDanger, isInverse, isLoading]);
|
|
64
68
|
return (<ButtonBase textProps={{
|
|
65
69
|
variant: TextVariant.BodyMd,
|
|
66
70
|
fontWeight: FontWeight.Medium,
|
|
67
71
|
numberOfLines: 1,
|
|
68
72
|
ellipsizeMode: 'clip',
|
|
69
73
|
...textProps,
|
|
70
|
-
twClassName: `${twTextClassNames} ${textProps?.twClassName ?? ''}`,
|
|
71
74
|
}} spinnerProps={{
|
|
72
|
-
color: twTextClassNames,
|
|
73
|
-
loadingTextProps: {
|
|
74
|
-
twClassName: twTextClassNames,
|
|
75
|
-
},
|
|
76
75
|
...spinnerProps,
|
|
77
76
|
}} startIconProps={{
|
|
78
77
|
size: IconSize.Sm,
|
|
79
78
|
...startIconProps,
|
|
80
|
-
twClassName: `${twTextClassNames} ${startIconProps?.twClassName ?? ''}`,
|
|
81
79
|
}} endIconProps={{
|
|
82
80
|
size: IconSize.Sm,
|
|
83
81
|
...endIconProps,
|
|
84
|
-
|
|
85
|
-
}} isLoading={isLoading} onPressIn={onPressInHandler} onPressOut={onPressOutHandler} style={[tw `${twContainerClassNames}`, style]} {...props}>
|
|
82
|
+
}} isLoading={isLoading} twClassName={getContainerClassName} textClassName={getTextClassName} iconClassName={getTextClassName} style={style} {...props}>
|
|
86
83
|
{children}
|
|
87
84
|
</ButtonBase>);
|
|
88
85
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonTertiary.mjs","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,sDAAsD;AAC5E,OAAO,QAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ButtonTertiary.mjs","sourceRoot":"","sources":["../../../../../src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,sDAAsD;AAC5E,OAAO,QAAO,EAAE,WAAW,EAAE,cAAc;;AAE3C,OAAO,EAAE,UAAU,EAAE,sCAA4B;AAEjD,OAAO,EAAE,QAAQ,EAAE,gCAAsB;AACzC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gCAAsB;AAIxD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,EAAE,EAChB,KAAK,EACL,GAAG,KAAK,EACY,EAAE,EAAE;IACxB,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,OAAgB,EAAU,EAAE;QAC3B,MAAM,WAAW,GAAG;UAChB,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU;UACtD,WAAW;OACd,CAAC;QAEF,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,SAAS,IAAI,QAAQ,EAAE;YACzB,eAAe;gBACb,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC;YAC7D,WAAW;gBACT,OAAO,IAAI,SAAS;oBAClB,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,2BAA2B,CAAC;SACnC;aAAM,IAAI,QAAQ,EAAE;YACnB,eAAe;gBACb,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACrE,WAAW;gBACT,OAAO,IAAI,SAAS;oBAClB,CAAC,CAAC,4BAA4B;oBAC9B,CAAC,CAAC,oBAAoB,CAAC;SAC5B;aAAM,IAAI,SAAS,EAAE;YACpB,eAAe;gBACb,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACzD,WAAW,GAAG,wBAAwB,CAAC;SACxC;aAAM;YACL,eAAe;gBACb,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACzD,WAAW;gBACT,OAAO,IAAI,SAAS;oBAClB,CAAC,CAAC,2BAA2B;oBAC7B,CAAC,CAAC,oBAAoB,CAAC;SAC5B;QAED,OAAO,GAAG,eAAe,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;IAC5D,CAAC,EACD,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAC9C,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,OAAgB,EAAU,EAAE;QAC3B,IAAI,QAAQ,EAAE;YACZ,OAAO,OAAO,IAAI,SAAS;gBACzB,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,oBAAoB,CAAC;SAC1B;aAAM,IAAI,SAAS,EAAE;YACpB,OAAO,sBAAsB,CAAC;SAC/B;aAAM;YACL,OAAO,OAAO,IAAI,SAAS;gBACzB,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,sBAAsB,CAAC;SAC5B;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CACjC,CAAC;IAEF,OAAO,CACL,CAAC,UAAU,CACT,SAAS,CAAC,CAAC;YACT,OAAO,EAAE,WAAW,CAAC,MAAM;YAC3B,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,MAAM;YACrB,GAAG,SAAS;SACb,CAAC,CACF,YAAY,CAAC,CAAC;YACZ,GAAG,YAAY;SAChB,CAAC,CACF,cAAc,CAAC,CAAC;YACd,IAAI,EAAE,QAAQ,CAAC,EAAE;YACjB,GAAG,cAAc;SAClB,CAAC,CACF,YAAY,CAAC,CAAC;YACZ,IAAI,EAAE,QAAQ,CAAC,EAAE;YACjB,GAAG,YAAY;SAChB,CAAC,CACF,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,WAAW,CAAC,CAAC,qBAAqB,CAAC,CACnC,aAAa,CAAC,CAAC,gBAAgB,CAAC,CAChC,aAAa,CAAC,CAAC,gBAAgB,CAAC,CAChC,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,IAAI,KAAK,CAAC,CAEV;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,UAAU,CAAC,CACd,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, { useCallback } from 'react';\n\nimport { ButtonBase } from '../../../ButtonBase';\nimport type { IconColor } from '../../../Icon';\nimport { IconSize } from '../../../Icon';\nimport { TextVariant, FontWeight } from '../../../Text';\n\nimport type { ButtonTertiaryProps } from './ButtonTertiary.types';\n\nexport const ButtonTertiary = ({\n children,\n textProps,\n spinnerProps,\n startIconProps,\n endIconProps,\n isDanger = false,\n isInverse = false,\n isLoading = false,\n twClassName = '',\n style,\n ...props\n}: ButtonTertiaryProps) => {\n const tw = useTailwind();\n\n const getContainerClassName = useCallback(\n (pressed: boolean): string => {\n const baseClasses = `\n ${isInverse && !isDanger ? 'border-[1.5px]' : 'border-0'}\n ${twClassName}\n `;\n\n let backgroundClass = '';\n let borderClass = '';\n\n if (isInverse && isDanger) {\n backgroundClass =\n pressed || isLoading ? 'bg-default-pressed' : 'bg-default';\n borderClass =\n pressed || isLoading\n ? 'border-background-default-pressed'\n : 'border-background-default';\n } else if (isDanger) {\n backgroundClass =\n pressed || isLoading ? 'bg-error-muted-pressed' : 'bg-transparent';\n borderClass =\n pressed || isLoading\n ? 'border-error-muted-pressed'\n : 'border-transparent';\n } else if (isInverse) {\n backgroundClass =\n pressed || isLoading ? 'bg-pressed' : 'bg-transparent';\n borderClass = 'border-primary-inverse';\n } else {\n backgroundClass =\n pressed || isLoading ? 'bg-pressed' : 'bg-transparent';\n borderClass =\n pressed || isLoading\n ? 'border-background-pressed'\n : 'border-transparent';\n }\n\n return `${backgroundClass} ${borderClass} ${baseClasses}`;\n },\n [isInverse, isDanger, isLoading, twClassName],\n );\n\n const getTextClassName = useCallback(\n (pressed: boolean): string => {\n if (isDanger) {\n return pressed || isLoading\n ? 'text-error-default-pressed'\n : 'text-error-default';\n } else if (isInverse) {\n return 'text-primary-inverse';\n } else {\n return pressed || isLoading\n ? 'text-primary-default-pressed'\n : 'text-primary-default';\n }\n },\n [isDanger, isInverse, isLoading],\n );\n\n return (\n <ButtonBase\n textProps={{\n variant: TextVariant.BodyMd,\n fontWeight: FontWeight.Medium,\n numberOfLines: 1,\n ellipsizeMode: 'clip',\n ...textProps,\n }}\n spinnerProps={{\n ...spinnerProps,\n }}\n startIconProps={{\n size: IconSize.Sm,\n ...startIconProps,\n }}\n endIconProps={{\n size: IconSize.Sm,\n ...endIconProps,\n }}\n isLoading={isLoading}\n twClassName={getContainerClassName}\n textClassName={getTextClassName}\n iconClassName={getTextClassName}\n style={style}\n {...props}\n >\n {children}\n </ButtonBase>\n );\n};\n"]}
|