@entropy-softworks/ui 2026.8.12 → 2026.8.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/CHANGELOG.md +51 -0
- package/lib/components/auth/LockOverlay.jsx +1 -1
- package/lib/components/auth/LockOverlay.jsx.map +1 -1
- package/lib/components/auth/ProtectedRoute.jsx +1 -1
- package/lib/components/auth/ProtectedRoute.jsx.map +1 -1
- package/lib/components/button.d.ts.map +1 -1
- package/lib/components/button.jsx +15 -6
- package/lib/components/button.jsx.map +1 -1
- package/lib/components/card.jsx +1 -1
- package/lib/components/card.jsx.map +1 -1
- package/lib/components/context-menu.jsx +1 -1
- package/lib/components/context-menu.jsx.map +1 -1
- package/lib/components/data-table.jsx +2 -2
- package/lib/components/data-table.jsx.map +1 -1
- package/lib/components/dialog.jsx +1 -1
- package/lib/components/dialog.jsx.map +1 -1
- package/lib/components/dropdown-menu.jsx +4 -4
- package/lib/components/dropdown-menu.jsx.map +1 -1
- package/lib/components/entropy-mark.jsx +1 -1
- package/lib/components/entropy-mark.jsx.map +1 -1
- package/lib/components/error-boundary.jsx +2 -2
- package/lib/components/error-boundary.jsx.map +1 -1
- package/lib/components/input.d.ts.map +1 -1
- package/lib/components/input.jsx +15 -5
- package/lib/components/input.jsx.map +1 -1
- package/lib/components/legal-dialog.jsx +1 -1
- package/lib/components/legal-dialog.jsx.map +1 -1
- package/lib/components/pagination.jsx +1 -1
- package/lib/components/pagination.jsx.map +1 -1
- package/lib/components/password-generator.jsx +18 -18
- package/lib/components/password-generator.jsx.map +1 -1
- package/lib/components/pin-pad.d.ts.map +1 -1
- package/lib/components/pin-pad.jsx +5 -5
- package/lib/components/pin-pad.jsx.map +1 -1
- package/lib/components/popover.jsx +1 -1
- package/lib/components/popover.jsx.map +1 -1
- package/lib/components/settings-row.jsx +2 -2
- package/lib/components/settings-row.jsx.map +1 -1
- package/lib/screens/auth/AccountPickerScreen.jsx +1 -1
- package/lib/screens/auth/AccountPickerScreen.jsx.map +1 -1
- package/lib/screens/auth/AuthScreen.d.ts.map +1 -1
- package/lib/screens/auth/AuthScreen.jsx +6 -8
- package/lib/screens/auth/AuthScreen.jsx.map +1 -1
- package/lib/screens/auth/ConsentScreen.jsx +3 -3
- package/lib/screens/auth/ConsentScreen.jsx.map +1 -1
- package/lib/screens/auth/ErrorScreen.jsx +2 -2
- package/lib/screens/auth/ErrorScreen.jsx.map +1 -1
- package/lib/screens/auth/ExpiredLinkScreen.jsx +2 -2
- package/lib/screens/auth/ExpiredLinkScreen.jsx.map +1 -1
- package/lib/screens/auth/ForgotPasswordScreen.jsx +3 -3
- package/lib/screens/auth/ForgotPasswordScreen.jsx.map +1 -1
- package/lib/screens/auth/ImportDataScreen.jsx +2 -2
- package/lib/screens/auth/ImportDataScreen.jsx.map +1 -1
- package/lib/screens/auth/LoginScreen.jsx +2 -2
- package/lib/screens/auth/LoginScreen.jsx.map +1 -1
- package/lib/screens/auth/MfaEnrollScreen.jsx +3 -3
- package/lib/screens/auth/MfaEnrollScreen.jsx.map +1 -1
- package/lib/screens/auth/PasskeyEnrollScreen.jsx +3 -3
- package/lib/screens/auth/PasskeyEnrollScreen.jsx.map +1 -1
- package/lib/screens/auth/RegisterScreen.jsx +2 -2
- package/lib/screens/auth/RegisterScreen.jsx.map +1 -1
- package/lib/screens/auth/ResetPasswordScreen.jsx +3 -3
- package/lib/screens/auth/ResetPasswordScreen.jsx.map +1 -1
- package/lib/screens/auth/ServerConfigScreen.jsx +23 -23
- package/lib/screens/auth/ServerConfigScreen.jsx.map +1 -1
- package/lib/screens/auth/VerifyEmailScreen.jsx +1 -1
- package/lib/screens/auth/VerifyEmailScreen.jsx.map +1 -1
- package/lib/screens/auth/WelcomeScreen.jsx +1 -1
- package/lib/screens/auth/WelcomeScreen.jsx.map +1 -1
- package/package.json +1 -1
- package/src/components/auth/LockOverlay.tsx +1 -1
- package/src/components/auth/ProtectedRoute.tsx +1 -1
- package/src/components/button.tsx +15 -6
- package/src/components/card.tsx +1 -1
- package/src/components/context-menu.tsx +1 -1
- package/src/components/data-table.tsx +2 -2
- package/src/components/dialog.tsx +1 -1
- package/src/components/dropdown-menu.tsx +5 -5
- package/src/components/entropy-mark.tsx +1 -1
- package/src/components/error-boundary.tsx +2 -2
- package/src/components/input.tsx +15 -5
- package/src/components/legal-dialog.tsx +1 -1
- package/src/components/pagination.tsx +1 -1
- package/src/components/password-generator.tsx +18 -18
- package/src/components/pin-pad.tsx +7 -5
- package/src/components/popover.tsx +1 -1
- package/src/components/settings-row.tsx +2 -2
- package/src/screens/auth/AccountPickerScreen.tsx +1 -1
- package/src/screens/auth/AuthScreen.tsx +7 -9
- package/src/screens/auth/ConsentScreen.tsx +3 -3
- package/src/screens/auth/ErrorScreen.tsx +2 -2
- package/src/screens/auth/ExpiredLinkScreen.tsx +2 -2
- package/src/screens/auth/ForgotPasswordScreen.tsx +3 -3
- package/src/screens/auth/ImportDataScreen.tsx +2 -2
- package/src/screens/auth/LoginScreen.tsx +2 -2
- package/src/screens/auth/MfaEnrollScreen.tsx +3 -3
- package/src/screens/auth/PasskeyEnrollScreen.tsx +3 -3
- package/src/screens/auth/RegisterScreen.tsx +2 -2
- package/src/screens/auth/ResetPasswordScreen.tsx +3 -3
- package/src/screens/auth/ServerConfigScreen.tsx +23 -23
- package/src/screens/auth/VerifyEmailScreen.tsx +1 -1
- package/src/screens/auth/WelcomeScreen.tsx +1 -1
|
@@ -51,7 +51,7 @@ export function ConsentScreen({
|
|
|
51
51
|
const isDark = colorScheme === "dark";
|
|
52
52
|
|
|
53
53
|
return (
|
|
54
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
54
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
55
55
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
56
56
|
<ScrollView
|
|
57
57
|
className="flex-1"
|
|
@@ -85,11 +85,11 @@ export function ConsentScreen({
|
|
|
85
85
|
))
|
|
86
86
|
)}
|
|
87
87
|
{error ? (
|
|
88
|
-
<Text className="text-sm text-destructive">{error}</Text>
|
|
88
|
+
<Text className="text-sm text-destructive dark:text-red-900">{error}</Text>
|
|
89
89
|
) : null}
|
|
90
90
|
</CardContent>
|
|
91
91
|
|
|
92
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
92
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
93
93
|
<Button
|
|
94
94
|
className="w-full"
|
|
95
95
|
telemetryId="auth.consent.allow"
|
|
@@ -43,7 +43,7 @@ export function ErrorScreen({
|
|
|
43
43
|
const isDark = colorScheme === "dark";
|
|
44
44
|
|
|
45
45
|
return (
|
|
46
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
46
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
47
47
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
48
48
|
<ScrollView
|
|
49
49
|
className="flex-1"
|
|
@@ -63,7 +63,7 @@ export function ErrorScreen({
|
|
|
63
63
|
) : null}
|
|
64
64
|
|
|
65
65
|
{onRetry || onHome ? (
|
|
66
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
66
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
67
67
|
{onRetry ? (
|
|
68
68
|
<Button
|
|
69
69
|
className="w-full"
|
|
@@ -40,7 +40,7 @@ export function ExpiredLinkScreen({
|
|
|
40
40
|
const isDark = colorScheme === "dark";
|
|
41
41
|
|
|
42
42
|
return (
|
|
43
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
43
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
44
44
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
45
45
|
<ScrollView
|
|
46
46
|
className="flex-1"
|
|
@@ -54,7 +54,7 @@ export function ExpiredLinkScreen({
|
|
|
54
54
|
</CardHeader>
|
|
55
55
|
|
|
56
56
|
{onRequestNew || onHome ? (
|
|
57
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
57
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
58
58
|
{onRequestNew ? (
|
|
59
59
|
<Button
|
|
60
60
|
className="w-full"
|
|
@@ -70,7 +70,7 @@ export function ForgotPasswordScreen() {
|
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
return (
|
|
73
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
73
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
74
74
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
75
75
|
<ScrollView
|
|
76
76
|
className="flex-1"
|
|
@@ -119,7 +119,7 @@ export function ForgotPasswordScreen() {
|
|
|
119
119
|
/>
|
|
120
120
|
</CardContent>
|
|
121
121
|
|
|
122
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
122
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
123
123
|
<Button
|
|
124
124
|
className="w-full"
|
|
125
125
|
telemetryId="auth.forgot_password.submit"
|
|
@@ -145,7 +145,7 @@ export function ForgotPasswordScreen() {
|
|
|
145
145
|
</CardFooter>
|
|
146
146
|
</>
|
|
147
147
|
) : (
|
|
148
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
148
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
149
149
|
<Button
|
|
150
150
|
className="w-full"
|
|
151
151
|
telemetryId="auth.forgot_password.push_2"
|
|
@@ -55,7 +55,7 @@ export function ImportDataScreen({ renderImport }: ImportDataScreenProps = {}) {
|
|
|
55
55
|
|
|
56
56
|
if (renderImport) {
|
|
57
57
|
return (
|
|
58
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
58
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
59
59
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
60
60
|
{renderImport({ onComplete: completeAndNavigate, onSkip: completeAndNavigate })}
|
|
61
61
|
</SafeAreaView>
|
|
@@ -63,7 +63,7 @@ export function ImportDataScreen({ renderImport }: ImportDataScreenProps = {}) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
return (
|
|
66
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
66
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
67
67
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
68
68
|
<ScrollView
|
|
69
69
|
className="flex-1"
|
|
@@ -269,7 +269,7 @@ export function LoginScreen({
|
|
|
269
269
|
|
|
270
270
|
return (
|
|
271
271
|
<>
|
|
272
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
272
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
273
273
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
274
274
|
<ScrollView
|
|
275
275
|
className="flex-1"
|
|
@@ -387,7 +387,7 @@ export function LoginScreen({
|
|
|
387
387
|
</View>
|
|
388
388
|
</CardContent>
|
|
389
389
|
|
|
390
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
390
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
391
391
|
<MutedText className="text-center text-sm">
|
|
392
392
|
Don't have an account?{" "}
|
|
393
393
|
<Text
|
|
@@ -160,7 +160,7 @@ export function MfaEnrollScreen({ authenticatorAppPromo }: MfaEnrollScreenProps
|
|
|
160
160
|
};
|
|
161
161
|
|
|
162
162
|
return (
|
|
163
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
163
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
164
164
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
165
165
|
<ScrollView
|
|
166
166
|
className="flex-1"
|
|
@@ -189,7 +189,7 @@ export function MfaEnrollScreen({ authenticatorAppPromo }: MfaEnrollScreenProps
|
|
|
189
189
|
<CardContent className="gap-3">{authenticatorAppPromo}</CardContent>
|
|
190
190
|
) : null}
|
|
191
191
|
|
|
192
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
192
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
193
193
|
<Button
|
|
194
194
|
className="w-full"
|
|
195
195
|
telemetryId="auth.mfa_enroll.start_setup"
|
|
@@ -293,7 +293,7 @@ export function MfaEnrollScreen({ authenticatorAppPromo }: MfaEnrollScreenProps
|
|
|
293
293
|
</View>
|
|
294
294
|
</CardContent>
|
|
295
295
|
|
|
296
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
296
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
297
297
|
<Button
|
|
298
298
|
className="w-full"
|
|
299
299
|
telemetryId="auth.mfa_enroll.verify_code"
|
|
@@ -39,7 +39,7 @@ export function PasskeyEnrollScreen({
|
|
|
39
39
|
const isDark = colorScheme === "dark";
|
|
40
40
|
|
|
41
41
|
return (
|
|
42
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
42
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
43
43
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
44
44
|
<ScrollView
|
|
45
45
|
className="flex-1"
|
|
@@ -58,7 +58,7 @@ export function PasskeyEnrollScreen({
|
|
|
58
58
|
|
|
59
59
|
<CardContent className="gap-2">
|
|
60
60
|
{error ? (
|
|
61
|
-
<Text className="text-sm text-destructive">{error}</Text>
|
|
61
|
+
<Text className="text-sm text-destructive dark:text-red-900">{error}</Text>
|
|
62
62
|
) : (
|
|
63
63
|
<MutedText className="text-sm">
|
|
64
64
|
You can always add or remove passkeys later in your account
|
|
@@ -67,7 +67,7 @@ export function PasskeyEnrollScreen({
|
|
|
67
67
|
)}
|
|
68
68
|
</CardContent>
|
|
69
69
|
|
|
70
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
70
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
71
71
|
<Button
|
|
72
72
|
className="w-full"
|
|
73
73
|
telemetryId="auth.passkey_enroll.enroll"
|
|
@@ -210,7 +210,7 @@ export function RegisterScreen({
|
|
|
210
210
|
};
|
|
211
211
|
|
|
212
212
|
return (
|
|
213
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
213
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
214
214
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
215
215
|
<KeyboardAvoidingView
|
|
216
216
|
behavior={Platform.OS === "ios" ? "padding" : "height"}
|
|
@@ -381,7 +381,7 @@ export function RegisterScreen({
|
|
|
381
381
|
</ShakeField>
|
|
382
382
|
</CardContent>
|
|
383
383
|
|
|
384
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
384
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
385
385
|
<MutedText className="text-center text-sm">
|
|
386
386
|
Already have an account?{" "}
|
|
387
387
|
<Text
|
|
@@ -219,7 +219,7 @@ export function ResetPasswordScreen({ encryptionWarning }: ResetPasswordScreenPr
|
|
|
219
219
|
};
|
|
220
220
|
|
|
221
221
|
return (
|
|
222
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
222
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
223
223
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
224
224
|
<ScrollView
|
|
225
225
|
className="flex-1"
|
|
@@ -267,7 +267,7 @@ export function ResetPasswordScreen({ encryptionWarning }: ResetPasswordScreenPr
|
|
|
267
267
|
</ShakeField>
|
|
268
268
|
</CardContent>
|
|
269
269
|
|
|
270
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
270
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
271
271
|
<FormError message={firstError} />
|
|
272
272
|
|
|
273
273
|
<Button
|
|
@@ -345,7 +345,7 @@ export function ResetPasswordScreen({ encryptionWarning }: ResetPasswordScreenPr
|
|
|
345
345
|
</ShakeField>
|
|
346
346
|
</CardContent>
|
|
347
347
|
|
|
348
|
-
<CardFooter className="flex-col gap-3 border-t-0">
|
|
348
|
+
<CardFooter className="flex-col items-stretch gap-3 border-t-0">
|
|
349
349
|
<FormError message={firstError} />
|
|
350
350
|
|
|
351
351
|
<Button
|
|
@@ -223,7 +223,7 @@ export function ServerConfigScreen({
|
|
|
223
223
|
|
|
224
224
|
if (isLoading) {
|
|
225
225
|
return (
|
|
226
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
226
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
227
227
|
<View className="flex-1 items-center justify-center">
|
|
228
228
|
<ActivityIndicator size="large" color={isDark ? "white" : "black"} />
|
|
229
229
|
</View>
|
|
@@ -238,7 +238,7 @@ export function ServerConfigScreen({
|
|
|
238
238
|
];
|
|
239
239
|
|
|
240
240
|
return (
|
|
241
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
241
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
242
242
|
<StatusBar style="auto" />
|
|
243
243
|
<ScrollView className="flex-1">
|
|
244
244
|
<View className="px-6 py-6">
|
|
@@ -247,15 +247,15 @@ export function ServerConfigScreen({
|
|
|
247
247
|
onPress={withClickTracking("auth.server_config.back", () => router.back())}
|
|
248
248
|
accessibilityRole="button"
|
|
249
249
|
accessibilityLabel="Go back"
|
|
250
|
-
className="active:scale-98 h-10 w-10 items-center justify-center rounded-lg bg-secondary"
|
|
250
|
+
className="active:scale-98 h-10 w-10 items-center justify-center rounded-lg bg-secondary dark:bg-neutral-800"
|
|
251
251
|
>
|
|
252
252
|
<Ionicons name="close" size={24} color={isDark ? "white" : "black"} />
|
|
253
253
|
</Pressable>
|
|
254
|
-
<Text className="text-lg font-semibold text-foreground">Server Configuration</Text>
|
|
254
|
+
<Text className="text-lg font-semibold text-foreground dark:text-white">Server Configuration</Text>
|
|
255
255
|
<View className="h-10 w-10" />
|
|
256
256
|
</View>
|
|
257
257
|
|
|
258
|
-
<View className="mb-6 rounded-lg bg-secondary p-4">
|
|
258
|
+
<View className="mb-6 rounded-lg bg-secondary dark:bg-neutral-800 p-4">
|
|
259
259
|
<View className="flex-row items-start">
|
|
260
260
|
<Ionicons
|
|
261
261
|
name="information-circle"
|
|
@@ -263,10 +263,10 @@ export function ServerConfigScreen({
|
|
|
263
263
|
color={isDark ? "#3b82f6" : "#2563eb"}
|
|
264
264
|
/>
|
|
265
265
|
<View className="ml-3 flex-1">
|
|
266
|
-
<Text className="mb-1 text-sm font-semibold text-foreground">
|
|
266
|
+
<Text className="mb-1 text-sm font-semibold text-foreground dark:text-white">
|
|
267
267
|
Self-Hosted Server
|
|
268
268
|
</Text>
|
|
269
|
-
<Text className="text-xs text-muted-foreground">
|
|
269
|
+
<Text className="text-xs text-muted-foreground dark:text-neutral-400">
|
|
270
270
|
Configure your own {appName} server for complete control over your data. Default
|
|
271
271
|
server: {defaultUrl}
|
|
272
272
|
</Text>
|
|
@@ -275,8 +275,8 @@ export function ServerConfigScreen({
|
|
|
275
275
|
</View>
|
|
276
276
|
|
|
277
277
|
<View className="mb-6">
|
|
278
|
-
<Text className="mb-2 text-sm font-medium text-foreground">Server URL</Text>
|
|
279
|
-
<View className="flex-row items-center rounded-lg border border-border bg-background px-3 py-3">
|
|
278
|
+
<Text className="mb-2 text-sm font-medium text-foreground dark:text-white">Server URL</Text>
|
|
279
|
+
<View className="flex-row items-center rounded-lg border border-border dark:border-neutral-800 bg-background dark:bg-black px-3 py-3">
|
|
280
280
|
<Ionicons
|
|
281
281
|
name="globe-outline"
|
|
282
282
|
size={20}
|
|
@@ -294,7 +294,7 @@ export function ServerConfigScreen({
|
|
|
294
294
|
autoCorrect={false}
|
|
295
295
|
keyboardType="url"
|
|
296
296
|
accessibilityLabel="Server URL"
|
|
297
|
-
className="ml-2 flex-1 text-base text-foreground"
|
|
297
|
+
className="ml-2 flex-1 text-base text-foreground dark:text-white"
|
|
298
298
|
/>
|
|
299
299
|
{connectionStatus === "success" && (
|
|
300
300
|
<Ionicons name="checkmark-circle" size={20} color="#22c55e" />
|
|
@@ -310,12 +310,12 @@ export function ServerConfigScreen({
|
|
|
310
310
|
disabled={isTestingConnection}
|
|
311
311
|
accessibilityRole="button"
|
|
312
312
|
accessibilityLabel="Test connection"
|
|
313
|
-
className="active:scale-98 mb-3 w-full rounded-lg border border-border bg-background px-6 py-4"
|
|
313
|
+
className="active:scale-98 mb-3 w-full rounded-lg border border-border dark:border-neutral-800 bg-background dark:bg-black px-6 py-4"
|
|
314
314
|
>
|
|
315
315
|
{isTestingConnection ? (
|
|
316
316
|
<View className="flex-row items-center justify-center">
|
|
317
317
|
<ActivityIndicator size="small" color={isDark ? "white" : "black"} />
|
|
318
|
-
<Text className="ml-2 text-base font-semibold text-foreground">
|
|
318
|
+
<Text className="ml-2 text-base font-semibold text-foreground dark:text-white">
|
|
319
319
|
Testing Connection
|
|
320
320
|
{testAttempt > 0 ? ` (Attempt ${testAttempt}/${defaultMaxRetries})` : "..."}
|
|
321
321
|
</Text>
|
|
@@ -323,7 +323,7 @@ export function ServerConfigScreen({
|
|
|
323
323
|
) : (
|
|
324
324
|
<View className="flex-row items-center justify-center">
|
|
325
325
|
<Ionicons name="wifi-outline" size={20} color={isDark ? "white" : "black"} />
|
|
326
|
-
<Text className="ml-2 text-base font-semibold text-foreground">
|
|
326
|
+
<Text className="ml-2 text-base font-semibold text-foreground dark:text-white">
|
|
327
327
|
Test Connection
|
|
328
328
|
</Text>
|
|
329
329
|
</View>
|
|
@@ -334,11 +334,11 @@ export function ServerConfigScreen({
|
|
|
334
334
|
onPress={withClickTracking("auth.server_config.use_default", handleUseDefault)}
|
|
335
335
|
accessibilityRole="button"
|
|
336
336
|
accessibilityLabel="Use default server"
|
|
337
|
-
className="active:scale-98 mb-3 w-full rounded-lg border border-border bg-background px-6 py-4"
|
|
337
|
+
className="active:scale-98 mb-3 w-full rounded-lg border border-border dark:border-neutral-800 bg-background dark:bg-black px-6 py-4"
|
|
338
338
|
>
|
|
339
339
|
<View className="flex-row items-center justify-center">
|
|
340
340
|
<Ionicons name="cloud-outline" size={20} color={isDark ? "white" : "black"} />
|
|
341
|
-
<Text className="ml-2 text-base font-semibold text-foreground">
|
|
341
|
+
<Text className="ml-2 text-base font-semibold text-foreground dark:text-white">
|
|
342
342
|
Use Default Server
|
|
343
343
|
</Text>
|
|
344
344
|
</View>
|
|
@@ -348,11 +348,11 @@ export function ServerConfigScreen({
|
|
|
348
348
|
onPress={withClickTracking("auth.server_config.clear_configuration", handleClearConfiguration)}
|
|
349
349
|
accessibilityRole="button"
|
|
350
350
|
accessibilityLabel="Clear all settings"
|
|
351
|
-
className="active:scale-98 mb-3 w-full rounded-lg border border-destructive bg-background px-6 py-3"
|
|
351
|
+
className="active:scale-98 mb-3 w-full rounded-lg border border-destructive dark:border-red-900 bg-background dark:bg-black px-6 py-3"
|
|
352
352
|
>
|
|
353
353
|
<View className="flex-row items-center justify-center">
|
|
354
354
|
<Ionicons name="trash-outline" size={20} color="#ef4444" />
|
|
355
|
-
<Text className="ml-2 text-base font-medium text-destructive">
|
|
355
|
+
<Text className="ml-2 text-base font-medium text-destructive dark:text-red-900">
|
|
356
356
|
Clear All Settings
|
|
357
357
|
</Text>
|
|
358
358
|
</View>
|
|
@@ -362,20 +362,20 @@ export function ServerConfigScreen({
|
|
|
362
362
|
onPress={withClickTracking("auth.server_config.save", handleSave)}
|
|
363
363
|
accessibilityRole="button"
|
|
364
364
|
accessibilityLabel="Save configuration"
|
|
365
|
-
className="active:scale-98 mb-6 w-full rounded-lg bg-primary px-6 py-4"
|
|
365
|
+
className="active:scale-98 mb-6 w-full rounded-lg bg-primary dark:bg-white px-6 py-4"
|
|
366
366
|
>
|
|
367
|
-
<Text className="text-center text-base font-semibold text-primary-foreground">
|
|
367
|
+
<Text className="text-center text-base font-semibold text-primary-foreground dark:text-black">
|
|
368
368
|
Save Configuration
|
|
369
369
|
</Text>
|
|
370
370
|
</Pressable>
|
|
371
371
|
|
|
372
|
-
<View className="rounded-lg bg-card p-4">
|
|
373
|
-
<Text className="mb-3 text-sm font-semibold text-foreground">Need Help?</Text>
|
|
372
|
+
<View className="rounded-lg bg-card dark:bg-neutral-900/50 p-4">
|
|
373
|
+
<Text className="mb-3 text-sm font-semibold text-foreground dark:text-white">Need Help?</Text>
|
|
374
374
|
<View className="space-y-2">
|
|
375
375
|
{bullets.map((bullet, idx) => (
|
|
376
376
|
<View key={idx} className="flex-row items-start">
|
|
377
|
-
<Text className="mr-2 text-sm text-muted-foreground">•</Text>
|
|
378
|
-
<Text className="flex-1 text-sm text-muted-foreground">{bullet}</Text>
|
|
377
|
+
<Text className="mr-2 text-sm text-muted-foreground dark:text-neutral-400">•</Text>
|
|
378
|
+
<Text className="flex-1 text-sm text-muted-foreground dark:text-neutral-400">{bullet}</Text>
|
|
379
379
|
</View>
|
|
380
380
|
))}
|
|
381
381
|
</View>
|
|
@@ -214,7 +214,7 @@ export function VerifyEmailScreen() {
|
|
|
214
214
|
};
|
|
215
215
|
|
|
216
216
|
return (
|
|
217
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
217
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
218
218
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
219
219
|
<ScrollView
|
|
220
220
|
className="flex-1"
|
|
@@ -30,7 +30,7 @@ export function WelcomeScreen({ decoration, topAccessory }: WelcomeScreenProps)
|
|
|
30
30
|
const { appName, Logo, routes, tagline } = useAppConfig();
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
|
-
<SafeAreaView className="flex-1 bg-background">
|
|
33
|
+
<SafeAreaView className="flex-1 bg-background dark:bg-black">
|
|
34
34
|
<StatusBar style={isDark ? "light" : "dark"} />
|
|
35
35
|
<View className="flex-1 items-center justify-center px-6 py-8">
|
|
36
36
|
{topAccessory}
|