@oxyhq/services 6.9.43 → 6.9.45

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 (205) hide show
  1. package/lib/commonjs/index.js +9 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/ActingAsBanner.js +143 -0
  4. package/lib/commonjs/ui/components/ActingAsBanner.js.map +1 -0
  5. package/lib/commonjs/ui/components/OxyPayButton.js +4 -2
  6. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  7. package/lib/commonjs/ui/components/OxySignInButton.js +83 -82
  8. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  9. package/lib/commonjs/ui/components/SettingRow.js +11 -5
  10. package/lib/commonjs/ui/components/SettingRow.js.map +1 -1
  11. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +76 -121
  12. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  13. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +32 -18
  14. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  15. package/lib/commonjs/ui/components/icon/OxyIcon.js +5 -4
  16. package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -1
  17. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +11 -9
  18. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
  19. package/lib/commonjs/ui/components/internal/PinInput.js +3 -2
  20. package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
  21. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +83 -219
  22. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  23. package/lib/commonjs/ui/constants/theme.js +2 -2
  24. package/lib/commonjs/ui/constants/theme.js.map +1 -1
  25. package/lib/commonjs/ui/context/OxyContext.js +78 -3
  26. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  27. package/lib/commonjs/ui/navigation/routes.js +3 -2
  28. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  29. package/lib/commonjs/ui/screens/AccountCenterScreen.js +33 -11
  30. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  31. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +70 -79
  32. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  33. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +22 -10
  34. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  35. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +376 -82
  36. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +21 -9
  38. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +346 -0
  40. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -0
  41. package/lib/commonjs/ui/screens/FileManagementScreen.js +83 -50
  42. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/HistoryViewScreen.js +80 -101
  44. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +66 -93
  46. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/SessionManagementScreen.js +101 -66
  48. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  49. package/lib/commonjs/ui/utils/fileManagement.js +0 -21
  50. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  51. package/lib/module/index.js +3 -0
  52. package/lib/module/index.js.map +1 -1
  53. package/lib/module/ui/components/ActingAsBanner.js +140 -0
  54. package/lib/module/ui/components/ActingAsBanner.js.map +1 -0
  55. package/lib/module/ui/components/OxyPayButton.js +4 -2
  56. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  57. package/lib/module/ui/components/OxySignInButton.js +84 -83
  58. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  59. package/lib/module/ui/components/SettingRow.js +11 -5
  60. package/lib/module/ui/components/SettingRow.js.map +1 -1
  61. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +76 -122
  62. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  63. package/lib/module/ui/components/fileManagement/UploadPreview.js +32 -19
  64. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  65. package/lib/module/ui/components/icon/OxyIcon.js +5 -4
  66. package/lib/module/ui/components/icon/OxyIcon.js.map +1 -1
  67. package/lib/module/ui/components/internal/GroupedPillButtons.js +11 -9
  68. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
  69. package/lib/module/ui/components/internal/PinInput.js +3 -2
  70. package/lib/module/ui/components/internal/PinInput.js.map +1 -1
  71. package/lib/module/ui/components/modals/DeleteAccountModal.js +83 -220
  72. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  73. package/lib/module/ui/constants/theme.js +2 -2
  74. package/lib/module/ui/constants/theme.js.map +1 -1
  75. package/lib/module/ui/context/OxyContext.js +78 -3
  76. package/lib/module/ui/context/OxyContext.js.map +1 -1
  77. package/lib/module/ui/navigation/routes.js +3 -2
  78. package/lib/module/ui/navigation/routes.js.map +1 -1
  79. package/lib/module/ui/screens/AccountCenterScreen.js +32 -11
  80. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  81. package/lib/module/ui/screens/AccountOverviewScreen.js +71 -80
  82. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  83. package/lib/module/ui/screens/AccountSettingsScreen.js +22 -10
  84. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  85. package/lib/module/ui/screens/AccountSwitcherScreen.js +375 -82
  86. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  87. package/lib/module/ui/screens/AccountVerificationScreen.js +22 -10
  88. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  89. package/lib/module/ui/screens/CreateManagedAccountScreen.js +342 -0
  90. package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -0
  91. package/lib/module/ui/screens/FileManagementScreen.js +85 -52
  92. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  93. package/lib/module/ui/screens/HistoryViewScreen.js +80 -101
  94. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  95. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +66 -94
  96. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  97. package/lib/module/ui/screens/SessionManagementScreen.js +101 -67
  98. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  99. package/lib/module/ui/utils/fileManagement.js +0 -20
  100. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  101. package/lib/typescript/commonjs/index.d.ts +1 -0
  102. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/ui/components/ActingAsBanner.d.ts +4 -0
  104. package/lib/typescript/commonjs/ui/components/ActingAsBanner.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/ui/components/OxyPayButton.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +0 -1
  107. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts +2 -2
  109. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  111. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  113. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/ui/components/icon/OxyIcon.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  118. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +6 -0
  120. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  122. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts +5 -0
  129. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -4
  135. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  136. package/lib/typescript/module/index.d.ts +1 -0
  137. package/lib/typescript/module/index.d.ts.map +1 -1
  138. package/lib/typescript/module/ui/components/ActingAsBanner.d.ts +4 -0
  139. package/lib/typescript/module/ui/components/ActingAsBanner.d.ts.map +1 -0
  140. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  141. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +0 -1
  142. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  143. package/lib/typescript/module/ui/components/SettingRow.d.ts +2 -2
  144. package/lib/typescript/module/ui/components/SettingRow.d.ts.map +1 -1
  145. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  146. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  147. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  148. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  149. package/lib/typescript/module/ui/components/icon/OxyIcon.d.ts.map +1 -1
  150. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
  151. package/lib/typescript/module/ui/components/internal/PinInput.d.ts.map +1 -1
  152. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  153. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  154. package/lib/typescript/module/ui/context/OxyContext.d.ts +6 -0
  155. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  156. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  157. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  158. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  159. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  160. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  161. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  162. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  163. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts +5 -0
  164. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -0
  165. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  166. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  167. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  168. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  169. package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -4
  170. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  171. package/package.json +2 -2
  172. package/src/index.ts +3 -0
  173. package/src/ui/components/ActingAsBanner.tsx +135 -0
  174. package/src/ui/components/OxyPayButton.tsx +5 -3
  175. package/src/ui/components/OxySignInButton.tsx +82 -81
  176. package/src/ui/components/SettingRow.tsx +14 -7
  177. package/src/ui/components/fileManagement/FileDetailsModal.tsx +69 -99
  178. package/src/ui/components/fileManagement/UploadPreview.tsx +58 -46
  179. package/src/ui/components/icon/OxyIcon.tsx +5 -4
  180. package/src/ui/components/internal/GroupedPillButtons.tsx +15 -12
  181. package/src/ui/components/internal/PinInput.tsx +4 -3
  182. package/src/ui/components/modals/DeleteAccountModal.tsx +79 -221
  183. package/src/ui/constants/theme.ts +2 -2
  184. package/src/ui/context/OxyContext.tsx +85 -0
  185. package/src/ui/navigation/routes.ts +3 -1
  186. package/src/ui/screens/AccountCenterScreen.tsx +40 -122
  187. package/src/ui/screens/AccountOverviewScreen.tsx +63 -98
  188. package/src/ui/screens/AccountSettingsScreen.tsx +21 -7
  189. package/src/ui/screens/AccountSwitcherScreen.tsx +344 -87
  190. package/src/ui/screens/AccountVerificationScreen.tsx +24 -16
  191. package/src/ui/screens/CreateManagedAccountScreen.tsx +338 -0
  192. package/src/ui/screens/FileManagementScreen.tsx +62 -54
  193. package/src/ui/screens/HistoryViewScreen.tsx +57 -204
  194. package/src/ui/screens/PremiumSubscriptionScreen.tsx +73 -93
  195. package/src/ui/screens/SessionManagementScreen.tsx +101 -73
  196. package/src/ui/utils/fileManagement.ts +0 -30
  197. package/lib/commonjs/ui/utils/confirmAction.js +0 -28
  198. package/lib/commonjs/ui/utils/confirmAction.js.map +0 -1
  199. package/lib/module/ui/utils/confirmAction.js +0 -25
  200. package/lib/module/ui/utils/confirmAction.js.map +0 -1
  201. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts +0 -7
  202. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts.map +0 -1
  203. package/lib/typescript/module/ui/utils/confirmAction.d.ts +0 -7
  204. package/lib/typescript/module/ui/utils/confirmAction.d.ts.map +0 -1
  205. package/src/ui/utils/confirmAction.ts +0 -23
