@oxy.so/services 8.3.0 → 8.4.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.
- package/lib/commonjs/ui/components/BloomLocaleBridge.js +37 -0
- package/lib/commonjs/ui/components/BloomLocaleBridge.js.map +1 -0
- package/lib/commonjs/ui/components/OxyProvider.js +11 -6
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInRequestSurface.js +0 -1
- package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceScreen.js +4 -10
- package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js +0 -1
- package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/primitives.js +9 -11
- package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +13 -10
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/styles.js +4 -1
- package/lib/commonjs/ui/components/authChooser/styles.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +2 -2
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +5 -2
- package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +13 -17
- package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js +9 -8
- package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +38 -42
- package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +21 -6
- package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +4 -2
- package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +5 -16
- package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +19 -20
- package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +12 -8
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/ReauthStep.js +2 -7
- package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/accountFlowParts.js +64 -13
- package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +2 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/clipboard.js +21 -0
- package/lib/commonjs/ui/utils/clipboard.js.map +1 -0
- package/lib/commonjs/ui/utils/clipboard.native.js +28 -0
- package/lib/commonjs/ui/utils/clipboard.native.js.map +1 -0
- package/lib/module/ui/components/BloomLocaleBridge.js +33 -0
- package/lib/module/ui/components/BloomLocaleBridge.js.map +1 -0
- package/lib/module/ui/components/OxyProvider.js +11 -6
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/OxySignInRequestSurface.js +0 -1
- package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
- package/lib/module/ui/components/SurfaceScreen.js +5 -11
- package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/module/ui/components/authChooser/TroubleDisclosure.js +0 -1
- package/lib/module/ui/components/authChooser/TroubleDisclosure.js.map +1 -1
- package/lib/module/ui/components/authChooser/primitives.js +11 -12
- package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js +15 -10
- package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/module/ui/components/authChooser/styles.js +4 -1
- package/lib/module/ui/components/authChooser/styles.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentDetailsStep.js +3 -3
- package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/module/ui/components/signIn/InlineCommonsQr.js +6 -3
- package/lib/module/ui/components/signIn/InlineCommonsQr.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyAccountPicker.js +13 -17
- package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyAuthScreen.js +10 -9
- package/lib/module/ui/components/signIn/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +40 -44
- package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +22 -7
- package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +5 -3
- package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyPasswordPanel.js +6 -17
- package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxySignInPanel.js +20 -21
- package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxySignUpPanel.js +13 -9
- package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/ReauthStep.js +3 -8
- package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -1
- package/lib/module/ui/components/signIn/accountFlowParts.js +60 -11
- package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +3 -2
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/utils/clipboard.js +17 -0
- package/lib/module/ui/utils/clipboard.js.map +1 -0
- package/lib/module/ui/utils/clipboard.native.js +23 -0
- package/lib/module/ui/utils/clipboard.native.js.map +1 -0
- package/lib/typescript/commonjs/ui/components/BloomLocaleBridge.d.ts +19 -0
- package/lib/typescript/commonjs/ui/components/BloomLocaleBridge.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +4 -2
- package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +4 -4
- package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts +2 -1
- package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts +1 -5
- package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +29 -2
- package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/clipboard.d.ts +11 -0
- package/lib/typescript/commonjs/ui/utils/clipboard.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/clipboard.native.d.ts +18 -0
- package/lib/typescript/commonjs/ui/utils/clipboard.native.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/BloomLocaleBridge.d.ts +19 -0
- package/lib/typescript/module/ui/components/BloomLocaleBridge.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +4 -2
- package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +4 -4
- package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/styles.d.ts +2 -1
- package/lib/typescript/module/ui/components/authChooser/styles.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts +1 -5
- package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +29 -2
- package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/clipboard.d.ts +11 -0
- package/lib/typescript/module/ui/utils/clipboard.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/clipboard.native.d.ts +18 -0
- package/lib/typescript/module/ui/utils/clipboard.native.d.ts.map +1 -0
- package/package.json +11 -6
- package/src/ui/components/BloomLocaleBridge.tsx +23 -0
- package/src/ui/components/OxyProvider.tsx +13 -8
- package/src/ui/components/OxySignInRequestSurface.tsx +0 -1
- package/src/ui/components/SurfaceScreen.tsx +3 -9
- package/src/ui/components/__tests__/BloomLocaleBridge.test.tsx +68 -0
- package/src/ui/components/authChooser/TroubleDisclosure.tsx +0 -1
- package/src/ui/components/authChooser/primitives.tsx +11 -9
- package/src/ui/components/authChooser/requestSurfaces.tsx +9 -8
- package/src/ui/components/authChooser/styles.ts +4 -1
- package/src/ui/components/payment/PaymentDetailsStep.tsx +5 -3
- package/src/ui/components/signIn/InlineCommonsQr.tsx +5 -2
- package/src/ui/components/signIn/OxyAccountPicker.tsx +14 -13
- package/src/ui/components/signIn/OxyAuthScreen.tsx +5 -8
- package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +33 -45
- package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +17 -3
- package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +3 -2
- package/src/ui/components/signIn/OxyPasswordPanel.tsx +6 -12
- package/src/ui/components/signIn/OxySignInPanel.tsx +18 -15
- package/src/ui/components/signIn/OxySignUpPanel.tsx +13 -5
- package/src/ui/components/signIn/ReauthStep.tsx +4 -7
- package/src/ui/components/signIn/accountFlowParts.tsx +61 -7
- package/src/ui/screens/AppInfoScreen.tsx +2 -2
- package/src/ui/utils/clipboard.native.ts +20 -0
- package/src/ui/utils/clipboard.ts +14 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentDetailsStep.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/payment/PaymentDetailsStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PaymentDetailsStep.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/payment/PaymentDetailsStep.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAS,CAAC;AAGjF,UAAU,uBAAuB;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACpD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,qBAAqB,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA4MzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineCommonsQr.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/InlineCommonsQr.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"InlineCommonsQr.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/InlineCommonsQr.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAapE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAA;CAAE,CAqEpF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAccountPicker.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAccountPicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EAAyB,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AASjH,MAAM,WAAW,qBAAqB;IACpC,yFAAyF;IACzF,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,4DAA4D;IAC5D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"OxyAccountPicker.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAccountPicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EAAyB,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AASjH,MAAM,WAAW,qBAAqB;IACpC,yFAAyF;IACzF,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,4DAA4D;IAC5D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAwI5D,CAAC"}
|
|
@@ -38,11 +38,7 @@ export declare const OxyAuthSplit: React.FC<{
|
|
|
38
38
|
aside: React.ReactNode;
|
|
39
39
|
bare?: boolean;
|
|
40
40
|
}>;
|
|
41
|
-
/**
|
|
42
|
-
* The screen while there is nothing to show yet. React Native's own indicator:
|
|
43
|
-
* `@oxy.so/bloom/loading` can tree-shake to `undefined` in a rolldown-vite
|
|
44
|
-
* production bundle when co-imported with `@oxy.so/bloom/button`.
|
|
45
|
-
*/
|
|
41
|
+
/** The screen while there is nothing to show yet: Bloom's spinner, named for assistive technology. */
|
|
46
42
|
export declare const OxyAuthLoading: React.FC;
|
|
47
43
|
/** "By continuing, you agree to our Terms of Service and Privacy Policy." */
|
|
48
44
|
export declare const OxyAuthTerms: React.FC;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAqBlE,CAAC;AAEF,wGAAwG;AACxG,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAErF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAuBxG,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAOlC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAiBhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAuthenticatorPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAuthenticatorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyAuthenticatorPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAuthenticatorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwC/B,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAgMtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyDeleteAccountPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyDeleteAccountPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyDeleteAccountPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyDeleteAccountPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA6EtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyLinkCommonsPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyLinkCommonsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyLinkCommonsPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyLinkCommonsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAe1C,MAAM,WAAW,wBAAwB;IACvC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAgKlE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyPasswordPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyPasswordPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyPasswordPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyPasswordPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAuE5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxySignInPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxySignInPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkD/B,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAqBhD,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"OxySignInPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxySignInPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkD/B,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAqBhD,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkmBxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxySignUpPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxySignUpPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6B/B,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAUD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"OxySignUpPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxySignUpPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6B/B,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAUD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8JxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReauthStep.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/ReauthStep.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ReauthStep.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/ReauthStep.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAkC,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBxG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,MAAM,EAAE,YAAY,CAAC;IACrB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,iCAAiC;IACjC,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkKhD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The pieces every Oxy sign-in and account screen shares: the error vocabulary,
|
|
3
3
|
* one labelled field, one one-time-code field, the one primary action, a note,
|
|
4
|
-
* and the email-code step.
|
|
4
|
+
* a notice, and the email-code step.
|
|
5
5
|
* Each screen is built from the same shell as `OxySignInPanel`
|
|
6
6
|
* (`OxyAuthScreen`), so they read as one product in the account dialog, in an
|
|
7
7
|
* app's settings and on auth.oxy.so.
|
|
@@ -31,7 +31,11 @@ export declare function isTicketExpired(error: unknown): boolean;
|
|
|
31
31
|
export declare function isCompleteSignInCode(typed: string): boolean;
|
|
32
32
|
/** Characters in a backup code (`xxxxx-xxxxx`, its dash not counted). */
|
|
33
33
|
export declare const BACKUP_CODE_LENGTH = 10;
|
|
34
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* One labelled input, the way the sign-in screen draws its fields. A
|
|
36
|
+
* `secureTextEntry` field is always revealable: Bloom's eye button shows and
|
|
37
|
+
* hides the password, named in the locale Bloom speaks (`OxyProvider` sets it).
|
|
38
|
+
*/
|
|
35
39
|
export declare const AccountFlowField: React.FC<{
|
|
36
40
|
label: string;
|
|
37
41
|
value: string;
|
|
@@ -83,6 +87,27 @@ export declare const AccountFlowNote: React.FC<{
|
|
|
83
87
|
children: React.ReactNode;
|
|
84
88
|
testID?: string;
|
|
85
89
|
}>;
|
|
90
|
+
/**
|
|
91
|
+
* Something the person should know before acting, above the action it is
|
|
92
|
+
* about: a wait before trying again, a code that was just sent, a warning. A
|
|
93
|
+
* Bloom `Admonition`, not a field's error hint — nothing they typed is wrong.
|
|
94
|
+
*/
|
|
95
|
+
export declare const AccountFlowNotice: React.FC<{
|
|
96
|
+
children: React.ReactNode;
|
|
97
|
+
type?: 'info' | 'warning' | 'error';
|
|
98
|
+
testID?: string;
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Where a step sits in a flow of several (sign-up, turning on the
|
|
102
|
+
* authenticator): Bloom's segmented `WizardProgress` and "Step 2 of 3". The
|
|
103
|
+
* screen's own header names the step, so the progress draws no title; the
|
|
104
|
+
* titles still name the bar for assistive technology.
|
|
105
|
+
*/
|
|
106
|
+
export declare const AccountFlowProgress: React.FC<{
|
|
107
|
+
steps: readonly string[];
|
|
108
|
+
current: number;
|
|
109
|
+
testID?: string;
|
|
110
|
+
}>;
|
|
86
111
|
/** Why a step failed, where it happened. */
|
|
87
112
|
export declare const AccountFlowErrorLine: React.FC<{
|
|
88
113
|
message: string;
|
|
@@ -100,6 +125,8 @@ export interface EmailCodeStepProps {
|
|
|
100
125
|
label: string;
|
|
101
126
|
onPress: () => void;
|
|
102
127
|
};
|
|
128
|
+
/** Where this step sits in a longer flow (a `WizardProgress`), under the header. */
|
|
129
|
+
progress?: React.ReactNode;
|
|
103
130
|
}
|
|
104
131
|
/** "Check your email": the 6-digit code an email verification sent. Submits itself once complete. */
|
|
105
132
|
export declare const EmailCodeStep: React.FC<EmailCodeStepProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountFlowParts.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/accountFlowParts.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"accountFlowParts.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/accountFlowParts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppInfoScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AppInfoScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppInfoScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AppInfoScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAsB3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiU5C,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Put text on the clipboard: the browser's asynchronous Clipboard API. Rejects
|
|
3
|
+
* where there is none (an insecure origin, SSR, a denied permission), so the
|
|
4
|
+
* caller reports only a copy that happened.
|
|
5
|
+
*
|
|
6
|
+
* The native fork (`clipboard.native.ts`) uses `expo-clipboard`. React
|
|
7
|
+
* Native's own `Clipboard` is deprecated and gone from newer releases, so
|
|
8
|
+
* neither fork reaches for it.
|
|
9
|
+
*/
|
|
10
|
+
export declare function copyText(text: string): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Put text on the clipboard on iOS and Android, through `expo-clipboard`.
|
|
3
|
+
* React Native's own `Clipboard` is deprecated and gone from newer releases.
|
|
4
|
+
*
|
|
5
|
+
* `expo-clipboard` is an OPTIONAL peer, loaded with `import()` so an app
|
|
6
|
+
* without it (or with the JS but not the native module, before a rebuild)
|
|
7
|
+
* still bundles and boots: the copy rejects here and the caller says nothing
|
|
8
|
+
* was copied. A static import would instead fail the Metro build or throw
|
|
9
|
+
* while the root barrel evaluates.
|
|
10
|
+
*
|
|
11
|
+
* Only this NATIVE fork names the package; the default fork (`clipboard.ts`,
|
|
12
|
+
* which `tsc`, Vite and SSR resolve) names nothing, so a consumer's type graph
|
|
13
|
+
* reaches `expo-clipboard` only when it typechecks `.native` files
|
|
14
|
+
* (`moduleSuffixes`) — the case package-rules.md#package-boundaries warns
|
|
15
|
+
* about. `clipboardIsolation.test.ts` keeps it that way.
|
|
16
|
+
*/
|
|
17
|
+
export declare function copyText(text: string): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=clipboard.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.native.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/clipboard.native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxy.so/services",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.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",
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
"@commitlint/cli": "^21.2.1",
|
|
164
164
|
"@commitlint/config-conventional": "^21.2.0",
|
|
165
165
|
"@expo/vector-icons": "^15.0.3",
|
|
166
|
-
"@oxy.so/core": "3.
|
|
166
|
+
"@oxy.so/core": "3.2.0",
|
|
167
167
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
168
168
|
"@react-native-community/netinfo": "^12.0.1",
|
|
169
169
|
"@react-native/babel-preset": "^0.86.2",
|
|
@@ -178,8 +178,9 @@
|
|
|
178
178
|
"@types/jest": "^30.0.0",
|
|
179
179
|
"@types/node": "^20.19.43",
|
|
180
180
|
"@types/react": "*",
|
|
181
|
-
"@oxy.so/bloom": "^4.
|
|
181
|
+
"@oxy.so/bloom": "^4.35.0",
|
|
182
182
|
"copyfiles": "^2.4.1",
|
|
183
|
+
"expo-clipboard": "~57.0.2",
|
|
183
184
|
"expo-constants": "~57.0.5",
|
|
184
185
|
"expo-file-system": "~57.0.1",
|
|
185
186
|
"expo-haptics": "~57.0.1",
|
|
@@ -211,11 +212,11 @@
|
|
|
211
212
|
"typescript": "^5.9.2",
|
|
212
213
|
"zustand": "^5.0.14"
|
|
213
214
|
},
|
|
214
|
-
"//@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.",
|
|
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+).",
|
|
215
216
|
"peerDependencies": {
|
|
216
217
|
"@expo/vector-icons": "^15.0.3",
|
|
217
|
-
"@oxy.so/bloom": "^4.
|
|
218
|
-
"@oxy.so/core": "^3.
|
|
218
|
+
"@oxy.so/bloom": "^4.35.0",
|
|
219
|
+
"@oxy.so/core": "^3.2.0",
|
|
219
220
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
220
221
|
"@react-native-community/netinfo": ">=11.4.1",
|
|
221
222
|
"@tanstack/query-async-storage-persister": "^5.101",
|
|
@@ -225,6 +226,7 @@
|
|
|
225
226
|
"@types/react": "*",
|
|
226
227
|
"@types/react-native": "*",
|
|
227
228
|
"expo": ">=56.0.0",
|
|
229
|
+
"expo-clipboard": ">=56.0.0 <59.0.0",
|
|
228
230
|
"expo-constants": ">=56.0.0",
|
|
229
231
|
"expo-document-picker": ">=56.0.0",
|
|
230
232
|
"expo-file-system": ">=56.0.0",
|
|
@@ -293,6 +295,9 @@
|
|
|
293
295
|
},
|
|
294
296
|
"expo-web-browser": {
|
|
295
297
|
"optional": true
|
|
298
|
+
},
|
|
299
|
+
"expo-clipboard": {
|
|
300
|
+
"optional": true
|
|
296
301
|
}
|
|
297
302
|
},
|
|
298
303
|
"react-native-builder-bob": {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import { LocaleProvider, useBloomLocale } from '@oxy.so/bloom/locale';
|
|
3
|
+
import { useOxy } from '../context/OxyContext';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Bloom's own words — a field's "Show password", a dialog's "Close", "Step 2
|
|
7
|
+
* of 3" — in the language Oxy resolved for this person (`currentLanguage`: the
|
|
8
|
+
* account's, or signed out, the device's). Mounted by `OxyProvider` around
|
|
9
|
+
* everything it renders, the app included, so the SDK's screens and the app's
|
|
10
|
+
* Bloom components speak one language without the app doing anything.
|
|
11
|
+
*
|
|
12
|
+
* An app that sets Bloom's locale itself keeps it; the nearest provider wins:
|
|
13
|
+
* - a `LocaleProvider` (or `BloomProvider locale`) INSIDE `OxyProvider` is
|
|
14
|
+
* nearer than this one, and wins for its subtree as usual;
|
|
15
|
+
* - one OUTSIDE `OxyProvider` is the app's explicit choice, so this bridge
|
|
16
|
+
* passes it through instead of overriding it from within.
|
|
17
|
+
* Only where nothing above sets a locale does Oxy's language apply.
|
|
18
|
+
*/
|
|
19
|
+
export const BloomLocaleBridge: FC<{ children: ReactNode }> = ({ children }) => {
|
|
20
|
+
const { currentLanguage } = useOxy();
|
|
21
|
+
const inherited = useBloomLocale();
|
|
22
|
+
return <LocaleProvider locale={inherited ?? currentLanguage}>{children}</LocaleProvider>;
|
|
23
|
+
};
|
|
@@ -15,6 +15,7 @@ import { isNetConnectivityOnline } from '../utils/netConnectivity';
|
|
|
15
15
|
import { KeyboardBoundary } from './KeyboardBoundary';
|
|
16
16
|
import { ProductAnalyticsObserver } from '../analytics/productAnalytics';
|
|
17
17
|
import { LanguageBridge } from './LanguageBridge';
|
|
18
|
+
import { BloomLocaleBridge } from './BloomLocaleBridge';
|
|
18
19
|
|
|
19
20
|
const bootStyles = StyleSheet.create({
|
|
20
21
|
providerRoot: {
|
|
@@ -229,6 +230,8 @@ const OxyProvider: FC<OxyProviderProps> = ({
|
|
|
229
230
|
// (defaultColorPreset, defaultMode, persistKey, storage, fonts, etc.).
|
|
230
231
|
// OxyProvider does NOT wrap a BloomThemeProvider — that would create a
|
|
231
232
|
// duplicate scope that silently shadows the consumer's configuration.
|
|
233
|
+
// It DOES set Bloom's locale (`BloomLocaleBridge`) to Oxy's language, but
|
|
234
|
+
// defers to a locale the app already set above it.
|
|
232
235
|
const coreContent = (
|
|
233
236
|
<QueryClientProvider client={queryClient}>
|
|
234
237
|
<OxyRuntimeProvider
|
|
@@ -248,14 +251,16 @@ const OxyProvider: FC<OxyProviderProps> = ({
|
|
|
248
251
|
>
|
|
249
252
|
{productAnalytics ? <ProductAnalyticsObserver analytics={productAnalytics} /> : null}
|
|
250
253
|
{language ? <LanguageBridge {...language} /> : null}
|
|
251
|
-
<
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
254
|
+
<BloomLocaleBridge>
|
|
255
|
+
<SurfaceProvider>
|
|
256
|
+
{requireAuth === 'off' ? (
|
|
257
|
+
children
|
|
258
|
+
) : (
|
|
259
|
+
<RequireOxyAuth prompt={requireAuth}>{children}</RequireOxyAuth>
|
|
260
|
+
)}
|
|
261
|
+
</SurfaceProvider>
|
|
262
|
+
<ToastOutlet />
|
|
263
|
+
</BloomLocaleBridge>
|
|
259
264
|
</OxyRuntimeProvider>
|
|
260
265
|
</QueryClientProvider>
|
|
261
266
|
);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { Suspense, useCallback, useEffect, useMemo, useState, type ErrorInfo } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { StyleSheet, View, useWindowDimensions } from 'react-native';
|
|
3
|
+
import { Loading } from '@oxy.so/bloom/loading';
|
|
3
4
|
import { Text } from '@oxy.so/bloom/typography';
|
|
4
5
|
import { useStore } from 'zustand';
|
|
5
6
|
import { useTheme } from '@oxy.so/bloom/theme';
|
|
@@ -83,18 +84,11 @@ const errorStyles = StyleSheet.create({
|
|
|
83
84
|
* as `lazy(() => import(...))` (see `../navigation/routes`), so the very first
|
|
84
85
|
* presentation of a surface can land here for a frame; the surface chrome is
|
|
85
86
|
* already on screen by then, so this fills only the body.
|
|
86
|
-
*
|
|
87
|
-
* Deliberately RN's `ActivityIndicator` rather than `@oxy.so/bloom/loading`,
|
|
88
|
-
* matching `authChooser/requestSurfaces`: Bloom still declares
|
|
89
|
-
* `sideEffects: false`, so its `Loading` can still tree-shake to `undefined` in
|
|
90
|
-
* a rolldown-vite production bundle. Removing that risk from the first frame of
|
|
91
|
-
* every route is not worth a themed spinner.
|
|
92
87
|
*/
|
|
93
88
|
function ScreenPending() {
|
|
94
|
-
const theme = useTheme();
|
|
95
89
|
return (
|
|
96
90
|
<View style={errorStyles.container}>
|
|
97
|
-
<
|
|
91
|
+
<Loading variant="spinner" size="large" />
|
|
98
92
|
</View>
|
|
99
93
|
);
|
|
100
94
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import { LocaleProvider, useBloomLocale } from '@oxy.so/bloom/locale';
|
|
4
|
+
import { BloomLocaleBridge } from '../BloomLocaleBridge';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Bloom's own words follow Oxy's language unless the app already set Bloom's
|
|
8
|
+
* locale: the nearest provider wins, in both directions.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
let mockCurrentLanguage = 'es-ES';
|
|
12
|
+
jest.mock('../../context/OxyContext', () => ({
|
|
13
|
+
useOxy: () => ({ currentLanguage: mockCurrentLanguage }),
|
|
14
|
+
}));
|
|
15
|
+
|
|
16
|
+
function Probe() {
|
|
17
|
+
return <span data-testid="locale">{useBloomLocale() ?? 'runtime'}</span>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
mockCurrentLanguage = 'es-ES';
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("gives Bloom the account's language", () => {
|
|
25
|
+
const { getByTestId } = render(
|
|
26
|
+
<BloomLocaleBridge>
|
|
27
|
+
<Probe />
|
|
28
|
+
</BloomLocaleBridge>,
|
|
29
|
+
);
|
|
30
|
+
expect(getByTestId('locale').textContent).toBe('es-ES');
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('follows a language change', () => {
|
|
34
|
+
const { getByTestId, rerender } = render(
|
|
35
|
+
<BloomLocaleBridge>
|
|
36
|
+
<Probe />
|
|
37
|
+
</BloomLocaleBridge>,
|
|
38
|
+
);
|
|
39
|
+
mockCurrentLanguage = 'fr-FR';
|
|
40
|
+
rerender(
|
|
41
|
+
<BloomLocaleBridge>
|
|
42
|
+
<Probe />
|
|
43
|
+
</BloomLocaleBridge>,
|
|
44
|
+
);
|
|
45
|
+
expect(getByTestId('locale').textContent).toBe('fr-FR');
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it("keeps a locale the app set above OxyProvider", () => {
|
|
49
|
+
const { getByTestId } = render(
|
|
50
|
+
<LocaleProvider locale="de-DE">
|
|
51
|
+
<BloomLocaleBridge>
|
|
52
|
+
<Probe />
|
|
53
|
+
</BloomLocaleBridge>
|
|
54
|
+
</LocaleProvider>,
|
|
55
|
+
);
|
|
56
|
+
expect(getByTestId('locale').textContent).toBe('de-DE');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('yields to a provider the app mounts inside it', () => {
|
|
60
|
+
const { getByTestId } = render(
|
|
61
|
+
<BloomLocaleBridge>
|
|
62
|
+
<LocaleProvider locale="ja-JP">
|
|
63
|
+
<Probe />
|
|
64
|
+
</LocaleProvider>
|
|
65
|
+
</BloomLocaleBridge>,
|
|
66
|
+
);
|
|
67
|
+
expect(getByTestId('locale').textContent).toBe('ja-JP');
|
|
68
|
+
});
|
|
@@ -5,10 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import type React from 'react';
|
|
8
|
-
import {
|
|
9
|
-
import { Text } from '@oxy.so/bloom/typography';
|
|
8
|
+
import { LinkButton } from '@oxy.so/bloom/button';
|
|
10
9
|
import { authChooserStyles as styles } from './styles';
|
|
11
|
-
import type { Theme } from './types';
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
12
|
* A SUBORDINATE action: a small centred text link, never a button.
|
|
@@ -17,22 +15,26 @@ import type { Theme } from './types';
|
|
|
17
15
|
* primary action (issue #691) — the sign-up entry, and every alternative revealed
|
|
18
16
|
* behind "Having trouble?". Keeping them all on one component is what stops an
|
|
19
17
|
* alternative from quietly growing into a co-equal button again.
|
|
18
|
+
*
|
|
19
|
+
* Bloom's `LinkButton` in the secondary tone at `sm`: no fill or border, the
|
|
20
|
+
* secondary text colour, underlined under a pointer, and Bloom's link hit slop
|
|
21
|
+
* for the touch target. The vertical padding keeps the stack's old rhythm.
|
|
20
22
|
*/
|
|
21
23
|
export const SubtleLink: React.FC<{
|
|
22
24
|
label: string;
|
|
23
|
-
theme: Theme;
|
|
24
25
|
onPress: () => void;
|
|
25
26
|
disabled?: boolean;
|
|
26
27
|
testID?: string;
|
|
27
|
-
}> = ({ label,
|
|
28
|
-
<
|
|
28
|
+
}> = ({ label, onPress, disabled, testID }) => (
|
|
29
|
+
<LinkButton
|
|
30
|
+
variant="secondary"
|
|
31
|
+
size="sm"
|
|
29
32
|
onPress={onPress}
|
|
30
33
|
disabled={disabled}
|
|
31
|
-
accessibilityRole="button"
|
|
32
34
|
accessibilityLabel={label}
|
|
33
35
|
style={styles.footerLink}
|
|
34
36
|
testID={testID}
|
|
35
37
|
>
|
|
36
|
-
|
|
37
|
-
</
|
|
38
|
+
{label}
|
|
39
|
+
</LinkButton>
|
|
38
40
|
);
|
|
@@ -13,16 +13,17 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import type React from 'react';
|
|
16
|
-
import {
|
|
16
|
+
import { View } from 'react-native';
|
|
17
17
|
import MaterialCommunityIcons from '../../icons/MaterialCommunityIcons';
|
|
18
18
|
import QRCode from 'react-native-qrcode-svg';
|
|
19
19
|
import { Button } from '@oxy.so/bloom/button';
|
|
20
|
-
import {
|
|
20
|
+
import { Loading } from '@oxy.so/bloom/loading';
|
|
21
21
|
import { Text } from '@oxy.so/bloom/typography';
|
|
22
22
|
import type { CommonsDeliveryRoute } from '@oxy.so/core';
|
|
23
23
|
import type { SignInProgress } from '@oxy.so/core/session';
|
|
24
24
|
import { authChooserStyles as styles } from './styles';
|
|
25
25
|
import type { Theme, Translate } from './types';
|
|
26
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
26
27
|
|
|
27
28
|
/** High-contrast QR colors — intentionally fixed (NOT themed) for scan reliability. */
|
|
28
29
|
const QR_PLATE_BG = '#FFFFFF';
|
|
@@ -32,14 +33,14 @@ const QR_SIZE = 196;
|
|
|
32
33
|
const ROUTE_GLYPH_SIZE = 44;
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
|
-
* The indeterminate leading visual: the request exists but has nothing to show
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* (
|
|
36
|
+
* The indeterminate leading visual: the request exists but has nothing to show
|
|
37
|
+
* yet. Bloom's spinner, named "Loading…" so assistive technology hears a busy
|
|
38
|
+
* progressbar where the QR will appear; the status sentence under it
|
|
39
|
+
* (`signInProgressLabel`) says what is happening.
|
|
39
40
|
*/
|
|
40
41
|
export const PreparingSurface: React.FC = () => {
|
|
41
|
-
const
|
|
42
|
-
return <
|
|
42
|
+
const { t } = useI18n();
|
|
43
|
+
return <Loading variant="spinner" size="large" accessibilityLabel={t('common.status.loading')} />;
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
/** The leading glyph for a route whose surface is elsewhere (the phone, Commons). */
|
|
@@ -98,9 +98,12 @@ export const authChooserStyles = StyleSheet.create({
|
|
|
98
98
|
alignItems: 'center',
|
|
99
99
|
justifyContent: 'center',
|
|
100
100
|
},
|
|
101
|
+
// Longhands: Bloom's web `Button` (`SubtleLink`) is a raw DOM <button>,
|
|
102
|
+
// where `paddingVertical` is no CSS property and is silently dropped.
|
|
101
103
|
footerLink: {
|
|
102
104
|
alignSelf: 'center',
|
|
103
|
-
|
|
105
|
+
paddingTop: 10,
|
|
106
|
+
paddingBottom: 10,
|
|
104
107
|
marginTop: 12,
|
|
105
108
|
},
|
|
106
109
|
linkText: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import { View, Animated, TouchableOpacity,
|
|
3
|
+
import { View, Animated, TouchableOpacity, Linking } from 'react-native';
|
|
4
4
|
import { Text } from '@oxy.so/bloom/typography';
|
|
5
5
|
import Ionicons from '../../icons/Ionicons';
|
|
6
6
|
import { Button } from '@oxy.so/bloom/button';
|
|
@@ -8,6 +8,7 @@ import { TextField, TextFieldInput } from '@oxy.so/bloom/text-field';
|
|
|
8
8
|
import FAIRWalletIcon from '../icon/FAIRWalletIcon';
|
|
9
9
|
import { createPaymentStyles } from './paymentStyles';
|
|
10
10
|
import { toast } from '@oxy.so/bloom/toast';
|
|
11
|
+
import { copyText } from '../../utils/clipboard';
|
|
11
12
|
import type { CardDetails, PaymentColors, PaymentStepAnimations } from './types';
|
|
12
13
|
import { useI18n } from '../../hooks/useI18n';
|
|
13
14
|
|
|
@@ -43,8 +44,9 @@ const PaymentDetailsStep: React.FC<PaymentDetailsStepProps> = ({
|
|
|
43
44
|
const { fadeAnim, slideAnim, scaleAnim } = animations;
|
|
44
45
|
|
|
45
46
|
const handleCopyAddress = () => {
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
copyText(faircoinAddress)
|
|
48
|
+
.then(() => toast(t('payment.details.addressCopied')))
|
|
49
|
+
.catch(() => toast.error(t('appInfo.toasts.copyFailed')));
|
|
48
50
|
};
|
|
49
51
|
|
|
50
52
|
const handleOpenFairWallet = () => {
|