@oxy.so/services 9.2.0 → 10.0.0

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 (208) hide show
  1. package/lib/commonjs/ui/components/BenefitList.js +1 -1
  2. package/lib/commonjs/ui/components/BenefitList.js.map +1 -1
  3. package/lib/commonjs/ui/components/FollowButton.js +2 -2
  4. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  5. package/lib/commonjs/ui/components/FollowTargetButton.js +2 -2
  6. package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
  7. package/lib/commonjs/ui/components/PeableButton.js +1 -2
  8. package/lib/commonjs/ui/components/PeableButton.js.map +1 -1
  9. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +1 -1
  10. package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -1
  11. package/lib/commonjs/ui/components/SurfaceScreen.js +1 -1
  12. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  13. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +1 -1
  14. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  15. package/lib/commonjs/ui/components/authChooser/primitives.js +1 -1
  16. package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
  17. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +1 -1
  18. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
  19. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +2 -2
  20. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  21. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +2 -2
  22. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  23. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +2 -2
  24. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  25. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +1 -1
  26. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  27. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +2 -2
  28. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  29. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js +1 -1
  30. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  31. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +1 -1
  32. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  33. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +2 -2
  34. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  35. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +2 -1
  36. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountMembersScreen.js +4 -4
  38. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +1 -1
  40. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +1 -1
  42. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/DomainsScreen.js +1 -1
  44. package/lib/commonjs/ui/screens/DomainsScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +4 -2
  46. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/FileManagementScreen.js +5 -5
  48. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/HistoryViewScreen.js +1 -1
  50. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +1 -1
  52. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +1 -1
  54. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/NotificationsScreen.js +8 -8
  56. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +1 -1
  58. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/PreferencesScreen.js +2 -2
  60. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +37 -37
  62. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/ProfileScreen.js +1 -1
  64. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +5 -5
  66. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/UserListScreen.js +1 -1
  68. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +11 -11
  70. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +1 -1
  72. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
  73. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +1 -1
  74. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +1 -1
  76. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  77. package/lib/module/ui/components/BenefitList.js +1 -1
  78. package/lib/module/ui/components/BenefitList.js.map +1 -1
  79. package/lib/module/ui/components/FollowButton.js +2 -2
  80. package/lib/module/ui/components/FollowButton.js.map +1 -1
  81. package/lib/module/ui/components/FollowTargetButton.js +2 -2
  82. package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
  83. package/lib/module/ui/components/PeableButton.js +2 -3
  84. package/lib/module/ui/components/PeableButton.js.map +1 -1
  85. package/lib/module/ui/components/SurfaceHeaderAction.js +1 -1
  86. package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -1
  87. package/lib/module/ui/components/SurfaceScreen.js +1 -1
  88. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  89. package/lib/module/ui/components/authChooser/AccountsMenuView.js +1 -1
  90. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  91. package/lib/module/ui/components/authChooser/primitives.js +1 -1
  92. package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
  93. package/lib/module/ui/components/authChooser/requestSurfaces.js +1 -1
  94. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
  95. package/lib/module/ui/components/payment/PaymentDetailsStep.js +2 -2
  96. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  97. package/lib/module/ui/components/payment/PaymentMethodStep.js +2 -2
  98. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  99. package/lib/module/ui/components/payment/PaymentReviewStep.js +2 -2
  100. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  101. package/lib/module/ui/components/payment/PaymentSuccessStep.js +1 -1
  102. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  103. package/lib/module/ui/components/payment/PaymentSummaryStep.js +2 -2
  104. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  105. package/lib/module/ui/components/signIn/OxyAuthScreen.js +1 -1
  106. package/lib/module/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  107. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +1 -1
  108. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  109. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +2 -2
  110. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  111. package/lib/module/ui/components/surfaces/ActionSheetSurface.js +2 -1
  112. package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
  113. package/lib/module/ui/screens/AccountMembersScreen.js +4 -4
  114. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  115. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  116. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  117. package/lib/module/ui/screens/ConnectedAppsScreen.js +1 -1
  118. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  119. package/lib/module/ui/screens/DomainsScreen.js +1 -1
  120. package/lib/module/ui/screens/DomainsScreen.js.map +1 -1
  121. package/lib/module/ui/screens/EditProfileFieldScreen.js +4 -2
  122. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  123. package/lib/module/ui/screens/FileManagementScreen.js +5 -5
  124. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  125. package/lib/module/ui/screens/HistoryViewScreen.js +1 -1
  126. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  127. package/lib/module/ui/screens/LanguageSelectorScreen.js +1 -1
  128. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  129. package/lib/module/ui/screens/LegalDocumentsScreen.js +1 -1
  130. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  131. package/lib/module/ui/screens/NotificationsScreen.js +8 -8
  132. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  133. package/lib/module/ui/screens/PaymentGatewayScreen.js +1 -1
  134. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  135. package/lib/module/ui/screens/PreferencesScreen.js +2 -2
  136. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  137. package/lib/module/ui/screens/PrivacySettingsScreen.js +37 -37
  138. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  139. package/lib/module/ui/screens/ProfileScreen.js +1 -1
  140. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  141. package/lib/module/ui/screens/SearchSettingsScreen.js +5 -5
  142. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  143. package/lib/module/ui/screens/UserListScreen.js +1 -1
  144. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  145. package/lib/module/ui/screens/WelcomeNewUserScreen.js +11 -11
  146. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  147. package/lib/module/ui/screens/fileManagement/UploadBar.js +1 -1
  148. package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
  149. package/lib/module/ui/screens/trust/TrustCenterScreen.js +1 -1
  150. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  151. package/lib/module/ui/screens/trust/TrustRulesScreen.js +1 -1
  152. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  153. package/lib/typescript/commonjs/ui/components/BenefitList.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts +1 -1
  155. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts +1 -1
  157. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/ui/components/PeableButton.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  161. package/lib/typescript/module/ui/components/BenefitList.d.ts.map +1 -1
  162. package/lib/typescript/module/ui/components/FollowButton.d.ts +1 -1
  163. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  164. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts +1 -1
  165. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
  166. package/lib/typescript/module/ui/components/PeableButton.d.ts.map +1 -1
  167. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
  168. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  169. package/package.json +5 -5
  170. package/src/ui/components/BenefitList.tsx +1 -2
  171. package/src/ui/components/FollowButton.tsx +3 -3
  172. package/src/ui/components/FollowTargetButton.tsx +3 -3
  173. package/src/ui/components/PeableButton.tsx +3 -4
  174. package/src/ui/components/SurfaceHeaderAction.tsx +1 -1
  175. package/src/ui/components/SurfaceScreen.tsx +1 -1
  176. package/src/ui/components/__tests__/followButtonAccessibility.test.tsx +9 -0
  177. package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -1
  178. package/src/ui/components/authChooser/primitives.tsx +1 -1
  179. package/src/ui/components/authChooser/requestSurfaces.tsx +1 -1
  180. package/src/ui/components/payment/PaymentDetailsStep.tsx +2 -2
  181. package/src/ui/components/payment/PaymentMethodStep.tsx +2 -2
  182. package/src/ui/components/payment/PaymentReviewStep.tsx +2 -2
  183. package/src/ui/components/payment/PaymentSuccessStep.tsx +1 -1
  184. package/src/ui/components/payment/PaymentSummaryStep.tsx +2 -2
  185. package/src/ui/components/signIn/OxyAuthScreen.tsx +1 -1
  186. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +1 -1
  187. package/src/ui/components/signIn/OxyPasswordPanel.tsx +1 -1
  188. package/src/ui/components/surfaces/ActionSheetSurface.tsx +2 -1
  189. package/src/ui/screens/AccountMembersScreen.tsx +4 -4
  190. package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
  191. package/src/ui/screens/ConnectedAppsScreen.tsx +1 -1
  192. package/src/ui/screens/DomainsScreen.tsx +1 -1
  193. package/src/ui/screens/EditProfileFieldScreen.tsx +1 -2
  194. package/src/ui/screens/FileManagementScreen.tsx +5 -5
  195. package/src/ui/screens/HistoryViewScreen.tsx +1 -1
  196. package/src/ui/screens/LanguageSelectorScreen.tsx +1 -1
  197. package/src/ui/screens/LegalDocumentsScreen.tsx +1 -1
  198. package/src/ui/screens/NotificationsScreen.tsx +8 -8
  199. package/src/ui/screens/PaymentGatewayScreen.tsx +1 -1
  200. package/src/ui/screens/PreferencesScreen.tsx +2 -2
  201. package/src/ui/screens/PrivacySettingsScreen.tsx +21 -21
  202. package/src/ui/screens/ProfileScreen.tsx +1 -1
  203. package/src/ui/screens/SearchSettingsScreen.tsx +5 -5
  204. package/src/ui/screens/UserListScreen.tsx +1 -1
  205. package/src/ui/screens/WelcomeNewUserScreen.tsx +11 -11
  206. package/src/ui/screens/fileManagement/UploadBar.tsx +1 -1
  207. package/src/ui/screens/trust/TrustCenterScreen.tsx +1 -1
  208. package/src/ui/screens/trust/TrustRulesScreen.tsx +1 -1
