@onairos/react-native 3.0.5 → 3.0.6

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/README.md CHANGED
@@ -107,6 +107,23 @@ cd ios && pod install
107
107
 
108
108
  ## Usage
109
109
 
110
+ ### Important: Setup Portal Host
111
+
112
+ For modals and overlays to appear properly, you must wrap your app with the `PortalHost` component:
113
+
114
+ ```javascript
115
+ import { PortalHost } from 'onairos-react-native';
116
+
117
+ export default function App() {
118
+ return (
119
+ <PortalHost>
120
+ {/* Your app content goes here */}
121
+ <MainNavigator />
122
+ </PortalHost>
123
+ );
124
+ }
125
+ ```
126
+
110
127
  ### Basic Button Integration
111
128
 
112
129
  1. Import the OnairosButton component:
@@ -10,6 +10,7 @@ var _UniversalOnboarding = require("./UniversalOnboarding");
10
10
  var _Overlay = require("./Overlay");
11
11
  var _secureStorage = require("../utils/secureStorage");
12
12
  var _api = require("../api");
13
+ var _Portal = require("../utils/Portal");
13
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
15
  /**
15
16
  * OnairosButton Component - A sign-in button similar to Google/Apple sign-in
@@ -142,13 +143,13 @@ const OnairosButton = ({
142
143
  onComplete: handleOnboardingComplete,
143
144
  debug: debug,
144
145
  test: testMode
145
- }), showOverlay && storedCredentials && /*#__PURE__*/_react.default.createElement(_Overlay.Overlay, {
146
+ }), showOverlay && storedCredentials && /*#__PURE__*/_react.default.createElement(_Portal.Portal, null, /*#__PURE__*/_react.default.createElement(_Overlay.Overlay, {
146
147
  data: requestData || {},
147
148
  username: storedCredentials.username,
148
149
  modelKey: storedCredentials.userPin || '',
149
150
  onResolved: handleOverlayResolved,
150
151
  appName: AppName
151
- }));
152
+ })));
152
153
  };
153
154
  exports.OnairosButton = OnairosButton;
154
155
  const styles = _reactNative.StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UniversalOnboarding","_Overlay","_secureStorage","_api","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","useState","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","hasCredentials","credentials","getCredentials","username","clearCredentials","isValid","onairosApi","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","useCallback","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","TouchableOpacity","style","onPress","disabled","accessibilityLabel","ActivityIndicator","size","Text","UniversalOnboarding","visible","onClose","onComplete","test","Overlay","modelKey","userPin","appName","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UniversalOnboarding","_Overlay","_secureStorage","_api","_Portal","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","useState","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","hasCredentials","credentials","getCredentials","username","clearCredentials","isValid","onairosApi","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","useCallback","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","TouchableOpacity","style","onPress","disabled","accessibilityLabel","ActivityIndicator","size","Text","UniversalOnboarding","visible","onClose","onComplete","test","Portal","Overlay","modelKey","userPin","appName","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,19 +3,64 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.CryptoUtils = exports.AuthUtils = exports.ApiUtils = void 0;
