@ikonai/sdk-react-ui 1.8.0 → 1.11.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/account/use-account-removal.d.ts +37 -0
- package/account/use-account-removal.d.ts.map +1 -0
- package/app/boot-snapshot-variant.d.ts +2 -1
- package/app/boot-snapshot-variant.d.ts.map +1 -0
- package/app/connection-recovery.d.ts +1 -0
- package/app/connection-recovery.d.ts.map +1 -0
- package/app/connection-state-renderer.d.ts +6 -5
- package/app/connection-state-renderer.d.ts.map +1 -0
- package/app/feedback/feedback-controls.d.ts +24 -0
- package/app/feedback/feedback-controls.d.ts.map +1 -0
- package/app/feedback/feedback-form.d.ts +26 -0
- package/app/feedback/feedback-form.d.ts.map +1 -0
- package/app/feedback/platform-layer.d.ts +32 -0
- package/app/feedback/platform-layer.d.ts.map +1 -0
- package/app/feedback/use-ikon-feedback.d.ts +13 -0
- package/app/feedback/use-ikon-feedback.d.ts.map +1 -0
- package/app/ikon-app.d.ts +4 -3
- package/app/ikon-app.d.ts.map +1 -0
- package/app/index.d.ts +2 -0
- package/app/index.d.ts.map +1 -0
- package/app/use-ikon-app.d.ts +35 -9
- package/app/use-ikon-app.d.ts.map +1 -0
- package/app/use-ikon-debug.d.ts +3 -2
- package/app/use-ikon-debug.d.ts.map +1 -0
- package/auth/auth-context.d.ts +2 -1
- package/auth/auth-context.d.ts.map +1 -0
- package/auth/auth-service.d.ts +38 -5
- package/auth/auth-service.d.ts.map +1 -0
- package/auth/index.d.ts +5 -3
- package/auth/index.d.ts.map +1 -0
- package/auth/oauth-continuation.d.ts +16 -1
- package/auth/oauth-continuation.d.ts.map +1 -0
- package/auth/storage.d.ts +1 -0
- package/auth/storage.d.ts.map +1 -0
- package/auth/types.d.ts +19 -4
- package/auth/types.d.ts.map +1 -0
- package/auth/use-auth-guard.d.ts +1 -0
- package/auth/use-auth-guard.d.ts.map +1 -0
- package/auth/use-sso-sign-in.d.ts +18 -0
- package/auth/use-sso-sign-in.d.ts.map +1 -0
- package/base/base-div.d.ts +1 -0
- package/base/base-div.d.ts.map +1 -0
- package/base/base-module.d.ts +1 -0
- package/base/base-module.d.ts.map +1 -0
- package/consent/use-consent.d.ts +35 -0
- package/consent/use-consent.d.ts.map +1 -0
- package/debug/debug-overlay.d.ts +2 -1
- package/debug/debug-overlay.d.ts.map +1 -0
- package/feedback-form-BSy2olwD.js +511 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.d.ts.map +1 -0
- package/hooks/use-ikon-reactive.d.ts +2 -1
- package/hooks/use-ikon-reactive.d.ts.map +1 -0
- package/hooks/use-reactive.d.ts +2 -1
- package/hooks/use-reactive.d.ts.map +1 -0
- package/hooks/use-toasts.d.ts +1 -0
- package/hooks/use-toasts.d.ts.map +1 -0
- package/i18n/i18n.d.ts +2 -1
- package/i18n/i18n.d.ts.map +1 -0
- package/i18n/index.d.ts +1 -0
- package/i18n/index.d.ts.map +1 -0
- package/ikon-ui-registry.d.ts +1 -0
- package/ikon-ui-registry.d.ts.map +1 -0
- package/ikon-ui.d.ts +3 -2
- package/ikon-ui.d.ts.map +1 -0
- package/index.d.ts +10 -7
- package/index.d.ts.map +1 -0
- package/index.js +2045 -1850
- package/inspect/inspect-overlay.d.ts +1 -0
- package/inspect/inspect-overlay.d.ts.map +1 -0
- package/media/audio-player.d.ts +1 -0
- package/media/audio-player.d.ts.map +1 -0
- package/media/media-module.d.ts +1 -0
- package/media/media-module.d.ts.map +1 -0
- package/media/use-media-capture.d.ts +2 -1
- package/media/use-media-capture.d.ts.map +1 -0
- package/media/use-sibling-client.d.ts +2 -1
- package/media/use-sibling-client.d.ts.map +1 -0
- package/media/video-canvas.d.ts +1 -0
- package/media/video-canvas.d.ts.map +1 -0
- package/media/video-stream-view.d.ts +3 -2
- package/media/video-stream-view.d.ts.map +1 -0
- package/motion/motion-controller.d.ts +2 -1
- package/motion/motion-controller.d.ts.map +1 -0
- package/package.json +1 -1
- package/parallax-view.d.ts +5 -4
- package/parallax-view.d.ts.map +1 -0
- package/renderer/component-library.d.ts +1 -0
- package/renderer/component-library.d.ts.map +1 -0
- package/renderer/index.d.ts +3 -1
- package/renderer/index.d.ts.map +1 -0
- package/renderer/lazy-resolver.d.ts +10 -0
- package/renderer/lazy-resolver.d.ts.map +1 -0
- package/renderer/types.d.ts +17 -5
- package/renderer/types.d.ts.map +1 -0
- package/renderer/ui-renderer.d.ts +6 -5
- package/renderer/ui-renderer.d.ts.map +1 -0
- package/renderer/use-root-view.d.ts +2 -1
- package/renderer/use-root-view.d.ts.map +1 -0
- package/renderer/use-ui-node.d.ts +2 -1
- package/renderer/use-ui-node.d.ts.map +1 -0
- package/renderer/use-ui-store.d.ts +2 -1
- package/renderer/use-ui-store.d.ts.map +1 -0
- package/shadertoy/shadertoy-gl.d.ts +1 -0
- package/shadertoy/shadertoy-gl.d.ts.map +1 -0
- package/shadertoy/shadertoy-module.d.ts +4 -3
- package/shadertoy/shadertoy-module.d.ts.map +1 -0
- package/shadertoy/shadertoy-renderer.d.ts +1 -1
- package/shadertoy/shadertoy-renderer.d.ts.map +1 -0
- package/shadertoy/shadertoy-type.d.ts +2 -0
- package/shadertoy/shadertoy-type.d.ts.map +1 -0
- package/shadertoy-renderer-Cq1lOXBs.js +428 -0
- package/shadertoy-type-Cs2WeCWV.js +15 -0
- package/shared/render-motion-letters.d.ts +1 -0
- package/shared/render-motion-letters.d.ts.map +1 -0
- package/surface.d.ts +10 -7
- package/surface.d.ts.map +1 -0
- package/theme/ikon-app.css +3 -1
- package/theme/ikon-auth.css +7 -5
- package/use-ikon-styles.d.ts +2 -1
- package/use-ikon-styles.d.ts.map +1 -0
- package/use-ikon-ui-stores.d.ts +2 -0
- package/use-ikon-ui-stores.d.ts.map +1 -0
- package/auth/auth-context.spec.d.ts +0 -1
- package/base/focus-hint-scroll.spec.d.ts +0 -1
- package/media/use-media-capture.spec.d.ts +0 -1
- package/media/use-sibling-client.spec.d.ts +0 -1
- package/media/video-stream-view.spec.d.ts +0 -1
- package/renderer/unresolved-node.spec.d.ts +0 -1
- package/vite.config.d.ts +0 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ScheduledUserRemoval } from '@ikonai/sdk';
|
|
2
|
+
export interface UseAccountRemovalOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Backend API base, as `AuthConfig.backendUrl` carries it. Left out, the SDK derives it from the
|
|
5
|
+
* environment.
|
|
6
|
+
*/
|
|
7
|
+
backendUrl?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Whether to read the account's current removal schedule on mount. True by default; pass false
|
|
10
|
+
* for a screen that is mounted before the user can see it.
|
|
11
|
+
*/
|
|
12
|
+
loadOnMount?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface UseAccountRemovalResult {
|
|
15
|
+
/** The scheduled erasure, or null when none is scheduled. */
|
|
16
|
+
scheduledRemoval: ScheduledUserRemoval | null;
|
|
17
|
+
/** True while the account's current state is being read. */
|
|
18
|
+
isLoadingAccount: boolean;
|
|
19
|
+
/** True while a request or a cancellation is in flight. */
|
|
20
|
+
isSubmittingRemoval: boolean;
|
|
21
|
+
/** The last failure, in the backend's own words, or null. */
|
|
22
|
+
removalError: string | null;
|
|
23
|
+
/** Whether a signed-in, non-anonymous account exists to act on. A guest has nothing to erase. */
|
|
24
|
+
canRequestRemoval: boolean;
|
|
25
|
+
/** The grace period the erasure is scheduled after, in days. */
|
|
26
|
+
removalGraceDays: number;
|
|
27
|
+
requestAccountRemoval: () => Promise<void>;
|
|
28
|
+
cancelAccountRemoval: () => Promise<void>;
|
|
29
|
+
reloadAccountRemoval: () => Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The signed-in user's own right to erasure: what is scheduled, and the two calls that schedule it
|
|
33
|
+
* and take it back. Erasure runs after the backend's grace period ({@link USER_REMOVAL_GRACE_DAYS}
|
|
34
|
+
* days by default) and can be cancelled at any point until then.
|
|
35
|
+
*/
|
|
36
|
+
export declare function useAccountRemoval(options?: UseAccountRemovalOptions): UseAccountRemovalResult;
|
|
37
|
+
//# sourceMappingURL=use-account-removal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-account-removal.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/account/use-account-removal.ts"],"names":[],"mappings":"AACA,OAAO,EAAgF,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGtI,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,6DAA6D;IAC7D,gBAAgB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,4DAA4D;IAC5D,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,mBAAmB,EAAE,OAAO,CAAC;IAC7B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iGAAiG;IACjG,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAUD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,uBAAuB,CAqGjG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BootSnapshotVariant } from '
|
|
1
|
+
import { BootSnapshotVariant } from '@ikonai/sdk-ui';
|
|
2
2
|
/**
|
|
3
3
|
* The one seed-axis rule shared by the early prefetch and the IkonUi construction in useIkonApp:
|
|
4
4
|
* disabled stays disabled; a signed-in load resolves through the SignedInSeeds rules (the route
|
|
@@ -6,3 +6,4 @@ import { BootSnapshotVariant } from '../../sdk/sdk-ui/src/index.ts';
|
|
|
6
6
|
* everything else resolves through the guest axis.
|
|
7
7
|
*/
|
|
8
8
|
export declare function resolveBootSnapshotSeedVariant(bootSnapshot: boolean | undefined, signedInLikely: boolean): BootSnapshotVariant | false;
|
|
9
|
+
//# sourceMappingURL=boot-snapshot-variant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boot-snapshot-variant.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/app/boot-snapshot-variant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,EAAE,cAAc,EAAE,OAAO,GAAG,mBAAmB,GAAG,KAAK,CAMtI"}
|
|
@@ -25,3 +25,4 @@ export interface ConnectionRecoveryOptions {
|
|
|
25
25
|
* app — so telling them to refresh is advice they cannot act on. The button is the affordance.
|
|
26
26
|
*/
|
|
27
27
|
export declare function getConnectionRecovery({ isSessionExpired }: ConnectionRecoveryOptions): ConnectionRecovery;
|
|
28
|
+
//# sourceMappingURL=connection-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-recovery.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/app/connection-recovery.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,cAAc,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAE7B,0EAA0E;IAC1E,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,GAAG,kBAAkB,CAYzG"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ConnectionState, IkonClient } from '
|
|
1
|
+
import { ConnectionState, IkonClient } from '@ikonai/sdk';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { IkonUiRegistry } from '../ikon-ui-registry';
|
|
4
4
|
import { IkonUiStoreEntry } from '../surface';
|
|
5
|
+
import { DispatchActionOptions } from '../renderer';
|
|
5
6
|
/**
|
|
6
7
|
* Props passed to the renderConnected callback.
|
|
7
8
|
*/
|
|
@@ -9,7 +10,7 @@ export interface ConnectedRenderProps {
|
|
|
9
10
|
stores: ReadonlyMap<string, IkonUiStoreEntry>;
|
|
10
11
|
registry: IkonUiRegistry;
|
|
11
12
|
client: IkonClient | null;
|
|
12
|
-
onAction: (actionId: string, payload: unknown) => void;
|
|
13
|
+
onAction: (actionId: string, payload: unknown, options?: DispatchActionOptions) => void;
|
|
13
14
|
isReconnecting: boolean;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
@@ -27,7 +28,7 @@ export interface ConnectionStateRendererProps {
|
|
|
27
28
|
stores: ReadonlyMap<string, IkonUiStoreEntry> | undefined;
|
|
28
29
|
registry: IkonUiRegistry | null;
|
|
29
30
|
client: IkonClient | null;
|
|
30
|
-
onAction: (actionId: string, payload: unknown) => void;
|
|
31
|
+
onAction: (actionId: string, payload: unknown, options?: DispatchActionOptions) => void;
|
|
31
32
|
/**
|
|
32
33
|
* @deprecated The runtime no longer emits `'idle'`; this callback never fires. The
|
|
33
34
|
* prop stays for source-compatibility with apps that already pass it.
|
|
@@ -53,8 +54,7 @@ export interface ConnectionStateRendererProps {
|
|
|
53
54
|
*/
|
|
54
55
|
renderOffline: () => ReactNode;
|
|
55
56
|
/**
|
|
56
|
-
* Render when offline with an error message attached. Full-page replacement.
|
|
57
|
-
* Previously fired only for the dropped `'offlineError'` state; now fires when
|
|
57
|
+
* Render when offline with an error message attached. Full-page replacement. Fires when
|
|
58
58
|
* `connectionState === 'offline'` and `error` (or `client.lastError`) is set.
|
|
59
59
|
*/
|
|
60
60
|
renderError: (error: string | null) => ReactNode;
|
|
@@ -69,3 +69,4 @@ export interface ConnectionStateRendererProps {
|
|
|
69
69
|
* work without changes when they upgrade the SDK.
|
|
70
70
|
*/
|
|
71
71
|
export declare function ConnectionStateRenderer({ connectionState, error, isReady, isConnectingSlow, stores, registry, client, onAction, renderIdle: _renderIdle, renderConnecting, renderConnectingSlow, renderConnected, renderOffline, renderError, }: ConnectionStateRendererProps): ReactNode;
|
|
72
|
+
//# sourceMappingURL=connection-state-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-state-renderer.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/app/connection-state-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxF,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAC1D,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAExF;;;OAGG;IACH,UAAU,EAAE,MAAM,SAAS,CAAC;IAE5B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,SAAS,CAAC;IAElC;;;OAGG;IACH,oBAAoB,EAAE,MAAM,SAAS,CAAC;IAEtC;;;OAGG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAAC;IAE5D;;OAEG;IACH,aAAa,EAAE,MAAM,SAAS,CAAC;IAE/B;;;OAGG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,eAAe,EACf,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,WAAW,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,EAAE,4BAA4B,GAAG,SAAS,CAkD1C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ConnectionState, FeedbackClientConfiguration, IkonClient } from '@ikonai/sdk';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
export declare function preloadFeedbackForm(): Promise<typeof import('./feedback-form')>;
|
|
4
|
+
/** How long the client waits for the server-drawn sheet before it opens its own form. */
|
|
5
|
+
export declare const FEEDBACK_SHEET_TIMEOUT_MS = 4000;
|
|
6
|
+
export interface FeedbackControlsProps {
|
|
7
|
+
client: IkonClient | null;
|
|
8
|
+
/** The backend's feedback settings for this user; nothing is drawn without them. */
|
|
9
|
+
feedback: FeedbackClientConfiguration | null;
|
|
10
|
+
connectionState: ConnectionState;
|
|
11
|
+
/** True once the live app UI is on screen, which is when `?ikon-feedback` opens the sheet. */
|
|
12
|
+
isLive: boolean;
|
|
13
|
+
/** True while the server-drawn sheet has content. */
|
|
14
|
+
sheetOpen: boolean;
|
|
15
|
+
brandingShown: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The client-drawn half of the feedback overlay: the round button and the fallback form. A tap, or
|
|
19
|
+
* an app's own control through `IkonClient.requestFeedback`, asks the server to open its sheet; the
|
|
20
|
+
* form opens instead when that call fails, the connection is not live, or no sheet has arrived
|
|
21
|
+
* within {@link FEEDBACK_SHEET_TIMEOUT_MS}.
|
|
22
|
+
*/
|
|
23
|
+
export declare function FeedbackControls({ client, feedback, connectionState, isLive, sheetOpen, brandingShown }: FeedbackControlsProps): ReactNode;
|
|
24
|
+
//# sourceMappingURL=feedback-controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-controls.d.ts","sourceRoot":"","sources":["../../../../../sdk/sdk-react-ui/src/app/feedback/feedback-controls.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,UAAU,EAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgE,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AAQrH,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,cAAc,iBAAiB,CAAC,CAAC,CAE/E;AAED,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAY9C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAC7C,eAAe,EAAE,eAAe,CAAC;IACjC,8FAA8F;IAC9F,MAAM,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,qBAAqB,GAAG,SAAS,CAkL1I"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BackendAccess, FeedbackKind, ViewCaptureImage } from '@ikonai/sdk';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
export declare const FEEDBACK_KIND_OPTIONS: ReadonlyArray<{
|
|
4
|
+
kind: FeedbackKind;
|
|
5
|
+
label: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const FEEDBACK_DIALOG_Z_INDEX = 10001;
|
|
8
|
+
export declare const SCREENSHOT_WAIT_MS = 10000;
|
|
9
|
+
export interface FeedbackFormProps {
|
|
10
|
+
/** Where the report goes; null when this page has no user token for the backend. */
|
|
11
|
+
access: BackendAccess | null;
|
|
12
|
+
/** The capture taken when the user tapped; null when there is none. */
|
|
13
|
+
screenshot: Promise<ViewCaptureImage> | null;
|
|
14
|
+
appSession?: string;
|
|
15
|
+
clientSession?: string;
|
|
16
|
+
onClose: () => void;
|
|
17
|
+
/** Tells the owner whether the user has put anything into the form, so it is not closed from under them. */
|
|
18
|
+
onDirtyChange?: (dirty: boolean) => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The client-drawn report form, for when the overlay sheet cannot open — the app is down, the
|
|
22
|
+
* connection is not live, or the app has no UI. Posts straight to the backend. No voice: that needs
|
|
23
|
+
* the app server.
|
|
24
|
+
*/
|
|
25
|
+
export declare function FeedbackForm({ access, screenshot, appSession, clientSession, onClose, onDirtyChange }: FeedbackFormProps): ReactNode;
|
|
26
|
+
//# sourceMappingURL=feedback-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-form.d.ts","sourceRoot":"","sources":["../../../../../sdk/sdk-react-ui/src/app/feedback/feedback-form.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkH,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3M,OAAO,EAAuG,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5I,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAKtF,CAAC;AAOF,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAI7C,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAChC,oFAAoF;IACpF,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4GAA4G;IAC5G,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,iBAAiB,GAAG,SAAS,CAmSpI"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IkonClient } from '@ikonai/sdk';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { IkonUiRegistry } from '../../ikon-ui-registry';
|
|
4
|
+
import { DispatchActionOptions } from '../../renderer';
|
|
5
|
+
import { IkonUiStoreEntry } from '../../surface';
|
|
6
|
+
export declare const PLATFORM_LAYER_Z_INDEX = 9990;
|
|
7
|
+
/**
|
|
8
|
+
* True while any platform stream shows content. The server wraps every mount in a root and one
|
|
9
|
+
* content node, so a closed sheet is a root whose content nodes have no children, and the sheet is
|
|
10
|
+
* open once any content node has one.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isPlatformTreeOpen(stores: ReadonlyMap<string, IkonUiStoreEntry> | undefined): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Follows the platform streams' trees. The store map only changes when a stream appears or goes; a
|
|
15
|
+
* stream store notifies its store listeners only when the root itself changes, and a node listener
|
|
16
|
+
* fires only for the node whose own props or children changed. The sheet opening lands on a content
|
|
17
|
+
* node, so each content node under the root is followed as well.
|
|
18
|
+
*/
|
|
19
|
+
export declare function usePlatformTreeOpen(stores: ReadonlyMap<string, IkonUiStoreEntry> | undefined): boolean;
|
|
20
|
+
export interface PlatformLayerProps {
|
|
21
|
+
stores: ReadonlyMap<string, IkonUiStoreEntry>;
|
|
22
|
+
registry: IkonUiRegistry;
|
|
23
|
+
client: IkonClient | null;
|
|
24
|
+
onAction?: (actionId: string, payload?: string, options?: DispatchActionOptions) => void;
|
|
25
|
+
open: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The `ikon.platform` surface: the server-drawn feedback sheet, stacked over the app. Hidden while
|
|
29
|
+
* the tree is empty so a closed overlay can never cover the app, whatever its root's own layout.
|
|
30
|
+
*/
|
|
31
|
+
export declare function PlatformLayer({ stores, registry, client, onAction, open }: PlatformLayerProps): ReactNode;
|
|
32
|
+
//# sourceMappingURL=platform-layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-layer.d.ts","sourceRoot":"","sources":["../../../../../sdk/sdk-react-ui/src/app/feedback/platform-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGrE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAQ3C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,GAAG,OAAO,CAYrG;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,GAAG,OAAO,CA0BtG;AA+CD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzF,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,kBAAkB,GAAG,SAAS,CAuBzG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IkonClient } from '@ikonai/sdk';
|
|
2
|
+
export interface IkonFeedback {
|
|
3
|
+
/** Whether this person is offered feedback; leave an app's own "Send feedback" control out when not. */
|
|
4
|
+
available: boolean;
|
|
5
|
+
/** Opens the feedback sheet as the platform's button does, screenshot included. False when it cannot. */
|
|
6
|
+
open: () => boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* For an app that places its own "Send feedback" control, with `[Feedback] Button = "none"` or next
|
|
10
|
+
* to the platform's button. Nothing opens without an `IkonApp` on the page to show the sheet.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useIkonFeedback(client: IkonClient | null): IkonFeedback;
|
|
13
|
+
//# sourceMappingURL=use-ikon-feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-ikon-feedback.d.ts","sourceRoot":"","sources":["../../../../../sdk/sdk-react-ui/src/app/feedback/use-ikon-feedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,YAAY;IAC3B,wGAAwG;IACxG,SAAS,EAAE,OAAO,CAAC;IACnB,yGAAyG;IACzG,IAAI,EAAE,MAAM,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,YAAY,CAMvE"}
|
package/app/ikon-app.d.ts
CHANGED
|
@@ -48,8 +48,9 @@ export interface IkonAppProps extends UseIkonAppResult {
|
|
|
48
48
|
* />
|
|
49
49
|
* ```
|
|
50
50
|
*
|
|
51
|
-
* Debug keyboard shortcuts
|
|
52
|
-
*
|
|
53
|
-
*
|
|
51
|
+
* Debug keyboard shortcuts are wired up automatically when SDK debug mode is on (URL has
|
|
52
|
+
* `?ikon-debug=true`); `useIkonDebug` holds the map. No on-screen indicator is rendered for
|
|
53
|
+
* active overrides.
|
|
54
54
|
*/
|
|
55
55
|
export declare function IkonApp(props: IkonAppProps): ReactNode;
|
|
56
|
+
//# sourceMappingURL=ikon-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ikon-app.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/app/ikon-app.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQvD;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC;AAEjF,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC;AAEjF,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,8EAA8E;IAC9E,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;CAC7C;AA4BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CA2EtD"}
|
package/app/index.d.ts
CHANGED
|
@@ -2,4 +2,6 @@ export { ConnectionStateRenderer, type ConnectedRenderProps, type ConnectionStat
|
|
|
2
2
|
export { useIkonApp, type IkonUiModuleRegistration, type UseIkonAppOptions, type UseIkonAppResult } from './use-ikon-app';
|
|
3
3
|
export { IkonApp, type IkonAppProps, type ConnectingOverlayProp, type ReconnectingOverlayProp, type OfflineOverlayProp, type AccessDeniedScreenProp } from './ikon-app';
|
|
4
4
|
export { useIkonDebug, type UseIkonDebugResult } from './use-ikon-debug';
|
|
5
|
+
export { useIkonFeedback, type IkonFeedback } from './feedback/use-ikon-feedback';
|
|
5
6
|
export { getConnectionRecovery, type ConnectionRecovery, type ConnectionRecoveryKind, type ConnectionRecoveryOptions } from './connection-recovery';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,KAAK,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACpI,OAAO,EAAE,UAAU,EAAE,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC1H,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAE,KAAK,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACxK,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/app/use-ikon-app.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ConnectionState, IkonClient, TimeoutConfig, WebRTCTrackMapInfo } from '
|
|
1
|
+
import { ConnectionState, FeedbackClientConfiguration, IkonClient, TimeoutConfig, WebRTCTrackMapInfo } from '@ikonai/sdk';
|
|
2
2
|
import { RefObject } from 'react';
|
|
3
3
|
import { AuthConfig, LoginMethod } from '../auth/types';
|
|
4
|
+
import { DispatchActionOptions } from '../renderer';
|
|
4
5
|
import { IkonUiRegistry } from '../ikon-ui-registry';
|
|
5
6
|
import { IkonUi } from '../ikon-ui';
|
|
6
7
|
import { IkonUiStoreEntry } from '../surface';
|
|
@@ -37,13 +38,22 @@ export type IkonUiModuleRegistration = (registry: IkonUiRegistry) => void;
|
|
|
37
38
|
*/
|
|
38
39
|
export declare function mergeConnectParameters(urlParameters: Record<string, string>, appParameters?: Record<string, string>): Record<string, string>;
|
|
39
40
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*
|
|
41
|
+
* Whether this tab may send the person to their IdP for a space that requires SSO. Once per window
|
|
42
|
+
* per connection: a sign-in the IdP refuses comes back to the same consumer session, which the space
|
|
43
|
+
* refuses again, and without this the two would bounce the browser between them forever.
|
|
44
|
+
*/
|
|
45
|
+
export declare function claimSsoRedirect(connectionId: string, now?: number): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Forgets every redirect this tab claimed. Called once a connect succeeds: the trip to the IdP came
|
|
48
|
+
* back signed in, so no loop is under way, and a sign-in by another method minutes later must be sent
|
|
49
|
+
* to the IdP again rather than meet the guard as a dead end.
|
|
50
|
+
*/
|
|
51
|
+
export declare function releaseSsoRedirectClaims(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Who a session is for, as opposed to what it presents to prove it. A browser access token is
|
|
54
|
+
* renewed every few minutes, and a renewal is the same person holding a fresher credential, so the
|
|
55
|
+
* connection is keyed on the subject: only a genuine change of user, or of sign-in method, forces
|
|
56
|
+
* a reconnect.
|
|
47
57
|
*
|
|
48
58
|
* A token whose subject cannot be read falls back to the token itself: two credentials nobody can
|
|
49
59
|
* identify must not be assumed to name the same person.
|
|
@@ -88,6 +98,16 @@ export interface UseIkonAppOptions {
|
|
|
88
98
|
* Enable background audio playback on both desktop and mobile. Default: false
|
|
89
99
|
*/
|
|
90
100
|
backgroundAudio?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Passed to IkonClient: skip the browser convenience functions (theme, location, navigation,
|
|
103
|
+
* sound, downloads). Default: false
|
|
104
|
+
*/
|
|
105
|
+
disableBrowserFunctions?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Passed to IkonClient: keep the browser functions but skip the sound-effect ones and the
|
|
108
|
+
* gesture-driven audio unlock they install, for an app that plays its own audio. Default: false
|
|
109
|
+
*/
|
|
110
|
+
disableSoundFunctions?: boolean;
|
|
91
111
|
/**
|
|
92
112
|
* Enable WebRTC for audio and video transport. Default: true
|
|
93
113
|
*/
|
|
@@ -199,7 +219,7 @@ export interface UseIkonAppResult {
|
|
|
199
219
|
/**
|
|
200
220
|
* Action handler for UI interactions.
|
|
201
221
|
*/
|
|
202
|
-
onAction: (actionId: string, payload: unknown) => void;
|
|
222
|
+
onAction: (actionId: string, payload: unknown, options?: DispatchActionOptions) => void;
|
|
203
223
|
/**
|
|
204
224
|
* Whether the connection is ready to render UI.
|
|
205
225
|
*/
|
|
@@ -216,6 +236,11 @@ export interface UseIkonAppResult {
|
|
|
216
236
|
* low-tier app creators by the connect handshake). Defaults to false until connected.
|
|
217
237
|
*/
|
|
218
238
|
brandingRequired: boolean;
|
|
239
|
+
/**
|
|
240
|
+
* The feedback overlay settings for this user: present when the overlay is offered (by `/init`, or
|
|
241
|
+
* by the app server's `ikon.client.setFeedback`, which replaces it), null otherwise and until then.
|
|
242
|
+
*/
|
|
243
|
+
feedback: FeedbackClientConfiguration | null;
|
|
219
244
|
/**
|
|
220
245
|
* True after `connectionState === 'connecting'` has lasted longer than the slow-connection
|
|
221
246
|
* threshold (default 5s, configurable via `timeouts.slowConnectionThresholdMs`). The connecting
|
|
@@ -236,3 +261,4 @@ export interface UseIkonAppResult {
|
|
|
236
261
|
* Encapsulates client creation, auth scenarios, UI registry setup, and state management.
|
|
237
262
|
*/
|
|
238
263
|
export declare function useIkonApp(options: UseIkonAppOptions): UseIkonAppResult;
|
|
264
|
+
//# sourceMappingURL=use-ikon-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-ikon-app.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/app/use-ikon-app.ts"],"names":[],"mappings":"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"}
|
package/app/use-ikon-debug.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConnectionState } from '
|
|
1
|
+
import { ConnectionState } from '@ikonai/sdk';
|
|
2
2
|
import { UseIkonAppResult } from './use-ikon-app';
|
|
3
3
|
/**
|
|
4
4
|
* Result of useIkonDebug — same shape as the input `UseIkonAppResult` (so it can be spread
|
|
@@ -33,7 +33,7 @@ export interface UseIkonDebugResult {
|
|
|
33
33
|
* `<IkonApp />` and want the same behavior.
|
|
34
34
|
*
|
|
35
35
|
* Shortcut map (all require Ctrl+Shift, `event.code`-based so layout-independent):
|
|
36
|
-
* - Digit1 → force `connecting` (an internal
|
|
36
|
+
* - Digit1 → force `connecting` (an internal timer flips isConnectingSlow to true so you can see both phases without a second shortcut)
|
|
37
37
|
* - Digit2 → force `connected`
|
|
38
38
|
* - Digit3 → force `reconnecting`
|
|
39
39
|
* - Digit4 → force `offline` (no error)
|
|
@@ -45,3 +45,4 @@ export interface UseIkonDebugResult {
|
|
|
45
45
|
* - KeyE → toggle empty-stores override (simulates "initial connection never produced UI")
|
|
46
46
|
*/
|
|
47
47
|
export declare function useIkonDebug(app: UseIkonAppResult): UseIkonDebugResult;
|
|
48
|
+
//# sourceMappingURL=use-ikon-debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-ikon-debug.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/app/use-ikon-debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAoBvD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,GAAG,EAAE,gBAAgB,CAAC;IACtB,gDAAgD;IAChD,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,6FAA6F;IAC7F,WAAW,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kGAAkG;IAClG,cAAc,EAAE,OAAO,CAAC;IACxB,6FAA6F;IAC7F,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,kBAAkB,CA2GtE"}
|
package/auth/auth-context.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface AuthProviderProps {
|
|
|
8
8
|
* Authentication provider that manages auth state and provides auth methods.
|
|
9
9
|
* This is a headless provider - it manages state only, no UI rendering.
|
|
10
10
|
*/
|
|
11
|
-
export declare function AuthProvider({ children, config }: AuthProviderProps): import(
|
|
11
|
+
export declare function AuthProvider({ children, config }: AuthProviderProps): import('react').JSX.Element;
|
|
12
12
|
/**
|
|
13
13
|
* Hook to access the auth context.
|
|
14
14
|
* Throws if used outside of AuthProvider.
|
|
@@ -19,3 +19,4 @@ export declare function useAuth(): AuthContextValue;
|
|
|
19
19
|
* Returns null if used outside of AuthProvider (doesn't throw).
|
|
20
20
|
*/
|
|
21
21
|
export declare function useAuthOptional(): AuthContextValue | null;
|
|
22
|
+
//# sourceMappingURL=auth-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-context.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/auth/auth-context.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,SAAS,EAA0D,MAAM,OAAO,CAAC;AAoC9G,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAuE,MAAM,SAAS,CAAC;AA2DjI,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,iBAAiB,+BA+nBnE;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,gBAAgB,CAM1C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,GAAG,IAAI,CAEzD"}
|
package/auth/auth-service.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AuthenticationResponseJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON } from '@simplewebauthn/browser';
|
|
2
|
-
import { AuthSession, LoginMethod, RefreshableSession } from './types';
|
|
2
|
+
import { AuthMethod, AuthSession, LoginMethod, RefreshableSession } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Result of parsing an OAuth callback from the URL.
|
|
5
5
|
*/
|
|
6
6
|
export interface OAuthCallbackResult {
|
|
7
7
|
token: string;
|
|
8
|
-
provider:
|
|
8
|
+
provider: AuthMethod;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Whether a same-origin auth response came from an LB with no `/ikon/auth` route — the app
|
|
@@ -66,7 +66,7 @@ export declare function parseOAuthCallback(): OAuthCallbackResult | null;
|
|
|
66
66
|
/** The single-use code an opted-in callback carries, waiting to be exchanged for a session. */
|
|
67
67
|
export declare function parseOAuthCodeCallback(): {
|
|
68
68
|
code: string;
|
|
69
|
-
provider:
|
|
69
|
+
provider: AuthMethod;
|
|
70
70
|
} | null;
|
|
71
71
|
/**
|
|
72
72
|
* Trades the callback's code for the session it stands for, using the verifier this browser kept.
|
|
@@ -76,7 +76,7 @@ export declare function parseOAuthCodeCallback(): {
|
|
|
76
76
|
* refuse — so the caller reports a failed sign-in instead of silently leaving the visitor
|
|
77
77
|
* anonymous with a code still in the address bar.
|
|
78
78
|
*/
|
|
79
|
-
export declare function exchangeOAuthCode(code: string, provider:
|
|
79
|
+
export declare function exchangeOAuthCode(code: string, provider: AuthMethod, authUrlOverride?: string): Promise<AuthSession>;
|
|
80
80
|
/**
|
|
81
81
|
* Renews the access token from the refresh cookie. Returns null when the session is definitively
|
|
82
82
|
* over — the chain was spent, revoked, or never existed — and throws when the answer is simply
|
|
@@ -94,7 +94,7 @@ export declare function refreshBrowserSession(marker: RefreshableSession): Promi
|
|
|
94
94
|
*/
|
|
95
95
|
export interface OAuthErrorResult {
|
|
96
96
|
code: string;
|
|
97
|
-
provider:
|
|
97
|
+
provider: AuthMethod | null;
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Get the error from an OAuth callback if present.
|
|
@@ -133,6 +133,38 @@ export declare function clearOAuthParams(): void;
|
|
|
133
133
|
* Build an OAuth redirect URL for the given provider.
|
|
134
134
|
*/
|
|
135
135
|
export declare function buildOAuthRedirectUrl(provider: LoginMethod, spaceId: string, authUrl: string, returnUrl?: string): Promise<string>;
|
|
136
|
+
/**
|
|
137
|
+
* Where a sign-in through one of the space's SSO connections starts. `linkSessionToken` — the
|
|
138
|
+
* session this browser already holds — asks for the sign-in to join that account rather than make a
|
|
139
|
+
* new one (see {@link requestSsoLinkTicket}). Null when the browser cannot do PKCE: SSO takes only
|
|
140
|
+
* the code flow.
|
|
141
|
+
*/
|
|
142
|
+
export declare function buildSsoRedirectUrl(connectionId: string, spaceId: string, authUrl: string, options?: {
|
|
143
|
+
returnUrl?: string;
|
|
144
|
+
linkSessionToken?: string;
|
|
145
|
+
}): Promise<string | null>;
|
|
146
|
+
/** One of the space's SSO connections, as much as a sign-in screen needs to offer it. */
|
|
147
|
+
export interface SsoConnectionHint {
|
|
148
|
+
connectionId: string;
|
|
149
|
+
name: string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* The connections this host offers before anyone types anything — those its space bound to it. Empty
|
|
153
|
+
* on a generic host, and on any failure: the email field still works, so a lookup that did not
|
|
154
|
+
* happen must not stop the screen from rendering.
|
|
155
|
+
*/
|
|
156
|
+
export declare function findSsoConnectionsForHost(authUrl: string, host: string): Promise<SsoConnectionHint[]>;
|
|
157
|
+
/** The connection an address signs in through in this space, when its domain is proven to belong to one. */
|
|
158
|
+
export declare function discoverSsoConnection(authUrl: string, spaceId: string, email: string): Promise<SsoConnectionHint | null>;
|
|
159
|
+
/**
|
|
160
|
+
* A single-use ticket that lets the SSO sign-in about to start join the account this browser is
|
|
161
|
+
* signed in to, rather than making a new one. What a space that requires SSO sends someone through
|
|
162
|
+
* when they arrive signed in some other way; undefined when the account cannot be linked.
|
|
163
|
+
*
|
|
164
|
+
* Bound to `codeChallenge`: the sign-in must start with it, and the join is made only when this
|
|
165
|
+
* browser redeems the code with its verifier.
|
|
166
|
+
*/
|
|
167
|
+
export declare function requestSsoLinkTicket(authUrl: string, token: string, connectionId: string, codeChallenge: string): Promise<string | undefined>;
|
|
136
168
|
/**
|
|
137
169
|
* Check if passkey/WebAuthn is supported in the current browser.
|
|
138
170
|
*/
|
|
@@ -163,3 +195,4 @@ export declare function verifyPasskeyAuthentication(authUrl: string, response: A
|
|
|
163
195
|
* existed, which is also where app bundles shipping an older SDK copy stay.
|
|
164
196
|
*/
|
|
165
197
|
export declare function revokeSessionOnServer(token: string, authUrlOverride?: string): Promise<void>;
|
|
198
|
+
//# sourceMappingURL=auth-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-service.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/auth/auth-service.ts"],"names":[],"mappings":"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"}
|
package/auth/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export type { AuthConfig, AuthContextValue, AuthSession, AuthState, AuthUser, LoginMethod } from './types';
|
|
1
|
+
export type { AuthConfig, AuthContextValue, AuthMethod, AuthSession, AuthState, AuthUser, LoginMethod } from './types';
|
|
2
2
|
export { clearAuthSession, isSignedInBootLikely, loadAuthSession, saveAuthSession, sessionToUser } from './storage';
|
|
3
|
-
export { authenticateAnonymous, buildOAuthRedirectUrl, clearOAuthParams, describeAuthError, exchangeOAuthCode, getPasskeyAuthenticationOptions, getPasskeyRegistrationOptions, isPasskeySupported, parseOAuthCallback, parseOAuthCodeCallback, parseOAuthError, revokeSessionOnServer, sendLoginCode, verifyLoginCode, verifyPasskeyAuthentication, verifyPasskeyRegistration, type OAuthCallbackResult, type OAuthErrorResult, type SendLoginCodeOptions, type VerifyLoginCodeOptions, } from './auth-service';
|
|
3
|
+
export { authenticateAnonymous, buildOAuthRedirectUrl, buildSsoRedirectUrl, clearOAuthParams, describeAuthError, discoverSsoConnection, findSsoConnectionsForHost, requestSsoLinkTicket, type SsoConnectionHint, exchangeOAuthCode, getPasskeyAuthenticationOptions, getPasskeyRegistrationOptions, isPasskeySupported, parseOAuthCallback, parseOAuthCodeCallback, parseOAuthError, revokeSessionOnServer, sendLoginCode, verifyLoginCode, verifyPasskeyAuthentication, verifyPasskeyRegistration, type OAuthCallbackResult, type OAuthErrorResult, type SendLoginCodeOptions, type VerifyLoginCodeOptions, } from './auth-service';
|
|
4
4
|
export { AuthProvider, useAuth, useAuthOptional, type AuthProviderProps } from './auth-context';
|
|
5
5
|
export { useAuthGuard, type UseAuthGuardOptions, type UseAuthGuardResult } from './use-auth-guard';
|
|
6
|
-
export {
|
|
6
|
+
export { useSsoSignIn, type UseSsoSignInResult } from './use-sso-sign-in';
|
|
7
|
+
export { OAUTH_CONTINUE_PARAM, captureOAuthContinuation, completeOAuthContinuation, hasPendingOAuthContinuation, type OAuthContinuationOutcome } from './oauth-continuation';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/auth/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGvH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGpH,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,+BAA+B,EAC/B,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -23,6 +23,20 @@ export declare const OAUTH_CONTINUE_PARAM = "ikon-oauth";
|
|
|
23
23
|
*/
|
|
24
24
|
export declare function captureOAuthContinuation(): boolean;
|
|
25
25
|
export declare function hasPendingOAuthContinuation(): boolean;
|
|
26
|
+
export type OAuthContinuationOutcome =
|
|
27
|
+
/** The browser is on its way to the consent screen. */
|
|
28
|
+
{
|
|
29
|
+
status: 'handed-off';
|
|
30
|
+
}
|
|
31
|
+
/** The server said this person may not authorize here, and said why. Show it. */
|
|
32
|
+
| {
|
|
33
|
+
status: 'refused';
|
|
34
|
+
message: string;
|
|
35
|
+
}
|
|
36
|
+
/** Kept for a retry, or given up on — the pointer's own state says which. */
|
|
37
|
+
| {
|
|
38
|
+
status: 'pending';
|
|
39
|
+
};
|
|
26
40
|
/**
|
|
27
41
|
* Report the completed sign-in and hand the browser to the consent screen.
|
|
28
42
|
*
|
|
@@ -41,4 +55,5 @@ export declare function hasPendingOAuthContinuation(): boolean;
|
|
|
41
55
|
* keeps the pointer so a later attempt can succeed, while a refusal from the server clears it, because
|
|
42
56
|
* retrying a spent or expired authorization only traps the user in a flow that cannot finish.
|
|
43
57
|
*/
|
|
44
|
-
export declare function completeOAuthContinuation(token: string | null): Promise<
|
|
58
|
+
export declare function completeOAuthContinuation(token: string | null): Promise<OAuthContinuationOutcome>;
|
|
59
|
+
//# sourceMappingURL=oauth-continuation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-continuation.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/auth/oauth-continuation.ts"],"names":[],"mappings":"AACA,wGAAwG;AACxG,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAmBjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAelD;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAErD;AAWD,MAAM,MAAM,wBAAwB;AAClC,uDAAuD;AACrD;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE;AAC1B,iFAAiF;GAC/E;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACxC,6EAA6E;GAC3E;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAK1B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAuEvG"}
|
package/auth/storage.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../sdk/sdk-react-ui/src/auth/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAoDzE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUrD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAM1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAyBpD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAW9C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAOxE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,kBAAkB,GAAG,IAAI,CAiBlE;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAM9C;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAQ9C;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAe9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQtE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAM1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,CAQ5D"}
|