@oxyhq/services 22.0.0 → 22.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/lib/commonjs/index.js +12 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/OxyAccountDialog.js +27 -529
  4. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +1 -1
  5. package/lib/commonjs/ui/components/OxyAuthChooser.js +902 -0
  6. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -0
  7. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +158 -0
  8. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -0
  9. package/lib/commonjs/ui/components/passkeyHubPopup.js +33 -0
  10. package/lib/commonjs/ui/components/passkeyHubPopup.js.map +1 -0
  11. package/lib/commonjs/ui/context/OxyContext.js +35 -4
  12. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  13. package/lib/commonjs/ui/context/useOxyAccountGraph.js +6 -2
  14. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  15. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +2 -1
  16. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +1 -1
  17. package/lib/commonjs/ui/utils/commonsStoreLinks.js +42 -0
  18. package/lib/commonjs/ui/utils/commonsStoreLinks.js.map +1 -0
  19. package/lib/module/index.js +5 -0
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/ui/components/OxyAccountDialog.js +29 -533
  22. package/lib/module/ui/components/OxyAccountDialog.js.map +1 -1
  23. package/lib/module/ui/components/OxyAuthChooser.js +899 -0
  24. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -0
  25. package/lib/module/ui/components/oxyAuthChooserStyles.js +155 -0
  26. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -0
  27. package/lib/module/ui/components/passkeyHubPopup.js +29 -0
  28. package/lib/module/ui/components/passkeyHubPopup.js.map +1 -0
  29. package/lib/module/ui/context/OxyContext.js +35 -4
  30. package/lib/module/ui/context/OxyContext.js.map +1 -1
  31. package/lib/module/ui/context/useOxyAccountGraph.js +6 -2
  32. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  33. package/lib/module/ui/hooks/useSwitchableAccounts.js +2 -1
  34. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +1 -1
  35. package/lib/module/ui/utils/commonsStoreLinks.js +37 -0
  36. package/lib/module/ui/utils/commonsStoreLinks.js.map +1 -0
  37. package/lib/typescript/commonjs/index.d.ts +2 -0
  38. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts +10 -20
  40. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +60 -0
  42. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -0
  43. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +148 -0
  44. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -0
  45. package/lib/typescript/commonjs/ui/components/passkeyHubPopup.d.ts +23 -0
  46. package/lib/typescript/commonjs/ui/components/passkeyHubPopup.d.ts.map +1 -0
  47. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +1 -0
  49. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  51. package/lib/typescript/commonjs/ui/utils/commonsStoreLinks.d.ts +24 -0
  52. package/lib/typescript/commonjs/ui/utils/commonsStoreLinks.d.ts.map +1 -0
  53. package/lib/typescript/module/index.d.ts +2 -0
  54. package/lib/typescript/module/index.d.ts.map +1 -1
  55. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts +10 -20
  56. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +1 -1
  57. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +60 -0
  58. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -0
  59. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +148 -0
  60. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -0
  61. package/lib/typescript/module/ui/components/passkeyHubPopup.d.ts +23 -0
  62. package/lib/typescript/module/ui/components/passkeyHubPopup.d.ts.map +1 -0
  63. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  64. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +1 -0
  65. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  66. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  67. package/lib/typescript/module/ui/utils/commonsStoreLinks.d.ts +24 -0
  68. package/lib/typescript/module/ui/utils/commonsStoreLinks.d.ts.map +1 -0
  69. package/package.json +11 -11
  70. package/src/index.ts +7 -0
  71. package/src/ui/components/OxyAccountDialog.tsx +33 -557
  72. package/src/ui/components/OxyAuthChooser.tsx +907 -0
  73. package/src/ui/components/oxyAuthChooserStyles.ts +152 -0
  74. package/src/ui/components/passkeyHubPopup.ts +28 -0
  75. package/src/ui/context/OxyContext.tsx +37 -3
  76. package/src/ui/context/useOxyAccountGraph.ts +4 -2
  77. package/src/ui/hooks/useSwitchableAccounts.ts +1 -0
  78. package/src/ui/utils/commonsStoreLinks.ts +38 -0
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Shared styles for `OxyAuthChooser`'s views. Extracted from `OxyAccountDialog`
3
+ * so both the Dialog-wrapped host and any bare host (e.g. a future
4
+ * auth.oxy.so hub page) render identically without duplicating a StyleSheet.
5
+ */
6
+ export declare const authChooserStyles: {
7
+ rows: {
8
+ width: "100%";
9
+ gap: number;
10
+ };
11
+ accountRow: {
12
+ flexDirection: "row";
13
+ alignItems: "center";
14
+ gap: number;
15
+ borderWidth: number;
16
+ borderRadius: number;
17
+ paddingVertical: number;
18
+ paddingHorizontal: number;
19
+ };
20
+ rowDisabled: {
21
+ opacity: number;
22
+ };
23
+ avatarRing: {
24
+ borderRadius: number;
25
+ borderWidth: number;
26
+ padding: number;
27
+ };
28
+ rowMeta: {
29
+ flex: number;
30
+ minWidth: number;
31
+ };
32
+ rowName: {
33
+ fontSize: number;
34
+ fontWeight: "600";
35
+ };
36
+ rowHandle: {
37
+ fontSize: number;
38
+ marginTop: number;
39
+ };
40
+ addRow: {
41
+ flexDirection: "row";
42
+ alignItems: "center";
43
+ gap: number;
44
+ borderWidth: number;
45
+ borderStyle: "dashed";
46
+ borderRadius: number;
47
+ paddingVertical: number;
48
+ paddingHorizontal: number;
49
+ marginTop: number;
50
+ };
51
+ addBadge: {
52
+ width: number;
53
+ height: number;
54
+ borderRadius: number;
55
+ borderWidth: number;
56
+ alignItems: "center";
57
+ justifyContent: "center";
58
+ };
59
+ footerLinks: {
60
+ alignItems: "center";
61
+ marginTop: number;
62
+ };
63
+ footerLink: {
64
+ alignSelf: "center";
65
+ paddingVertical: number;
66
+ marginTop: number;
67
+ };
68
+ linkText: {
69
+ fontSize: number;
70
+ fontWeight: "600";
71
+ };
72
+ signInBlock: {
73
+ width: "100%";
74
+ };
75
+ primaryButton: {
76
+ width: "100%";
77
+ borderRadius: number;
78
+ marginTop: number;
79
+ };
80
+ secondaryButton: {
81
+ width: "100%";
82
+ borderRadius: number;
83
+ marginTop: number;
84
+ };
85
+ usernameInput: {
86
+ width: "100%";
87
+ borderWidth: number;
88
+ borderRadius: number;
89
+ paddingVertical: number;
90
+ paddingHorizontal: number;
91
+ fontSize: number;
92
+ marginTop: number;
93
+ };
94
+ dividerRow: {
95
+ flexDirection: "row";
96
+ alignItems: "center";
97
+ width: "100%";
98
+ marginVertical: number;
99
+ };
100
+ dividerLine: {
101
+ flex: number;
102
+ height: number;
103
+ };
104
+ dividerText: {
105
+ marginHorizontal: number;
106
+ fontSize: number;
107
+ };
108
+ centeredBlock: {
109
+ alignItems: "center";
110
+ justifyContent: "center";
111
+ gap: number;
112
+ paddingVertical: number;
113
+ };
114
+ mutedText: {
115
+ fontSize: number;
116
+ textAlign: "center";
117
+ };
118
+ qrHeadline: {
119
+ fontSize: number;
120
+ fontWeight: "700";
121
+ textAlign: "center";
122
+ };
123
+ errorText: {
124
+ fontSize: number;
125
+ textAlign: "center";
126
+ };
127
+ errorBanner: {
128
+ flexDirection: "row";
129
+ alignItems: "center";
130
+ gap: number;
131
+ width: "100%";
132
+ borderRadius: number;
133
+ paddingVertical: number;
134
+ paddingHorizontal: number;
135
+ marginBottom: number;
136
+ };
137
+ errorBannerText: {
138
+ flex: number;
139
+ fontSize: number;
140
+ lineHeight: number;
141
+ };
142
+ qrPlate: {
143
+ padding: number;
144
+ borderRadius: number;
145
+ backgroundColor: string;
146
+ };
147
+ };
148
+ //# sourceMappingURL=oxyAuthChooserStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxyAuthChooserStyles.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/oxyAuthChooserStyles.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6I5B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Popup opener for the cross-origin passkey hub (b2).
3
+ *
4
+ * On a non-Oxy web origin (e.g. mention.earth) a WebAuthn ceremony can't run
5
+ * locally — the credential's RP ID is bound to `oxy.so`. Instead,
6
+ * `AccountDialogController.startPasskeyHubSignIn` opens a popup at the
7
+ * auth.oxy.so passkey hub, where the SAME ceremony IS a first-party operation.
8
+ *
9
+ * Kept in its own module (mirroring `oauthNavigation.ts`'s
10
+ * `redirectToAuthorize`) so `window.open` sits behind a plain function the
11
+ * controller wiring in `OxyContext` can inject without touching `window`
12
+ * itself, and so a test can substitute a fake opener.
13
+ */
14
+ import type { PopupWindowHandle } from '@oxyhq/core';
15
+ /**
16
+ * Open a new, EMPTY popup window. Must be called SYNCHRONOUSLY from within a
17
+ * user-gesture handler (before any `await`) — opening it after an async call
18
+ * loses the gesture attribution and the browser silently blocks it. Returns
19
+ * `null` when blocked, or when there is no DOM `window` (native/SSR — the
20
+ * hub-popup flow does not apply there).
21
+ */
22
+ export declare function openPasskeyHubPopup(): PopupWindowHandle | null;
23
+ //# sourceMappingURL=passkeyHubPopup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkeyHubPopup.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/passkeyHubPopup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,GAAG,IAAI,CAI9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0D/B,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EAExB,MAAM,sBAAmB,CAAC;AAY3B,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAmB,CAAC;AAIlF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAg5BzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAmE9C,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC"}
1
+ {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2D/B,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EAExB,MAAM,sBAAmB,CAAC;AAY3B,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAmB,CAAC;AAIlF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAi7BzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AAmE9C,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC"}
@@ -11,6 +11,7 @@ interface UseOxyAccountGraphParams {
11
11
  syncFromClient: () => Promise<void>;
12
12
  commitSession: (input: CommitInput, options: {
13
13
  activate: boolean;
14
+ hubSync?: boolean;
14
15
  }) => Promise<void>;
15
16
  queryClient: QueryClient;
16
17
  accountDialogControllerRef: RefObject<AccountDialogController | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"useOxyAccountGraph.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/useOxyAccountGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAmB,CAAC;AAErD,UAAU,wBAAwB;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,WAAW,EAAE,WAAW,CAAC;IACzB,0BAA0B,EAAE,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACtE,oBAAoB,EAAE,SAAS,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACtD;AAED,wBAAgB,kBAAkB,CAAC,EACjC,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,GACrB,EAAE,wBAAwB;;2BAGqB,OAAO,CAAC,IAAI,CAAC;iCAiCvC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;0BA+B3B,kBAAkB,KAAG,OAAO,CAAC,WAAW,CAAC;EAczD"}
1
+ {"version":3,"file":"useOxyAccountGraph.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/useOxyAccountGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAmB,CAAC;AAErD,UAAU,wBAAwB;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,WAAW,EAAE,WAAW,CAAC;IACzB,0BAA0B,EAAE,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACtE,oBAAoB,EAAE,SAAS,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACtD;AAED,wBAAgB,kBAAkB,CAAC,EACjC,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,GACrB,EAAE,wBAAwB;;2BAGqB,OAAO,CAAC,IAAI,CAAC;iCAiCvC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;0BAiC3B,kBAAkB,KAAG,OAAO,CAAC,WAAW,CAAC;EAczD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSwitchableAccounts.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSwitchableAccounts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AAG5E,MAAM,WAAW,2BAA2B;IACxC,0EAA0E;IAC1E,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,2BAA2B,CAuBnE"}
1
+ {"version":3,"file":"useSwitchableAccounts.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSwitchableAccounts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AAG5E,MAAM,WAAW,2BAA2B;IACxC,0EAA0E;IAC1E,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,2BAA2B,CAuBnE"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Where to send a user who doesn't have Commons installed yet.
3
+ *
4
+ * Commons is not published to either app store as of this writing (no submit
5
+ * profile in its `eas.json`, no store listing) — so these are ALWAYS
6
+ * env-overridable and NEVER hardcoded, and the landing-page fallback exists
7
+ * precisely so a "Get Commons" affordance is never a dead link in the
8
+ * meantime. Once Commons ships to TestFlight/Play, set the two store env vars
9
+ * and every consumer picks them up with no code change.
10
+ */
11
+ /** Real per-platform store URLs, or `undefined` where not yet configured. */
12
+ export interface CommonsStoreLinks {
13
+ ios: string | undefined;
14
+ android: string | undefined;
15
+ }
16
+ /** Per-platform Commons store URLs, from env — `undefined` when unset. */
17
+ export declare function getCommonsStoreLinks(): CommonsStoreLinks;
18
+ /**
19
+ * Resolve the "Get Commons" href for the current platform. Never `undefined`
20
+ * — falls back to a landing page so the affordance is always a working link,
21
+ * store listing or not.
22
+ */
23
+ export declare function getCommonsAcquisitionUrl(platformOS: 'ios' | 'android' | string): string;
24
+ //# sourceMappingURL=commonsStoreLinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonsStoreLinks.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/commonsStoreLinks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD;AAKD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAIvF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "22.0.0",
3
+ "version": "22.2.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",
@@ -127,7 +127,7 @@
127
127
  },
128
128
  "dependencies": {
129
129
  "@oxyhq/contracts": "0.15.0",
130
- "@oxyhq/core": "^12.0.0",
130
+ "@oxyhq/core": "^12.2.0",
131
131
  "@simplewebauthn/browser": "^13.3.0",
132
132
  "color": "^4.2.3"
133
133
  },
@@ -135,11 +135,11 @@
135
135
  "@biomejs/biome": "^1.9.4",
136
136
  "@commitlint/cli": "^17.6.5",
137
137
  "@commitlint/config-conventional": "^17.6.5",
138
- "@oxyhq/core": "12.0.0",
138
+ "@oxyhq/core": "12.2.0",
139
139
  "@react-native-async-storage/async-storage": "^2.0.0",
140
140
  "@react-native-community/netinfo": "^11.4.1",
141
141
  "@react-native/babel-preset": "^0.86.0",
142
- "@release-it/conventional-changelog": "^10.0.2",
142
+ "@release-it/conventional-changelog": "^10.0.6",
143
143
  "@tanstack/query-async-storage-persister": "^5.101",
144
144
  "@tanstack/query-sync-storage-persister": "^5.101",
145
145
  "@tanstack/react-query": "^5.101",
@@ -147,14 +147,14 @@
147
147
  "@testing-library/jest-dom": "^6.4.2",
148
148
  "@types/color": "^4.2.1",
149
149
  "@types/jest": "^29.5.14",
150
- "@types/node": "^20.19.9",
150
+ "@types/node": "^20.19.43",
151
151
  "@types/react": "*",
152
152
  "copyfiles": "^2.4.1",
153
- "expo-file-system": "~57.0.0",
154
- "expo-font": "~57.0.0",
155
- "expo-haptics": "~57.0.0",
156
- "expo-image": "~57.0.0",
157
- "expo-linear-gradient": "~57.0.0",
153
+ "expo-file-system": "~57.0.1",
154
+ "expo-font": "~57.0.1",
155
+ "expo-haptics": "~57.0.1",
156
+ "expo-image": "~57.0.1",
157
+ "expo-linear-gradient": "~57.0.1",
158
158
  "husky": "^4.3.8",
159
159
  "jest": "~29.7.0",
160
160
  "lint-staged": "^15.2.4",
@@ -176,7 +176,7 @@
176
176
  "peerDependencies": {
177
177
  "@expo/vector-icons": "^15.0.3",
178
178
  "@oxyhq/bloom": ">=0.16.0",
179
- "@oxyhq/core": "^12.0.0",
179
+ "@oxyhq/core": "^12.2.0",
180
180
  "@react-native-async-storage/async-storage": "^2.0.0",
181
181
  "@react-native-community/netinfo": "^11.4.1",
182
182
  "@tanstack/query-async-storage-persister": "^5.101",
package/src/index.ts CHANGED
@@ -233,6 +233,13 @@ export { LogoText } from './ui/components/logo/LogoText';
233
233
  export { default as ProfileButton } from './ui/components/ProfileButton';
234
234
  export type { ProfileButtonProps } from './ui/components/ProfileButton';
235
235
 
236
+ // The account switcher/sign-in/sign-up chooser WITHOUT dialog chrome —
237
+ // `OxyAccountDialog` wraps this in Bloom's `<Dialog>` for the normal in-app
238
+ // surface; exported directly so a bare host (e.g. a future auth.oxy.so hub
239
+ // page) can mount the exact same chooser with its own completion strategy.
240
+ export { default as OxyAuthChooser } from './ui/components/OxyAuthChooser';
241
+ export type { OxyAuthChooserProps } from './ui/components/OxyAuthChooser';
242
+
236
243
  // Unified switchable-accounts hook — the single source of everything the user
237
244
  // can switch into: device sign-ins AND linked graph accounts (owned orgs +
238
245
  // shared-with-you), deduped by account id and hydrated with real