7
- var _OnairosButton = _interopRequireDefault(require("./components/OnairosButton"));
8
- var AuthUtils = _interopRequireWildcard(require("./utils/auth"));
9
- exports.AuthUtils = AuthUtils;
10
- var CryptoUtils = _interopRequireWildcard(require("./utils/crypto"));
11
- exports.CryptoUtils = CryptoUtils;
12
- var ApiUtils = _interopRequireWildcard(require("./utils/api"));
13
- exports.ApiUtils = ApiUtils;
14
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- // Export the main component
17
- var _default = exports.default = _OnairosButton.default; // Export utilities for advanced usage
18
- //# sourceMappingURL=index.js.mapble: true,
6
+ var _exportNames = {
7
+ Onairos: true,
8
+ OnairosButton: true,
9
+ OnairosOverlay: true,
10
+ UniversalOnboarding: true,
11
+ Portal: true,
12
+ PortalHost: true,
13
+ ConnectorScreen: true,
14
+ PinCreationScreen: true,
15
+ LoadingScreen: true,
16
+ OAuthWebView: true,
17
+ PlatformConnector: true,
18
+ OnboardingHeader: true,
19
+ PinInput: true,
20
+ useCredentials: true,
21
+ useConnections: true,
22
+ storeCredentials: true,
23
+ getCredentials: true,
24
+ hasCredentials: true,
25
+ deleteCredentials: true,
26
+ updateCredentials: true,
27
+ generateDeviceUsername: true,
28
+ verifyCredentials: true,
29
+ validateCredentials: true,
30
+ createAccount: true,
31
+ authenticate: true,
32
+ refreshToken: true,
33
+ getPlatformData: true,
34
+ getUserProfile: true,
35
+ updatePlatformConnections: true,
36
+ rsaEncrypt: true,
37
+ sha256: true,
38
+ base64ToBuffer: true,
39
+ logDebug: true,
40
+ logError: true,
41
+ isDebugMode: true,
42
+ connectPlatform: true,
43
+ disconnectPlatform: true,
44
+ initializeOAuthService: true,
45
+ cleanupOAuthService: true,
46
+ storePlatformConnection: true,
47
+ OAuthService: true,
48
+ COLORS: true,
49
+ PLATFORMS: true,
50
+ API_ENDPOINTS: true,
51
+ STORAGE_KEYS: true,
52
+ PIN_REQUIREMENTS: true,
53
+ DEEP_LINK_CONFIG: true,
54
+ onairosApi: true
55
+ };
56
+ Object.defineProperty(exports, "API_ENDPOINTS", {
57
+ enumerable: true,
58
+ get: function () {
59
+ return _constants.API_ENDPOINTS;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, "COLORS", {
63
+ enumerable: true,
19
64
  get: function () {
20
65
  return _constants.COLORS;
21
66
  }
@@ -104,6 +149,18 @@ Object.defineProperty(exports, "PlatformConnector", {
104
149
  return _PlatformConnector.PlatformConnector;
105
150
  }
106
151
  });
152
+ Object.defineProperty(exports, "Portal", {
153
+ enumerable: true,
154
+ get: function () {
155
+ return _Portal.Portal;
156
+ }
157
+ });
158
+ Object.defineProperty(exports, "PortalHost", {
159
+ enumerable: true,
160
+ get: function () {
161
+ return _Portal.PortalHost;
162
+ }
163
+ });
107
164
  Object.defineProperty(exports, "STORAGE_KEYS", {
108
165
  enumerable: true,
109
166
  get: function () {
@@ -289,6 +346,7 @@ var _Onairos = require("./components/Onairos");
289
346
  var _OnairosButton = require("./components/OnairosButton");
290
347
  var _Overlay = require("./components/Overlay");
291
348
  var _UniversalOnboarding = require("./components/UniversalOnboarding");
349
+ var _Portal = require("./utils/Portal");
292
350
  var _ConnectorScreen = require("./components/screens/ConnectorScreen");
293
351
  var _PinCreationScreen = require("./components/screens/PinCreationScreen");
294
352
  var _LoadingScreen = require("./components/screens/LoadingScreen");
@@ -337,6 +395,8 @@ Object.keys(_encryption).forEach(function (key) {
337
395
 
338
396
  // Export main components
339
397
 
398
+ // Export Portal components
399
+
340
400
  // Screen Components
341
401
 
342
402
  // Onboarding Components
@@ -360,7 +420,8 @@ const components = {
360
420
  Onairos: _Onairos.Onairos,
361
421
  OnairosButton: _OnairosButton.OnairosButton,
362
422
  OnairosOverlay: _Overlay.Overlay,
363
- UniversalOnboarding: _UniversalOnboarding.UniversalOnboarding
423
+ UniversalOnboarding: _UniversalOnboarding.UniversalOnboarding,
424
+ PortalHost: _Portal.PortalHost
364
425
  };
365
426
 
366
427
  // Export the components as the default export
@@ -1 +1 @@
1
- {"version":3,"names":["_OnairosButton","_interopRequireDefault","require","AuthUtils","_interopRequireWildcard","exports","CryptoUtils","ApiUtils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","OnairosButton"],"sourceRoot":"..\\..\\src","sources":["index.js"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA0CG,OAAA,CAAAF,SAAA,GAAAA,SAAA;AAC1C,IAAAG,WAAA,GAAAF,uBAAA,CAAAF,OAAA;AAA8CG,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAC9C,IAAAC,QAAA,GAAAH,uBAAA,CAAAF,OAAA;AAAwCG,OAAA,CAAAE,QAAA,GAAAA,QAAA;AAAA,SAAAH,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAR,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAExC;AAAA,IAAAmB,QAAA,GAAAtB,OAAA,CAAAa,OAAA,GACeU,sBAAa,EAE5B","ignoreList":[]}
1
+ {"version":3,"names":["_Onairos","require","_OnairosButton","_Overlay","_UniversalOnboarding","_Portal","_ConnectorScreen","_PinCreationScreen","_LoadingScreen","_OAuthWebView","_PlatformConnector","_OnboardingHeader","_PinInput","_useCredentials","_useConnections","_secureStorage","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_onairosApi","_crypto","_debugHelper","_oauthService","_constants","_api","_encryption","components","Onairos","OnairosButton","OnairosOverlay","Overlay","UniversalOnboarding","PortalHost","_default","default"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AASA,IAAAI,OAAA,GAAAJ,OAAA;AAGA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AAGA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,iBAAA,GAAAV,OAAA;AACA,IAAAW,SAAA,GAAAX,OAAA;AAGA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,eAAA,GAAAb,OAAA;AAGA,IAAAc,cAAA,GAAAd,OAAA;AAqEAe,MAAA,CAAAC,IAAA,CAAAF,cAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,cAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,cAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AA3DA,IAAAS,WAAA,GAAA3B,OAAA;AAUA,IAAA4B,OAAA,GAAA5B,OAAA;AAMA,IAAA6B,YAAA,GAAA7B,OAAA;AAOA,IAAA8B,aAAA,GAAA9B,OAAA;AA+BA,IAAA+B,UAAA,GAAA/B,OAAA;AAGA,IAAAgC,IAAA,GAAAhC,OAAA;AAGA,IAAAiC,WAAA,GAAAjC,OAAA;AAAAe,MAAA,CAAAC,IAAA,CAAAiB,WAAA,EAAAhB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAe,WAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,WAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AA1GA;AACA;AACA;AACA;;AAEA;;AAMA;;AAMA;;AAGA;;AAKA;;AAMA;;AAIA;;AAiCA;;AASA;;AAsBA;;AAGA;;AAMA;;AAQA;AACA,MAAMgB,UAAU,GAAG;EACjBC,OAAO,EAAEA,gBAA2B;EACpCC,aAAa,EAAEA,4BAAwD;EACvEC,cAAc,EAAEC,gBAA2B;EAC3CC,mBAAmB,EAAEA,wCAAoE;EACzFC,UAAU,EAAEA;AACd,CAAC;;AAED;AAAA,IAAAC,QAAA,GAAAlB,OAAA,CAAAmB,OAAA,GACeR,UAAU","ignoreList":[]}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PortalHost = exports.Portal = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
10
+ // Store for portal instances
11
+ const portalRefs = {};
12
+ let portalId = 0;
13
+
14
+ // Context to pass portal host state
15
+ const PortalContext = /*#__PURE__*/_react.default.createContext({
16
+ mount: () => 0,
17
+ update: () => {},
18
+ unmount: () => {}
19
+ });
20
+
21
+ /**
22
+ * Portal Host component - place this at the root of your app
23
+ */
24
+ const PortalHost = ({
25
+ children
26
+ }) => {
27
+ const [portals, setPortals] = (0, _react.useState)({});
28
+ const mount = children => {
29
+ const key = ++portalId;
30
+ setPortals(state => ({
31
+ ...state,
32
+ [key]: children
33
+ }));
34
+ return key;
35
+ };
36
+ const update = (key, children) => {
37
+ setPortals(state => ({
38
+ ...state,
39
+ [key]: children
40
+ }));
41
+ };
42
+ const unmount = key => {
43
+ setPortals(state => {
44
+ const newState = {
45
+ ...state
46
+ };
47
+ delete newState[key];
48
+ return newState;
49
+ });
50
+ };
51
+ return /*#__PURE__*/_react.default.createElement(PortalContext.Provider, {
52
+ value: {
53
+ mount,
54
+ update,
55
+ unmount
56
+ }
57
+ }, children, Object.keys(portals).map(key => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
58
+ key: key,
59
+ style: {
60
+ position: 'absolute',
61
+ top: 0,
62
+ left: 0,
63
+ right: 0,
64
+ bottom: 0,
65
+ zIndex: 9999
66
+ }
67
+ }, portals[Number(key)])));
68
+ };
69
+
70
+ /**
71
+ * Portal component - renders children into the PortalHost
72
+ */
73
+ exports.PortalHost = PortalHost;
74
+ const Portal = ({
75
+ children
76
+ }) => {
77
+ const {
78
+ mount,
79
+ update,
80
+ unmount
81
+ } = _react.default.useContext(PortalContext);
82
+ const [portalId, setPortalId] = (0, _react.useState)(null);
83
+ (0, _react.useEffect)(() => {
84
+ const id = mount(children);
85
+ setPortalId(id);
86
+ return () => {
87
+ if (portalId) unmount(portalId);
88
+ };
89
+ }, []);
90
+ (0, _react.useEffect)(() => {
91
+ if (portalId !== null) {
92
+ update(portalId, children);
93
+ }
94
+ }, [children, portalId]);
95
+ return null;
96
+ };
97
+ exports.Portal = Portal;
98
+ //# sourceMappingURL=Portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","portalRefs","portalId","PortalContext","React","createContext","mount","update","unmount","PortalHost","children","portals","setPortals","useState","key","state","newState","createElement","Provider","value","keys","map","View","style","position","top","left","right","bottom","zIndex","Number","exports","Portal","useContext","setPortalId","useEffect","id"],"sourceRoot":"..\\..\\..\\src","sources":["utils/Portal.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import { UniversalOnboarding } from './UniversalOnboarding';
4
4
  import { Overlay } from './Overlay';
5
5
  import { hasCredentials, getCredentials, deleteCredentials as clearCredentials } from '../utils/secureStorage';
6
6
  import { onairosApi } from '../api';
7
+ import { Portal } from '../utils/Portal';
7
8
 
8
9
  /**
9
10
  * OnairosButton Component - A sign-in button similar to Google/Apple sign-in
@@ -136,13 +137,13 @@ export const OnairosButton = ({
136
137
  onComplete: handleOnboardingComplete,
137
138
  debug: debug,
138
139
  test: testMode
139
- }), showOverlay && storedCredentials && /*#__PURE__*/React.createElement(Overlay, {
140
+ }), showOverlay && storedCredentials && /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(Overlay, {
140
141
  data: requestData || {},
141
142
  username: storedCredentials.username,
142
143
  modelKey: storedCredentials.userPin || '',
143
144
  onResolved: handleOverlayResolved,
144
145
  appName: AppName
145
- }));
146
+ })));
146
147
  };
147
148
  const styles = StyleSheet.create({
148
149
  button: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useCallback","TouchableOpacity","Text","StyleSheet","ActivityIndicator","UniversalOnboarding","Overlay","hasCredentials","getCredentials","deleteCredentials","clearCredentials","onairosApi","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","credentials","username","isValid","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","style","onPress","disabled","accessibilityLabel","size","visible","onClose","onComplete","test","modelKey","userPin","appName","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useCallback","TouchableOpacity","Text","StyleSheet","ActivityIndicator","UniversalOnboarding","Overlay","hasCredentials","getCredentials","deleteCredentials","clearCredentials","onairosApi","Portal","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","credentials","username","isValid","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","style","onPress","disabled","accessibilityLabel","size","visible","onClose","onComplete","test","modelKey","userPin","appName","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AACpD,SACEC,gBAAgB,EAChBC,IAAI,EACJC,UAAU,EAKVC,iBAAiB,QAEZ,cAAc;AACrB,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,OAAO,QAAQ,WAAW;AAGnC,SAASC,cAAc,EAAEC,cAAc,EAAEC,iBAAiB,IAAIC,gBAAgB,QAAQ,wBAAwB;AAC9G,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,MAAM,QAAQ,iBAAiB;;AAExC;AACA;AACA;AACA,OAAO,MAAMC,aAA2C,GAAGA,CAAC;EAC1DC,UAAU;EACVC,UAAU;EACVC,OAAO;EACPC,UAAU,GAAG,QAAQ;EACrBC,WAAW;EACXC,WAAW,GAAG,GAAG;EACjBC,YAAY,GAAG,EAAE;EACjBC,SAAS,GAAG,IAAI;EAChBC,OAAO,GAAG,IAAI;EACdC,UAAU,GAAG,SAAS;EACtBC,WAAW;EACXC,UAAU;EACVC,QAAQ;EACRC,KAAK;EACLC,KAAK,GAAG,KAAK;EACbC,KAAK,GAAG,KAAK;EACbC,iBAAiB;EACjBC,QAAQ,GAAG;AACb,CAAC,KAAK;EACJ,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGlC,QAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACmC,WAAW,EAAEC,cAAc,CAAC,GAAGpC,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACqC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGtC,QAAQ,CAAM,IAAI,CAAC;EACrE,MAAM,CAACuC,SAAS,EAAEC,YAAY,CAAC,GAAGxC,QAAQ,CAAC,KAAK,CAAC;EAEjD,MAAMyC,UAAU,GAAGb,KAAK,KAAK,OAAO,IAAK,CAACA,KAAK,IAAI,CAACN,SAAU;EAE9D,MAAMoB,WAAW,GAAG,MAAAA,CAAA,KAAY;IAC9B,IAAI,CAACnB,OAAO,IAAIgB,SAAS,EAAE;IAE3BC,YAAY,CAAC,IAAI,CAAC;IAElB,IAAI;MACF,IAAIb,QAAQ,EAAE;QACZ,MAAMgB,aAAa,GAAG,MAAMhB,QAAQ,CAAC,CAAC;QACtC,IAAI,CAACgB,aAAa,EAAE;UAClBlB,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG,4BAA4B,CAAC;UAC3Ce,YAAY,CAAC,KAAK,CAAC;UACnB;QACF;MACF;;MAEA;MACA,MAAMI,cAAc,GAAG,MAAMpC,cAAc,CAAC,CAAC;MAE7C,IAAIoC,cAAc,EAAE;QAClB;QACA,MAAMC,WAAW,GAAG,MAAMpC,cAAc,CAAC,CAAC;QAE1C,IAAI,CAACoC,WAAW,IAAI,CAACA,WAAW,CAACC,QAAQ,EAAE;UACzC;UACA,MAAMnC,gBAAgB,CAAC,CAAC;UACxBuB,iBAAiB,CAAC,IAAI,CAAC;UACvBM,YAAY,CAAC,KAAK,CAAC;UACnB;QACF;QAEA,IAAI;UACF;UACA,MAAMO,OAAO,GAAG,MAAMnC,UAAU,CAACoC,mBAAmB,CAACH,WAAW,CAACC,QAAQ,CAAC;UAE1E,IAAI,CAACC,OAAO,EAAE;YACZ;YACA,MAAMpC,gBAAgB,CAAC,CAAC;YACxBuB,iBAAiB,CAAC,IAAI,CAAC;YACvBM,YAAY,CAAC,KAAK,CAAC;YACnB;UACF;;UAEA;UACAF,oBAAoB,CAACO,WAAW,CAAC;UACjCT,cAAc,CAAC,IAAI,CAAC;QACtB,CAAC,CAAC,OAAOa,eAAe,EAAE;UACxBC,OAAO,CAACC,IAAI,CAAC,6CAA6C,EAAEF,eAAe,CAAC;UAC5Ef,iBAAiB,CAAC,IAAI,CAAC;QACzB;MACF,CAAC,MAAM;QACL;QACAA,iBAAiB,CAAC,IAAI,CAAC;MACzB;IACF,CAAC,CAAC,OAAOkB,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAAC;MACvD;MACAlB,iBAAiB,CAAC,IAAI,CAAC;MACvBT,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG2B,KAAK,YAAYC,KAAK,GAAGD,KAAK,CAACE,OAAO,GAAG,eAAe,CAAC;IACzE,CAAC,SAAS;MACRd,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC;EAED,MAAMe,wBAAwB,GAAGtD,WAAW,CAAC,CAACuD,MAAc,EAAEC,KAAa,EAAEC,IAAS,KAAK;IACzFxB,iBAAiB,CAAC,KAAK,CAAC;IACxB,IAAIR,UAAU,EAAE;MACdA,UAAU,CAAC8B,MAAM,EAAEC,KAAK,EAAEC,IAAI,CAAC;IACjC;EACF,CAAC,EAAE,CAAChC,UAAU,CAAC,CAAC;EAEhB,MAAMiC,qBAAqB,GAAG1D,WAAW,CAAC,CAACuD,MAAc,EAAEC,KAAa,EAAEC,IAAS,KAAK;IACtFtB,cAAc,CAAC,KAAK,CAAC;IACrB,IAAIV,UAAU,EAAE;MACdA,UAAU,CAAC8B,MAAM,EAAEC,KAAK,EAAEC,IAAI,CAAC;IACjC;EACF,CAAC,EAAE,CAAChC,UAAU,CAAC,CAAC;;EAEhB;EACA,MAAMkC,WAAwB,GAAG,CAC/BC,MAAM,CAACC,MAAM,EACb5C,UAAU,KAAK,MAAM,IAAI2C,MAAM,CAACE,UAAU,EAC1CzC,SAAS,IAAIuC,MAAM,CAACG,aAAa,EACjC;IACEC,KAAK,EAAE7C,WAAW;IAClB8C,MAAM,EAAE7C;EACV,CAAC,EACDO,KAAK,GAAG;IAAEuC,eAAe,EAAEvC;EAAM,CAAC,GAAG,IAAI,EACzCa,UAAU,GAAGoB,MAAM,CAACO,UAAU,GAAGP,MAAM,CAACQ,WAAW,EACnDxC,KAAK,IAAIgC,MAAM,CAACS,WAAW,EAC3B,CAAC/C,OAAO,IAAIsC,MAAM,CAACU,cAAc,CAClC,CAACC,MAAM,CAACC,OAAO,CAAgB;;EAEhC;EACA,MAAMC,SAAsB,GAAG,CAC7Bb,MAAM,CAACc,UAAU,EACjBlC,UAAU,GAAGoB,MAAM,CAACe,SAAS,GAAGf,MAAM,CAACgB,QAAQ,EAC/C,CAACtD,OAAO,IAAIsC,MAAM,CAACiB,YAAY,CAChC,CAACN,MAAM,CAACC,OAAO,CAAgB;;EAEhC;EACA,oBACE1E,KAAA,CAAAgF,aAAA,CAAAhF,KAAA,CAAAiF,QAAA,qBACEjF,KAAA,CAAAgF,aAAA,CAAC7E,gBAAgB;IACf+E,KAAK,EAAErB,WAAY;IACnBsB,OAAO,EAAExC,WAAY;IACrByC,QAAQ,EAAE,CAAC5D,OAAO,IAAIgB,SAAU;IAChC6C,kBAAkB,EAAE;EAAuB,GAE1C7C,SAAS,gBACRxC,KAAA,CAAAgF,aAAA,CAAC1E,iBAAiB;IAChBgF,IAAI,EAAC,OAAO;IACZzD,KAAK,EAAEa,UAAU,GAAG,MAAM,GAAG;EAAO,CACrC,CAAC,gBAEF1C,KAAA,CAAAgF,aAAA,CAAAhF,KAAA,CAAAiF,QAAA,qBAEEjF,KAAA,CAAAgF,aAAA,CAAC5E,IAAI;IAAC8E,KAAK,EAAEP;EAAU,GAAC,sBAA0B,CAClD,CAEY,CAAC,EAGlBzC,cAAc,iBACblC,KAAA,CAAAgF,aAAA,CAACzE,mBAAmB;IAClBgF,OAAO,EAAErD,cAAe;IACxBsD,OAAO,EAAEA,CAAA,KAAM;MACbrD,iBAAiB,CAAC,KAAK,CAAC;MACxBT,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG,wBAAwB,CAAC;IACzC,CAAE;IACFR,OAAO,EAAEA,OAAQ;IACjBE,WAAW,EAAEA,WAAY;IACzBJ,UAAU,EAAEA,UAAW;IACvByE,UAAU,EAAEjC,wBAAyB;IACrCzB,KAAK,EAAEA,KAAM;IACb2D,IAAI,EAAEzD;EAAS,CAChB,CACF,EAGAG,WAAW,IAAIE,iBAAiB,iBAC/BtC,KAAA,CAAAgF,aAAA,CAAClE,MAAM,qBACLd,KAAA,CAAAgF,aAAA,CAACxE,OAAO;IACNmD,IAAI,EAAEvC,WAAW,IAAI,CAAC,CAAE;IACxB2B,QAAQ,EAAET,iBAAiB,CAACS,QAAS;IACrC4C,QAAQ,EAAErD,iBAAiB,CAACsD,OAAO,IAAI,EAAG;IAC1CjE,UAAU,EAAEiC,qBAAsB;IAClCiC,OAAO,EAAE3E;EAAQ,CAClB,CACK,CAEV,CAAC;AAEP,CAAC;AAED,MAAM4C,MAAM,GAAGzD,UAAU,CAACyF,MAAM,CAAC;EAC/B/B,MAAM,EAAE;IACNgC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE;EAChB,CAAC;EACDpC,UAAU,EAAE;IACVoC,YAAY,EAAE;EAChB,CAAC;EACDnC,aAAa,EAAE;IACbG,eAAe,EAAE,aAAa;IAC9BiC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE;EACf,CAAC;EACD/B,WAAW,EAAE;IACXgC,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAQ,CAAC;EACjC,CAAC;EACDnC,UAAU,EAAE;IACVD,eAAe,EAAE,MAAM;IACvBkC,WAAW,EAAE;EACf,CAAC;EACDhC,WAAW,EAAE;IACXF,eAAe,EAAE,MAAM;IACvBkC,WAAW,EAAE;EACf,CAAC;EACD9B,cAAc,EAAE;IACdiC,OAAO,EAAE;EACX,CAAC;EACD7B,UAAU,EAAE;IACV8B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE;EACb,CAAC;EACD/B,SAAS,EAAE;IACThD,KAAK,EAAE;EACT,CAAC;EACDiD,QAAQ,EAAE;IACRjD,KAAK,EAAE;EACT,CAAC;EACDkD,YAAY,EAAE;IACZ0B,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -15,6 +15,9 @@ export { OnairosButton } from './components/OnairosButton';
15
15
  export { Overlay as OnairosOverlay } from './components/Overlay';
16
16
  export { UniversalOnboarding } from './components/UniversalOnboarding';
17
17
 
18
+ // Export Portal components
19
+ export { Portal, PortalHost } from './utils/Portal';
20
+
18
21
  // Screen Components
19
22
  export { ConnectorScreen } from './components/screens/ConnectorScreen';
20
23
  export { PinCreationScreen } from './components/screens/PinCreationScreen';
@@ -52,12 +55,14 @@ export * from './utils/encryption';
52
55
 
53
56
  // Define component types for default export using React.ComponentType
54
57
 
58
+ import { PortalHost } from './utils/Portal';
55
59
  // Define the public components for default export
56
60
  const components = {
57
61
  Onairos: Onairos,
58
62
  OnairosButton: OnairosButton,
59
63
  OnairosOverlay: Overlay,
60
- UniversalOnboarding: UniversalOnboarding
64
+ UniversalOnboarding: UniversalOnboarding,
65
+ PortalHost: PortalHost
61
66
  };
62
67
 
63
68
  // Export the components as the default export
@@ -1 +1 @@
1
- {"version":3,"names":["Onairos","OnairosButton","Overlay","UniversalOnboarding","OnairosOverlay","ConnectorScreen","PinCreationScreen","LoadingScreen","OAuthWebView","PlatformConnector","OnboardingHeader","PinInput","useCredentials","useConnections","storeCredentials","getCredentials","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","verifyCredentials","validateCredentials","createAccount","authenticate","refreshToken","getPlatformData","getUserProfile","updatePlatformConnections","rsaEncrypt","sha256","base64ToBuffer","logDebug","logError","isDebugMode","connectPlatform","disconnectPlatform","initializeOAuthService","cleanupOAuthService","storePlatformConnection","COLORS","PLATFORMS","API_ENDPOINTS","STORAGE_KEYS","PIN_REQUIREMENTS","DEEP_LINK_CONFIG","onairosApi","OAuthService","components"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASH,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,IAAIE,cAAc,QAAQ,sBAAsB;AAChE,SAASD,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASE,eAAe,QAAQ,sCAAsC;AACtE,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,aAAa,QAAQ,oCAAoC;;AAElE;AACA,SAASC,YAAY,QAAQ,sCAAsC;AACnE,SAASC,iBAAiB,QAAQ,2CAA2C;AAC7E,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,QAAQ,QAAQ,kCAAkC;;AAE3D;AACA,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,QACZ,uBAAuB;AAE9B,SACEC,mBAAmB,EACnBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,yBAAyB,QACpB,oBAAoB;AAE3B,SACEC,UAAU,EACVC,MAAM,EACNC,cAAc,QACT,gBAAgB;AAEvB,SACEC,QAAQ,EACRC,QAAQ,EACRC,WAAW,QACN,qBAAqB;;AAE5B;AACA,SACEC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBC,mBAAmB,EACnBC,uBAAuB,QAClB,yBAAyB;;AAEhC;;AAsBA;AACA,SAASC,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,gBAAgB,QAAQ,aAAa;;AAEhH;AACA,SAASC,UAAU,QAAQ,OAAO;AAClC,SAASC,YAAY,QAAQ,yBAAyB;AACtD,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;;AAElC;;AAOA;AACA,MAAMC,UAAU,GAAG;EACjB/C,OAAO,EAAEA,OAA2B;EACpCC,aAAa,EAAEA,aAAwD;EACvEG,cAAc,EAAEF,OAA2B;EAC3CC,mBAAmB,EAAEA;AACvB,CAAC;;AAED;AACA,eAAe4C,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["Onairos","OnairosButton","Overlay","UniversalOnboarding","OnairosOverlay","Portal","PortalHost","ConnectorScreen","PinCreationScreen","LoadingScreen","OAuthWebView","PlatformConnector","OnboardingHeader","PinInput","useCredentials","useConnections","storeCredentials","getCredentials","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","verifyCredentials","validateCredentials","createAccount","authenticate","refreshToken","getPlatformData","getUserProfile","updatePlatformConnections","rsaEncrypt","sha256","base64ToBuffer","logDebug","logError","isDebugMode","connectPlatform","disconnectPlatform","initializeOAuthService","cleanupOAuthService","storePlatformConnection","COLORS","PLATFORMS","API_ENDPOINTS","STORAGE_KEYS","PIN_REQUIREMENTS","DEEP_LINK_CONFIG","onairosApi","OAuthService","components"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASH,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,IAAIE,cAAc,QAAQ,sBAAsB;AAChE,SAASD,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASE,MAAM,EAAEC,UAAU,QAAQ,gBAAgB;;AAEnD;AACA,SAASC,eAAe,QAAQ,sCAAsC;AACtE,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,aAAa,QAAQ,oCAAoC;;AAElE;AACA,SAASC,YAAY,QAAQ,sCAAsC;AACnE,SAASC,iBAAiB,QAAQ,2CAA2C;AAC7E,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,QAAQ,QAAQ,kCAAkC;;AAE3D;AACA,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,QACZ,uBAAuB;AAE9B,SACEC,mBAAmB,EACnBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,yBAAyB,QACpB,oBAAoB;AAE3B,SACEC,UAAU,EACVC,MAAM,EACNC,cAAc,QACT,gBAAgB;AAEvB,SACEC,QAAQ,EACRC,QAAQ,EACRC,WAAW,QACN,qBAAqB;;AAE5B;AACA,SACEC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBC,mBAAmB,EACnBC,uBAAuB,QAClB,yBAAyB;;AAEhC;;AAsBA;AACA,SAASC,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,gBAAgB,QAAQ,aAAa;;AAEhH;AACA,SAASC,UAAU,QAAQ,OAAO;AAClC,SAASC,YAAY,QAAQ,yBAAyB;AACtD,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;;AAElC;;AAGA,SAAS1C,UAAU,QAAQ,gBAAgB;AAK3C;AACA,MAAM2C,UAAU,GAAG;EACjBjD,OAAO,EAAEA,OAA2B;EACpCC,aAAa,EAAEA,aAAwD;EACvEG,cAAc,EAAEF,OAA2B;EAC3CC,mBAAmB,EAAEA,mBAAoE;EACzFG,UAAU,EAAEA;AACd,CAAC;;AAED;AACA,eAAe2C,UAAU","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { View } from 'react-native';
3
+
4
+ // Store for portal instances
5
+ const portalRefs = {};
6
+ let portalId = 0;
7
+
8
+ // Context to pass portal host state
9
+ const PortalContext = /*#__PURE__*/React.createContext({
10
+ mount: () => 0,
11
+ update: () => {},
12
+ unmount: () => {}
13
+ });
14
+
15
+ /**
16
+ * Portal Host component - place this at the root of your app
17
+ */
18
+ export const PortalHost = ({
19
+ children
20
+ }) => {
21
+ const [portals, setPortals] = useState({});
22
+ const mount = children => {
23
+ const key = ++portalId;
24
+ setPortals(state => ({
25
+ ...state,
26
+ [key]: children
27
+ }));
28
+ return key;
29
+ };
30
+ const update = (key, children) => {
31
+ setPortals(state => ({
32
+ ...state,
33
+ [key]: children
34
+ }));
35
+ };
36
+ const unmount = key => {
37
+ setPortals(state => {
38
+ const newState = {
39
+ ...state
40
+ };
41
+ delete newState[key];
42
+ return newState;
43
+ });
44
+ };
45
+ return /*#__PURE__*/React.createElement(PortalContext.Provider, {
46
+ value: {
47
+ mount,
48
+ update,
49
+ unmount
50
+ }
51
+ }, children, Object.keys(portals).map(key => /*#__PURE__*/React.createElement(View, {
52
+ key: key,
53
+ style: {
54
+ position: 'absolute',
55
+ top: 0,
56
+ left: 0,
57
+ right: 0,
58
+ bottom: 0,
59
+ zIndex: 9999
60
+ }
61
+ }, portals[Number(key)])));
62
+ };
63
+
64
+ /**
65
+ * Portal component - renders children into the PortalHost
66
+ */
67
+ export const Portal = ({
68
+ children
69
+ }) => {
70
+ const {
71
+ mount,
72
+ update,
73
+ unmount
74
+ } = React.useContext(PortalContext);
75
+ const [portalId, setPortalId] = useState(null);
76
+ useEffect(() => {
77
+ const id = mount(children);
78
+ setPortalId(id);
79
+ return () => {
80
+ if (portalId) unmount(portalId);
81
+ };
82
+ }, []);
83
+ useEffect(() => {
84
+ if (portalId !== null) {
85
+ update(portalId, children);
86
+ }
87
+ }, [children, portalId]);
88
+ return null;
89
+ };
90
+ //# sourceMappingURL=Portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","View","portalRefs","portalId","PortalContext","createContext","mount","update","unmount","PortalHost","children","portals","setPortals","key","state","newState","createElement","Provider","value","Object","keys","map","style","position","top","left","right","bottom","zIndex","Number","Portal","useContext","setPortalId","id"],"sourceRoot":"..\\..\\..\\src","sources":["utils/Portal.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OnairosButton.d.ts","sourceRoot":"","sources":["../../../src/components/OnairosButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAerD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgLtD,CAAC"}
1
+ {"version":3,"file":"OnairosButton.d.ts","sourceRoot":"","sources":["../../../src/components/OnairosButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAerD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAKnD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAmLtD,CAAC"}
@@ -6,6 +6,7 @@ export { Onairos } from './components/Onairos';
6
6
  export { OnairosButton } from './components/OnairosButton';
7
7
  export { Overlay as OnairosOverlay } from './components/Overlay';
8
8
  export { UniversalOnboarding } from './components/UniversalOnboarding';
9
+ export { Portal, PortalHost } from './utils/Portal';
9
10
  export { ConnectorScreen } from './components/screens/ConnectorScreen';
10
11
  export { PinCreationScreen } from './components/screens/PinCreationScreen';
11
12
  export { LoadingScreen } from './components/screens/LoadingScreen';
@@ -40,6 +41,9 @@ declare const components: {
40
41
  OnairosButton: React.ComponentType<OnairosButtonProps>;
41
42
  OnairosOverlay: OverlayComponent;
42
43
  UniversalOnboarding: React.ComponentType<UniversalOnboardingProps>;
44
+ PortalHost: React.FC<{
45
+ children?: React.ReactNode;
46
+ }>;
43
47
  };
44
48
  export default components;
45
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,UAAU,EACV,MAAM,EACN,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAE5E,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;CAAG;AACnD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;CAAG;AAGnD,QAAA,MAAM,UAAU;;;;;CAKf,CAAC;AAGF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,UAAU,EACV,MAAM,EACN,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAG5E,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;CAAG;AACnD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;CAAG;AAGnD,QAAA,MAAM,UAAU;;;;;;;;CAMf,CAAC;AAGF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ /**
3
+ * Portal Host component - place this at the root of your app
4
+ */
5
+ export declare const PortalHost: React.FC<{
6
+ children?: React.ReactNode;
7
+ }>;
8
+ /**
9
+ * Portal component - renders children into the PortalHost
10
+ */
11
+ export declare const Portal: React.FC<{
12
+ children: React.ReactNode;
13
+ }>;
14
+ //# sourceMappingURL=Portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../../../src/utils/Portal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,CAqC7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,CAmBxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onairos/react-native",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "description": "Onairos React Native SDK for social media authentication and AI model training",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -16,6 +16,7 @@ import { COLORS } from '../constants';
16
16
  import type { OnairosButtonProps } from '../types';
17
17
  import { hasCredentials, getCredentials, deleteCredentials as clearCredentials } from '../utils/secureStorage';
18
18
  import { onairosApi } from '../api';
19
+ import { Portal } from '../utils/Portal';
19
20
 
20
21
  /**
21
22
  * OnairosButton Component - A sign-in button similar to Google/Apple sign-in
@@ -185,14 +186,17 @@ export const OnairosButton: React.FC<OnairosButtonProps> = ({
185
186
  />
186
187
  )}
187
188
 
189
+ {/* Overlay rendered through Portal to ensure it appears at root level */}
188
190
  {showOverlay && storedCredentials && (
189
- <Overlay
190
- data={requestData || {}}
191
- username={storedCredentials.username}
192
- modelKey={storedCredentials.userPin || ''}
193
- onResolved={handleOverlayResolved}
194
- appName={AppName}
195
- />
191
+ <Portal>
192
+ <Overlay
193
+ data={requestData || {}}
194
+ username={storedCredentials.username}
195
+ modelKey={storedCredentials.userPin || ''}
196
+ onResolved={handleOverlayResolved}
197
+ appName={AppName}
198
+ />
199
+ </Portal>
196
200
  )}
197
201
  </>
198
202
  );
package/src/index.ts CHANGED
@@ -15,6 +15,9 @@ export { OnairosButton } from './components/OnairosButton';
15
15
  export { Overlay as OnairosOverlay } from './components/Overlay';
16
16
  export { UniversalOnboarding } from './components/UniversalOnboarding';
17
17
 
18
+ // Export Portal components
19
+ export { Portal, PortalHost } from './utils/Portal';
20
+
18
21
  // Screen Components
19
22
  export { ConnectorScreen } from './components/screens/ConnectorScreen';
20
23
  export { PinCreationScreen } from './components/screens/PinCreationScreen';
@@ -106,6 +109,7 @@ export * from './utils/encryption';
106
109
  // Define component types for default export using React.ComponentType
107
110
  import * as React from 'react';
108
111
  import type { OnairosButtonProps, UniversalOnboardingProps } from './types';
112
+ import { PortalHost } from './utils/Portal';
109
113
 
110
114
  interface OverlayComponent extends React.FC<any> {}
111
115
  interface OnairosComponent extends React.FC<any> {}
@@ -116,6 +120,7 @@ const components = {
116
120
  OnairosButton: OnairosButton as React.ComponentType<OnairosButtonProps>,
117
121
  OnairosOverlay: Overlay as OverlayComponent,
118
122
  UniversalOnboarding: UniversalOnboarding as React.ComponentType<UniversalOnboardingProps>,
123
+ PortalHost: PortalHost,
119
124
  };
120
125
 
121
126
  // Export the components as the default export
@@ -0,0 +1,83 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { View } from 'react-native';
3
+
4
+ // Store for portal instances
5
+ const portalRefs: {[key: string]: React.ReactNode} = {};
6
+ let portalId = 0;
7
+
8
+ // Context to pass portal host state
9
+ const PortalContext = React.createContext<{
10
+ mount: (children: React.ReactNode) => number;
11
+ update: (key: number, children: React.ReactNode) => void;
12
+ unmount: (key: number) => void;
13
+ }>({
14
+ mount: () => 0,
15
+ update: () => {},
16
+ unmount: () => {},
17
+ });
18
+
19
+ /**
20
+ * Portal Host component - place this at the root of your app
21
+ */
22
+ export const PortalHost: React.FC<{children?: React.ReactNode}> = ({ children }) => {
23
+ const [portals, setPortals] = useState<{[key: number]: React.ReactNode}>({});
24
+
25
+ const mount = (children: React.ReactNode) => {
26
+ const key = ++portalId;
27
+ setPortals(state => ({
28
+ ...state,
29
+ [key]: children,
30
+ }));
31
+ return key;
32
+ };
33
+
34
+ const update = (key: number, children: React.ReactNode) => {
35
+ setPortals(state => ({
36
+ ...state,
37
+ [key]: children,
38
+ }));
39
+ };
40
+
41
+ const unmount = (key: number) => {
42
+ setPortals(state => {
43
+ const newState = { ...state };
44
+ delete newState[key];
45
+ return newState;
46
+ });
47
+ };
48
+
49
+ return (
50
+ <PortalContext.Provider value={{ mount, update, unmount }}>
51
+ {children}
52
+ {Object.keys(portals).map(key => (
53
+ <View key={key} style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, zIndex: 9999 }}>
54
+ {portals[Number(key)]}
55
+ </View>
56
+ ))}
57
+ </PortalContext.Provider>
58
+ );
59
+ };
60
+
61
+ /**
62
+ * Portal component - renders children into the PortalHost
63
+ */
64
+ export const Portal: React.FC<{children: React.ReactNode}> = ({ children }) => {
65
+ const { mount, update, unmount } = React.useContext(PortalContext);
66
+ const [portalId, setPortalId] = useState<number | null>(null);
67
+
68
+ useEffect(() => {
69
+ const id = mount(children);
70
+ setPortalId(id);
71
+ return () => {
72
+ if (portalId) unmount(portalId);
73
+ };
74
+ }, []);
75
+
76
+ useEffect(() => {
77
+ if (portalId !== null) {
78
+ update(portalId, children);
79
+ }
80
+ }, [children, portalId]);
81
+
82
+ return null;
83
+ };