rn-feav-ui 1.0.2 → 1.0.3

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.
Files changed (56) hide show
  1. package/dist/components/Accordion/index.d.ts +8 -0
  2. package/dist/components/Accordion/index.js +65 -0
  3. package/dist/components/Alert/index.d.ts +10 -0
  4. package/dist/components/Alert/index.js +84 -0
  5. package/dist/components/Avatar/index.d.ts +7 -0
  6. package/dist/components/Avatar/index.js +66 -0
  7. package/dist/components/Badge/index.d.ts +4 -2
  8. package/dist/components/Badge/index.js +29 -6
  9. package/dist/components/BottomSheet/index.d.ts +2 -2
  10. package/dist/components/BottomSheet/index.js +21 -8
  11. package/dist/components/Button/index.d.ts +11 -3
  12. package/dist/components/Button/index.js +133 -23
  13. package/dist/components/Card/index.d.ts +8 -0
  14. package/dist/components/Card/index.js +59 -0
  15. package/dist/components/Checkbox/index.d.ts +7 -0
  16. package/dist/components/Checkbox/index.js +75 -0
  17. package/dist/components/Dialog/index.d.ts +14 -0
  18. package/dist/components/Dialog/index.js +77 -0
  19. package/dist/components/GlassCard/index.d.ts +1 -1
  20. package/dist/components/GlassCard/index.js +10 -5
  21. package/dist/components/GlassCard/styles.d.ts +23 -1
  22. package/dist/components/GlassCard/styles.js +17 -2
  23. package/dist/components/Input/index.d.ts +4 -2
  24. package/dist/components/Input/index.js +20 -13
  25. package/dist/components/Label/index.d.ts +6 -0
  26. package/dist/components/Label/index.js +52 -0
  27. package/dist/components/ListItem/index.d.ts +2 -2
  28. package/dist/components/ListItem/index.js +27 -9
  29. package/dist/components/Modal/index.d.ts +2 -2
  30. package/dist/components/Modal/index.js +29 -9
  31. package/dist/components/Navbar/index.d.ts +2 -2
  32. package/dist/components/Navbar/index.js +19 -8
  33. package/dist/components/Progress/index.d.ts +6 -0
  34. package/dist/components/Progress/index.js +65 -0
  35. package/dist/components/Separator/index.d.ts +5 -0
  36. package/dist/components/Separator/index.js +57 -0
  37. package/dist/components/Skeleton/index.d.ts +1 -1
  38. package/dist/components/Skeleton/index.js +18 -5
  39. package/dist/components/Switch/index.d.ts +9 -0
  40. package/dist/components/Switch/index.js +47 -0
  41. package/dist/components/TabBar/index.d.ts +2 -2
  42. package/dist/components/TabBar/index.js +20 -6
  43. package/dist/components/Tabs/index.d.ts +18 -0
  44. package/dist/components/Tabs/index.js +102 -0
  45. package/dist/components/Textarea/index.d.ts +6 -0
  46. package/dist/components/Textarea/index.js +62 -0
  47. package/dist/components/ThemeSwitch/index.d.ts +1 -1
  48. package/dist/components/ThemeSwitch/index.js +3 -3
  49. package/dist/components/Typography/index.d.ts +9 -0
  50. package/dist/components/Typography/index.js +64 -0
  51. package/dist/components/index.d.ts +14 -0
  52. package/dist/components/index.js +14 -0
  53. package/dist/examples/Showcase.d.ts +2 -0
  54. package/dist/examples/Showcase.js +131 -0
  55. package/package.json +21 -4
  56. package/readme.md +80 -14
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export declare const AccordionFEA: ({ title, children, defaultOpen, style, }: {
4
+ title: string;
5
+ children: React.ReactNode;
6
+ defaultOpen?: boolean;
7
+ style?: StyleProp<ViewStyle>;
8
+ }) => React.JSX.Element;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AccordionFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var Card_1 = require("../Card");
41
+ var AccordionFEA = function (_a) {
42
+ var title = _a.title, children = _a.children, _b = _a.defaultOpen, defaultOpen = _b === void 0 ? false : _b, style = _a.style;
43
+ var _c = React.useState(defaultOpen), open = _c[0], setOpen = _c[1];
44
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
45
+ return (React.createElement(Card_1.CardFEA, { style: style },
46
+ React.createElement(react_native_1.Pressable, { style: styles.trigger, onPress: function () { return setOpen(function (v) { return !v; }); } },
47
+ React.createElement(react_native_1.Text, { style: [styles.title, { color: theme.colors.text }] }, title),
48
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.text, opacity: 0.7 } }, open ? "-" : "+")),
49
+ open ? React.createElement(react_native_1.View, { style: styles.content }, children) : null));
50
+ };
51
+ exports.AccordionFEA = AccordionFEA;
52
+ var styles = react_native_1.StyleSheet.create({
53
+ trigger: {
54
+ flexDirection: "row",
55
+ justifyContent: "space-between",
56
+ alignItems: "center",
57
+ },
58
+ title: {
59
+ fontSize: 14,
60
+ fontWeight: "600",
61
+ },
62
+ content: {
63
+ paddingTop: 10,
64
+ },
65
+ });
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ type AlertVariant = "default" | "destructive";
4
+ export declare const AlertFEA: ({ title, description, variant, style, }: {
5
+ title: string;
6
+ description?: string;
7
+ variant?: AlertVariant;
8
+ style?: StyleProp<ViewStyle>;
9
+ }) => React.JSX.Element;
10
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AlertFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var AlertFEA = function (_a) {
41
+ var title = _a.title, description = _a.description, _b = _a.variant, variant = _b === void 0 ? "default" : _b, style = _a.style;
42
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
+ var destructive = variant === "destructive";
44
+ return (React.createElement(react_native_1.View, { style: [
45
+ styles.container,
46
+ {
47
+ backgroundColor: destructive
48
+ ? theme.mode === "light"
49
+ ? "#fef2f2"
50
+ : "rgba(127,29,29,0.35)"
51
+ : theme.mode === "light"
52
+ ? "#ffffff"
53
+ : "#020617",
54
+ borderColor: destructive
55
+ ? theme.mode === "light"
56
+ ? "#fecaca"
57
+ : "rgba(248,113,113,0.4)"
58
+ : theme.mode === "light"
59
+ ? "#e5e7eb"
60
+ : "#1f2937",
61
+ },
62
+ style,
63
+ ] },
64
+ React.createElement(react_native_1.Text, { style: [styles.title, { color: destructive ? "#dc2626" : theme.colors.text }] }, title),
65
+ description ? (React.createElement(react_native_1.Text, { style: [styles.description, { color: destructive ? "#b91c1c" : theme.colors.text }] }, description)) : null));
66
+ };
67
+ exports.AlertFEA = AlertFEA;
68
+ var styles = react_native_1.StyleSheet.create({
69
+ container: {
70
+ borderWidth: 1,
71
+ borderRadius: 12,
72
+ paddingHorizontal: 14,
73
+ paddingVertical: 12,
74
+ },
75
+ title: {
76
+ fontSize: 14,
77
+ fontWeight: "600",
78
+ },
79
+ description: {
80
+ marginTop: 4,
81
+ fontSize: 13,
82
+ opacity: 0.9,
83
+ },
84
+ });
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import { ImageSourcePropType } from "react-native";
3
+ export declare const AvatarFEA: ({ source, fallback, size, }: {
4
+ source?: ImageSourcePropType;
5
+ fallback?: string;
6
+ size?: number;
7
+ }) => React.JSX.Element;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AvatarFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var AvatarFEA = function (_a) {
41
+ var source = _a.source, fallback = _a.fallback, _b = _a.size, size = _b === void 0 ? 40 : _b;
42
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
+ var initials = (fallback || "?").slice(0, 2).toUpperCase();
44
+ if (source) {
45
+ return React.createElement(react_native_1.Image, { source: source, style: { width: size, height: size, borderRadius: size / 2 } });
46
+ }
47
+ return (React.createElement(react_native_1.View, { style: [
48
+ styles.fallback,
49
+ {
50
+ width: size,
51
+ height: size,
52
+ borderRadius: size / 2,
53
+ backgroundColor: theme.mode === "light" ? "#f3f4f6" : "#1f2937",
54
+ borderColor: theme.mode === "light" ? "#e5e7eb" : "#374151",
55
+ },
56
+ ] },
57
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.text, fontWeight: "600", fontSize: Math.max(12, size / 3) } }, initials)));
58
+ };
59
+ exports.AvatarFEA = AvatarFEA;
60
+ var styles = react_native_1.StyleSheet.create({
61
+ fallback: {
62
+ borderWidth: 1,
63
+ alignItems: "center",
64
+ justifyContent: "center",
65
+ },
66
+ });
@@ -1,6 +1,8 @@
1
1
  import * as React from "react";
