@oxyhq/services 10.1.0 → 10.2.1

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 (232) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/index.js +10 -0
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/ui/components/AccountMenu.js +297 -226
  5. package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
  6. package/lib/commonjs/ui/components/AccountMenuButton.js.map +1 -1
  7. package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
  8. package/lib/commonjs/ui/components/SignInModal.js +23 -14
  9. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  10. package/lib/commonjs/ui/components/accountMenuRows.js +18 -30
  11. package/lib/commonjs/ui/components/accountMenuRows.js.map +1 -1
  12. package/lib/commonjs/ui/context/OxyContext.js +33 -65
  13. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  14. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +7 -13
  15. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  16. package/lib/commonjs/ui/hooks/useAuth.js +9 -39
  17. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  18. package/lib/commonjs/ui/hooks/useDeviceAccounts.js +285 -0
  19. package/lib/commonjs/ui/hooks/useDeviceAccounts.js.map +1 -0
  20. package/lib/commonjs/ui/hooks/useSessionManagement.js +5 -6
  21. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  22. package/lib/commonjs/ui/hooks/useSessionSocket.js +4 -5
  23. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  24. package/lib/commonjs/ui/hooks/useWebSSO.js +1 -1
  25. package/lib/commonjs/ui/navigation/routes.js +7 -7
  26. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  27. package/lib/commonjs/ui/screens/OxyAuthScreen.js +21 -12
  28. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  29. package/lib/commonjs/ui/screens/ProfileScreen.js +18 -20
  30. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  31. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +4 -4
  32. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  33. package/lib/commonjs/ui/screens/{karma/KarmaAboutScreen.js → trust/TrustAboutScreen.js} +11 -11
  34. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -0
  35. package/lib/commonjs/ui/screens/{karma/KarmaCenterScreen.js → trust/TrustCenterScreen.js} +91 -41
  36. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -0
  37. package/lib/commonjs/ui/screens/{karma/KarmaFAQScreen.js → trust/TrustFAQScreen.js} +11 -11
  38. package/lib/commonjs/ui/screens/{karma/KarmaFAQScreen.js.map → trust/TrustFAQScreen.js.map} +1 -1
  39. package/lib/commonjs/ui/screens/{karma/KarmaLeaderboardScreen.js → trust/TrustLeaderboardScreen.js} +63 -42
  40. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -0
  41. package/lib/commonjs/ui/screens/{karma/KarmaRewardsScreen.js → trust/TrustRewardsScreen.js} +54 -54
  42. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -0
  43. package/lib/commonjs/ui/screens/{karma/KarmaRulesScreen.js → trust/TrustRulesScreen.js} +45 -16
  44. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -0
  45. package/lib/commonjs/ui/screens/trust/trustTier.js +23 -0
  46. package/lib/commonjs/ui/screens/trust/trustTier.js.map +1 -0
  47. package/lib/commonjs/utils/deviceFlowSignIn.js +12 -10
  48. package/lib/commonjs/utils/deviceFlowSignIn.js.map +1 -1
  49. package/lib/module/index.js +3 -0
  50. package/lib/module/index.js.map +1 -1
  51. package/lib/module/ui/components/AccountMenu.js +297 -226
  52. package/lib/module/ui/components/AccountMenu.js.map +1 -1
  53. package/lib/module/ui/components/AccountMenuButton.js.map +1 -1
  54. package/lib/module/ui/components/OxySignInButton.js +1 -1
  55. package/lib/module/ui/components/SignInModal.js +23 -14
  56. package/lib/module/ui/components/SignInModal.js.map +1 -1
  57. package/lib/module/ui/components/accountMenuRows.js +18 -30
  58. package/lib/module/ui/components/accountMenuRows.js.map +1 -1
  59. package/lib/module/ui/context/OxyContext.js +33 -65
  60. package/lib/module/ui/context/OxyContext.js.map +1 -1
  61. package/lib/module/ui/context/hooks/useAuthOperations.js +7 -13
  62. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  63. package/lib/module/ui/hooks/useAuth.js +9 -39
  64. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  65. package/lib/module/ui/hooks/useDeviceAccounts.js +281 -0
  66. package/lib/module/ui/hooks/useDeviceAccounts.js.map +1 -0
  67. package/lib/module/ui/hooks/useSessionManagement.js +5 -6
  68. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  69. package/lib/module/ui/hooks/useSessionSocket.js +4 -5
  70. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  71. package/lib/module/ui/hooks/useWebSSO.js +1 -1
  72. package/lib/module/ui/navigation/routes.js +7 -7
  73. package/lib/module/ui/navigation/routes.js.map +1 -1
  74. package/lib/module/ui/screens/OxyAuthScreen.js +21 -12
  75. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  76. package/lib/module/ui/screens/ProfileScreen.js +18 -20
  77. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  78. package/lib/module/ui/screens/WelcomeNewUserScreen.js +4 -4
  79. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  80. package/lib/module/ui/screens/{karma/KarmaAboutScreen.js → trust/TrustAboutScreen.js} +11 -11
  81. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -0
  82. package/lib/module/ui/screens/{karma/KarmaCenterScreen.js → trust/TrustCenterScreen.js} +92 -42
  83. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -0
  84. package/lib/module/ui/screens/{karma/KarmaFAQScreen.js → trust/TrustFAQScreen.js} +11 -11
  85. package/lib/module/ui/screens/{karma/KarmaFAQScreen.js.map → trust/TrustFAQScreen.js.map} +1 -1
  86. package/lib/module/ui/screens/{karma/KarmaLeaderboardScreen.js → trust/TrustLeaderboardScreen.js} +63 -42
  87. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -0
  88. package/lib/module/ui/screens/{karma/KarmaRewardsScreen.js → trust/TrustRewardsScreen.js} +54 -54
  89. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -0
  90. package/lib/module/ui/screens/{karma/KarmaRulesScreen.js → trust/TrustRulesScreen.js} +45 -16
  91. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -0
  92. package/lib/module/ui/screens/trust/trustTier.js +19 -0
  93. package/lib/module/ui/screens/trust/trustTier.js.map +1 -0
  94. package/lib/module/utils/deviceFlowSignIn.js +13 -10
  95. package/lib/module/utils/deviceFlowSignIn.js.map +1 -1
  96. package/lib/typescript/commonjs/index.d.ts +3 -1
  97. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +30 -10
  99. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +1 -1
  101. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/ui/components/accountMenuRows.d.ts +19 -12
  103. package/lib/typescript/commonjs/ui/components/accountMenuRows.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +3 -3
  105. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +1 -7
  108. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +3 -7
  110. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/ui/hooks/useDeviceAccounts.d.ts +133 -0
  112. package/lib/typescript/commonjs/ui/hooks/useDeviceAccounts.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +1 -1
  116. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  117. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts +5 -0
  120. package/lib/typescript/commonjs/ui/screens/{karma/KarmaAboutScreen.d.ts.map → trust/TrustAboutScreen.d.ts.map} +1 -1
  121. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts +5 -0
  122. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -0
  123. package/lib/typescript/{module/ui/screens/karma/KarmaFAQScreen.d.ts → commonjs/ui/screens/trust/TrustFAQScreen.d.ts} +1 -1
  124. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts +5 -0
  126. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -0
  127. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts +5 -0
  128. package/lib/typescript/commonjs/ui/screens/{karma/KarmaRewardsScreen.d.ts.map → trust/TrustRewardsScreen.d.ts.map} +1 -1
  129. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts +5 -0
  130. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts +9 -0
  132. package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/ui/types/navigation.d.ts +1 -1
  134. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +11 -9
  135. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +1 -1
  136. package/lib/typescript/module/index.d.ts +3 -1
  137. package/lib/typescript/module/index.d.ts.map +1 -1
  138. package/lib/typescript/module/ui/components/AccountMenu.d.ts +30 -10
  139. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
  140. package/lib/typescript/module/ui/components/SignInModal.d.ts +1 -1
  141. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  142. package/lib/typescript/module/ui/components/accountMenuRows.d.ts +19 -12
  143. package/lib/typescript/module/ui/components/accountMenuRows.d.ts.map +1 -1
  144. package/lib/typescript/module/ui/context/OxyContext.d.ts +3 -3
  145. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  146. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  147. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +1 -7
  148. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  149. package/lib/typescript/module/ui/hooks/useAuth.d.ts +3 -7
  150. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  151. package/lib/typescript/module/ui/hooks/useDeviceAccounts.d.ts +133 -0
  152. package/lib/typescript/module/ui/hooks/useDeviceAccounts.d.ts.map +1 -0
  153. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  154. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts.map +1 -1
  155. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +1 -1
  156. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  157. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  158. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  159. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts +5 -0
  160. package/lib/typescript/module/ui/screens/{karma/KarmaAboutScreen.d.ts.map → trust/TrustAboutScreen.d.ts.map} +1 -1
  161. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts +5 -0
  162. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -0
  163. package/lib/typescript/{commonjs/ui/screens/karma/KarmaFAQScreen.d.ts → module/ui/screens/trust/TrustFAQScreen.d.ts} +1 -1
  164. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -0
  165. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts +5 -0
  166. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -0
  167. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts +5 -0
  168. package/lib/typescript/module/ui/screens/{karma/KarmaRewardsScreen.d.ts.map → trust/TrustRewardsScreen.d.ts.map} +1 -1
  169. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts +5 -0
  170. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -0
  171. package/lib/typescript/module/ui/screens/trust/trustTier.d.ts +9 -0
  172. package/lib/typescript/module/ui/screens/trust/trustTier.d.ts.map +1 -0
  173. package/lib/typescript/module/ui/types/navigation.d.ts +1 -1
  174. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +11 -9
  175. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +1 -1
  176. package/package.json +1 -1
  177. package/src/index.ts +10 -1
  178. package/src/ui/components/AccountMenu.tsx +311 -253
  179. package/src/ui/components/AccountMenuButton.tsx +2 -2
  180. package/src/ui/components/OxySignInButton.tsx +1 -1
  181. package/src/ui/components/SignInModal.tsx +26 -16
  182. package/src/ui/components/accountMenuRows.ts +28 -40
  183. package/src/ui/context/OxyContext.tsx +43 -61
  184. package/src/ui/context/hooks/useAuthOperations.ts +7 -13
  185. package/src/ui/hooks/useAuth.ts +11 -48
  186. package/src/ui/hooks/useDeviceAccounts.ts +348 -0
  187. package/src/ui/hooks/useSessionManagement.ts +5 -14
  188. package/src/ui/hooks/useSessionSocket.ts +4 -5
  189. package/src/ui/hooks/useWebSSO.ts +1 -1
  190. package/src/ui/navigation/routes.ts +13 -13
  191. package/src/ui/screens/OxyAuthScreen.tsx +21 -12
  192. package/src/ui/screens/ProfileScreen.tsx +15 -17
  193. package/src/ui/screens/WelcomeNewUserScreen.tsx +2 -2
  194. package/src/ui/screens/{karma/KarmaAboutScreen.tsx → trust/TrustAboutScreen.tsx} +15 -15
  195. package/src/ui/screens/{karma/KarmaCenterScreen.tsx → trust/TrustCenterScreen.tsx} +87 -41
  196. package/src/ui/screens/{karma/KarmaFAQScreen.tsx → trust/TrustFAQScreen.tsx} +10 -10
  197. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +101 -0
  198. package/src/ui/screens/{karma/KarmaRewardsScreen.tsx → trust/TrustRewardsScreen.tsx} +54 -54
  199. package/src/ui/screens/{karma/KarmaRulesScreen.tsx → trust/TrustRulesScreen.tsx} +27 -13
  200. package/src/ui/screens/trust/trustTier.ts +20 -0
  201. package/src/ui/types/navigation.ts +1 -2
  202. package/src/utils/__tests__/deviceFlowSignIn.test.ts +2 -3
  203. package/src/utils/deviceFlowSignIn.ts +18 -12
  204. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +0 -1
  205. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +0 -1
  206. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +0 -1
  207. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +0 -1
  208. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +0 -1
  209. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +0 -1
  210. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +0 -1
  211. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +0 -1
  212. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +0 -1
  213. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +0 -1
  214. package/lib/typescript/commonjs/ui/screens/karma/KarmaAboutScreen.d.ts +0 -5
  215. package/lib/typescript/commonjs/ui/screens/karma/KarmaCenterScreen.d.ts +0 -5
  216. package/lib/typescript/commonjs/ui/screens/karma/KarmaCenterScreen.d.ts.map +0 -1
  217. package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +0 -1
  218. package/lib/typescript/commonjs/ui/screens/karma/KarmaLeaderboardScreen.d.ts +0 -5
  219. package/lib/typescript/commonjs/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +0 -1
  220. package/lib/typescript/commonjs/ui/screens/karma/KarmaRewardsScreen.d.ts +0 -5
  221. package/lib/typescript/commonjs/ui/screens/karma/KarmaRulesScreen.d.ts +0 -5
  222. package/lib/typescript/commonjs/ui/screens/karma/KarmaRulesScreen.d.ts.map +0 -1
  223. package/lib/typescript/module/ui/screens/karma/KarmaAboutScreen.d.ts +0 -5
  224. package/lib/typescript/module/ui/screens/karma/KarmaCenterScreen.d.ts +0 -5
  225. package/lib/typescript/module/ui/screens/karma/KarmaCenterScreen.d.ts.map +0 -1
  226. package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +0 -1
  227. package/lib/typescript/module/ui/screens/karma/KarmaLeaderboardScreen.d.ts +0 -5
  228. package/lib/typescript/module/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +0 -1
  229. package/lib/typescript/module/ui/screens/karma/KarmaRewardsScreen.d.ts +0 -5
  230. package/lib/typescript/module/ui/screens/karma/KarmaRulesScreen.d.ts +0 -5
  231. package/lib/typescript/module/ui/screens/karma/KarmaRulesScreen.d.ts.map +0 -1
  232. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +0 -88