@@ -55,7 +55,7 @@ export interface FollowTargetButtonProps {
55
55
  verb?: FollowVerb;
56
56
  /** Full override, for a verb the vocabulary above does not carry. */
57
57
  labels?: Partial<FollowLabels>;
58
- size?: 'small' | 'medium' | 'large';
58
+ size?: 'sm' | 'md' | 'lg';
59
59
  style?: StyleProp<ViewStyle>;
60
60
  disabled?: boolean;
61
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"FollowTargetButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowTargetButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzD,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,kBAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2BD,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,+DAkL7B,CAAC"}
1
+ {"version":3,"file":"FollowTargetButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowTargetButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzD,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,kBAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2BD,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,+DAkL7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PeableButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/PeableButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oCAAiC,CAAC;AAGzF,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4B7C,CAAC;AAcF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"PeableButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/PeableButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oCAAiC,CAAC;AAGzF,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2B7C,CAAC;AAcF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionSheetSurface.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/surfaces/ActionSheetSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,MAAM;IACrD,mEAAmE;IACnE,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;CACvB;AAKD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,EACjD,OAAO,EACP,KAAK,EACL,OAAO,EACP,OAAO,EACP,WAAW,GACd,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAuCjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACrD,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAIxB"}
1
+ {"version":3,"file":"ActionSheetSurface.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/surfaces/ActionSheetSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,MAAM;IACrD,mEAAmE;IACnE,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;CACvB;AAKD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,EACjD,OAAO,EACP,KAAK,EACL,OAAO,EACP,OAAO,EACP,WAAW,GACd,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAwCjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACrD,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAIxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditProfileFieldScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/EditProfileFieldScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAStE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AA0B3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACtB,aAAa,GACb,UAAU,GACV,KAAK,GACL,OAAO,GACP,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AAgFd,UAAU,2BAA4B,SAAQ,eAAe;IACzD,6BAA6B;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;;AAqoBD,wBAAkD"}
1
+ {"version":3,"file":"EditProfileFieldScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/EditProfileFieldScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAStE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AA0B3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACtB,aAAa,GACb,UAAU,GACV,KAAK,GACL,OAAO,GACP,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AAgFd,UAAU,2BAA4B,SAAQ,eAAe;IACzD,6BAA6B;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;;AAooBD,wBAAkD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/services",
3
- "version": "9.2.0",
3
+ "version": "10.0.0",
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",
@@ -155,7 +155,7 @@
155
155
  },
156
156
  "dependencies": {
157
157
  "@expo/config-plugins": "57.0.9",
158
- "@oxy.so/contracts": "^4.1.0",
158
+ "@oxy.so/contracts": "^4.3.0",
159
159
  "color": "^4.2.3"
160
160
  },
161
161
  "devDependencies": {
@@ -178,7 +178,7 @@
178
178
  "@types/jest": "^30.0.0",
179
179
  "@types/node": "^20.19.43",
180
180
  "@types/react": "*",
181
- "@oxy.so/bloom": "^5.1.0",
181
+ "@oxy.so/bloom": "^6.0.0",
182
182
  "copyfiles": "^2.4.1",
183
183
  "expo-clipboard": "~57.0.2",
184
184
  "expo-constants": "~57.0.5",
@@ -212,10 +212,10 @@
212
212
  "typescript": "^5.9.2",
213
213
  "zustand": "^5.0.14"
214
214
  },
215
- "//@oxy.so/bloom": "RE-RAISE THIS FLOOR ON EVERY BREAKING BLOOM RELEASE, in the same commit as the root package.json catalog entry and the code that requires it. The breaking position is the MAJOR, so `^3.0.1` means `>=3.0.1 <4.0.0`: 3.x minors are admitted on semver's additive promise, and Bloom 4.0.0 is refused until someone raises this deliberately. The CAP is the part that is load-bearing. An earlier revision of this key recorded the opposite trade -- an uncapped `>=` floor, accepted so that intentionally-breaking Bloom 0.x minors would not be blocked -- and that trade is closed by evidence rather than by preference: an unbounded range is exactly what let `bun install` pair this package with Bloom 1.0.0 and emit no warning at all, and 1.0.0 broke it four ways (a deleted provider, a renamed confirm option, a renamed Chip fill, and two REMOVED SUBPATHS that fail at bundle time, before any typecheck runs). A floor is a claim about what was measured; a cap is the claim that nothing beyond it was. RAISED TO 3.0.1 from `^2.1.0`. Bloom 3.0.0 breaks exactly two things -- `PageHeader` defaults to `presentation=\"floating\"` and stops hiding the title under `transparent`, and `Field disabled` now reaches the control that reads the field context -- and THIS PACKAGE IMPORTS NEITHER: it renders no `PageHeader` and no `Field`, and 3.0 removes no subpath (unlike 2.0.0, which is why that floor cost code changes and this one does not). Its six `transparent` occurrences are CSS colour values, not the PageHeader prop. The cap had to move rather than widen to a union, because leaving `^2.1.0` in place is what made `bun install` resolve a SECOND, nested Bloom 2.12.4 under this package for any app on Bloom 3 -- two copies of a library whose 3.0 contracts (`control-surface`, `TopEdgeProvider`, `ScrollOffsetProvider`) are React contexts, so a provider from one copy cannot be read by a consumer from the other. Mention's `oxyRuntimeCompatibility` test is what caught it; nothing in a typecheck can. RAISED AGAIN TO 3.2.0 from `^3.0.1`, for the same class of reason the 2.x note records, only in the other direction: 3.2.0 ADDS the per-glyph icon subpaths (`@oxy.so/bloom/icons/RiAtLine`) that this package's screens now import instead of the `@oxy.so/bloom/icons` barrel, and a missing subpath fails at bundle time, in the consumer's Metro, long after this package has typechecked and shipped. `^3.0.1` would have admitted Bloom 3.0.1 and 3.1.0, neither of which has those subpaths, so the floor is the only thing standing between a consumer and a red build. Nothing else about 3.1.0 or 3.2.0 is required here; the cap stays at the major. RAISED TO ^4.2.0: FollowButton now delegates its visuals to Bloom media-header FollowButton with loading, textStyle and large size; the new shared UI contracts require one Bloom4 context across Services and its consumer. RAISED TO ^4.31.0: the sign-in and account screens type one-time codes into `InputOtp` with `type=\"alphanumeric\"` (the long sign-in code and backup codes), which 4.31.0 adds; older 4.x drops the letters. RAISED TO ^4.35.0: every password field passes `revealable` to `TextFieldInput` (the eye button, 4.35.0); older 4.x drops the prop silently and the password cannot be shown. The provider also mounts `@oxy.so/bloom/locale` (4.32.0+). RAISED TO ^5.1.0 (services 9.0.0, a major because consumers must move to Bloom 5 with it): Bloom 5.0.0 types `Card`'s `style` without radius, border width or `overflow` (geometry goes through `radius`/`border`/`clipContent`) and stops clipping a Card's children by default, so `BenefitList`'s `overflow: 'visible'` became both a type error and unnecessary; it is removed. The cap MOVES rather than widening to a `^4 || ^5` union, for the reason the 3.0.1 note records: a union lets an app resolve a second, nested Bloom copy and split the React contexts. The floor is 5.1.0 because that is the version measured here (every package builds and tests against it); 5.0.0 was not measured.",
215
+ "//@oxy.so/bloom": "Bloom peer tracks the measured major: ^6.0.0 includes canonical appearance/tone/size props and shared Surface. Keep its upper bound and the root catalog in sync to prevent duplicate context instances. Services 10 removes FollowButton small/medium/large aliases in favor of sm/md/lg.",
216
216
  "peerDependencies": {
217
217
  "@expo/vector-icons": "^15.0.3",
218
- "@oxy.so/bloom": "^5.1.0",
218
+ "@oxy.so/bloom": "^6.0.0",
219
219
  "@oxy.so/core": "^3.2.0",
220
220
  "@react-native-async-storage/async-storage": "^2.0.0",
221
221
  "@react-native-community/netinfo": ">=11.4.1",
@@ -98,13 +98,12 @@ export const BenefitList: React.FC<BenefitListProps> = ({
98
98
  style,
99
99
  }) => (
100
100
  <Card
101
- variant="outlined"
102
101
  radius="radius-20"
103
102
  border="hairline"
104
103
  elevation="s"
105
104
  className={className}
106
105
  style={[{ padding: SPACING['space-16'], gap: SPACING['space-16'] }, style]}
107
- accessibilityLabel={accessibilityLabel}
106
+ accessibilityLabel={accessibilityLabel} appearance="outline"
108
107
  >
109
108
  {children}
110
109
  </Card>
@@ -19,7 +19,7 @@ const DEFAULT_FOLLOWED_ALL_LABEL = 'Following';
19
19
 
20
20
  /** Props shared by both single- and multi-user follow modes. */
21
21
  interface FollowButtonBaseProps {
22
- size?: 'small' | 'medium' | 'large';
22
+ size?: 'sm' | 'md' | 'lg';
23
23
  style?: StyleProp<ViewStyle>;
24
24
  textStyle?: StyleProp<TextStyle>;
25
25
  disabled?: boolean;
@@ -67,7 +67,7 @@ const FollowButtonInner = memo(function FollowButtonInner({
67
67
  oxyServices,
68
68
  initiallyFollowing,
69
69
  username,
70
- size = 'medium',
70
+ size = 'md',
71
71
  onFollowChange,
72
72
  style,
73
73
  textStyle,
@@ -140,7 +140,7 @@ const FollowButtonInner = memo(function FollowButtonInner({
140
140
  const FollowButtonMultiInner = memo(function FollowButtonMultiInner({
141
141
  userIds,
142
142
  initiallyAllFollowing = false,
143
- size = 'medium',
143
+ size = 'md',
144
144
  followAllLabel = DEFAULT_FOLLOW_ALL_LABEL,
145
145
  followedAllLabel = DEFAULT_FOLLOWED_ALL_LABEL,
146
146
  onFollowChange,
@@ -108,7 +108,7 @@ export interface FollowTargetButtonProps {
108
108
  verb?: FollowVerb;
109
109
  /** Full override, for a verb the vocabulary above does not carry. */
110
110
  labels?: Partial<FollowLabels>;
111
- size?: 'small' | 'medium' | 'large';
111
+ size?: 'sm' | 'md' | 'lg';
112
112
  style?: StyleProp<ViewStyle>;
113
113
  disabled?: boolean;
114
114
  /**
@@ -152,7 +152,7 @@ export const FollowTargetButton = memo(function FollowTargetButton({
152
152
  targetId,
153
153
  verb = 'follow',
154
154
  labels,
155
- size = 'medium',
155
+ size = 'md',
156
156
  style,
157
157
  disabled = false,
158
158
  showOptions = true,
@@ -309,7 +309,7 @@ export const FollowTargetButton = memo(function FollowTargetButton({
309
309
  <DropdownMenuTrigger asChild disabled={disabled || isUnknown}>
310
310
  <Button
311
311
  appearance="subtle" tone="support"
312
- size={size === 'large' ? 'large' : 'small'}
312
+ size={size === 'lg' ? 'lg' : 'sm'}
313
313
  icon={<ChevronDown width={16} />}
314
314
  disabled={disabled || isUnknown}
315
315
  accessibilityLabel={`${label} options`}
@@ -1,7 +1,7 @@
1
1
  import type React from 'react';
2
2
  import type { ViewStyle, TextStyle, StyleProp } from 'react-native';
3
3
  import { useTheme } from '@oxy.so/bloom/theme';
4
- import { Button } from '@oxy.so/bloom/button';
4
+ import { InverseButton } from '@oxy.so/bloom/button';
5
5
  import type { PaymentItem, PaymentGatewayResult } from '../screens/PaymentGatewayScreen';
6
6
  import { LogoIcon } from './logo/LogoIcon';
7
7
 
@@ -46,8 +46,7 @@ const PeableButton: React.FC<PeableButtonProps> = ({
46
46
  const textColor = variant === 'black' || (color && isColorDark(color)) ? theme.colors.background : '#1b1f0a';
47
47
 
48
48
  return (
49
- <Button
50
- variant="inverse"
49
+ <InverseButton
51
50
  onPress={handlePress}
52
51
  disabled={disabled}
53
52
  style={[{ backgroundColor, borderColor: textColor, borderWidth: 1 }, style]}
@@ -55,7 +54,7 @@ const PeableButton: React.FC<PeableButtonProps> = ({
55
54
  icon={<LogoIcon height={16} color={textColor} style={{ marginRight: 6 }} />}
56
55
  >
57
56
  {text}
58
- </Button>
57
+ </InverseButton>
59
58
  );
60
59
  };
61
60
 
@@ -12,7 +12,7 @@ export interface SurfaceHeaderActionProps {
12
12
 
13
13
  /** Header actions share Bloom's sizing, surface, disabled and loading behavior. */
14
14
  export const SurfaceHeaderAction: React.FC<SurfaceHeaderActionProps> = ({ label, onPress, loading, disabled }) => (
15
- <Button size="medium" onPress={onPress} loading={loading} disabled={disabled}>
15
+ <Button size="md" onPress={onPress} loading={loading} disabled={disabled}>
16
16
  {label}
17
17
  </Button>
18
18
  );
@@ -88,7 +88,7 @@ const errorStyles = StyleSheet.create({
88
88
  function ScreenPending() {
89
89
  return (
90
90
  <View style={errorStyles.container}>
91
- <Loading variant="spinner" size="large" />
91
+ <Loading variant="spinner" size="lg" />
92
92
  </View>
93
93
  );
94
94
  }
@@ -16,6 +16,7 @@ import {
16
16
  } from '../followButtonAccessibility';
17
17
 
18
18
  interface BloomFollowProps {
19
+ size?: 'sm' | 'md' | 'lg';
19
20
  following: boolean;
20
21
  label?: string;
21
22
  followingLabel?: string;
@@ -189,3 +190,11 @@ describe('FollowTargetButton names the state it shows', () => {
189
190
  expect(lastBloomProps()?.accessibilityLabel).toBe(label);
190
191
  });
191
192
  });
193
+
194
+
195
+ it.each(['sm', 'md', 'lg'] as const)('forwards canonical %s geometry in both follow modes', size => {
196
+ render(<FollowButton userId="nate-id" size={size} />);
197
+ expect(lastBloomProps()?.size).toBe(size);
198
+ render(<FollowButton userIds={['a', 'b']} size={size} />);
199
+ expect(lastBloomProps()?.size).toBe(size);
200
+ });
@@ -385,7 +385,7 @@ const AccountsMenuView: React.FC<AccountsMenuViewProps> = ({
385
385
  spanning the surface. */}
386
386
  <Button
387
387
  appearance="subtle" tone="neutral"
388
- size="small"
388
+ size="sm"
389
389
  onPress={handlers.onManage}
390
390
  accessibilityLabel={manageLabel}
391
391
  >
@@ -27,7 +27,7 @@ export const SubtleLink: React.FC<{
27
27
  testID?: string;
28
28
  }> = ({ label, onPress, disabled, testID }) => (
29
29
  <LinkButton
30
- variant="secondary"
30
+ linkTone="secondary"
31
31
  size="sm"
32
32
  onPress={onPress}
33
33
  disabled={disabled}
@@ -40,7 +40,7 @@ const ROUTE_GLYPH_SIZE = 44;
40
40
  */
41
41
  export const PreparingSurface: React.FC = () => {
42
42
  const { t } = useI18n();
43
- return <Loading variant="spinner" size="large" accessibilityLabel={t('common.status.loading')} />;
43
+ return <Loading variant="spinner" size="lg" accessibilityLabel={t('common.status.loading')} />;
44
44
  };
45
45
 
46
46
  /** The leading glyph for a route whose surface is elsewhere (the phone, Commons). */
@@ -214,13 +214,13 @@ const PaymentDetailsStep: React.FC<PaymentDetailsStepProps> = ({
214
214
  </View>
215
215
 
216
216
  <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
217
- <Button appearance="subtle" tone="neutral" onPress={onBack} size="small" icon={<Ionicons name="arrow-back" size={16} />}>
217
+ <Button appearance="subtle" tone="neutral" onPress={onBack} size="sm" icon={<Ionicons name="arrow-back" size={16} />}>
218
218
  {t('payment.actions.back')}
219
219
  </Button>
220
220
  <Button
221
221
  appearance="solid" tone="accent"
222
222
  onPress={onNext}
223
- size="small"
223
+ size="sm"
224
224
  icon={<Ionicons name="arrow-forward" size={16} />}
225
225
  iconPosition="right"
226
226
  disabled={paymentMethod === 'card' && !isCardValid}
@@ -77,10 +77,10 @@ const PaymentMethodStep: React.FC<PaymentMethodStepProps> = ({
77
77
  </View>
78
78
 
79
79
  <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
80
- <Button appearance="subtle" tone="neutral" onPress={onBack} size="small" icon={<Ionicons name="arrow-back" size={16} />}>
80
+ <Button appearance="subtle" tone="neutral" onPress={onBack} size="sm" icon={<Ionicons name="arrow-back" size={16} />}>
81
81
  {t('payment.actions.back')}
82
82
  </Button>
83
- <Button appearance="solid" tone="accent" onPress={onNext} size="small" icon={<Ionicons name="arrow-forward" size={16} />} iconPosition="right">
83
+ <Button appearance="solid" tone="accent" onPress={onNext} size="sm" icon={<Ionicons name="arrow-forward" size={16} />} iconPosition="right">
84
84
  {t('payment.actions.continue')}
85
85
  </Button>
86
86
  </View>
@@ -105,13 +105,13 @@ const PaymentReviewStep: React.FC<PaymentReviewStepProps> = ({
105
105
  </View>
106
106
 
107
107
  <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
108
- <Button appearance="subtle" tone="neutral" onPress={onBack} size="small" disabled={isPaying} icon={<Ionicons name="arrow-back" size={16} />}>
108
+ <Button appearance="subtle" tone="neutral" onPress={onBack} size="sm" disabled={isPaying} icon={<Ionicons name="arrow-back" size={16} />}>
109
109
  {t('payment.actions.back')}
110
110
  </Button>
111
111
  <Button
112
112
  appearance="solid" tone="accent"
113
113
  onPress={onPay}
114
- size="small"
114
+ size="sm"
115
115
  disabled={isPaying}
116
116
  icon={isPaying ? <ActivityIndicator size="small" color="#FFFFFF" /> : <Ionicons name="checkmark" size={16} />}
117
117
  iconPosition="right"
@@ -57,7 +57,7 @@ const PaymentSuccessStep: React.FC<PaymentSuccessStepProps> = ({
57
57
  </View>
58
58
  </View>
59
59
 
60
- <Button appearance="solid" tone="accent" onPress={onDone} size="small" icon={<Ionicons name="checkmark" size={16} />} iconPosition="right">
60
+ <Button appearance="solid" tone="accent" onPress={onDone} size="sm" icon={<Ionicons name="checkmark" size={16} />} iconPosition="right">
61
61
  {t('payment.actions.done')}
62
62
  </Button>
63
63
  </Animated.View>
@@ -145,10 +145,10 @@ const PaymentSummaryStep: React.FC<PaymentSummaryStepProps> = ({
145
145
  </View>
146
146
 
147
147
  <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
148
- <Button appearance="subtle" tone="neutral" onPress={onClose} size="small" icon={<Ionicons name="close" size={16} />}>
148
+ <Button appearance="subtle" tone="neutral" onPress={onClose} size="sm" icon={<Ionicons name="close" size={16} />}>
149
149
  {t('payment.actions.close')}
150
150
  </Button>
151
- <Button appearance="solid" tone="accent" onPress={onNext} size="small" icon={<Ionicons name="arrow-forward" size={16} />} iconPosition="right">
151
+ <Button appearance="solid" tone="accent" onPress={onNext} size="sm" icon={<Ionicons name="arrow-forward" size={16} />} iconPosition="right">
152
152
  {t('payment.actions.continue')}
153
153
  </Button>
154
154
  </View>
@@ -103,7 +103,7 @@ export const OxyAuthLoading: React.FC = () => {
103
103
  const { t } = useI18n();
104
104
  return (
105
105
  <View className="min-h-[300px] items-center justify-center">
106
- <Loading variant="spinner" size="large" accessibilityLabel={t('common.status.loading')} testID="oxy-auth-loading" />
106
+ <Loading variant="spinner" size="lg" accessibilityLabel={t('common.status.loading')} testID="oxy-auth-loading" />
107
107
  </View>
108
108
  );
109
109
  };
@@ -204,7 +204,7 @@ export const OxyLinkCommonsPanel: React.FC<OxyLinkCommonsPanelProps> = ({ onLink
204
204
  <OxyAuthScreen>
205
205
  <OxyAuthScreenHeader title={t('linkCommons.title')} description={t('linkCommons.subtitle')} />
206
206
  <View style={styles.plateRow}>
207
- <Loading variant="spinner" size="large" accessibilityLabel={t('common.status.loading')} />
207
+ <Loading variant="spinner" size="lg" accessibilityLabel={t('common.status.loading')} />
208
208
  </View>
209
209
  </OxyAuthScreen>
210
210
  );
@@ -95,7 +95,7 @@ export const OxyPasswordPanel: React.FC<OxyPasswordPanelProps> = ({ onDone, onCa
95
95
  {/* The field names the switch ("Sign out everywhere else, switch, off")
96
96
  and, on web, its label toggles it. One row: label, then the switch. */}
97
97
  <Field label={t('signInSecurity.password.signOutOthers')} style={styles.row}>
98
- <Switch value={signOutOthers} onValueChange={setSignOutOthers} testID="password-sign-out-others" />
98
+ <Switch checked={signOutOthers} onCheckedChange={setSignOutOthers} testID="password-sign-out-others" />
99
99
  </Field>
100
100
  </ReauthStep>
101
101
  );
@@ -72,7 +72,8 @@ export function ActionSheetSurface<T extends string>({
72
72
  {options.map((option) => (
73
73
  <Button
74
74
  key={option.value}
75
- variant={option.destructive ? 'destructive' : 'primary'}
75
+ appearance="solid"
76
+ tone={option.destructive ? 'danger' : 'accent'}
76
77
  onPress={() => surface.dismiss(option.value)}
77
78
  >
78
79
  {option.label}
@@ -291,7 +291,7 @@ const AccountMembersScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, acco
291
291
  <Text className="text-caption font-caption text-text-secondary px-space-4">
292
292
  {t('accounts.members.invite.roleLabel') || 'Role'}
293
293
  </Text>
294
- <SegmentedControl type="radio" label={t('accounts.members.invite.roleLabel') || 'Role'} value={inviteRole} onValueChange={setInviteRole} size="small">
294
+ <SegmentedControl type="radio" label={t('accounts.members.invite.roleLabel') || 'Role'} value={inviteRole} onValueChange={setInviteRole} size="sm">
295
295
  {ASSIGNABLE_ROLES.map(role => <SegmentedControlItem key={role} value={role}>
296
296
  <SegmentedControlItemText>{roleLabel(role)}</SegmentedControlItemText>
297
297
  </SegmentedControlItem>)}
@@ -372,7 +372,7 @@ const AccountMembersScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, acco
372
372
  {/* Role chips (editable) or static role label */}
373
373
  {canEditThisRole ? (
374
374
  <SegmentedControl type="radio" label={t('accounts.members.invite.roleLabel') || 'Role'}
375
- value={member.role} onValueChange={role => handleChangeRole(member, role)} disabled={updateMutation.isPending} size="small">
375
+ value={member.role} onValueChange={role => handleChangeRole(member, role)} disabled={updateMutation.isPending} size="sm">
376
376
  {ASSIGNABLE_ROLES.map(role => <SegmentedControlItem key={role} value={role}>
377
377
  <SegmentedControlItemText>{roleLabel(role)}</SegmentedControlItemText>
378
378
  </SegmentedControlItem>)}
@@ -387,7 +387,7 @@ const AccountMembersScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, acco
387
387
  {(canTransferToThis || canRemoveThisMember) ? (
388
388
  <View className="flex-row gap-space-16 pt-space-4">
389
389
  {canTransferToThis ? (
390
- <Button appearance="plain" tone="neutral" size="small"
390
+ <Button appearance="plain" tone="neutral" size="sm"
391
391
  accessibilityRole="button"
392
392
  accessibilityLabel={t('accounts.members.actions.transfer') || 'Transfer ownership'}
393
393
  onPress={() => confirmTransfer(member)}
@@ -400,7 +400,7 @@ const AccountMembersScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, acco
400
400
  </Button>
401
401
  ) : null}
402
402
  {canRemoveThisMember ? (
403
- <Button appearance="plain" tone="neutral" size="small"
403
+ <Button appearance="plain" tone="neutral" size="sm"
404
404
  accessibilityRole="button"
405
405
  accessibilityLabel={t('accounts.members.actions.remove') || 'Remove member'}
406
406
  onPress={() => confirmRemove(member)}
@@ -156,7 +156,7 @@ const AccountVerificationScreen: React.FC<BaseScreenProps> = ({
156
156
 
157
157
  <Button
158
158
  appearance="solid" tone="accent"
159
- size="large"
159
+ size="lg"
160
160
  fullWidth
161
161
  className="mt-space-24"
162
162
  onPress={handleSubmit}
@@ -146,7 +146,7 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) =>
146
146
  return (
147
147
  <View className="flex-1 bg-bg">
148
148
  {isLoading && !apps ? (
149
- <Loading size="large" color={bloomTheme.colors.primary} />
149
+ <Loading size="lg" color={bloomTheme.colors.primary} />
150
150
  ) : (
151
151
  <FlatList
152
152
  data={apps ?? []}
@@ -94,7 +94,7 @@ const DomainsScreen: React.FC<BaseScreenProps> = () => {
94
94
  };
95
95
 
96
96
  if (domains.isPending && isAuthenticated) {
97
- return <Loading size="large" color={bloomTheme.colors.primary} />;
97
+ return <Loading size="lg" color={bloomTheme.colors.primary} />;
98
98
  }
99
99
 
100
100
  return (
@@ -704,11 +704,10 @@ const EditProfileFieldScreen: React.FC<EditProfileFieldScreenProps> = ({
704
704
  </TextField>
705
705
  </View>
706
706
  <Button
707
- variant="icon"
708
707
  onPress={handleAddItem}
709
708
  disabled={!newItemValue.trim()}
710
709
  accessibilityLabel={addLabel}
711
- icon={<Ionicons name="add" size={20} color={bloomTheme.colors.primaryForeground} />}
710
+ icon={<Ionicons name="add" size={20} color={bloomTheme.colors.primaryForeground} />} iconOnly tone="neutral" appearance="outline"
712
711
  />
713
712
  </View>
714
713
 
@@ -776,13 +776,13 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
776
776
  // Hide action buttons when selecting (in selectMode or bulk operations mode)
777
777
  rightElement: (!selectMode && selectedIds.size === 0) ? (
778
778
  <View className="flex-row items-center gap-1.5 ml-3">
779
- {(isImage || isVideo || file.contentType.includes('pdf')) ? <Button appearance="subtle" tone="neutral" size="small" iconOnly stopPropagation
779
+ {(isImage || isVideo || file.contentType.includes('pdf')) ? <Button appearance="subtle" tone="neutral" size="sm" iconOnly stopPropagation
780
780
  accessibilityLabel={`Preview ${file.filename}`} onPress={() => handleFileOpen(file)}
781
781
  icon={<Ionicons name="eye" size={18} color={colors.text} />} /> : null}
782
- <Button appearance="subtle" tone="neutral" size="small" iconOnly stopPropagation
782
+ <Button appearance="subtle" tone="neutral" size="sm" iconOnly stopPropagation
783
783
  accessibilityLabel={`Download ${file.filename}`} onPress={() => handleFileDownload(file.id, file.filename)}
784
784
  icon={<Ionicons name="download" size={18} color={colors.text} />} />
785
- <Button appearance="subtle" tone="danger" size="small" iconOnly stopPropagation loading={deletingId === file.id}
785
+ <Button appearance="subtle" tone="danger" size="sm" iconOnly stopPropagation loading={deletingId === file.id}
786
786
  accessibilityLabel={`Delete ${file.filename}`} onPress={() => confirmFileDelete(file.id, file.filename)}
787
787
  icon={<Ionicons name="trash" size={18} color={colors.error} />} />
788
788
  </View>
@@ -1144,7 +1144,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
1144
1144
  style={{ maxWidth: '80%' }}
1145
1145
  >
1146
1146
  <SegmentedControl type="radio" label={t('fileManagement.viewMode') || 'File type'}
1147
- value={viewMode} onValueChange={setViewMode} size="small">
1147
+ value={viewMode} onValueChange={setViewMode} size="sm">
1148
1148
  {(['all', 'photos', 'videos', 'documents', 'audio'] as const).map(mode => (
1149
1149
  <SegmentedControlItem key={mode} value={mode} accessibilityLabel={mode}>
1150
1150
  <MaterialCommunityIcons
@@ -1154,7 +1154,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
1154
1154
  ))}
1155
1155
  </SegmentedControl>
1156
1156
  </ScrollView>
1157
- <Button appearance="subtle" tone="neutral" size="small"
1157
+ <Button appearance="subtle" tone="neutral" size="sm"
1158
1158
  accessibilityRole="button"
1159
1159
  accessibilityLabel={t('fileManagement.a11y.sortBy', {
1160
1160
  field: sortBy,
@@ -109,7 +109,7 @@ const HistoryViewScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) => {
109
109
  />
110
110
  </SettingsListGroup>
111
111
  <SettingsListGroup title={t('history.recent') || 'Recent History'}>
112
- {isLoading ? <Loading size="large" color={bloomTheme.colors.text} text={t('history.loading') || 'Loading history...'} />
112
+ {isLoading ? <Loading size="lg" color={bloomTheme.colors.text} text={t('history.loading') || 'Loading history...'} />
113
113
  : history.length === 0 ? <Text className="text-text-secondary text-center p-space-40">{t('history.empty') || 'No history yet'}</Text>
114
114
  : history.map(item => (
115
115
  <SettingsListItem
@@ -197,7 +197,7 @@ const LanguageSelectorScreen: React.FC<LanguageSelectorScreenProps> = () => {
197
197
  </Text>
198
198
  </View>
199
199
  ) : canRemove ? (
200
- <Button appearance="plain" tone="neutral" size="small" iconOnly stopPropagation
200
+ <Button appearance="plain" tone="neutral" size="sm" iconOnly stopPropagation
201
201
  onPress={() => handleRemove(entry.code)} disabled={isBusy}
202
202
  accessibilityLabel={`${t('language.remove')} ${entry.name}`}
203
203
  icon={<Ionicons name="close-circle" size={REMOVE_ICON_SIZE} color={bloomTheme.colors.textSecondary} />} />
@@ -112,7 +112,7 @@ const LegalDocumentsScreen: React.FC<BaseScreenProps> = ({
112
112
  if (documentType) {
113
113
  return (
114
114
  <Loading
115
- size="large"
115
+ size="lg"
116
116
  color={bloomTheme.colors.text}
117
117
  text={t('legal.opening') || 'Opening document...'}
118
118
  />
@@ -90,8 +90,8 @@ const NotificationsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) =>
90
90
  }
91
91
  rightElement={
92
92
  <Switch
93
- value={values.pushEnabled}
94
- onValueChange={() => toggle('pushEnabled')}
93
+ checked={values.pushEnabled}
94
+ onCheckedChange={() => toggle('pushEnabled')}
95
95
  disabled={isSaving}
96
96
  />
97
97
  }
@@ -111,8 +111,8 @@ const NotificationsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) =>
111
111
  }
112
112
  rightElement={
113
113
  <Switch
114
- value={values.emailDigest}
115
- onValueChange={() => toggle('emailDigest')}
114
+ checked={values.emailDigest}
115
+ onCheckedChange={() => toggle('emailDigest')}
116
116
  disabled={isSaving}
117
117
  />
118
118
  }
@@ -139,8 +139,8 @@ const NotificationsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) =>
139
139
  }
140
140
  rightElement={
141
141
  <Switch
142
- value={values.securityAlerts}
143
- onValueChange={() => toggle('securityAlerts')}
142
+ checked={values.securityAlerts}
143
+ onCheckedChange={() => toggle('securityAlerts')}
144
144
  disabled={isSaving}
145
145
  />
146
146
  }
@@ -168,8 +168,8 @@ const NotificationsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) =>
168
168
  }
169
169
  rightElement={
170
170
  <Switch
171
- value={values.marketingEmails}
172
- onValueChange={() => toggle('marketingEmails')}
171
+ checked={values.marketingEmails}
172
+ onCheckedChange={() => toggle('marketingEmails')}
173
173
  disabled={isSaving}
174
174
  />
175
175
  }
@@ -197,7 +197,7 @@ const PaymentGatewayScreen: React.FC<PaymentGatewayScreenProps> = (props) => {
197
197
  <Button
198
198
  appearance="solid" tone="accent"
199
199
  onPress={handleClose}
200
- size="small"
200
+ size="sm"
201
201
  icon={<Ionicons name="close" size={16} />}
202
202
  iconPosition="right"
203
203
  >
@@ -158,8 +158,8 @@ const PreferencesScreen: React.FC<BaseScreenProps> = ({
158
158
  }
159
159
  rightElement={
160
160
  <Switch
161
- value={reduceMotionPref}
162
- onValueChange={handleReduceMotionToggle}
161
+ checked={reduceMotionPref}
162
+ onCheckedChange={handleReduceMotionToggle}
163
163
  disabled={isSaving}
164
164
  />
165
165
  }