@entropy-softworks/ui 2026.8.15 → 2026.8.18

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 (92) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/lib/components/auth/LockOverlay.jsx +1 -1
  3. package/lib/components/auth/LockOverlay.jsx.map +1 -1
  4. package/lib/components/auth/ProtectedRoute.jsx +1 -1
  5. package/lib/components/auth/ProtectedRoute.jsx.map +1 -1
  6. package/lib/components/card.jsx +1 -1
  7. package/lib/components/card.jsx.map +1 -1
  8. package/lib/components/context-menu.jsx +1 -1
  9. package/lib/components/context-menu.jsx.map +1 -1
  10. package/lib/components/data-table.jsx +2 -2
  11. package/lib/components/data-table.jsx.map +1 -1
  12. package/lib/components/dropdown-menu.jsx +4 -4
  13. package/lib/components/dropdown-menu.jsx.map +1 -1
  14. package/lib/components/entropy-mark.jsx +1 -1
  15. package/lib/components/entropy-mark.jsx.map +1 -1
  16. package/lib/components/error-boundary.jsx +2 -2
  17. package/lib/components/error-boundary.jsx.map +1 -1
  18. package/lib/components/pagination.jsx +1 -1
  19. package/lib/components/pagination.jsx.map +1 -1
  20. package/lib/components/password-generator.jsx +18 -18
  21. package/lib/components/password-generator.jsx.map +1 -1
  22. package/lib/components/pin-pad.d.ts.map +1 -1
  23. package/lib/components/pin-pad.jsx +5 -5
  24. package/lib/components/pin-pad.jsx.map +1 -1
  25. package/lib/components/popover.jsx +1 -1
  26. package/lib/components/popover.jsx.map +1 -1
  27. package/lib/components/settings-row.jsx +2 -2
  28. package/lib/components/settings-row.jsx.map +1 -1
  29. package/lib/hooks/useAutoLock.d.ts +22 -1
  30. package/lib/hooks/useAutoLock.d.ts.map +1 -1
  31. package/lib/hooks/useAutoLock.js +7 -1
  32. package/lib/hooks/useAutoLock.js.map +1 -1
  33. package/lib/screens/auth/AccountPickerScreen.jsx +1 -1
  34. package/lib/screens/auth/AccountPickerScreen.jsx.map +1 -1
  35. package/lib/screens/auth/AuthScreen.jsx +2 -2
  36. package/lib/screens/auth/AuthScreen.jsx.map +1 -1
  37. package/lib/screens/auth/ConsentScreen.jsx +3 -3
  38. package/lib/screens/auth/ConsentScreen.jsx.map +1 -1
  39. package/lib/screens/auth/ErrorScreen.jsx +2 -2
  40. package/lib/screens/auth/ErrorScreen.jsx.map +1 -1
  41. package/lib/screens/auth/ExpiredLinkScreen.jsx +2 -2
  42. package/lib/screens/auth/ExpiredLinkScreen.jsx.map +1 -1
  43. package/lib/screens/auth/ForgotPasswordScreen.jsx +3 -3
  44. package/lib/screens/auth/ForgotPasswordScreen.jsx.map +1 -1
  45. package/lib/screens/auth/ImportDataScreen.jsx +2 -2
  46. package/lib/screens/auth/ImportDataScreen.jsx.map +1 -1
  47. package/lib/screens/auth/LoginScreen.jsx +2 -2
  48. package/lib/screens/auth/LoginScreen.jsx.map +1 -1
  49. package/lib/screens/auth/MfaEnrollScreen.jsx +3 -3
  50. package/lib/screens/auth/MfaEnrollScreen.jsx.map +1 -1
  51. package/lib/screens/auth/PasskeyEnrollScreen.jsx +3 -3
  52. package/lib/screens/auth/PasskeyEnrollScreen.jsx.map +1 -1
  53. package/lib/screens/auth/RegisterScreen.jsx +2 -2
  54. package/lib/screens/auth/RegisterScreen.jsx.map +1 -1
  55. package/lib/screens/auth/ResetPasswordScreen.jsx +3 -3
  56. package/lib/screens/auth/ResetPasswordScreen.jsx.map +1 -1
  57. package/lib/screens/auth/ServerConfigScreen.jsx +23 -23
  58. package/lib/screens/auth/ServerConfigScreen.jsx.map +1 -1
  59. package/lib/screens/auth/VerifyEmailScreen.jsx +1 -1
  60. package/lib/screens/auth/VerifyEmailScreen.jsx.map +1 -1
  61. package/lib/screens/auth/WelcomeScreen.jsx +1 -1
  62. package/lib/screens/auth/WelcomeScreen.jsx.map +1 -1
  63. package/package.json +1 -1
  64. package/src/components/auth/LockOverlay.tsx +1 -1
  65. package/src/components/auth/ProtectedRoute.tsx +1 -1
  66. package/src/components/card.tsx +1 -1
  67. package/src/components/context-menu.tsx +1 -1
  68. package/src/components/data-table.tsx +2 -2
  69. package/src/components/dropdown-menu.tsx +5 -5
  70. package/src/components/entropy-mark.tsx +1 -1
  71. package/src/components/error-boundary.tsx +2 -2
  72. package/src/components/pagination.tsx +1 -1
  73. package/src/components/password-generator.tsx +18 -18
  74. package/src/components/pin-pad.tsx +7 -5
  75. package/src/components/popover.tsx +1 -1
  76. package/src/components/settings-row.tsx +2 -2
  77. package/src/hooks/useAutoLock.ts +32 -2
  78. package/src/screens/auth/AccountPickerScreen.tsx +1 -1
  79. package/src/screens/auth/AuthScreen.tsx +2 -2
  80. package/src/screens/auth/ConsentScreen.tsx +3 -3
  81. package/src/screens/auth/ErrorScreen.tsx +2 -2
  82. package/src/screens/auth/ExpiredLinkScreen.tsx +2 -2
  83. package/src/screens/auth/ForgotPasswordScreen.tsx +3 -3
  84. package/src/screens/auth/ImportDataScreen.tsx +2 -2
  85. package/src/screens/auth/LoginScreen.tsx +2 -2
  86. package/src/screens/auth/MfaEnrollScreen.tsx +3 -3
  87. package/src/screens/auth/PasskeyEnrollScreen.tsx +3 -3
  88. package/src/screens/auth/RegisterScreen.tsx +2 -2
  89. package/src/screens/auth/ResetPasswordScreen.tsx +3 -3
  90. package/src/screens/auth/ServerConfigScreen.tsx +23 -23
  91. package/src/screens/auth/VerifyEmailScreen.tsx +1 -1
  92. package/src/screens/auth/WelcomeScreen.tsx +1 -1
@@ -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}