@@ -12,7 +12,7 @@ import { Colors } from "../../constants/theme.js";
12
12
  import { useOxy } from "../../context/OxyContext.js";
13
13
  import { darkenColor, lightenColor } from "../../utils/colorUtils.js";
14
14
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
15
- const KarmaRewardsScreen = ({
15
+ const TrustRewardsScreen = ({
16
16
  goBack,
17
17
  theme
18
18
  }) => {
@@ -24,7 +24,7 @@ const KarmaRewardsScreen = ({
24
24
  oxyServices,
25
25
  isAuthenticated
26
26
  } = useOxy();
27
- const [karmaTotal, setKarmaTotal] = useState(0);
27
+ const [reputationTotal, setReputationTotal] = useState(0);
28
28
  const [isLoading, setIsLoading] = useState(true);
29
29
  const bloomTheme = useTheme();
30
30
  const colorScheme = useColorScheme();
@@ -39,97 +39,97 @@ const KarmaRewardsScreen = ({
39
39
  return;
40
40
  }
41
41
  setIsLoading(true);
42
- oxyServices.getUserKarmaTotal(user.id).then(data => {
43
- setKarmaTotal(data.total || 0);
42
+ oxyServices.getReputationBalance(user.id).then(balance => {
43
+ setReputationTotal(balance.total || 0);
44
44
  }).catch(() => {
45
- setKarmaTotal(0);
45
+ setReputationTotal(0);
46
46
  }).finally(() => setIsLoading(false));
47
47
  }, [user, isAuthenticated, oxyServices]);
48
48
  const achievements = useMemo(() => [{
49
49
  id: 'first-step',
50
- name: t('karma.achievements.firstStep') || 'First Step',
51
- description: t('karma.achievements.firstStepDesc') || 'Earned your first karma point',
50
+ name: t('trust.achievements.firstStep') || 'First Step',
51
+ description: t('trust.achievements.firstStepDesc') || 'Earned your first reputation point',
52
52
  category: 'milestone',
53
53
  icon: 'footsteps',
54
54
  iconColor: '#8E8E93',
55
- unlocked: karmaTotal >= 1,
55
+ unlocked: reputationTotal >= 1,
56
56
  rarity: 'common'
57
57
  }, {
58
58
  id: 'novice',
59
- name: t('karma.achievements.novice') || 'Novice',
60
- description: t('karma.achievements.noviceDesc') || 'Reached 10 karma points',
59
+ name: t('trust.achievements.novice') || 'Novice',
60
+ description: t('trust.achievements.noviceDesc') || 'Reached 10 reputation points',
61
61
  category: 'milestone',
62
62
  icon: 'leaf',
63
63
  iconColor: '#34C759',
64
- unlocked: karmaTotal >= 10,
64
+ unlocked: reputationTotal >= 10,
65
65
  rarity: 'common'
66
66
  }, {
67
67
  id: 'contributor',
68
- name: t('karma.achievements.contributor') || 'Contributor',
69
- description: t('karma.achievements.contributorDesc') || 'Reached 50 karma points',
68
+ name: t('trust.achievements.contributor') || 'Contributor',
69
+ description: t('trust.achievements.contributorDesc') || 'Reached 50 reputation points',
70
70
  category: 'contribution',
71
71
  icon: 'account-group',
72
72
  iconColor: '#007AFF',
73
- unlocked: karmaTotal >= 50,
73
+ unlocked: reputationTotal >= 50,
74
74
  rarity: 'common'
75
75
  }, {
76
76
  id: 'rising-star',
77
- name: t('karma.achievements.risingStar') || 'Rising Star',
78
- description: t('karma.achievements.risingStarDesc') || 'Reached 100 karma points',
77
+ name: t('trust.achievements.risingStar') || 'Rising Star',
78
+ description: t('trust.achievements.risingStarDesc') || 'Reached 100 reputation points',
79
79
  category: 'milestone',
80
80
  icon: 'star',
81
81
  iconColor: '#FF9500',
82
- unlocked: karmaTotal >= 100,
82
+ unlocked: reputationTotal >= 100,
83
83
  rarity: 'rare'
84
84
  }, {
85
85
  id: 'early-adopter',
86
- name: t('karma.achievements.earlyAdopter') || 'Early Adopter',
87
- description: t('karma.achievements.earlyAdopterDesc') || 'Been part of the community from the start',
86
+ name: t('trust.achievements.earlyAdopter') || 'Early Adopter',
87
+ description: t('trust.achievements.earlyAdopterDesc') || 'Been part of the community from the start',
88
88
  category: 'special',
89
89
  icon: 'rocket',
90
90
  iconColor: '#AF52DE',
91
- unlocked: karmaTotal >= 200,
91
+ unlocked: reputationTotal >= 200,
92
92
  rarity: 'rare'
93
93
  }, {
94
94
  id: 'community-hero',
95
- name: t('karma.achievements.communityHero') || 'Community Hero',
96
- description: t('karma.achievements.communityHeroDesc') || 'Reached 500 karma points',
95
+ name: t('trust.achievements.communityHero') || 'Community Hero',
96
+ description: t('trust.achievements.communityHeroDesc') || 'Reached 500 reputation points',
97
97
  category: 'contribution',
98
98
  icon: 'shield',
99
99
  iconColor: '#FF2D55',
100
- unlocked: karmaTotal >= 500,
100
+ unlocked: reputationTotal >= 500,
101
101
  rarity: 'epic'
102
102
  }, {
103
103
  id: 'legend',
104
- name: t('karma.achievements.legend') || 'Legend',
105
- description: t('karma.achievements.legendDesc') || 'Reached 1000 karma points',
104
+ name: t('trust.achievements.legend') || 'Legend',
105
+ description: t('trust.achievements.legendDesc') || 'Reached 1000 reputation points',
106
106
  category: 'milestone',
107
107
  icon: 'trophy',
108
108
  iconColor: '#FFD700',
109
- unlocked: karmaTotal >= 1000,
109
+ unlocked: reputationTotal >= 1000,
110
110
  rarity: 'legendary'
111
111
  }, {
112
112
  id: 'phoenix',
113
- name: t('karma.achievements.phoenix') || 'Phoenix',
114
- description: t('karma.achievements.phoenixDesc') || 'Reached 2500 karma points',
113
+ name: t('trust.achievements.phoenix') || 'Phoenix',
114
+ description: t('trust.achievements.phoenixDesc') || 'Reached 2500 reputation points',
115
115
  category: 'milestone',
116
116
  icon: 'flame',
117
117
  iconColor: '#FF3B30',
118
- unlocked: karmaTotal >= 2500,
118
+ unlocked: reputationTotal >= 2500,
119
119
  rarity: 'legendary'
120
120
  }, {
121
121
  id: 'unstoppable',
122
- name: t('karma.achievements.unstoppable') || 'Unstoppable',
123
- description: t('karma.achievements.unstoppableDesc') || 'Reached 5000 karma points',
122
+ name: t('trust.achievements.unstoppable') || 'Unstoppable',
123
+ description: t('trust.achievements.unstoppableDesc') || 'Reached 5000 reputation points',
124
124
  category: 'milestone',
125
125
  icon: 'infinite',
126
126
  iconColor: '#5E5CE6',
127
- unlocked: karmaTotal >= 5000,
127
+ unlocked: reputationTotal >= 5000,
128
128
  rarity: 'legendary'
129
129
  }, {
130
130
  id: 'bug-hunter',
131
- name: t('karma.achievements.bugHunter') || 'Bug Hunter',
132
- description: t('karma.achievements.bugHunterDesc') || 'Reported helpful bugs',
131
+ name: t('trust.achievements.bugHunter') || 'Bug Hunter',
132
+ description: t('trust.achievements.bugHunterDesc') || 'Reported helpful bugs',
133
133
  category: 'contribution',
134
134
  icon: 'bug',
135
135
  iconColor: '#FF9500',
@@ -137,8 +137,8 @@ const KarmaRewardsScreen = ({
137
137
  rarity: 'rare'
138
138
  }, {
139
139
  id: 'helper',
140
- name: t('karma.achievements.helper') || 'Helper',
141
- description: t('karma.achievements.helperDesc') || 'Helped 10 users',
140
+ name: t('trust.achievements.helper') || 'Helper',
141
+ description: t('trust.achievements.helperDesc') || 'Helped 10 users',
142
142
  category: 'contribution',
143
143
  icon: 'hand-left',
144
144
  iconColor: '#34C759',
@@ -146,14 +146,14 @@ const KarmaRewardsScreen = ({
146
146
  rarity: 'common'
147
147
  }, {
148
148
  id: 'streak-master',
149
- name: t('karma.achievements.streakMaster') || 'Streak Master',
150
- description: t('karma.achievements.streakMasterDesc') || '7 day activity streak',
149
+ name: t('trust.achievements.streakMaster') || 'Streak Master',
150
+ description: t('trust.achievements.streakMasterDesc') || '7 day activity streak',
151
151
  category: 'streak',
152
152
  icon: 'flash',
153
153
  iconColor: '#FFD700',
154
154
  unlocked: false,
155
155
  rarity: 'epic'
156
- }], [t, karmaTotal, colors]);
156
+ }], [t, reputationTotal, colors]);
157
157
  const unlockedAchievements = achievements.filter(a => a.unlocked);
158
158
  const lockedAchievements = achievements.filter(a => !a.unlocked);
159
159
  const getRarityColor = rarity => {
@@ -279,8 +279,8 @@ const KarmaRewardsScreen = ({
279
279
  backgroundColor: bloomTheme.colors.background
280
280
  }],
281
281
  children: [/*#__PURE__*/_jsx(Header, {
282
- title: t('karma.rewards.title') || 'Karma Rewards',
283
- subtitle: t('karma.rewards.subtitle') || 'Unlock special features and recognition',
282
+ title: t('trust.rewards.title') || 'Trust Rewards',
283
+ subtitle: t('trust.rewards.subtitle') || 'Unlock special features and recognition',
284
284
  onBack: goBack,
285
285
  elevation: "subtle"
286
286
  }), /*#__PURE__*/_jsx(View, {
@@ -299,8 +299,8 @@ const KarmaRewardsScreen = ({
299
299
  backgroundColor: bloomTheme.colors.background
300
300
  }],
301
301
  children: [/*#__PURE__*/_jsx(Header, {
302
- title: t('karma.rewards.title') || 'Karma Rewards',
303
- subtitle: t('karma.rewards.subtitle') || 'Unlock special features and recognition',
302
+ title: t('trust.rewards.title') || 'Trust Rewards',
303
+ subtitle: t('trust.rewards.subtitle') || 'Unlock special features and recognition',
304
304
  onBack: goBack,
305
305
  elevation: "subtle"
306
306
  }), /*#__PURE__*/_jsxs(ScrollView, {
@@ -314,15 +314,15 @@ const KarmaRewardsScreen = ({
314
314
  style: styles.statsHeader,
315
315
  children: [/*#__PURE__*/_jsxs(View, {
316
316
  children: [/*#__PURE__*/_jsx(Text, {
317
- style: [styles.currentKarma, {
317
+ style: [styles.currentReputation, {
318
318
  color: themeStyles.primaryColor
319
319
  }],
320
- children: karmaTotal
320
+ children: reputationTotal
321
321
  }), /*#__PURE__*/_jsx(Text, {
322
- style: [styles.karmaLabel, {
322
+ style: [styles.reputationLabel, {
323
323
  color: bloomTheme.colors.textTertiary
324
324
  }],
325
- children: t('karma.center.balance') || 'Karma Points'
325
+ children: t('trust.center.balance') || 'Reputation Points'
326
326
  })]
327
327
  }), /*#__PURE__*/_jsxs(View, {
328
328
  style: styles.achievementStats,
@@ -335,7 +335,7 @@ const KarmaRewardsScreen = ({
335
335
  style: [styles.achievementCountLabel, {
336
336
  color: bloomTheme.colors.textTertiary
337
337
  }],
338
- children: t('karma.achievements.unlocked') || 'Achievements'
338
+ children: t('trust.achievements.unlocked') || 'Achievements'
339
339
  })]
340
340
  })]
341
341
  }), /*#__PURE__*/_jsxs(View, {
@@ -362,7 +362,7 @@ const KarmaRewardsScreen = ({
362
362
  style: [styles.sectionTitle, {
363
363
  color: bloomTheme.colors.text
364
364
  }],
365
- children: t('karma.achievements.unlocked') || 'Unlocked Achievements'
365
+ children: t('trust.achievements.unlocked') || 'Unlocked Achievements'
366
366
  }), /*#__PURE__*/_jsx(View, {
367
367
  style: styles.achievementsGrid,
368
368
  children: unlockedAchievements.map(achievement => renderAchievement(achievement))
@@ -372,7 +372,7 @@ const KarmaRewardsScreen = ({
372
372
  style: [styles.sectionTitle, {
373
373
  color: bloomTheme.colors.text
374
374
  }],
375
- children: t('karma.achievements.locked') || 'Locked Achievements'
375
+ children: t('trust.achievements.locked') || 'Locked Achievements'
376
376
  }), /*#__PURE__*/_jsx(View, {
377
377
  style: styles.achievementsGrid,
378
378
  children: lockedAchievements.map(achievement => renderAchievement(achievement))
@@ -410,7 +410,7 @@ const styles = StyleSheet.create({
410
410
  alignItems: 'center',
411
411
  marginBottom: 16
412
412
  },
413
- currentKarma: {
413
+ currentReputation: {
414
414
  fontSize: 36,
415
415
  fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
416
416
  marginBottom: 4
@@ -426,7 +426,7 @@ const styles = StyleSheet.create({
426
426
  achievementCountLabel: {
427
427
  fontSize: 14
428
428
  },
429
- karmaLabel: {
429
+ reputationLabel: {
430
430
  fontSize: 14
431
431
  },
432
432
  progressBarContainer: {
@@ -593,5 +593,5 @@ const styles = StyleSheet.create({
593
593
  lineHeight: 15
594
594
  }
595
595
  });
596
- export default KarmaRewardsScreen;
597
- //# sourceMappingURL=KarmaRewardsScreen.js.map
596
+ export default TrustRewardsScreen;
597
+ //# sourceMappingURL=TrustRewardsScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useState","useEffect","View","Text","StyleSheet","ScrollView","Platform","Header","Ionicons","useI18n","useTheme","normalizeColorScheme","useColorScheme","Colors","useOxy","darkenColor","lightenColor","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TrustRewardsScreen","goBack","theme","t","user","oxyServices","isAuthenticated","reputationTotal","setReputationTotal","isLoading","setIsLoading","bloomTheme","colorScheme","normalizedColorScheme","colors","themeStyles","primaryColor","getReputationBalance","id","then","balance","total","catch","finally","achievements","name","description","category","icon","iconColor","unlocked","rarity","unlockedAchievements","filter","a","lockedAchievements","getRarityColor","textTertiary","getAchievementValue","achievement","valueMap","renderAchievement","rarityColor","isLocked","achievementValue","baseColor","darkTone","lightTone","mediumTone","style","styles","achievementCard","backgroundColor","card","children","badgeContainer","badgeGlow","badgeOrganic","opacity","badgeMain","border","borderColor","borderWidth","shadowColor","badgeHighlight","badgeHighlightAccent","badgeIconContainer","size","color","negativeForeground","badgeValueContainer","badgeValueText","textShadowColor","rarityBadge","rarityText","toUpperCase","achievementName","text","achievementDescription","container","background","title","subtitle","onBack","elevation","centerContent","message","contentContainerStyle","contentContainer","showsVerticalScrollIndicator","statsCard","statsHeader","currentReputation","reputationLabel","achievementStats","achievementCount","length","achievementCountLabel","progressBarContainer","progressBar","progressBarFill","width","progressText","sectionTitle","achievementsGrid","map","create","flex","paddingHorizontal","paddingTop","paddingBottom","justifyContent","alignItems","fontSize","textAlign","borderRadius","padding","marginBottom","flexDirection","fontWeight","OS","undefined","marginTop","height","overflow","flexWrap","gap","minWidth","position","shadowOffset","shadowRadius","shadowOpacity","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","top","left","right","zIndex","bottom","textShadowOffset","textShadowRadius","letterSpacing","lineHeight"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/TrustRewardsScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import { useI18n } from "../../hooks/useI18n.js";
7
7
  import { useTheme } from '@oxyhq/bloom/theme';
8
8
  import { useOxy } from "../../context/OxyContext.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- const KarmaRulesScreen = ({
10
+ const TrustRulesScreen = ({
11
11
  goBack,
12
12
  theme
13
13
  }) => {
@@ -22,20 +22,20 @@ const KarmaRulesScreen = ({
22
22
  const [isLoading, setIsLoading] = useState(true);
23
23
  const [error, setError] = useState(null);
24
24
  const bloomTheme = useTheme();
25
- // Override primaryColor for Karma screens (purple instead of blue)
25
+ // Override primaryColor for Oxy Trust screens (purple instead of blue)
26
26
  const primaryColor = '#d169e5';
27
27
  useEffect(() => {
28
28
  setIsLoading(true);
29
29
  setError(null);
30
- oxyServices.getKarmaRules().then(data => setRules(Array.isArray(data) ? data : [])).catch(err => setError((err instanceof Error ? err.message : null) || 'Failed to load rules')).finally(() => setIsLoading(false));
30
+ oxyServices.getReputationRules().then(data => setRules(Array.isArray(data) ? data : [])).catch(err => setError((err instanceof Error ? err.message : null) || 'Failed to load rules')).finally(() => setIsLoading(false));
31
31
  }, [oxyServices]);
32
32
  return /*#__PURE__*/_jsxs(View, {
33
33
  style: [styles.container, {
34
34
  backgroundColor: bloomTheme.colors.background
35
35
  }],
36
36
  children: [/*#__PURE__*/_jsx(Header, {
37
- title: t('karma.rules.title') || 'Karma Rules',
38
- subtitle: t('karma.rules.subtitle') || 'How to earn karma points',
37
+ title: t('trust.rules.title') || 'Trust Rules',
38
+ subtitle: t('trust.rules.subtitle') || 'How to earn reputation',
39
39
  onBack: goBack,
40
40
  elevation: "subtle"
41
41
  }), isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
@@ -55,18 +55,31 @@ const KarmaRulesScreen = ({
55
55
  style: [styles.placeholder, {
56
56
  color: bloomTheme.colors.text
57
57
  }],
58
- children: t('karma.rules.empty') || 'No rules found.'
59
- }) : rules.map((rule, idx) => /*#__PURE__*/_jsx(View, {
58
+ children: t('trust.rules.empty') || 'No rules found.'
59
+ }) : rules.map(rule => /*#__PURE__*/_jsxs(View, {
60
60
  style: [styles.ruleRow, {
61
61
  borderColor: bloomTheme.colors.border
62
62
  }],
63
- children: /*#__PURE__*/_jsx(Text, {
64
- style: [styles.ruleDesc, {
65
- color: bloomTheme.colors.text
63
+ children: [/*#__PURE__*/_jsxs(View, {
64
+ style: styles.ruleTextColumn,
65
+ children: [/*#__PURE__*/_jsx(Text, {
66
+ style: [styles.ruleDesc, {
67
+ color: bloomTheme.colors.text
68
+ }],
69
+ children: rule.description
70
+ }), /*#__PURE__*/_jsx(Text, {
71
+ style: [styles.ruleCategory, {
72
+ color: bloomTheme.colors.textTertiary
73
+ }],
74
+ children: rule.category
75
+ })]
76
+ }), /*#__PURE__*/_jsxs(Text, {
77
+ style: [styles.rulePoints, {
78
+ color: rule.points >= 0 ? primaryColor : bloomTheme.colors.error
66
79
  }],
67
- children: rule.description
68
- })
69
- }, rule.id || idx))
80
+ children: [rule.points > 0 ? '+' : '', rule.points]
81
+ })]
82
+ }, rule.id))
70
83
  })]
71
84
  });
72
85
  };
@@ -79,13 +92,29 @@ const styles = StyleSheet.create({
79
92
  paddingTop: 20
80
93
  },
81
94
  ruleRow: {
95
+ flexDirection: 'row',
96
+ alignItems: 'center',
97
+ justifyContent: 'space-between',
82
98
  paddingVertical: 14,
83
99
  paddingHorizontal: 24,
84
- borderBottomWidth: 1
100
+ borderBottomWidth: 1,
101
+ gap: 12
102
+ },
103
+ ruleTextColumn: {
104
+ flex: 1
85
105
  },
86
106
  ruleDesc: {
87
107
  fontSize: 16
88
108
  },
109
+ ruleCategory: {
110
+ fontSize: 12,
111
+ marginTop: 2,
112
+ textTransform: 'capitalize'
113
+ },
114
+ rulePoints: {
115
+ fontSize: 16,
116
+ fontWeight: '700'
117
+ },
89
118
  placeholder: {
90
119
  fontSize: 16,
91
120
  textAlign: 'center',
@@ -97,5 +126,5 @@ const styles = StyleSheet.create({
97
126
  marginTop: 40
98
127
  }
99
128
  });
100
- export default KarmaRulesScreen;
101
- //# sourceMappingURL=KarmaRulesScreen.js.map
129
+ export default TrustRulesScreen;
130
+ //# sourceMappingURL=TrustRulesScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","View","Text","StyleSheet","ScrollView","ActivityIndicator","Header","useI18n","useTheme","useOxy","jsx","_jsx","jsxs","_jsxs","TrustRulesScreen","goBack","theme","oxyServices","t","rules","setRules","isLoading","setIsLoading","error","setError","bloomTheme","primaryColor","getReputationRules","then","data","Array","isArray","catch","err","Error","message","finally","style","styles","container","backgroundColor","colors","background","children","title","subtitle","onBack","elevation","size","color","marginTop","contentContainerStyle","listContainer","length","placeholder","text","map","rule","ruleRow","borderColor","border","ruleTextColumn","ruleDesc","description","ruleCategory","textTertiary","category","rulePoints","points","id","create","flex","paddingBottom","paddingTop","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderBottomWidth","gap","fontSize","textTransform","fontWeight","textAlign"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/TrustRulesScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ /** Default English labels for each trust tier, used as i18n fallbacks. */
4
+ const TRUST_TIER_FALLBACK = {
5
+ new: 'New',
6
+ trusted: 'Trusted',
7
+ high_trust: 'High Trust',
8
+ verified: 'Verified',
9
+ restricted: 'Restricted'
10
+ };
11
+
12
+ /**
13
+ * Resolve a human-readable label for a trust tier, preferring the localized
14
+ * `trust.tiers.<tier>` key and falling back to the canonical English label.
15
+ */
16
+ export function getTrustTierLabel(tier, t) {
17
+ return t(`trust.tiers.${tier}`) || TRUST_TIER_FALLBACK[tier];
18
+ }
19
+ //# sourceMappingURL=trustTier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TRUST_TIER_FALLBACK","new","trusted","high_trust","verified","restricted","getTrustTierLabel","tier","t"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/trustTier.ts"],"mappings":";;AAIA;AACA,MAAMA,mBAA8C,GAAG;EACnDC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,IAAe,EAAEC,CAAY,EAAU;EACrE,OAAOA,CAAC,CAAC,eAAeD,IAAI,EAAE,CAAC,IAAIP,mBAAmB,CAACO,IAAI,CAAC;AAChE","ignoreList":[]}
@@ -12,15 +12,14 @@
12
12
  * token via `claimSessionByToken` — the device-flow equivalent of OAuth's
13
13
  * code-for-token exchange (RFC 8628 §3.4).
14
14
  *
15
- * Skipping the claim leaves the SDK with NO bearer token, so the subsequent
16
- * `switchSession` -> `getTokenBySession` (`GET /session/token/:id`) call 401s
17
- * against the C1-hardened API: the session is authorized server-side but the
18
- * app never becomes authenticated and the UI sits "Waiting for
19
- * authorization..." forever. The web `SignInModal` already claimed first; the
20
- * native `OxyAuthScreen` did not. Consolidating the claim→switch sequence here
21
- * keeps both paths identical and unit-testable, and prevents future drift.
15
+ * Skipping the claim leaves the SDK with NO bearer token: the session is
16
+ * authorized server-side but the app never becomes authenticated and the UI
17
+ * sits "Waiting for authorization..." forever. Consolidating the claim→switch
18
+ * sequence here keeps native and web identical and unit-testable.
22
19
  */
23
20
 
21
+ import { KeyManager } from '@oxyhq/core';
22
+
24
23
  /**
25
24
  * The minimal `OxyServices` surface this orchestration needs. Kept as a
26
25
  * structural type (rather than importing the full client) so the helper is
@@ -41,9 +40,13 @@ export async function completeDeviceFlowSignIn({
41
40
  sessionToken,
42
41
  switchSession
43
42
  }) {
44
- // 1) Plant the bearer + refresh tokens. Without this the bearer-protected
45
- // `getTokenBySession` inside `switchSession` 401s (the native regression).
46
- await oxyServices.claimSessionByToken(sessionToken);
43
+ // 1) Plant the bearer + refresh tokens. The claim response is also persisted
44
+ // to native shared secure storage so a later cold boot has a bearer before
45
+ // it validates stored sessions. On web this is a no-op.
46
+ const claimed = await oxyServices.claimSessionByToken(sessionToken);
47
+ if (claimed?.accessToken) {
48
+ await KeyManager.storeSharedSession(claimed.sessionId || sessionId, claimed.accessToken);
49
+ }
47
50
 
48
51
  // 2) Bearer is now planted — hydrate the session through the normal path.
49
52
  return switchSession(sessionId);
@@ -1 +1 @@
1
- {"version":3,"names":["completeDeviceFlowSignIn","oxyServices","sessionId","sessionToken","switchSession","claimSessionByToken"],"sourceRoot":"../../../src","sources":["utils/deviceFlowSignIn.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeA,wBAAwBA,CAAC;EAC7CC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC;AAC+B,CAAC,EAAiB;EACjD;EACA;EACA,MAAMH,WAAW,CAACI,mBAAmB,CAACF,YAAY,CAAC;;EAEnD;EACA,OAAOC,aAAa,CAACF,SAAS,CAAC;AACjC","ignoreList":[]}
1
+ {"version":3,"names":["KeyManager","completeDeviceFlowSignIn","oxyServices","sessionId","sessionToken","switchSession","claimed","claimSessionByToken","accessToken","storeSharedSession"],"sourceRoot":"../../../src","sources":["utils/deviceFlowSignIn.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,QAAmB,aAAa;;AAOnD;AACA;AACA;AACA;AACA;AACA;;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,wBAAwBA,CAAC;EAC7CC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC;AAC+B,CAAC,EAAiB;EACjD;EACA;EACA;EACA,MAAMC,OAAO,GAAG,MAAMJ,WAAW,CAACK,mBAAmB,CAACH,YAAY,CAAC;EACnE,IAAIE,OAAO,EAAEE,WAAW,EAAE;IACxB,MAAMR,UAAU,CAACS,kBAAkB,CAACH,OAAO,CAACH,SAAS,IAAIA,SAAS,EAAEG,OAAO,CAACE,WAAW,CAAC;EAC1F;;EAEA;EACA,OAAOH,aAAa,CAACF,SAAS,CAAC;AACjC","ignoreList":[]}
@@ -59,9 +59,11 @@ export { LogoIcon } from './ui/components/logo/LogoIcon';
59
59
  export { LogoText } from './ui/components/logo/LogoText';
60
60
  export { default as ActingAsBanner } from './ui/components/ActingAsBanner';
61
61
  export { default as AccountMenu } from './ui/components/AccountMenu';
62
- export type { AccountMenuProps } from './ui/components/AccountMenu';
62
+ export type { AccountMenuProps, AccountMenuAnchor } from './ui/components/AccountMenu';
63
63
  export { default as AccountMenuButton } from './ui/components/AccountMenuButton';
64
64
  export type { AccountMenuButtonProps } from './ui/components/AccountMenuButton';
65
+ export { useDeviceAccounts } from './ui/hooks/useDeviceAccounts';
66
+ export type { DeviceAccount, DeviceAccountUser, UseDeviceAccountsResult, } from './ui/hooks/useDeviceAccounts';
65
67
  export { default as ManageAccountScreen } from './ui/screens/ManageAccountScreen';
66
68
  export { default as NotificationsScreen } from './ui/screens/NotificationsScreen';
67
69
  export { default as PreferencesScreen } from './ui/screens/PreferencesScreen';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,42 @@
1
1
  import type React from 'react';
2
+ /**
3
+ * Web-only anchor for the popover panel. Each field anchors the panel against
4
+ * one viewport edge, so the popover can be placed against ANY corner: a
5
+ * top-right avatar chip opens downward/right-aligned (`{ top, right }`), while a
6
+ * bottom-left account button opens upward/left-aligned (`{ bottom, left }`).
7
+ *
8
+ * Callers MUST supply at most one vertical edge (`top` XOR `bottom`) and at most
9
+ * one horizontal edge (`left` XOR `right`). The panel has a fixed width and
10
+ * `maxHeight`, so a single vertical + single horizontal edge fully positions it.
11
+ * Supplying both opposite edges (e.g. `top` AND `bottom`) would stretch the
12
+ * panel on RN-Web and is unsupported.
13
+ */
14
+ export interface AccountMenuAnchor {
15
+ /** Distance from the viewport top, when anchoring the panel's TOP edge. */
16
+ top?: number;
17
+ /** Distance from the viewport bottom, when anchoring the panel's BOTTOM edge (opens upward). */
18
+ bottom?: number;
19
+ /** Distance from the viewport left, when anchoring the panel's LEFT edge. */
20
+ left?: number;
21
+ /** Distance from the viewport right, when anchoring the panel's RIGHT edge. */
22
+ right?: number;
23
+ }
2
24
  export interface AccountMenuProps {
3
25
  open: boolean;
4
26
  onClose: () => void;
5
27
  onNavigateManage: () => void;
6
28
  onAddAccount: () => void;
7
- /** Optional anchor coords (web only). Native ignores this and uses bottom-sheet style. */
8
- anchor?: {
9
- top: number;
10
- right: number;
11
- } | null;
29
+ /** Optional anchor (web only). Native ignores this and uses bottom-sheet style. */
30
+ anchor?: AccountMenuAnchor | null;
12
31
  }
13
32
  /**
14
- * Reusable account menu modeled after the Google account chooser. Opens from
15
- * the avatar entry point (`AccountMenuButton`) or any other trigger.
33
+ * Unified, canonical account switcher for the Oxy ecosystem. Gmail-style: the
34
+ * accounts list sits at the top (current account first, with a checkmark), then
35
+ * "Add another account", "Manage account", and the sign-out actions.
16
36
  *
17
- * Reads everything it needs from `useOxy()` — never receive a session via
18
- * props. Renders as a popover anchored to the trigger on web, and as a
19
- * full-width bottom-sheet style modal on native.
37
+ * Reads everything it needs from `useOxy()` / `useDeviceAccounts()` — never
38
+ * receives a session via props. Renders as a popover anchored to the trigger on
39
+ * web, and as a full-width bottom-sheet style modal on native.
20
40
  */
21
41
  declare const AccountMenu: React.FC<AccountMenuProps>;
22
42
  export default AccountMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"AccountMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/AccountMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,0FAA0F;IAC1F,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClD;AAID;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4W3C,CAAC;AA+HF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"AccountMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/AccountMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyB/B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAC9B,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mFAAmF;IACnF,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACrC;AAQD;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+Z3C,CAAC;AAwGF,eAAe,WAAW,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * A semi-transparent full-screen modal that displays:
5
5
  * - QR code for scanning with Oxy Accounts app
6
- * - Button to open Oxy Auth popup
6
+ * - Button to open the Oxy Auth approval page
7
7
  *
8
8
  * Animates with fade-in effect.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyD/B,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAAqB,CAAC;AAEvD,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB,GAAI,UAAU,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAGxF,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAwXxB,CAAC;AA8FF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyD/B,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAAqB,CAAC;AAEvD,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB,GAAI,UAAU,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAGxF,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAkYxB,CAAC;AA8FF,eAAe,WAAW,CAAC"}