@coinbase/create-cdp-app 0.0.54 → 0.0.56

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.
@@ -0,0 +1,172 @@
1
+ import { StyleSheet, Platform, Dimensions } from "react-native";
2
+ import { useTheme } from "../theme/ThemeContext";
3
+
4
+ export const useSignInFormStyles = () => {
5
+ const { colors } = useTheme();
6
+ const { width: screenWidth, height: screenHeight } = Dimensions.get("window");
7
+ const isSmallScreen = screenHeight < 700;
8
+
9
+ return StyleSheet.create({
10
+ keyboardContainer: {
11
+ flex: 1,
12
+ },
13
+ scrollContainer: {
14
+ flexGrow: 1,
15
+ justifyContent: "center",
16
+ paddingHorizontal: 20,
17
+ paddingVertical: isSmallScreen ? 20 : 40,
18
+ minHeight: screenHeight - (Platform.OS === "ios" ? 100 : 80),
19
+ },
20
+ scrollContainerWithOtp: {
21
+ flexGrow: 1,
22
+ justifyContent: "center",
23
+ paddingHorizontal: 20,
24
+ paddingVertical: isSmallScreen ? 20 : 40,
25
+ paddingBottom: isSmallScreen ? 150 : 180,
26
+ minHeight: screenHeight - (Platform.OS === "ios" ? 100 : 80),
27
+ },
28
+ container: {
29
+ alignItems: "center",
30
+ justifyContent: "center",
31
+ },
32
+ card: {
33
+ backgroundColor: colors.cardBackground,
34
+ borderRadius: 16,
35
+ padding: isSmallScreen ? 24 : 32,
36
+ width: "100%",
37
+ maxWidth: 400,
38
+ minWidth: Math.min(screenWidth - 40, 280),
39
+ shadowColor: "#000",
40
+ shadowOffset: {
41
+ width: 0,
42
+ height: 2,
43
+ },
44
+ shadowOpacity: 0.1,
45
+ shadowRadius: 8,
46
+ elevation: 3,
47
+ },
48
+ header: {
49
+ alignItems: "center",
50
+ marginBottom: isSmallScreen ? 24 : 32,
51
+ position: "relative",
52
+ },
53
+ backButton: {
54
+ position: "absolute",
55
+ left: 0,
56
+ top: 0,
57
+ width: 40,
58
+ height: 40,
59
+ borderRadius: 20,
60
+ backgroundColor: colors.inputBackground,
61
+ borderWidth: 1,
62
+ borderColor: colors.border,
63
+ justifyContent: "center",
64
+ alignItems: "center",
65
+ },
66
+ backButtonText: {
67
+ fontSize: 18,
68
+ color: colors.text,
69
+ fontWeight: "600",
70
+ },
71
+ logoCircle: {
72
+ width: isSmallScreen ? 56 : 64,
73
+ height: isSmallScreen ? 56 : 64,
74
+ borderRadius: isSmallScreen ? 28 : 32,
75
+ backgroundColor: colors.accent,
76
+ justifyContent: "center",
77
+ alignItems: "center",
78
+ marginBottom: 16,
79
+ },
80
+ logoText: {
81
+ color: "#ffffff",
82
+ fontSize: isSmallScreen ? 28 : 32,
83
+ fontWeight: "bold",
84
+ },
85
+ title: {
86
+ fontSize: isSmallScreen ? 20 : 24,
87
+ fontWeight: "500",
88
+ color: colors.text,
89
+ textAlign: "center",
90
+ },
91
+ form: {
92
+ width: "100%",
93
+ },
94
+ inputLabel: {
95
+ fontSize: 16,
96
+ fontWeight: "500",
97
+ color: colors.text,
98
+ marginBottom: 8,
99
+ },
100
+ input: {
101
+ backgroundColor: colors.inputBackground,
102
+ borderRadius: 8,
103
+ borderWidth: 1,
104
+ borderColor: colors.border,
105
+ paddingHorizontal: 16,
106
+ paddingVertical: Platform.OS === "ios" ? 16 : 14,
107
+ fontSize: 16,
108
+ color: colors.text,
109
+ marginBottom: isSmallScreen ? 20 : 24,
110
+ minHeight: Platform.OS === "android" ? 48 : 44,
111
+ },
112
+ inputContainer: {
113
+ flexDirection: "row",
114
+ alignItems: "stretch",
115
+ marginBottom: isSmallScreen ? 20 : 24,
116
+ },
117
+ flagContainer: {
118
+ flexDirection: "row",
119
+ alignItems: "center",
120
+ paddingHorizontal: 12,
121
+ paddingVertical: Platform.OS === "ios" ? 16 : 14,
122
+ borderWidth: 1,
123
+ borderColor: colors.border,
124
+ borderTopLeftRadius: 8,
125
+ borderBottomLeftRadius: 8,
126
+ backgroundColor: colors.inputBackground,
127
+ minHeight: Platform.OS === "android" ? 48 : 44,
128
+ justifyContent: "center",
129
+ },
130
+ flagText: {
131
+ fontSize: 16,
132
+ marginRight: 4,
133
+ },
134
+ countryCode: {
135
+ fontSize: 16,
136
+ color: colors.text,
137
+ fontWeight: "500",
138
+ },
139
+ phoneInput: {
140
+ backgroundColor: colors.inputBackground,
141
+ borderRadius: 0,
142
+ borderTopRightRadius: 8,
143
+ borderBottomRightRadius: 8,
144
+ borderWidth: 1,
145
+ borderLeftWidth: 0,
146
+ borderColor: colors.border,
147
+ paddingHorizontal: 16,
148
+ paddingVertical: Platform.OS === "ios" ? 16 : 14,
149
+ fontSize: 16,
150
+ color: colors.text,
151
+ flex: 1,
152
+ minHeight: Platform.OS === "android" ? 48 : 44,
153
+ },
154
+ continueButton: {
155
+ backgroundColor: colors.accent,
156
+ borderRadius: 8,
157
+ paddingVertical: 16,
158
+ alignItems: "center",
159
+ marginBottom: isSmallScreen ? 20 : 24,
160
+ minHeight: 48,
161
+ justifyContent: "center",
162
+ },
163
+ continueButtonText: {
164
+ color: "#ffffff",
165
+ fontSize: 16,
166
+ fontWeight: "600",
167
+ },
168
+ buttonDisabled: {
169
+ opacity: 0.6,
170
+ },
171
+ });
172
+ };
@@ -22,6 +22,7 @@
22
22
  "expo-crypto": "^14.1.5",
23
23
  "expo-secure-store": "^15.0.7",
24
24
  "expo-status-bar": "~2.2.3",
25
+ "expo-web-browser": "~14.2.0",
25
26
  "react": "19.1.0",
26
27
  "react-native": "0.79.6",
27
28
  "react-native-get-random-values": "^1.11.0",
@@ -17,7 +17,7 @@ export interface ThemeContextType {
17
17
  colors: ThemeColors;
18
18
  }
19
19
 
20
- export type AuthMethod = "email" | "sms";
20
+ export type AuthMethod = "email" | "sms" | "oauth";
21
21
 
22
22
  export interface DarkModeToggleProps {
23
23
  style?: any;