@@ -1,6 +1,6 @@
1
1
  import type { ComponentType } from 'react';
2
2
  import type { BaseScreenProps } from '../types/navigation';
3
- export type RouteName = 'OxyAuth' | 'AccountOverview' | 'AccountSettings' | 'AccountCenter' | 'AccountSwitcher' | 'AccountVerification' | 'SessionManagement' | 'PaymentGateway' | 'Profile' | 'LanguageSelector' | 'PrivacySettings' | 'SearchSettings' | 'FileManagement' | 'HelpSupport' | 'FAQ' | 'Feedback' | 'LegalDocuments' | 'AppInfo' | 'PremiumSubscription' | 'WelcomeNewUser' | 'UserLinks' | 'HistoryView' | 'SavesCollections' | 'EditProfileField' | 'LearnMoreUsernames' | 'KarmaCenter' | 'KarmaLeaderboard' | 'KarmaRewards' | 'KarmaRules' | 'AboutKarma' | 'KarmaFAQ' | 'FollowersList' | 'FollowingList';
3
+ export type RouteName = 'OxyAuth' | 'AccountOverview' | 'AccountSettings' | 'AccountCenter' | 'AccountSwitcher' | 'AccountVerification' | 'SessionManagement' | 'PaymentGateway' | 'Profile' | 'LanguageSelector' | 'PrivacySettings' | 'SearchSettings' | 'FileManagement' | 'HelpSupport' | 'FAQ' | 'Feedback' | 'LegalDocuments' | 'AppInfo' | 'PremiumSubscription' | 'WelcomeNewUser' | 'UserLinks' | 'HistoryView' | 'SavesCollections' | 'EditProfileField' | 'LearnMoreUsernames' | 'KarmaCenter' | 'KarmaLeaderboard' | 'KarmaRewards' | 'KarmaRules' | 'AboutKarma' | 'KarmaFAQ' | 'FollowersList' | 'FollowingList' | 'CreateManagedAccount';
4
4
  export declare const getScreenComponent: (routeName: RouteName) => ComponentType<BaseScreenProps> | undefined;