2
2
  import { StyleProp, ViewStyle } from "react-native";
3
- export declare const Badge: ({ label, style }: {
3
+ type BadgeProps = {
4
4
  label: string;
5
5
  style?: StyleProp<ViewStyle>;
6
- }) => React.JSX.Element;
6
+ };
7
+ export declare const BadgeFEA: ({ label, style }: BadgeProps) => React.JSX.Element;
8
+ export {};
@@ -33,15 +33,38 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Badge = void 0;
36
+ exports.BadgeFEA = void 0;
37
37
  var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
38
38
  var React = __importStar(require("react"));
39
39
  var react_native_1 = require("react-native");
40
- var GlassCard_1 = require("../GlassCard");
41
- var Badge = function (_a) {
40
+ var BadgeFEA = function (_a) {
42
41
  var label = _a.label, _b = _a.style, style = _b === void 0 ? {} : _b;
43
42
  var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
44
- return (React.createElement(GlassCard_1.GlassCard, { style: [{ padding: 6, alignSelf: 'flex-start' }, style] },
45
- React.createElement(react_native_1.Text, { style: { color: theme.colors.text } }, label)));
43
+ var isLight = theme.mode === "light";
44
+ return (React.createElement(react_native_1.View, { style: [
45
+ styles.badge,
46
+ {
47
+ backgroundColor: isLight ? "#eef2ff" : "rgba(30,64,175,0.35)",
48
+ borderColor: isLight ? "#c7d2fe" : "rgba(129,140,248,0.6)",
49
+ },
50
+ style,
51
+ ] },
52
+ React.createElement(react_native_1.Text, { style: [
53
+ styles.label,
54
+ { color: isLight ? "#1d4ed8" : "#c7d2fe" },
55
+ ] }, label)));
46
56
  };
47
- exports.Badge = Badge;
57
+ exports.BadgeFEA = BadgeFEA;
58
+ var styles = react_native_1.StyleSheet.create({
59
+ badge: {
60
+ paddingHorizontal: 10,
61
+ paddingVertical: 4,
62
+ borderRadius: 999,
63
+ borderWidth: 1,
64
+ alignSelf: "flex-start",
65
+ },
66
+ label: {
67
+ fontSize: 12,
68
+ fontWeight: "500",
69
+ },
70
+ });
@@ -1,6 +1,6 @@
1
- import { StyleProp, ViewStyle } from "react-native";
2
1
  import * as React from "react";
3
- export declare const BottomSheet: ({ children, style }: {
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export declare const BottomSheetFEA: ({ children, style, }: {
4
4
  children: React.ReactNode;
5
5
  style?: StyleProp<ViewStyle>;
6
6
  }) => React.JSX.Element;
@@ -36,14 +36,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.BottomSheet = void 0;
40
- var GlassCard_1 = require("../../components/GlassCard");
41
- var react_native_reanimated_1 = __importDefault(require("react-native-reanimated"));
42
- var styles_1 = require("../../components/GlassCard/styles");
39
+ exports.BottomSheetFEA = void 0;
43
40
  var React = __importStar(require("react"));
44
- var BottomSheet = function (_a) {
41
+ var react_native_reanimated_1 = __importDefault(require("react-native-reanimated"));
42
+ var react_native_1 = require("react-native");
43
+ var Card_1 = require("../Card");
44
+ var BottomSheetFEA = function (_a) {
45
45
  var children = _a.children, _b = _a.style, style = _b === void 0 ? {} : _b;
46
- return (React.createElement(react_native_reanimated_1.default.View, { style: [{ width: "100%" }, styles_1.glassCardStyles.bottomSheet, style] },
47
- React.createElement(GlassCard_1.GlassCard, null, children)));
46
+ return (React.createElement(react_native_reanimated_1.default.View, { style: [styles.container, style] },
47
+ React.createElement(Card_1.CardFEA, { style: styles.card }, children)));
48
48
  };
49
- exports.BottomSheet = BottomSheet;
49
+ exports.BottomSheetFEA = BottomSheetFEA;
50
+ var styles = react_native_1.StyleSheet.create({
51
+ container: {
52
+ position: "absolute",
53
+ left: 0,
54
+ right: 0,
55
+ bottom: 0,
56
+ width: "100%",
57
+ },
58
+ card: {
59
+ borderRadius: 16,
60
+ overflow: "hidden",
61
+ },
62
+ });
@@ -1,6 +1,14 @@
1
1
  import * as React from "react";
2
- export declare const Button: ({ title, variant, onPress }: {
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ type ButtonVariant = "primary" | "glass" | "soft" | "outline" | "ghost";
4
+ type ButtonSize = "default" | "sm" | "lg";
5
+ type ButtonProps = {
3
6
  title: string;
4
- variant: "primary" | "glass" | "soft";
7
+ variant?: ButtonVariant;
8
+ size?: ButtonSize;
5
9
  onPress: () => void;
6
- }) => React.JSX.Element;
10
+ disabled?: boolean;
11
+ style?: StyleProp<ViewStyle>;
12
+ };
13
+ export declare const ButtonFEA: ({ title, variant, size, onPress, disabled, style, }: ButtonProps) => React.JSX.Element;
14
+ export {};
@@ -33,34 +33,144 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Button = void 0;
36
+ exports.ButtonFEA = void 0;
37
37
  var React = __importStar(require("react"));
38
38
  var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
39
39
  var react_native_1 = require("react-native");
40
40
  var GlassCard_1 = require("../GlassCard");
41
- var expo_linear_gradient_1 = require("expo-linear-gradient");
42
- var Button = function (_a) {
43
- var title = _a.title, _b = _a.variant, variant = _b === void 0 ? 'primary' : _b, onPress = _a.onPress;
41
+ var ButtonFEA = function (_a) {
42
+ var title = _a.title, _b = _a.variant, variant = _b === void 0 ? "primary" : _b, _c = _a.size, size = _c === void 0 ? "default" : _c, onPress = _a.onPress, _d = _a.disabled, disabled = _d === void 0 ? false : _d, style = _a.style;
44
43
  var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
45
- if (variant === 'glass') {
46
- return (React.createElement(GlassCard_1.GlassCard, null,
47
- React.createElement(react_native_1.TouchableOpacity, { onPress: onPress },
48
- React.createElement(react_native_1.Text, { style: { textAlign: 'center', color: theme.colors.text } }, title))));
44
+ var sizeStyle = size === "sm"
45
+ ? styles.sizeSm
46
+ : size === "lg"
47
+ ? styles.sizeLg
48
+ : styles.sizeDefault;
49
+ if (variant === "glass") {
50
+ return (React.createElement(GlassCard_1.GlassCardFEA, { style: [styles.glassCard, style] },
51
+ React.createElement(react_native_1.TouchableOpacity, { onPress: onPress, activeOpacity: 0.85, style: [styles.baseButton, sizeStyle], disabled: disabled },
52
+ React.createElement(react_native_1.Text, { style: [
53
+ styles.text,
54
+ { color: theme.colors.text, opacity: disabled ? 0.5 : 1 },
55
+ ] }, title))));
49
56
  }
50
- if (variant === 'soft') {
51
- return (React.createElement(react_native_1.TouchableOpacity, { onPress: onPress, style: {
52
- backgroundColor: theme.colors.bg,
53
- padding: 14,
54
- borderRadius: 20,
55
- shadowColor: theme.mode === 'light' ? '#cfd6e6' : '#000',
56
- shadowOffset: { width: 6, height: 6 },
57
- shadowOpacity: 1,
58
- shadowRadius: 10,
59
- } },
60
- React.createElement(react_native_1.Text, { style: { textAlign: 'center', color: theme.colors.text } }, title)));
57
+ if (variant === "soft") {
58
+ return (React.createElement(react_native_1.TouchableOpacity, { onPress: onPress, activeOpacity: 0.9, disabled: disabled, style: [
59
+ styles.baseButton,
60
+ sizeStyle,
61
+ styles.softButton,
62
+ theme.mode === "light" ? styles.softLight : styles.softDark,
63
+ disabled && styles.disabled,
64
+ style,
65
+ ] },
66
+ React.createElement(react_native_1.Text, { style: [
67
+ styles.text,
68
+ { color: theme.colors.text, opacity: disabled ? 0.6 : 1 },
69
+ ] }, title)));
61
70
  }
62
- return (React.createElement(react_native_1.TouchableOpacity, { onPress: onPress },
63
- React.createElement(expo_linear_gradient_1.LinearGradient, { colors: [theme.colors.primary, '#9aa7ff'], style: { padding: 14, borderRadius: 20 } },
64
- React.createElement(react_native_1.Text, { style: { color: '#fff', textAlign: 'center' } }, title))));
71
+ if (variant === "outline") {
72
+ return (React.createElement(react_native_1.TouchableOpacity, { onPress: onPress, activeOpacity: 0.9, disabled: disabled, style: [
73
+ styles.baseButton,
74
+ sizeStyle,
75
+ styles.outlineButton,
76
+ {
77
+ borderColor: theme.mode === "light" ? "#e5e7eb" : "rgba(148,163,184,0.7)",
78
+ },
79
+ disabled && styles.disabled,
80
+ style,
81
+ ] },
82
+ React.createElement(react_native_1.Text, { style: [
83
+ styles.text,
84
+ {
85
+ color: theme.colors.text,
86
+ opacity: disabled ? 0.6 : 1,
87
+ },
88
+ ] }, title)));
89
+ }
90
+ if (variant === "ghost") {
91
+ return (React.createElement(react_native_1.TouchableOpacity, { onPress: onPress, activeOpacity: 0.9, disabled: disabled, style: [
92
+ styles.baseButton,
93
+ sizeStyle,
94
+ styles.ghostButton,
95
+ disabled && styles.disabledGhost,
96
+ style,
97
+ ] },
98
+ React.createElement(react_native_1.Text, { style: [
99
+ styles.text,
100
+ {
101
+ color: theme.colors.text,
102
+ opacity: disabled ? 0.5 : 1,
103
+ },
104
+ ] }, title)));
105
+ }
106
+ return (React.createElement(react_native_1.TouchableOpacity, { onPress: onPress, activeOpacity: 0.9, disabled: disabled, style: [
107
+ styles.baseButton,
108
+ sizeStyle,
109
+ { backgroundColor: theme.colors.primary },
110
+ disabled && { opacity: 0.7 },
111
+ style,
112
+ ] },
113
+ React.createElement(react_native_1.Text, { style: [
114
+ styles.text,
115
+ styles.primaryText,
116
+ disabled && { opacity: 0.8 },
117
+ ] }, title)));
65
118
  };
66
- exports.Button = Button;
119
+ exports.ButtonFEA = ButtonFEA;
120
+ var styles = react_native_1.StyleSheet.create({
121
+ baseButton: {
122
+ borderRadius: 999,
123
+ justifyContent: "center",
124
+ alignItems: "center",
125
+ flexDirection: "row",
126
+ },
127
+ sizeDefault: {
128
+ paddingVertical: 12,
129
+ paddingHorizontal: 18,
130
+ },
131
+ sizeSm: {
132
+ paddingVertical: 8,
133
+ paddingHorizontal: 14,
134
+ },
135
+ sizeLg: {
136
+ paddingVertical: 14,
137
+ paddingHorizontal: 22,
138
+ },
139
+ text: {
140
+ textAlign: "center",
141
+ fontSize: 16,
142
+ fontWeight: "600",
143
+ },
144
+ primaryText: {
145
+ color: "#ffffff",
146
+ },
147
+ primaryButton: {},
148
+ glassCard: {
149
+ borderRadius: 999,
150
+ },
151
+ softButton: {
152
+ borderWidth: 1,
153
+ width: "100%",
154
+ },
155
+ softLight: {
156
+ backgroundColor: "#f9fafb",
157
+ borderColor: "#e5e7eb",
158
+ },
159
+ softDark: {
160
+ backgroundColor: "rgba(15,23,42,0.75)",
161
+ borderColor: "rgba(148,163,184,0.5)",
162
+ },
163
+ outlineButton: {
164
+ backgroundColor: "transparent",
165
+ borderWidth: 1,
166
+ },
167
+ ghostButton: {
168
+ backgroundColor: "transparent",
169
+ },
170
+ disabled: {
171
+ opacity: 0.6,
172
+ },
173
+ disabledGhost: {
174
+ opacity: 0.4,
175
+ },
176
+ });
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ type CardProps = {
4
+ children: React.ReactNode;
5
+ style?: StyleProp<ViewStyle>;
6
+ };
7
+ export declare const CardFEA: ({ children, style }: CardProps) => React.JSX.Element;
8
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CardFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var CardFEA = function (_a) {
41
+ var children = _a.children, style = _a.style;
42
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
+ return (React.createElement(react_native_1.View, { style: [
44
+ styles.card,
45
+ {
46
+ backgroundColor: theme.mode === "light" ? "#ffffff" : "#020617",
47
+ borderColor: theme.mode === "light" ? "#e5e7eb" : "#1f2937",
48
+ },
49
+ style,
50
+ ] }, children));
51
+ };
52
+ exports.CardFEA = CardFEA;
53
+ var styles = react_native_1.StyleSheet.create({
54
+ card: {
55
+ borderRadius: 14,
56
+ borderWidth: 1,
57
+ padding: 16,
58
+ },
59
+ });
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ export declare const CheckboxFEA: ({ checked, onChange, label, disabled, }: {
3
+ checked: boolean;
4
+ onChange: (next: boolean) => void;
5
+ label?: string;
6
+ disabled?: boolean;
7
+ }) => React.JSX.Element;