5
5
  export declare const isValidRoute: (routeName: string) => routeName is RouteName;
6
6
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,MAAM,MAAM,SAAS,GACf,SAAS,GACT,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,GACnB,gBAAgB,GAChB,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,qBAAqB,GACrB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,eAAe,GACf,eAAe,CAAC;AA+CtB,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,aAAa,CAAC,eAAe,CAAC,GAAG,SAsB1F,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,SAAS,IAAI,SAE7D,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,MAAM,MAAM,SAAS,GACf,SAAS,GACT,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,GACnB,gBAAgB,GAChB,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,qBAAqB,GACrB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,eAAe,GACf,eAAe,GACf,sBAAsB,CAAC;AAgD7B,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,aAAa,CAAC,eAAe,CAAC,GAAG,SAsB1F,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,SAAS,IAAI,SAE7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgNlD,CAAC;AA0BF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmB3D,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4IlD,CAAC;AAWF,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountOverviewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountOverviewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AA2uB3D,wBAAiD"}
1
+ {"version":3,"file":"AccountOverviewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountOverviewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAajF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAysB3D,wBAAiD"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAWjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;mBAyBc,MAAM;qBAAmB,MAAM;;AAolBxG,wBAAiD"}
1
+ {"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAWjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;mBA0Bc,MAAM;qBAAmB,MAAM;;AAimBxG,wBAAiD"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA6B3D,QAAA,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+gB1D,CAAC;AAmKF,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"AccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA8B3D,QAAA,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4uB1D,CAAC;AAuMF,eAAe,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountVerificationScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountVerificationScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAWrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AA4M3D,wBAAqD"}
1
+ {"version":3,"file":"AccountVerificationScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountVerificationScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAUrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAsN3D,wBAAqD"}
@@ -0,0 +1,5 @@
1
+ import type React from 'react';
2
+ import type { BaseScreenProps } from '../types/navigation';
3
+ declare const CreateManagedAccountScreen: React.FC<BaseScreenProps>;
4
+ export default CreateManagedAccountScreen;
5
+ //# sourceMappingURL=CreateManagedAccountScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateManagedAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateManagedAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3D,QAAA,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgOzD,CAAC;AAsFF,eAAe,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/FileManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAgBjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAgGzE,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA4pE7D,CAAC;AAIF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"FileManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/FileManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAejF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAkGzE,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAmqE7D,CAAC;AAIF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryViewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/HistoryViewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAMrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AA+P3D,wBAA6C"}
1
+ {"version":3,"file":"HistoryViewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/HistoryViewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAiH3D,wBAA6C"}
@@ -1 +1 @@
1
- {"version":3,"file":"PremiumSubscriptionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/PremiumSubscriptionScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmD3D,QAAA,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA2jCxD,CAAC;AAmdF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"PremiumSubscriptionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/PremiumSubscriptionScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAoD3D,QAAA,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4iCxD,CAAC;AA8cF,eAAe,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/SessionManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAqB3D,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwTtD,CAAC;AAwFF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"SessionManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/SessionManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAsB3D,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoVtD,CAAC;AAwFF,eAAe,uBAAuB,CAAC"}
@@ -8,10 +8,6 @@ export declare function formatFileSize(bytes: number): string;
8
8
  * Get icon name for file based on content type
9
9
  */
10
10
  export declare function getFileIcon(contentType: string): string;
11
- /**
12
- * Unified confirmation dialog - uses Alert.alert for all platforms
13
- */
14
- export declare function confirmAction(message: string, title?: string, confirmText?: string, cancelText?: string): Promise<boolean>;
15
11
  /**
16
12
  * Convert DocumentPicker asset to File object
17
13
  * Handles both web (native File API) and mobile (URI-based) file sources
@@ -1 +1 @@
1
- {"version":3,"file":"fileManagement.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/fileManagement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYtD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CASvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,SAAO,EAClB,UAAU,SAAW,GACtB,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CAClD,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC/G,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAkEtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,GACjE,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,MAAM,EAAE,MAAM,EAEd,WAAW,EAAE,GAAG,EAChB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,gBAGjD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxE,2BAA2B;IAE3B,WAAW,EAAE,GAAG,CAAC;IACjB,mDAAmD;IACnD,qBAAqB,EAAE;QACnB,WAAW,EAAE,CAAC,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAClE,CAAC;IACF,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,gCAAgC;IAChC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACvC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,CA8ChF"}
1
+ {"version":3,"file":"fileManagement.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/fileManagement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYtD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CASvD;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CAClD,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC/G,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAkEtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,GACjE,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,MAAM,EAAE,MAAM,EAEd,WAAW,EAAE,GAAG,EAChB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,gBAGjD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxE,2BAA2B;IAE3B,WAAW,EAAE,GAAG,CAAC;IACjB,mDAAmD;IACnD,qBAAqB,EAAE;QACnB,WAAW,EAAE,CAAC,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAClE,CAAC;IACF,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,gCAAgC;IAChC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACvC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,CA8ChF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "6.9.43",
3
+ "version": "6.9.45",
4
4
  "description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -57,7 +57,7 @@
57
57
  "scripts": {
58
58
  "typescript": "tsc --skipLibCheck --noEmit",
59
59
  "lint": "biome lint --error-on-warnings ./src",
60
- "build": "bun x react-native-builder-bob build && bun run copy-assets && bun run copy-dts && bun run delete-dts.js && bun run delete-debug-view",
60
+ "build": "bun x react-native-builder-bob build --target commonjs && bun x react-native-builder-bob build --target module && bun x react-native-builder-bob build --target typescript && bun run copy-assets && bun run copy-dts && bun run delete-dts.js && bun run delete-debug-view",
61
61
  "build:js": "bun x react-native-builder-bob build --target commonjs && bun x react-native-builder-bob build --target module && bun run copy-assets",
62
62
  "test": "jest --passWithNoTests",
63
63
  "test:watch": "jest --watch",
package/src/index.ts CHANGED
@@ -97,6 +97,9 @@ export type { AvatarProps } from './ui/components/Avatar';
97
97
  export { OxySignInButton } from './ui/components/OxySignInButton';
98
98
  export { OxyLogo, FollowButton } from './ui';
99
99
 
100
+ // Acting-as banner for managed accounts
101
+ export { default as ActingAsBanner } from './ui/components/ActingAsBanner';
102
+
100
103
  // Bottom sheet navigation
101
104
  export { showBottomSheet, closeBottomSheet } from './ui/navigation/bottomSheetManager';
102
105
  export type { RouteName } from './ui/navigation/routes';
@@ -0,0 +1,135 @@
1
+ import React, { useMemo } from 'react';
2
+ import {
3
+ View,
4
+ Text,
5
+ TouchableOpacity,
6
+ StyleSheet,
7
+ Platform,
8
+ Image,
9
+ } from 'react-native';
10
+ import { fontFamilies } from '../styles/fonts';
11
+ import { useTheme } from '@oxyhq/bloom/theme';
12
+ import { useOxy } from '../context/OxyContext';
13
+
14
+ /**
15
+ * ActingAsBanner - Shows a subtle banner when the user is acting as a managed account.
16
+ *
17
+ * - Tap to open the AccountSwitcher screen.
18
+ * - Long-press to switch back to the primary account immediately.
19
+ *
20
+ * Place this component in your app's layout where you want the banner to appear
21
+ * (typically at the top of the screen or below the header).
22
+ */
23
+ const ActingAsBanner: React.FC = () => {
24
+ const bloomTheme = useTheme();
25
+ const { actingAs, managedAccounts, setActingAs, showBottomSheet, oxyServices } = useOxy();
26
+
27
+ const activeAccount = useMemo(() => {
28
+ if (!actingAs || !managedAccounts.length) return null;
29
+ const managed = managedAccounts.find((m) => m.accountId === actingAs);
30
+ return managed?.account ?? null;
31
+ }, [actingAs, managedAccounts]);
32
+
33
+ if (!actingAs || !activeAccount) {
34
+ return null;
35
+ }
36
+
37
+ const displayName =
38
+ typeof activeAccount.name === 'object'
39
+ ? activeAccount.name.full || activeAccount.name.first || activeAccount.username
40
+ : activeAccount.name || activeAccount.username;
41
+
42
+ const handlePress = () => {
43
+ showBottomSheet?.('AccountSwitcher');
44
+ };
45
+
46
+ const handleLongPress = () => {
47
+ setActingAs(null);
48
+ };
49
+
50
+ return (
51
+ <TouchableOpacity
52
+ style={[styles.container, { backgroundColor: bloomTheme.colors.primary + '14' }]}
53
+ onPress={handlePress}
54
+ onLongPress={handleLongPress}
55
+ activeOpacity={0.7}
56
+ accessibilityRole="button"
57
+ accessibilityLabel={`Acting as ${displayName}. Tap to switch accounts, long press to switch back.`}
58
+ >
59
+ <View style={styles.content}>
60
+ {activeAccount.avatar ? (
61
+ <Image
62
+ source={{ uri: oxyServices.getFileDownloadUrl(activeAccount.avatar, 'thumb') }}
63
+ style={styles.avatar}
64
+ />
65
+ ) : (
66
+ <View style={[styles.avatarFallback, { backgroundColor: bloomTheme.colors.primary + '30' }]}>
67
+ <Text style={[styles.avatarText, { color: bloomTheme.colors.primary }]}>
68
+ {displayName.charAt(0).toUpperCase()}
69
+ </Text>
70
+ </View>
71
+ )}
72
+ <View style={styles.textContainer}>
73
+ <Text style={[styles.label, { color: bloomTheme.colors.primary }]} numberOfLines={1}>
74
+ Acting as {displayName}
75
+ </Text>
76
+ </View>
77
+ <View style={[styles.switchBackHint, { borderColor: bloomTheme.colors.primary + '40' }]}>
78
+ <Text style={[styles.switchBackText, { color: bloomTheme.colors.primary }]}>
79
+ Switch back
80
+ </Text>
81
+ </View>
82
+ </View>
83
+ </TouchableOpacity>
84
+ );
85
+ };
86
+
87
+ const styles = StyleSheet.create({
88
+ container: {
89
+ paddingHorizontal: 16,
90
+ paddingVertical: 10,
91
+ },
92
+ content: {
93
+ flexDirection: 'row',
94
+ alignItems: 'center',
95
+ },
96
+ avatar: {
97
+ width: 24,
98
+ height: 24,
99
+ borderRadius: 12,
100
+ },
101
+ avatarFallback: {
102
+ width: 24,
103
+ height: 24,
104
+ borderRadius: 12,
105
+ alignItems: 'center',
106
+ justifyContent: 'center',
107
+ },
108
+ avatarText: {
109
+ fontSize: 12,
110
+ fontFamily: fontFamilies.interSemiBold,
111
+ fontWeight: Platform.OS === 'web' ? '600' : undefined,
112
+ },
113
+ textContainer: {
114
+ flex: 1,
115
+ marginLeft: 10,
116
+ },
117
+ label: {
118
+ fontSize: 14,
119
+ fontFamily: fontFamilies.interMedium,
120
+ fontWeight: Platform.OS === 'web' ? '500' : undefined,
121
+ },
122
+ switchBackHint: {
123
+ borderWidth: 1,
124
+ borderRadius: 12,
125
+ paddingHorizontal: 10,
126
+ paddingVertical: 4,
127
+ },
128
+ switchBackText: {
129
+ fontSize: 12,
130
+ fontFamily: fontFamilies.interMedium,
131
+ fontWeight: Platform.OS === 'web' ? '500' : undefined,
132
+ },
133
+ });
134
+
135
+ export default React.memo(ActingAsBanner);
@@ -1,6 +1,7 @@
1
1
  import type React from 'react';
2
2
  import { useState } from 'react';
3
3
  import { TouchableOpacity, Text, View, StyleSheet, type ViewStyle, type TextStyle, type StyleProp, type LayoutChangeEvent } from 'react-native';
4
+ import { useTheme } from '@oxyhq/bloom/theme';
4
5
  import { fontFamilies } from '../styles/fonts';
5
6
  import type { PaymentItem, PaymentGatewayResult } from '../screens/PaymentGatewayScreen';
6
7
  import OxyLogo from './OxyLogo';
@@ -42,13 +43,14 @@ const OxyPayButton: React.FC<OxyPayButtonProps> = ({
42
43
  color,
43
44
  variant = 'white',
44
45
  }) => {
46
+ const theme = useTheme();
45
47
  const [buttonHeight, setButtonHeight] = useState<number>(52);
46
48
  const handlePress = () => {
47
49
  console.warn('OxyPayButton: The bottom sheet payment flow has been removed. Provide a custom onPress handler.');
48
50
  };
49
51
  // Determine background and text color
50
- const backgroundColor = color || (variant === 'black' ? '#111' : '#fff');
51
- const textColor = variant === 'black' || (color && isColorDark(color)) ? '#fff' : '#1b1f0a';
52
+ const backgroundColor = color || (variant === 'black' ? theme.colors.text : theme.colors.background);
53
+ const textColor = variant === 'black' || (color && isColorDark(color)) ? theme.colors.background : '#1b1f0a';
52
54
  // Responsive sizing
53
55
  const logoWidth = Math.round(buttonHeight * 0.5); // 50% of button height
54
56
  const logoHeight = Math.round(buttonHeight * 0.25); // 25% of button height
@@ -120,4 +122,4 @@ const styles = StyleSheet.create({
120
122
  },
121
123
  });
122
124
 
123
- export default OxyPayButton;
125
+ export default OxyPayButton;
@@ -1,8 +1,9 @@
1
1
  import type React from 'react';
2
- import { useCallback, useState, useEffect } from 'react';
2
+ import { useCallback, useState, useEffect, useMemo } from 'react';
3
3
  import { TouchableOpacity, Text, View, StyleSheet, type ViewStyle, type TextStyle, type StyleProp, Platform } from 'react-native';
4
4
  import { useAuthStore } from '../stores/authStore';
5
5
  import { useShallow } from 'zustand/react/shallow';
6
+ import { useTheme } from '@oxyhq/bloom/theme';
6
7
  import { fontFamilies } from '../styles/fonts';
7
8
  import OxyLogo from './OxyLogo';
8
9
  import { showSignInModal, subscribeToSignInModal } from './SignInModal';
@@ -51,26 +52,25 @@ export interface OxySignInButtonProps {
51
52
 
52
53
  /**
53
54
  * A pre-styled button component for signing in with Oxy identity
54
- *
55
+ *
55
56
  * This component opens the Oxy Auth flow which allows users to authenticate
56
57
  * using their Oxy Accounts identity (via QR code or deep link).
57
- *
58
+ *
58
59
  * @example
59
60
  * ```tsx
60
61
  * // Basic usage
61
62
  * <OxySignInButton />
62
- *
63
+ *
63
64
  * // Custom styling
64
- * <OxySignInButton
65
- * variant="contained"
66
- * style={{ marginTop: 20 }}
67
- * text="Login with Oxy"
65
+ * <OxySignInButton
66
+ * variant="contained"
67
+ * style={{ marginTop: 20 }}
68
+ * text="Login with Oxy"
68
69
  * />
69
- *
70
+ *
70
71
  * // Custom handler
71
72
  * <OxySignInButton onPress={() => {
72
73
  * // Custom authentication flow
73
- * console.log('Custom auth flow initiated');
74
74
  * }} />
75
75
  * ```
76
76
  */
@@ -83,6 +83,7 @@ export const OxySignInButton: React.FC<OxySignInButtonProps> = ({
83
83
  disabled = false,
84
84
  showWhenAuthenticated = false,
85
85
  }) => {
86
+ const theme = useTheme();
86
87
  const { isAuthenticated, isLoading } = useAuthStore(
87
88
  useShallow((state) => ({ isAuthenticated: state.isAuthenticated, isLoading: state.isLoading }))
88
89
  );
@@ -105,6 +106,66 @@ export const OxySignInButton: React.FC<OxySignInButtonProps> = ({
105
106
  showSignInModal();
106
107
  }, [onPress]);
107
108
 
109
+ const themedStyles = useMemo(() => StyleSheet.create({
110
+ button: {
111
+ padding: 14,
112
+ borderRadius: 35,
113
+ alignItems: 'center',
114
+ justifyContent: 'center',
115
+ },
116
+ buttonDefault: {
117
+ backgroundColor: '#FFFFFF',
118
+ borderWidth: 1,
119
+ borderColor: theme.colors.borderLight,
120
+ ...Platform.select({
121
+ web: {
122
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
123
+ },
124
+ default: {
125
+ shadowColor: '#000000',
126
+ shadowOffset: { width: 0, height: 2 },
127
+ shadowOpacity: 0.1,
128
+ shadowRadius: 4,
129
+ elevation: 2,
130
+ }
131
+ }),
132
+ },
133
+ buttonOutline: {
134
+ backgroundColor: 'transparent',
135
+ borderWidth: 1,
136
+ borderColor: theme.colors.primary,
137
+ },
138
+ buttonContained: {
139
+ backgroundColor: theme.colors.primary,
140
+ },
141
+ buttonDisabled: {
142
+ opacity: 0.6,
143
+ },
144
+ buttonContent: {
145
+ flexDirection: 'row',
146
+ alignItems: 'center',
147
+ justifyContent: 'center',
148
+ },
149
+ text: {
150
+ fontFamily: fontFamilies.interSemiBold,
151
+ fontWeight: Platform.OS === 'web' ? '600' : undefined,
152
+ fontSize: 16,
153
+ marginLeft: 10,
154
+ },
155
+ textDefault: {
156
+ color: theme.colors.text,
157
+ },
158
+ textOutline: {
159
+ color: theme.colors.primary,
160
+ },
161
+ textContained: {
162
+ color: '#FFFFFF',
163
+ },
164
+ textDisabled: {
165
+ color: theme.colors.textTertiary,
166
+ },
167
+ }), [theme]);
168
+
108
169
  // Don't show the button if already authenticated (unless explicitly overridden)
109
170
  if (isAuthenticated && !showWhenAuthenticated) return null;
110
171
 
@@ -114,11 +175,11 @@ export const OxySignInButton: React.FC<OxySignInButtonProps> = ({
114
175
  const getButtonStyle = () => {
115
176
  switch (variant) {
116
177
  case 'outline':
117
- return [styles.buttonOutline, style];
178
+ return [themedStyles.buttonOutline, style];
118
179
  case 'contained':
119
- return [styles.buttonContained, style];
180
+ return [themedStyles.buttonContained, style];
120
181
  default:
121
- return [styles.buttonDefault, style];
182
+ return [themedStyles.buttonDefault, style];
122
183
  }
123
184
  };
124
185
 
@@ -126,29 +187,29 @@ export const OxySignInButton: React.FC<OxySignInButtonProps> = ({
126
187
  const getTextStyle = () => {
127
188
  switch (variant) {
128
189
  case 'outline':
129
- return [styles.textOutline, textStyle];
190
+ return [themedStyles.textOutline, textStyle];
130
191
  case 'contained':
131
- return [styles.textContained, textStyle];
192
+ return [themedStyles.textContained, textStyle];
132
193
  default:
133
- return [styles.textDefault, textStyle];
194
+ return [themedStyles.textDefault, textStyle];
134
195
  }
135
196
  };
136
197
 
137
198
  return (
138
199
  <TouchableOpacity
139
- style={[styles.button, getButtonStyle(), isButtonDisabled && styles.buttonDisabled]}
200
+ style={[themedStyles.button, getButtonStyle(), isButtonDisabled && themedStyles.buttonDisabled]}
140
201
  onPress={handlePress}
141
202
  disabled={isButtonDisabled}
142
203
  >
143
- <View style={styles.buttonContent}>
204
+ <View style={themedStyles.buttonContent}>
144
205
  <OxyLogo
145
206
  variant="icon"
146
207
  size={20}
147
- fillColor={variant === 'contained' ? 'white' : '#d269e6'}
148
- innerFillColor={variant === 'contained' ? '#d269e6' : undefined}
208
+ fillColor={variant === 'contained' ? 'white' : theme.colors.primary}
209
+ innerFillColor={variant === 'contained' ? theme.colors.primary : undefined}
149
210
  style={isButtonDisabled ? { opacity: 0.6 } : undefined}
150
211
  />
151
- <Text style={[styles.text, getTextStyle(), isButtonDisabled && styles.textDisabled]}>
212
+ <Text style={[themedStyles.text, getTextStyle(), isButtonDisabled && themedStyles.textDisabled]}>
152
213
  {isLoading || isModalOpen ? 'Signing in...' : text}
153
214
  </Text>
154
215
  </View>
@@ -156,64 +217,4 @@ export const OxySignInButton: React.FC<OxySignInButtonProps> = ({
156
217
  );
157
218
  };
158
219
 
159
- const styles = StyleSheet.create({
160
- button: {
161
- padding: 14,
162
- borderRadius: 35,
163
- alignItems: 'center',
164
- justifyContent: 'center',
165
- },
166
- buttonDefault: {
167
- backgroundColor: '#FFFFFF',
168
- borderWidth: 1,
169
- borderColor: '#DDDDDD',
170
- ...Platform.select({
171
- web: {
172
- boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
173
- },
174
- default: {
175
- shadowColor: '#000000',
176
- shadowOffset: { width: 0, height: 2 },
177
- shadowOpacity: 0.1,
178
- shadowRadius: 4,
179
- elevation: 2,
180
- }
181
- }),
182
- },
183
- buttonOutline: {
184
- backgroundColor: 'transparent',
185
- borderWidth: 1,
186
- borderColor: '#d169e5',
187
- },
188
- buttonContained: {
189
- backgroundColor: '#d169e5',
190
- },
191
- buttonDisabled: {
192
- opacity: 0.6,
193
- },
194
- buttonContent: {
195
- flexDirection: 'row',
196
- alignItems: 'center',
197
- justifyContent: 'center',
198
- },
199
- text: {
200
- fontFamily: fontFamilies.interSemiBold,
201
- fontWeight: Platform.OS === 'web' ? '600' : undefined,
202
- fontSize: 16,
203
- marginLeft: 10,
204
- },
205
- textDefault: {
206
- color: '#333333',
207
- },
208
- textOutline: {
209
- color: '#d169e5',
210
- },
211
- textContained: {
212
- color: '#FFFFFF',
213
- },
214
- textDisabled: {
215
- color: '#888888',
216
- },
217
- });
218
-
219
220
  export default OxySignInButton;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { View, Text, Switch, StyleSheet } from 'react-native';
3
+ import { useTheme } from '@oxyhq/bloom/theme';
3
4
 
4
5
  export interface SettingRowProps {
5
6
  title: string;
@@ -10,9 +11,9 @@ export interface SettingRowProps {
10
11
  textColor?: string;
11
12
  mutedTextColor?: string;
12
13
  borderColor?: string;
13
- /** Active color for the switch track (default: #d169e5) */
14
+ /** Active color for the switch track */
14
15
  activeColor?: string;
15
- /** Inactive color for the switch track (default: #767577) */
16
+ /** Inactive color for the switch track */
16
17
  inactiveColor?: string;
17
18
  /** Accessibility label for the switch */
18
19
  accessibilityLabel?: string;
@@ -31,10 +32,17 @@ const SettingRow: React.FC<SettingRowProps> = ({
31
32
  textColor,
32
33
  mutedTextColor,
33
34
  borderColor,
34
- activeColor = '#d169e5',
35
- inactiveColor = '#767577',
35
+ activeColor,
36
+ inactiveColor,
36
37
  accessibilityLabel,
37
38
  }) => {
39
+ const theme = useTheme();
40
+
41
+ const resolvedActiveColor = activeColor ?? theme.colors.primary;
42
+ const resolvedInactiveColor = inactiveColor ?? theme.colors.textTertiary;
43
+ const thumbOn = theme.colors.background;
44
+ const thumbOff = theme.colors.backgroundSecondary;
45
+
38
46
  return (
39
47
  <View
40
48
  style={[styles.settingRow, borderColor ? { borderBottomColor: borderColor } : undefined]}
@@ -60,8 +68,8 @@ const SettingRow: React.FC<SettingRowProps> = ({
60
68
  value={value}
61
69
  onValueChange={onValueChange}
62
70
  disabled={disabled}
63
- trackColor={{ false: inactiveColor, true: activeColor }}
64
- thumbColor={value ? '#fff' : '#f4f3f4'}
71
+ trackColor={{ false: resolvedInactiveColor, true: resolvedActiveColor }}
72
+ thumbColor={value ? thumbOn : thumbOff}
65
73
  accessibilityRole="switch"
66
74
  accessibilityLabel={accessibilityLabel || title}
67
75
  accessibilityState={{ checked: value, disabled }}
@@ -95,4 +103,3 @@ const styles = StyleSheet.create({
95
103
  });
96
104
 
97
105
  export default React.memo(SettingRow);
98
-