@capxul/sdk-react 4.20.0-beta.4 → 4.20.0-beta.40
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 +25 -7
- package/dist/index.d.mts +620 -569
- package/dist/index.mjs +3079 -2614
- package/dist/{controllers-DXmEHrnw.mjs → onboarding-controller-BCrkmLxQ.mjs} +292 -159
- package/dist/{controllers-BWmKRFy6.d.mts → onboarding-controller-DrJiYWfY.d.mts} +11 -19
- package/dist/testing/index.d.mts +5 -5
- package/dist/testing/index.mjs +1 -1
- package/package.json +40 -9
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as TransitionListener, C as CreateOrganizationFailure, D as OrganizationDetails, E as InvocationOptions, O as ProfileDetails, S as CapxulSend, T as Destination, _ as ReadyDestination, a as ActionResult, b as Slot, c as CapxulAuthenticationController, d as NavigationAction, f as OrgFailure, g as ProfileSlotProps, h as PendingAuthState, i as AccountProgress, k as SendResult, l as ControllerAction, m as OtpPendingState, n as OnboardingControllerProps, o as AuthenticatedState, p as OrgProgress, r as AccountFailure, s as AuthenticationSlots, t as CapxulOnboardingController, u as FaultedState, v as RetryAction, w as CreateOrganizationSubmission, x as CapxulAuth, y as SignedOutState } from "./onboarding-controller-DrJiYWfY.mjs";
|
|
2
|
+
import * as React from "react";
|
|
2
3
|
import { ReactNode, RefCallback } from "react";
|
|
3
4
|
import { QueryClient, UseMutationResult, UseQueryResult } from "@tanstack/react-query";
|
|
4
|
-
import { Account, AccountRequirement, ActivityAnnotation, ActivityAnnotationInput, ActivityDetail, ActivityKind, ActivityListParams, ActivityPage, ActivityPhase, ActivityRange, ActivityReference, ActorReference, AddressBookEntry, BudgetId, CapxulClient, CapxulError, CapxulResult, CapxulSigner,
|
|
5
|
-
//#region src/provider.d.ts
|
|
5
|
+
import { Account, AccountRequirement, ActivityAnnotation, ActivityAnnotationInput, ActivityDetail, ActivityItem, ActivityKind, ActivityListParams, ActivityPage, ActivityPhase, ActivityRange, ActivityReference, ActivitySummaryTotal, ActorReference, AddressBookEntry, AssetAmount, AssetId, BudgetId, CapxulClient, CapxulError, CapxulResult, CapxulSigner, CurrentHoldings, HostObservability, IdentityDestination, IdentityState, IdentityTransition, MemberView, Money, MoneyParseErrorReason, OrgId, OrganizationAccess, OrganizationOnboarding, OrganizationOnboardingInput, OrganizationPaymentBatchInput, OrganizationPaymentInput, Page, PartyId, Payment, PaymentDirection, PaymentDocumentDownload, PaymentDocumentReadRef, PaymentDocumentRef, PaymentDocumentRender, PaymentStatus, PaymentType, PaymentsPayInput, PayrollGroupId, PayrollGroupInput, PayrollRunId, PayrollRunStatus, Permission, PermissionMethods, PermissionReadResult, Profile, RoleView, StateLabel, SubmittedPermissionExecution, isClaimed, isRestoring } from "@capxul/sdk";
|
|
6
|
+
//#region src/platform/provider.d.ts
|
|
6
7
|
type CapxulProviderSharedProps = {
|
|
7
8
|
/** Bring your own QueryClient; otherwise the provider creates one. */
|
|
8
9
|
readonly queryClient?: QueryClient;
|
|
@@ -28,6 +29,11 @@ type CapxulProviderPublishableKeyProps = CapxulProviderSharedProps & {
|
|
|
28
29
|
* route cross-origin for the publishable key's allowed origins.
|
|
29
30
|
*/
|
|
30
31
|
readonly bootstrapBaseUrl?: string;
|
|
32
|
+
/**
|
|
33
|
+
* AUTH A3. Pass `"explicit"` on `/connect` so restore and OTP do not write
|
|
34
|
+
* Profile, Account, or invitations. Default automatic.
|
|
35
|
+
*/
|
|
36
|
+
readonly accountSetup?: "automatic" | "explicit";
|
|
31
37
|
};
|
|
32
38
|
/**
|
|
33
39
|
* Node / server / test path — a pre-built client is supplied; lifecycle stays
|
|
@@ -43,181 +49,151 @@ type CapxulProviderInjectedClientProps = CapxulProviderSharedProps & {
|
|
|
43
49
|
readonly bootstrapBaseUrl?: never;
|
|
44
50
|
};
|
|
45
51
|
type CapxulProviderProps = CapxulProviderPublishableKeyProps | CapxulProviderInjectedClientProps;
|
|
46
|
-
declare function CapxulProvider(props: CapxulProviderProps):
|
|
52
|
+
export declare function CapxulProvider(props: CapxulProviderProps): React.JSX.Element;
|
|
47
53
|
//#endregion
|
|
48
|
-
//#region src/
|
|
54
|
+
//#region src/platform/bootstrap-context.d.ts
|
|
49
55
|
type CapxulBootstrapStatus = "bootstrapping" | "ready" | "error";
|
|
50
56
|
interface CapxulBootstrapState {
|
|
51
57
|
readonly status: CapxulBootstrapStatus;
|
|
52
58
|
readonly error: CapxulError | null;
|
|
53
59
|
readonly retry: () => void;
|
|
54
60
|
}
|
|
55
|
-
declare function useCapxul(): CapxulBootstrapState;
|
|
61
|
+
export declare function useCapxul(): CapxulBootstrapState;
|
|
56
62
|
//#endregion
|
|
57
|
-
//#region src/
|
|
63
|
+
//#region src/platform/client-context.d.ts
|
|
58
64
|
/**
|
|
59
65
|
* Returns the client, or `null` while `<CapxulProvider>` is still bootstrapping.
|
|
60
66
|
* Data hooks use this so they can sit in `isPending` (disabled query) until the
|
|
61
67
|
* client resolves, rather than throwing during bootstrap.
|
|
62
68
|
*/
|
|
63
|
-
declare function useCapxulClientOrNull(): CapxulClient | null;
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region src/hooks/use-capxul-profile.d.ts
|
|
66
|
-
type UseCapxulProfileReturn = UseQueryResult<Profile | null, CapxulError>;
|
|
67
|
-
declare function useCapxulProfile(): UseCapxulProfileReturn;
|
|
68
|
-
//#endregion
|
|
69
|
-
//#region src/hooks/use-capxul-account-balance.d.ts
|
|
70
|
-
type UseCapxulAccountBalanceReturn = UseQueryResult<Account, CapxulError>;
|
|
71
|
-
type UseCapxulAccountBalanceOptions = {
|
|
72
|
-
/** When false, skips the Convex readBalance action until the account ladder is ready. */
|
|
73
|
-
readonly enabled?: boolean;
|
|
74
|
-
};
|
|
75
|
-
declare function useCapxulAccountBalance(options?: UseCapxulAccountBalanceOptions): UseCapxulAccountBalanceReturn;
|
|
76
|
-
//#endregion
|
|
77
|
-
//#region src/hooks/use-capxul-account-fund.d.ts
|
|
78
|
-
type UseCapxulAccountFundReturn = UseMutationResult<{
|
|
79
|
-
readonly txHash: string;
|
|
80
|
-
}, CapxulError, Money>;
|
|
81
|
-
declare function useCapxulAccountFund(): UseCapxulAccountFundReturn;
|
|
82
|
-
//#endregion
|
|
83
|
-
//#region src/hooks/use-capxul-money.d.ts
|
|
84
|
-
type CapxulPayIntent = PaymentsPayInput;
|
|
85
|
-
type UseCapxulPayReturn = UseMutationResult<Payment, CapxulError, CapxulPayIntent>;
|
|
86
|
-
declare function useCapxulPay(): UseCapxulPayReturn;
|
|
87
|
-
type UseCapxulCreateCommitmentReturn = UseMutationResult<Payment, CapxulError, PaymentsPayInput & {
|
|
88
|
-
readonly timing: Exclude<PaymentTiming, {
|
|
89
|
-
readonly kind: "instant";
|
|
90
|
-
}>;
|
|
91
|
-
}>;
|
|
92
|
-
declare function useCapxulCreateCommitment(): UseCapxulCreateCommitmentReturn;
|
|
93
|
-
declare const useCapxulClaimPayment: () => UseMutationResult<Payment, CapxulError, string>;
|
|
94
|
-
declare const useCapxulCancelPayment: () => UseMutationResult<Payment, CapxulError, string>;
|
|
95
|
-
type UseCapxulRedirectPaymentReturn = UseMutationResult<Payment, CapxulError, Parameters<import("@capxul/sdk").PaymentsMethods["redirect"]>[0]>;
|
|
96
|
-
declare function useCapxulRedirectPayment(): UseCapxulRedirectPaymentReturn;
|
|
97
|
-
type UseCapxulPaymentsReturn = UseQueryResult<readonly Payment[], CapxulError>;
|
|
98
|
-
declare function useCapxulPayments(options?: {
|
|
99
|
-
readonly enabled?: boolean;
|
|
100
|
-
}): UseCapxulPaymentsReturn;
|
|
101
|
-
type UseCapxulPaymentReturn = UseQueryResult<Payment | null, CapxulError>;
|
|
102
|
-
declare function useCapxulPayment(paymentId: string | undefined, options?: {
|
|
103
|
-
readonly enabled?: boolean;
|
|
104
|
-
}): UseCapxulPaymentReturn;
|
|
105
|
-
//#endregion
|
|
106
|
-
//#region src/hooks/use-capxul-organization-payments.d.ts
|
|
107
|
-
/**
|
|
108
|
-
* `orgId` may be absent because a screen has no branded org id until its org
|
|
109
|
-
* context loads (`OrgView.id` is the branded one). An absent id refuses the
|
|
110
|
-
* mutation the way every other org read refuses one, rather than forcing a
|
|
111
|
-
* `as OrgId` cast at the call site.
|
|
112
|
-
*/
|
|
113
|
-
declare function useCapxulOrganizationPay(orgId: OrgId | undefined): UseMutationResult<Payment, CapxulError, OrganizationPaymentInput>;
|
|
114
|
-
declare function useCapxulOrganizationPayBatch(orgId: OrgId): UseMutationResult<readonly Payment[], CapxulError, OrganizationPaymentBatchInput>;
|
|
115
|
-
//#endregion
|
|
116
|
-
//#region src/hooks/use-capxul-permissions.d.ts
|
|
117
|
-
type Operation = "create" | "change" | "assign" | "revoke" | "replace";
|
|
118
|
-
type Input<K extends Operation> = Parameters<PermissionMethods[K]>[0];
|
|
119
|
-
declare const useCapxulPermissionCreate: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"create">>;
|
|
120
|
-
declare const useCapxulPermissionChange: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"change">>;
|
|
121
|
-
declare const useCapxulPermissionAssign: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"assign">>;
|
|
122
|
-
declare const useCapxulPermissionRevoke: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"revoke">>;
|
|
123
|
-
declare const useCapxulPermissionReplace: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"replace">>;
|
|
124
|
-
declare function useCapxulPermissions(orgId: OrgId, options?: {
|
|
125
|
-
readonly enabled?: boolean;
|
|
126
|
-
}): UseQueryResult<PermissionReadResult, CapxulError>;
|
|
127
|
-
declare function useCapxulPermission(orgId: OrgId, permissionId: string | undefined): UseQueryResult<Permission | null, CapxulError>;
|
|
69
|
+
export declare function useCapxulClientOrNull(): CapxulClient | null;
|
|
128
70
|
//#endregion
|
|
129
|
-
//#region src/
|
|
130
|
-
declare function
|
|
131
|
-
declare function
|
|
132
|
-
declare function
|
|
71
|
+
//#region src/platform/identity.d.ts
|
|
72
|
+
export declare function useCapxulIdentity(): IdentityState;
|
|
73
|
+
export declare function useCapxulSend(): CapxulSend;
|
|
74
|
+
export declare function useCapxulAuth(): CapxulAuth;
|
|
75
|
+
export declare function useCapxulDestination(): Destination | null;
|
|
76
|
+
export declare function useCapxulTransitions(listener: TransitionListener): void;
|
|
77
|
+
export declare const entered: (record: IdentityTransition, target: StateLabel) => boolean;
|
|
133
78
|
//#endregion
|
|
134
|
-
//#region src/
|
|
135
|
-
interface
|
|
136
|
-
|
|
137
|
-
readonly
|
|
79
|
+
//#region src/access/use-client-connection.d.ts
|
|
80
|
+
interface OtpSlice {
|
|
81
|
+
readonly email: string;
|
|
82
|
+
readonly pending: boolean;
|
|
83
|
+
readonly canResend: boolean;
|
|
84
|
+
readonly verifyCode: (code: string) => Promise<void>;
|
|
85
|
+
readonly resend: () => Promise<void>;
|
|
86
|
+
}
|
|
87
|
+
interface ConsentSlice {
|
|
88
|
+
readonly verifiedEmail: string;
|
|
89
|
+
readonly clientLabel: string;
|
|
90
|
+
readonly scopeCodes: readonly string[];
|
|
91
|
+
readonly purpose: "login" | "signup";
|
|
92
|
+
readonly setupState: "not_required" | "new" | "resumable";
|
|
93
|
+
readonly pending: boolean;
|
|
94
|
+
readonly accept: () => Promise<void>;
|
|
95
|
+
readonly cancel: () => Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
interface CompleteSlice {
|
|
98
|
+
readonly outcome: "connected";
|
|
99
|
+
}
|
|
100
|
+
interface FailureSlice {
|
|
101
|
+
readonly code: string;
|
|
102
|
+
readonly field?: string;
|
|
103
|
+
readonly retry: () => Promise<void>;
|
|
104
|
+
readonly cancel: () => Promise<void>;
|
|
138
105
|
}
|
|
139
|
-
declare function useCapxulHoldings(params?: UseCapxulHoldingsParams): UseQueryResult<CurrentHoldings, CapxulError>;
|
|
140
|
-
//#endregion
|
|
141
|
-
//#region src/hooks/use-capxul-orgs.d.ts
|
|
142
|
-
/**
|
|
143
|
-
* List the Organizations that the current user can access. Binds directly to
|
|
144
|
-
* the locked `capxul.orgs()` SDK method.
|
|
145
|
-
*/
|
|
146
|
-
type UseCapxulOrgsReturn = UseQueryResult<readonly OrgView[], CapxulError>;
|
|
147
|
-
type UseCapxulOrgsOptions = {
|
|
148
|
-
/**
|
|
149
|
-
* Gate the query on auth readiness. `client.orgs()` is a session-scoped
|
|
150
|
-
* authenticated read; firing it before the session token settles surfaces a
|
|
151
|
-
* spurious `NOT_AUTHENTICATED`. Consumers pass `enabled: <auth-ready>`.
|
|
152
|
-
* Defaults to `true` to preserve the bare `useCapxulOrgs()` call shape.
|
|
153
|
-
*/
|
|
154
|
-
readonly enabled?: boolean;
|
|
155
|
-
};
|
|
156
|
-
declare function useCapxulOrgs(options?: UseCapxulOrgsOptions): UseCapxulOrgsReturn;
|
|
157
|
-
//#endregion
|
|
158
|
-
//#region src/hooks/use-capxul-org-members.d.ts
|
|
159
|
-
type UseCapxulOrgMembersOptions = {
|
|
160
|
-
readonly enabled?: boolean;
|
|
161
|
-
};
|
|
162
|
-
/**
|
|
163
|
-
* List the members of one Organization. Binds directly to
|
|
164
|
-
* `capxul.org(orgId).members()`. Gated by
|
|
165
|
-
* `orgId !== undefined`; callers may additionally gate on canonical identity
|
|
166
|
-
* readiness through `options.enabled`.
|
|
167
|
-
*/
|
|
168
|
-
type UseCapxulOrgMembersReturn = UseQueryResult<readonly MemberView[], CapxulError>;
|
|
169
|
-
declare function useCapxulOrgMembers(orgId: OrgId | undefined, options?: UseCapxulOrgMembersOptions): UseCapxulOrgMembersReturn;
|
|
170
106
|
//#endregion
|
|
171
|
-
//#region src/
|
|
172
|
-
|
|
173
|
-
readonly
|
|
107
|
+
//#region src/access/client-connection.d.ts
|
|
108
|
+
interface CapxulClientConnectionProps {
|
|
109
|
+
readonly client: CapxulClient;
|
|
110
|
+
readonly requestId: string;
|
|
111
|
+
readonly children: ReactNode;
|
|
112
|
+
}
|
|
113
|
+
declare function Root$7({ client, requestId, children }: CapxulClientConnectionProps): import("react").JSX.Element;
|
|
114
|
+
declare function Checking$1({ children }: {
|
|
115
|
+
readonly children: ReactNode;
|
|
116
|
+
}): import("react").JSX.Element | null;
|
|
117
|
+
declare function Otp({ children }: {
|
|
118
|
+
readonly children: (slice: OtpSlice) => ReactNode;
|
|
119
|
+
}): import("react").JSX.Element | null;
|
|
120
|
+
declare function Consent({ children }: {
|
|
121
|
+
readonly children: (slice: ConsentSlice) => ReactNode;
|
|
122
|
+
}): import("react").JSX.Element | null;
|
|
123
|
+
declare function Complete({ children }: {
|
|
124
|
+
readonly children: (slice: CompleteSlice) => ReactNode;
|
|
125
|
+
}): import("react").JSX.Element | null;
|
|
126
|
+
declare function Failure({ children }: {
|
|
127
|
+
readonly children: (slice: FailureSlice) => ReactNode;
|
|
128
|
+
}): import("react").JSX.Element | null;
|
|
129
|
+
export declare const CapxulClientConnection: typeof Root$7 & {
|
|
130
|
+
Checking: typeof Checking$1;
|
|
131
|
+
Otp: typeof Otp;
|
|
132
|
+
Consent: typeof Consent;
|
|
133
|
+
Complete: typeof Complete;
|
|
134
|
+
Failure: typeof Failure;
|
|
174
135
|
};
|
|
175
|
-
/**
|
|
176
|
-
* List the roles for one Organization. Binds directly
|
|
177
|
-
* to `capxul.org(orgId).roles()`. Gated by `orgId !== undefined`.
|
|
178
|
-
*/
|
|
179
|
-
type UseCapxulOrgRolesReturn = UseQueryResult<readonly RoleView[], CapxulError>;
|
|
180
|
-
declare function useCapxulOrgRoles(orgId: OrgId | undefined, options?: UseCapxulOrgRolesOptions): UseCapxulOrgRolesReturn;
|
|
181
136
|
//#endregion
|
|
182
|
-
//#region src/
|
|
183
|
-
type
|
|
184
|
-
readonly
|
|
137
|
+
//#region src/access/dashboard-access.d.ts
|
|
138
|
+
type DashboardScope = {
|
|
139
|
+
readonly kind: "personal";
|
|
140
|
+
} | {
|
|
141
|
+
readonly kind: "organization";
|
|
142
|
+
readonly orgId?: string;
|
|
185
143
|
};
|
|
144
|
+
type DashboardAccessPhase = "checking" | "error" | "redirect" | "granted";
|
|
186
145
|
/**
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
//#endregion
|
|
194
|
-
//#region src/hooks/use-capxul-create-org.d.ts
|
|
195
|
-
/**
|
|
196
|
-
* Create an Organization. Binds directly to the
|
|
197
|
-
* `capxul.createOrg(input)` SDK method. On success, invalidates the org list.
|
|
146
|
+
* Which probe produced the error the screen is showing. The
|
|
147
|
+
* error code alone cannot say: a provider failure reads the same whether the
|
|
148
|
+
* session read, the membership list or the lifecycle read raised it, and a
|
|
149
|
+
* consumer that reports a displayed gate error has to keep those apart
|
|
150
|
+
* (#1963 R05-2). It names the SOURCE only; `retry` still re-runs every failed
|
|
151
|
+
* probe, exactly as before.
|
|
198
152
|
*/
|
|
199
|
-
type
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
153
|
+
type DashboardAccessProbe = "session" | "membership" | "lifecycle" | "authority";
|
|
154
|
+
interface DashboardAccessErrorSlice {
|
|
155
|
+
readonly error: CapxulError;
|
|
156
|
+
/** The probe the surfaced error came from, in the frozen precedence order. */
|
|
157
|
+
readonly probe: DashboardAccessProbe;
|
|
158
|
+
/** Re-runs each failed probe. */
|
|
159
|
+
readonly retry: () => void;
|
|
160
|
+
}
|
|
161
|
+
interface DashboardAccessRedirectSlice {
|
|
162
|
+
readonly destination: IdentityDestination;
|
|
163
|
+
}
|
|
164
|
+
interface CapxulDashboardAccessProps {
|
|
165
|
+
readonly scope: DashboardScope;
|
|
166
|
+
readonly children: ReactNode;
|
|
167
|
+
}
|
|
168
|
+
declare function Root$6({ scope, children }: CapxulDashboardAccessProps): import("react").JSX.Element;
|
|
169
|
+
/** Hands nothing — today's app renders `null` here, exactly as it does now. */
|
|
170
|
+
declare function Checking({ children }: {
|
|
171
|
+
readonly children?: ReactNode;
|
|
172
|
+
}): import("react").JSX.Element | null;
|
|
173
|
+
declare function DashboardError({ children }: {
|
|
174
|
+
readonly children: (slice: DashboardAccessErrorSlice) => ReactNode;
|
|
175
|
+
}): import("react").JSX.Element | null;
|
|
203
176
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
177
|
+
* Hands the destination and draws nothing. Reaching this part is a REQUEST to
|
|
178
|
+
* navigate, never an arrival: the app may cancel or supersede it, so nothing
|
|
179
|
+
* here — and nothing a consumer hangs off it — may claim a completed redirect
|
|
180
|
+
* (#1963 R05-1). The destination page's own normalized pageview proves arrival.
|
|
208
181
|
*/
|
|
209
|
-
|
|
210
|
-
readonly
|
|
182
|
+
declare function Redirect({ children }: {
|
|
183
|
+
readonly children: (slice: DashboardAccessRedirectSlice) => ReactNode;
|
|
184
|
+
}): import("react").JSX.Element | null;
|
|
185
|
+
declare function Granted({ children }: {
|
|
186
|
+
readonly children?: ReactNode;
|
|
187
|
+
}): import("react").JSX.Element | null;
|
|
188
|
+
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
189
|
+
export declare const CapxulDashboardAccess: typeof Root$6 & {
|
|
190
|
+
Checking: typeof Checking;
|
|
191
|
+
Error: typeof DashboardError;
|
|
192
|
+
Redirect: typeof Redirect;
|
|
193
|
+
Granted: typeof Granted;
|
|
211
194
|
};
|
|
212
|
-
/**
|
|
213
|
-
* Invite a member to an Organization by email. The hook uses the closed-over `orgId`.
|
|
214
|
-
* It binds directly to
|
|
215
|
-
* `capxul.org(orgId).invite(input)`. On success, invalidates the member list.
|
|
216
|
-
*/
|
|
217
|
-
type UseCapxulInviteMemberReturn = UseMutationResult<MemberView, CapxulError, UseCapxulInviteMemberInput>;
|
|
218
|
-
declare function useCapxulInviteMember(orgId: OrgId | undefined): UseCapxulInviteMemberReturn;
|
|
219
195
|
//#endregion
|
|
220
|
-
//#region src/
|
|
196
|
+
//#region src/profiles/journey-state.d.ts
|
|
221
197
|
type OnboardingIntent = "personal" | "organization";
|
|
222
198
|
type OnboardingStep = "profile" | "organization" | "provisioning";
|
|
223
199
|
type PayoutDraftChain = "evm" | "solana" | "starknet";
|
|
@@ -275,40 +251,40 @@ type OnboardingJourneyPosition = {
|
|
|
275
251
|
readonly organizationId?: string;
|
|
276
252
|
readonly verification: boolean;
|
|
277
253
|
};
|
|
278
|
-
declare function startOnboardingJourney(input: {
|
|
254
|
+
export declare function startOnboardingJourney(input: {
|
|
279
255
|
readonly intent: OnboardingIntent;
|
|
280
256
|
readonly ownerId: string;
|
|
281
257
|
readonly entryPoint: "signup" | "dashboard";
|
|
282
258
|
readonly origin?: OnboardingOrigin;
|
|
283
259
|
readonly step?: OnboardingStep;
|
|
284
260
|
}): OnboardingJourney;
|
|
285
|
-
declare function loadOnboardingJourney(expectedOwnerId?: string): OnboardingJourney | null;
|
|
286
|
-
declare function saveOnboardingJourney(journey: OnboardingJourney): void;
|
|
287
|
-
declare function currentOnboardingJourneyId(): string | undefined;
|
|
261
|
+
export declare function loadOnboardingJourney(expectedOwnerId?: string): OnboardingJourney | null;
|
|
262
|
+
export declare function saveOnboardingJourney(journey: OnboardingJourney): void;
|
|
263
|
+
export declare function currentOnboardingJourneyId(): string | undefined;
|
|
288
264
|
/** Stop observation attribution while no authenticated owner is established. */
|
|
289
|
-
declare function invalidateOnboardingJourneyObservation(): void;
|
|
265
|
+
export declare function invalidateOnboardingJourneyObservation(): void;
|
|
290
266
|
/** Where the journey stands — the pure position apps map to their routes. */
|
|
291
|
-
declare function onboardingJourneyPosition(journey: OnboardingJourney): OnboardingJourneyPosition;
|
|
267
|
+
export declare function onboardingJourneyPosition(journey: OnboardingJourney): OnboardingJourneyPosition;
|
|
292
268
|
/**
|
|
293
269
|
* The interruption-recovery decision (behavior map §4): a journey that does
|
|
294
270
|
* not match the ready destination the app just rendered must resume; a
|
|
295
271
|
* matching one needs no recovery. Returns the journey to resume, or null.
|
|
296
272
|
*/
|
|
297
|
-
declare function activeOnboardingRecovery(ownerId: string, renderedReadyDestination?: {
|
|
273
|
+
export declare function activeOnboardingRecovery(ownerId: string, renderedReadyDestination?: {
|
|
298
274
|
readonly kind: "personal";
|
|
299
275
|
} | {
|
|
300
276
|
readonly kind: "organization";
|
|
301
277
|
readonly organizationId: string;
|
|
302
278
|
}): OnboardingJourney | null;
|
|
303
|
-
declare function acknowledgeOnboardingDestination(destination: {
|
|
279
|
+
export declare function acknowledgeOnboardingDestination(destination: {
|
|
304
280
|
readonly kind: "personal";
|
|
305
281
|
} | {
|
|
306
282
|
readonly kind: "organization";
|
|
307
283
|
readonly organizationId: string;
|
|
308
284
|
}, ownerId: string): boolean;
|
|
309
|
-
declare function clearOnboardingJourney(): void;
|
|
285
|
+
export declare function clearOnboardingJourney(): void;
|
|
310
286
|
//#endregion
|
|
311
|
-
//#region src/
|
|
287
|
+
//#region src/profiles/use-capxul-handle-availability.d.ts
|
|
312
288
|
type HandleAvailability = {
|
|
313
289
|
readonly available: boolean;
|
|
314
290
|
readonly normalized: string;
|
|
@@ -321,159 +297,191 @@ type UseCapxulHandleAvailabilityReturn = UseQueryResult<HandleAvailability, Capx
|
|
|
321
297
|
* boundary's message), not as `available: false` — only a handle someone
|
|
322
298
|
* else owns is "taken".
|
|
323
299
|
*/
|
|
324
|
-
declare function useCapxulHandleAvailability(handle: string, options?: {
|
|
300
|
+
export declare function useCapxulHandleAvailability(handle: string, options?: {
|
|
325
301
|
readonly enabled?: boolean;
|
|
326
302
|
readonly debounceMs?: number;
|
|
327
303
|
}): UseCapxulHandleAvailabilityReturn;
|
|
328
304
|
//#endregion
|
|
329
|
-
//#region src/
|
|
330
|
-
type
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
readonly
|
|
338
|
-
readonly target: ImageUploadTarget;
|
|
305
|
+
//#region src/profiles/use-capxul-profile.d.ts
|
|
306
|
+
type UseCapxulProfileReturn = UseQueryResult<Profile | null, CapxulError>;
|
|
307
|
+
export declare function useCapxulProfile(): UseCapxulProfileReturn;
|
|
308
|
+
//#endregion
|
|
309
|
+
//#region src/accounts/use-capxul-account-balance.d.ts
|
|
310
|
+
type UseCapxulAccountBalanceReturn = UseQueryResult<Account, CapxulError>;
|
|
311
|
+
type UseCapxulAccountBalanceOptions = {
|
|
312
|
+
/** When false, skips the Convex readBalance action until the account ladder is ready. */
|
|
313
|
+
readonly enabled?: boolean;
|
|
339
314
|
};
|
|
340
|
-
|
|
341
|
-
readonly url: string | null;
|
|
342
|
-
}, CapxulError, ImageUploadInput>;
|
|
343
|
-
/**
|
|
344
|
-
* #1061 / ADR-0014: the whole upload→record sequence as one mutation —
|
|
345
|
-
* upload the blob, then bind the returned storage id to the profile image or
|
|
346
|
-
* the org logo. The url is the resolved serving URL (re-read from queries,
|
|
347
|
-
* never persisted by consumers).
|
|
348
|
-
*/
|
|
349
|
-
declare function useCapxulImageUpload(): UseCapxulImageUploadReturn;
|
|
315
|
+
export declare function useCapxulAccountBalance(options?: UseCapxulAccountBalanceOptions): UseCapxulAccountBalanceReturn;
|
|
350
316
|
//#endregion
|
|
351
|
-
//#region src/
|
|
352
|
-
type
|
|
353
|
-
readonly
|
|
354
|
-
}, CapxulError,
|
|
355
|
-
|
|
356
|
-
* #1955: upload only. Hands back the storage id for a CREATE call to carry
|
|
357
|
-
* (`ProfileDetails.imageStorageId`, `OrganizationDetails.logoStorageId`).
|
|
358
|
-
*
|
|
359
|
-
* `useCapxulImageUpload` is upload+bind and stays as it is for the settings
|
|
360
|
-
* pages. It cannot serve onboarding: the row it binds to does not exist yet.
|
|
361
|
-
* Nothing is bound here, so nothing is invalidated either — the create call
|
|
362
|
-
* that carries the id owns the cache change.
|
|
363
|
-
*/
|
|
364
|
-
declare function useCapxulUploadImage(): UseCapxulUploadImageReturn;
|
|
317
|
+
//#region src/accounts/use-capxul-account-fund.d.ts
|
|
318
|
+
type UseCapxulAccountFundReturn = UseMutationResult<{
|
|
319
|
+
readonly txHash: string;
|
|
320
|
+
}, CapxulError, AssetAmount>;
|
|
321
|
+
export declare function useCapxulAccountFund(): UseCapxulAccountFundReturn;
|
|
365
322
|
//#endregion
|
|
366
|
-
//#region src/
|
|
367
|
-
|
|
323
|
+
//#region src/accounts/use-capxul-holdings.d.ts
|
|
324
|
+
interface UseCapxulHoldingsParams {
|
|
325
|
+
/** Omitted = the signed-in person. SDK core already accepts one. */
|
|
326
|
+
readonly actor?: ActorReference;
|
|
327
|
+
}
|
|
328
|
+
export declare function useCapxulHoldings(params?: UseCapxulHoldingsParams): UseQueryResult<CurrentHoldings, CapxulError>;
|
|
329
|
+
//#endregion
|
|
330
|
+
//#region src/payments/use-recipient-resolution.d.ts
|
|
331
|
+
type SendMoneyRecipientStatus = "empty" | "invalid" | "checking" | "known-party" | "new-email" | "external-warning" | "external-ready" | "not-found" | "failed";
|
|
332
|
+
interface SendMoneyRecipientSlice {
|
|
333
|
+
readonly value: string;
|
|
334
|
+
readonly change: (text: string) => void;
|
|
335
|
+
readonly status: SendMoneyRecipientStatus;
|
|
336
|
+
readonly label: string | null;
|
|
337
|
+
readonly kind: "person" | "organization" | "external_address" | "unresolved" | null;
|
|
338
|
+
readonly isCapxulAccount: boolean | null;
|
|
339
|
+
readonly publicValue: string | null;
|
|
340
|
+
readonly requiresAcknowledgement: boolean;
|
|
341
|
+
readonly acknowledgeExternalAddress: () => void;
|
|
342
|
+
}
|
|
343
|
+
//#endregion
|
|
344
|
+
//#region src/payments/send-money-slices.d.ts
|
|
345
|
+
type SendActor = {
|
|
368
346
|
readonly kind: "personal";
|
|
369
347
|
} | {
|
|
370
348
|
readonly kind: "organization";
|
|
371
349
|
readonly orgId: OrgId | undefined;
|
|
372
350
|
};
|
|
351
|
+
type SentPayment = {
|
|
352
|
+
/** The backend payment row. */
|
|
353
|
+
readonly payment: Payment;
|
|
354
|
+
/** What we parsed and sent — `.value` is the comma-stripped major-unit string. */
|
|
355
|
+
readonly amount: AssetAmount;
|
|
356
|
+
/** The trimmed text the person typed — the app's success toast interpolates it. */
|
|
357
|
+
readonly recipient: string;
|
|
358
|
+
};
|
|
373
359
|
/**
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
* cannot carry (ADR-0022 R2; #1532 owns the definition site).
|
|
377
|
-
*/
|
|
378
|
-
type ContactRelationship = AddressBookEntry["relationship"][number];
|
|
379
|
-
interface Contact {
|
|
380
|
-
/**
|
|
381
|
-
* The counterparty's `PartyId` — created once and claimed at signup, never
|
|
382
|
-
* re-keyed (ADR-0022 R1/R3). No email, no prefix, nothing to parse.
|
|
383
|
-
*/
|
|
384
|
-
readonly id: PartyId;
|
|
385
|
-
/** The saved label when there is one, else the party's display name. */
|
|
386
|
-
readonly name: string;
|
|
387
|
-
readonly relationship: readonly ContactRelationship[];
|
|
388
|
-
readonly hidden: boolean;
|
|
389
|
-
/** Epoch milliseconds. The seam never formats a date; the app writes the words. */
|
|
390
|
-
readonly lastActivityAt: number;
|
|
391
|
-
}
|
|
392
|
-
interface ContactRow extends Contact {
|
|
393
|
-
/** Ours: one initials rule, not one copy per screen. */
|
|
394
|
-
readonly initials: string;
|
|
395
|
-
readonly rename: (name: string, options?: InvocationOptions) => void;
|
|
396
|
-
readonly hide: (options?: InvocationOptions) => void;
|
|
397
|
-
readonly unhide: (options?: InvocationOptions) => void;
|
|
398
|
-
}
|
|
399
|
-
/** ADR-0023 R1: refusal CODES, never sentences — the app owns the words. */
|
|
400
|
-
type ContactsRefusal = "loading" | "org-unavailable" | "unavailable";
|
|
401
|
-
/**
|
|
402
|
-
* The blocked facts, in the fixed order `.Add.blockedReason` names them.
|
|
403
|
-
* `"no-permission"` is absent by ruling, not by omission: the org screen places
|
|
404
|
-
* `CapxulOrgMember.Can do="managePeople"` around its own Add control.
|
|
360
|
+
* Refusal CODES, never sentences (#1447 ruling 8). The app maps each code to
|
|
361
|
+
* the words it already prints; no English refusal string ships from here.
|
|
405
362
|
*/
|
|
406
|
-
type
|
|
363
|
+
type CapxulSendMoneyBlockedReason = "signer-not-ready" | "amount-invalid" | "recipient-unresolved" | "no-source" | "no-asset";
|
|
407
364
|
/**
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
*
|
|
411
|
-
*
|
|
365
|
+
* One Budget the member can spend from — the id the payment carries, and
|
|
366
|
+
* nothing else.
|
|
367
|
+
*
|
|
368
|
+
* THE CONTRACT (amended 3) reverses amendment 7: the From row keeps the app's
|
|
369
|
+
* frozen `"<Org> Treasury"` string, and no budget label and no limit display
|
|
370
|
+
* cross this seam until the budgets build ships a remaining figure that is
|
|
371
|
+
* actually computable (ADR-0024 R3). The app already holds the org name and
|
|
372
|
+
* already builds that sentence today, so the option carries only what the app
|
|
373
|
+
* cannot know — which Budget the send is drawn from.
|
|
412
374
|
*/
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
readonly total: number | null;
|
|
416
|
-
readonly activeCount: number | null;
|
|
417
|
-
readonly isLoading: boolean;
|
|
418
|
-
readonly reason: ContactsRefusal | null;
|
|
419
|
-
}
|
|
420
|
-
interface ContactsListSlice {
|
|
421
|
-
readonly rows: readonly ContactRow[];
|
|
422
|
-
readonly isLoading: boolean;
|
|
423
|
-
readonly reason: ContactsRefusal | null;
|
|
375
|
+
interface SendMoneySourceOption {
|
|
376
|
+
readonly id: BudgetId;
|
|
424
377
|
}
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
readonly
|
|
378
|
+
/** ADR-0023 R1: a code, never a sentence — the app owns the words. */
|
|
379
|
+
type SendMoneySourceError = "read-failed";
|
|
380
|
+
interface SendMoneySourceSlice {
|
|
381
|
+
readonly options: ReadonlyArray<SendMoneySourceOption>;
|
|
382
|
+
readonly selected: SendMoneySourceOption | null;
|
|
383
|
+
readonly select: (id: string) => void;
|
|
384
|
+
readonly error: SendMoneySourceError | null;
|
|
385
|
+
readonly isPending: boolean;
|
|
429
386
|
}
|
|
430
|
-
interface
|
|
387
|
+
interface SendMoneyAssetOption {
|
|
388
|
+
readonly id: AssetId;
|
|
389
|
+
readonly symbol: string;
|
|
390
|
+
readonly availableDisplay: string;
|
|
391
|
+
}
|
|
392
|
+
/** ADR-0023 R1: a code, never a sentence — the app owns the words. */
|
|
393
|
+
type SendMoneyAssetError = "read-failed";
|
|
394
|
+
interface SendMoneyAssetSlice {
|
|
395
|
+
readonly options: ReadonlyArray<SendMoneyAssetOption>;
|
|
396
|
+
readonly selected: SendMoneyAssetOption | null;
|
|
397
|
+
readonly select: (id: string) => void;
|
|
398
|
+
readonly error: SendMoneyAssetError | null;
|
|
399
|
+
readonly isPending: boolean;
|
|
400
|
+
}
|
|
401
|
+
interface SendMoneyAmountSlice {
|
|
431
402
|
readonly value: string;
|
|
432
403
|
readonly change: (text: string) => void;
|
|
433
|
-
/**
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
readonly submit: (options?: InvocationOptions) => void;
|
|
404
|
+
/** ADR-0023 R1: the parse verdict as a closed code; the app maps it to copy. */
|
|
405
|
+
readonly error: MoneyParseErrorReason | null;
|
|
406
|
+
readonly availableDisplay: string | null;
|
|
407
|
+
}
|
|
408
|
+
interface SendMoneyActionsSlice {
|
|
409
|
+
readonly submit: () => void;
|
|
440
410
|
readonly isSubmitting: boolean;
|
|
441
411
|
readonly blocked: boolean;
|
|
442
|
-
readonly blockedReason:
|
|
443
|
-
readonly error: ContactsAddError | null;
|
|
412
|
+
readonly blockedReason: CapxulSendMoneyBlockedReason | null;
|
|
444
413
|
}
|
|
445
414
|
//#endregion
|
|
446
|
-
//#region src/
|
|
447
|
-
interface
|
|
448
|
-
readonly actor:
|
|
449
|
-
|
|
450
|
-
* `options` is exactly what the caller handed `.Add.submit` or a row verb, so
|
|
451
|
-
* the screen's own observation of the finished action can reuse the attempt
|
|
452
|
-
* identity the SDK operation ran under (#1960 R02).
|
|
453
|
-
*/
|
|
454
|
-
readonly onAdded: (contact: Contact, options?: InvocationOptions) => void;
|
|
415
|
+
//#region src/payments/send-money.d.ts
|
|
416
|
+
interface CapxulSendMoneyProps {
|
|
417
|
+
readonly actor: SendActor;
|
|
418
|
+
readonly onSent: (sent: SentPayment) => void;
|
|
455
419
|
/** ADR-0023 R1: the app maps `error.code` to its own copy; no SDK sentence. */
|
|
456
|
-
readonly onFailed: (error: CapxulError
|
|
420
|
+
readonly onFailed: (error: CapxulError) => void;
|
|
457
421
|
readonly children: ReactNode;
|
|
458
422
|
}
|
|
459
|
-
declare function Root$
|
|
460
|
-
declare function
|
|
461
|
-
readonly children: (slice:
|
|
462
|
-
}): import("react
|
|
463
|
-
declare function
|
|
464
|
-
readonly children: (slice:
|
|
465
|
-
}): import("react
|
|
466
|
-
declare function
|
|
467
|
-
readonly children: (slice:
|
|
468
|
-
}): import("react
|
|
423
|
+
declare function Root$5({ actor, onSent, onFailed, children }: CapxulSendMoneyProps): import("react").JSX.Element;
|
|
424
|
+
declare function Source({ children }: {
|
|
425
|
+
readonly children: (slice: SendMoneySourceSlice) => ReactNode;
|
|
426
|
+
}): import("react").JSX.Element;
|
|
427
|
+
declare function Asset$1({ children }: {
|
|
428
|
+
readonly children: (slice: SendMoneyAssetSlice) => ReactNode;
|
|
429
|
+
}): import("react").JSX.Element;
|
|
430
|
+
declare function Amount({ children }: {
|
|
431
|
+
readonly children: (slice: SendMoneyAmountSlice) => ReactNode;
|
|
432
|
+
}): import("react").JSX.Element;
|
|
433
|
+
declare function Recipient({ children }: {
|
|
434
|
+
readonly children: (slice: SendMoneyRecipientSlice) => ReactNode;
|
|
435
|
+
}): import("react").JSX.Element;
|
|
436
|
+
declare function Actions$1({ children }: {
|
|
437
|
+
readonly children: (slice: SendMoneyActionsSlice) => ReactNode;
|
|
438
|
+
}): import("react").JSX.Element;
|
|
469
439
|
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
470
|
-
declare const
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
440
|
+
export declare const CapxulSendMoney: typeof Root$5 & {
|
|
441
|
+
Source: typeof Source;
|
|
442
|
+
Asset: typeof Asset$1;
|
|
443
|
+
Amount: typeof Amount;
|
|
444
|
+
Recipient: typeof Recipient;
|
|
445
|
+
Actions: typeof Actions$1;
|
|
474
446
|
};
|
|
475
447
|
//#endregion
|
|
476
|
-
//#region src/
|
|
448
|
+
//#region src/payments/use-capxul-money.d.ts
|
|
449
|
+
type CapxulPayIntent = PaymentsPayInput;
|
|
450
|
+
type UseCapxulPayReturn = UseMutationResult<Payment, CapxulError, CapxulPayIntent>;
|
|
451
|
+
export declare function useCapxulPay(): UseCapxulPayReturn;
|
|
452
|
+
type UseCapxulPaymentsReturn = UseQueryResult<Page<Payment>, CapxulError>;
|
|
453
|
+
export declare function useCapxulPayments(options?: {
|
|
454
|
+
readonly enabled?: boolean;
|
|
455
|
+
}): UseCapxulPaymentsReturn;
|
|
456
|
+
type UseCapxulPaymentReturn = UseQueryResult<Payment | null, CapxulError>;
|
|
457
|
+
export declare function useCapxulPayment(paymentId: string | undefined, options?: {
|
|
458
|
+
readonly enabled?: boolean;
|
|
459
|
+
}): UseCapxulPaymentReturn;
|
|
460
|
+
//#endregion
|
|
461
|
+
//#region src/payments/use-capxul-organization-payments.d.ts
|
|
462
|
+
/**
|
|
463
|
+
* `orgId` may be absent because a screen has no branded org id until its org
|
|
464
|
+
* context loads (`OrgView.id` is the branded one). An absent id refuses the
|
|
465
|
+
* mutation the way every other org read refuses one, rather than forcing a
|
|
466
|
+
* `as OrgId` cast at the call site.
|
|
467
|
+
*/
|
|
468
|
+
export declare function useCapxulOrganizationPay(orgId: OrgId | undefined): UseMutationResult<Payment, CapxulError, OrganizationPaymentInput>;
|
|
469
|
+
export declare function useCapxulOrganizationPayBatch(orgId: OrgId): UseMutationResult<readonly Payment[], CapxulError, OrganizationPaymentBatchInput>;
|
|
470
|
+
//#endregion
|
|
471
|
+
//#region src/permissions/use-capxul-permissions.d.ts
|
|
472
|
+
type Operation = "create" | "change" | "assign" | "revoke" | "replace";
|
|
473
|
+
type Input<K extends Operation> = Parameters<PermissionMethods[K]>[0];
|
|
474
|
+
export declare const useCapxulPermissionCreate: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"create">>;
|
|
475
|
+
export declare const useCapxulPermissionChange: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"change">>;
|
|
476
|
+
export declare const useCapxulPermissionAssign: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"assign">>;
|
|
477
|
+
export declare const useCapxulPermissionRevoke: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"revoke">>;
|
|
478
|
+
export declare const useCapxulPermissionReplace: (orgId: OrgId) => UseMutationResult<SubmittedPermissionExecution, CapxulError, Input<"replace">>;
|
|
479
|
+
export declare function useCapxulPermissions(orgId: OrgId, options?: {
|
|
480
|
+
readonly enabled?: boolean;
|
|
481
|
+
}): UseQueryResult<PermissionReadResult, CapxulError>;
|
|
482
|
+
export declare function useCapxulPermission(orgId: OrgId, permissionId: string | undefined): UseQueryResult<Permission | null, CapxulError>;
|
|
483
|
+
//#endregion
|
|
484
|
+
//#region src/activity/activity-slices.d.ts
|
|
477
485
|
/** The settled transfer a row was built from. The app builds the explorer URL. */
|
|
478
486
|
interface ActivityReceipt {
|
|
479
487
|
readonly chainId: number;
|
|
@@ -509,7 +517,9 @@ type ActivityRow = {
|
|
|
509
517
|
readonly signedAmountDisplay: string;
|
|
510
518
|
readonly currency: string;
|
|
511
519
|
readonly createdAt: number;
|
|
512
|
-
readonly classification:
|
|
520
|
+
readonly classification: Extract<ActivityItem, {
|
|
521
|
+
readonly kind: "movement";
|
|
522
|
+
}>["classification"];
|
|
513
523
|
readonly phase: ActivityPhase;
|
|
514
524
|
readonly receipt: ActivityReceipt;
|
|
515
525
|
};
|
|
@@ -520,8 +530,8 @@ type ActivityRow = {
|
|
|
520
530
|
*/
|
|
521
531
|
type SummaryWindow = "all" | "last30days" | ActivityRange;
|
|
522
532
|
/**
|
|
523
|
-
* Finished
|
|
524
|
-
*
|
|
533
|
+
* Finished valuation strings in the display currency. Unrated assets remain
|
|
534
|
+
* separate. All four strings are `null` and `count` is `0`
|
|
525
535
|
* when the window holds no activity — we say there is nothing, the app says it
|
|
526
536
|
* in its own words.
|
|
527
537
|
*/
|
|
@@ -532,6 +542,7 @@ interface ActivitySummarySlice {
|
|
|
532
542
|
readonly moneyOut: string | null;
|
|
533
543
|
readonly net: string | null;
|
|
534
544
|
readonly pending: string | null;
|
|
545
|
+
readonly unrated: readonly ActivitySummaryTotal[];
|
|
535
546
|
/** A count is not money, so it is not formatted. */
|
|
536
547
|
readonly count: number;
|
|
537
548
|
readonly isLoading: boolean;
|
|
@@ -595,9 +606,12 @@ interface ActivityLoadMoreSlice {
|
|
|
595
606
|
interface ActivityDetailSlice {
|
|
596
607
|
/** Current Payment state from the existing detail read; absent for Movements. */
|
|
597
608
|
readonly payment?: Pick<Payment, "status" | "execution">;
|
|
598
|
-
|
|
599
|
-
readonly
|
|
600
|
-
readonly
|
|
609
|
+
readonly documents: readonly PaymentDocumentRef[];
|
|
610
|
+
readonly selectedDocument: PaymentDocumentRef | null;
|
|
611
|
+
readonly selectDocument: (ref: PaymentDocumentReadRef) => void;
|
|
612
|
+
readonly renderDocument: () => Promise<PaymentDocumentRender>;
|
|
613
|
+
/** Return exact bytes on a deliberate action. The host owns the download URL. */
|
|
614
|
+
readonly downloadDocument: () => Promise<PaymentDocumentDownload>;
|
|
601
615
|
readonly isOpeningDocument: boolean;
|
|
602
616
|
readonly memo: string;
|
|
603
617
|
readonly setMemo: (text: string) => void;
|
|
@@ -625,7 +639,7 @@ interface ActivityExportSlice {
|
|
|
625
639
|
readonly isExporting: boolean;
|
|
626
640
|
}
|
|
627
641
|
//#endregion
|
|
628
|
-
//#region src/
|
|
642
|
+
//#region src/activity/activity.d.ts
|
|
629
643
|
interface CapxulActivityProps {
|
|
630
644
|
/** Omitted = the signed-in person. */
|
|
631
645
|
readonly actor?: ActorReference;
|
|
@@ -637,39 +651,39 @@ interface CapxulActivityProps {
|
|
|
637
651
|
readonly pageSize?: number;
|
|
638
652
|
readonly children: ReactNode;
|
|
639
653
|
}
|
|
640
|
-
declare function Root$
|
|
654
|
+
declare function Root$4({ actor, pageSize, children }: CapxulActivityProps): import("react").JSX.Element;
|
|
641
655
|
/**
|
|
642
656
|
* The one part that holds a query rather than reading the engine's: it takes a
|
|
643
657
|
* `window` prop, and two placements can ask for different windows, so a single
|
|
644
658
|
* pre-fetched result cannot serve both. It still holds no logic and draws
|
|
645
659
|
* nothing.
|
|
646
660
|
*/
|
|
647
|
-
declare function Summary$
|
|
661
|
+
declare function Summary$3({ window, children }: {
|
|
648
662
|
readonly window?: SummaryWindow;
|
|
649
663
|
readonly children: (slice: ActivitySummarySlice) => ReactNode;
|
|
650
|
-
}): import("react
|
|
664
|
+
}): import("react").JSX.Element;
|
|
651
665
|
declare function Filters({ children }: {
|
|
652
666
|
readonly children: (slice: ActivityFiltersSlice) => ReactNode;
|
|
653
|
-
}): import("react
|
|
667
|
+
}): import("react").JSX.Element;
|
|
654
668
|
declare function Search({ children }: {
|
|
655
669
|
readonly children: (slice: ActivitySearchSlice) => ReactNode;
|
|
656
|
-
}): import("react
|
|
670
|
+
}): import("react").JSX.Element;
|
|
657
671
|
declare function Rows({ children }: {
|
|
658
672
|
readonly children: (slice: ActivityRowsSlice) => ReactNode;
|
|
659
|
-
}): import("react
|
|
673
|
+
}): import("react").JSX.Element;
|
|
660
674
|
declare function LoadMore({ children }: {
|
|
661
675
|
readonly children: (slice: ActivityLoadMoreSlice) => ReactNode;
|
|
662
|
-
}): import("react
|
|
676
|
+
}): import("react").JSX.Element;
|
|
663
677
|
declare function Detail({ reference, children }: {
|
|
664
678
|
readonly reference?: ActivityReference;
|
|
665
679
|
readonly children: (slice: ActivityDetailSlice) => ReactNode;
|
|
666
|
-
}): import("react
|
|
680
|
+
}): import("react").JSX.Element;
|
|
667
681
|
declare function Export({ children }: {
|
|
668
682
|
readonly children: (slice: ActivityExportSlice) => ReactNode;
|
|
669
|
-
}): import("react
|
|
683
|
+
}): import("react").JSX.Element;
|
|
670
684
|
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
671
|
-
declare const CapxulActivity: typeof Root$
|
|
672
|
-
Summary: typeof Summary$
|
|
685
|
+
export declare const CapxulActivity: typeof Root$4 & {
|
|
686
|
+
Summary: typeof Summary$3;
|
|
673
687
|
Filters: typeof Filters;
|
|
674
688
|
Search: typeof Search;
|
|
675
689
|
Rows: typeof Rows;
|
|
@@ -678,125 +692,12 @@ declare const CapxulActivity: typeof Root$5 & {
|
|
|
678
692
|
Export: typeof Export;
|
|
679
693
|
};
|
|
680
694
|
//#endregion
|
|
681
|
-
//#region src/
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
readonly change: (text: string) => void;
|
|
686
|
-
readonly status: SendMoneyRecipientStatus;
|
|
687
|
-
readonly label: string | null;
|
|
688
|
-
readonly kind: "person" | "organization" | "external_address" | "unresolved" | null;
|
|
689
|
-
readonly isCapxulAccount: boolean | null;
|
|
690
|
-
readonly publicValue: string | null;
|
|
691
|
-
readonly requiresAcknowledgement: boolean;
|
|
692
|
-
readonly acknowledgeExternalAddress: () => void;
|
|
693
|
-
}
|
|
694
|
-
//#endregion
|
|
695
|
-
//#region src/headless/send-money/use-send-money.d.ts
|
|
696
|
-
type SendActor = {
|
|
697
|
-
readonly kind: "personal";
|
|
698
|
-
} | {
|
|
699
|
-
readonly kind: "organization";
|
|
700
|
-
readonly orgId: OrgId | undefined;
|
|
701
|
-
};
|
|
702
|
-
type SentPayment = {
|
|
703
|
-
/** The backend payment row. */
|
|
704
|
-
readonly payment: Payment;
|
|
705
|
-
/** What we parsed and sent — `.value` is the comma-stripped major-unit string. */
|
|
706
|
-
readonly amount: Money;
|
|
707
|
-
/** The trimmed text the person typed — the app's success toast interpolates it. */
|
|
708
|
-
readonly recipient: string;
|
|
709
|
-
};
|
|
710
|
-
/**
|
|
711
|
-
* Refusal CODES, never sentences (#1447 ruling 8). The app maps each code to
|
|
712
|
-
* the words it already prints; no English refusal string ships from here.
|
|
713
|
-
*/
|
|
714
|
-
type CapxulSendMoneyBlockedReason = "signer-not-ready" | "amount-invalid" | "recipient-unresolved" | "no-source" | "no-asset";
|
|
715
|
-
/**
|
|
716
|
-
* One Budget the member can spend from — the id the payment carries, and
|
|
717
|
-
* nothing else.
|
|
718
|
-
*
|
|
719
|
-
* THE CONTRACT (amended 3) reverses amendment 7: the From row keeps the app's
|
|
720
|
-
* frozen `"<Org> Treasury"` string, and no budget label and no limit display
|
|
721
|
-
* cross this seam until the budgets build ships a remaining figure that is
|
|
722
|
-
* actually computable (ADR-0024 R3). The app already holds the org name and
|
|
723
|
-
* already builds that sentence today, so the option carries only what the app
|
|
724
|
-
* cannot know — which Budget the send is drawn from.
|
|
725
|
-
*/
|
|
726
|
-
interface SendMoneySourceOption {
|
|
727
|
-
readonly id: BudgetId;
|
|
728
|
-
}
|
|
729
|
-
/** ADR-0023 R1: a code, never a sentence — the app owns the words. */
|
|
730
|
-
type SendMoneySourceError = "read-failed";
|
|
731
|
-
interface SendMoneySourceSlice {
|
|
732
|
-
readonly options: ReadonlyArray<SendMoneySourceOption>;
|
|
733
|
-
readonly selected: SendMoneySourceOption | null;
|
|
734
|
-
readonly select: (id: string) => void;
|
|
735
|
-
readonly error: SendMoneySourceError | null;
|
|
736
|
-
readonly isPending: boolean;
|
|
737
|
-
}
|
|
738
|
-
interface SendMoneyAssetOption {
|
|
739
|
-
readonly id: string;
|
|
740
|
-
readonly symbol: string;
|
|
741
|
-
readonly availableDisplay: string;
|
|
742
|
-
}
|
|
743
|
-
/** ADR-0023 R1: a code, never a sentence — the app owns the words. */
|
|
744
|
-
type SendMoneyAssetError = "read-failed";
|
|
745
|
-
interface SendMoneyAssetSlice {
|
|
746
|
-
readonly options: ReadonlyArray<SendMoneyAssetOption>;
|
|
747
|
-
readonly selected: SendMoneyAssetOption | null;
|
|
748
|
-
readonly select: (id: string) => void;
|
|
749
|
-
readonly error: SendMoneyAssetError | null;
|
|
750
|
-
readonly isPending: boolean;
|
|
751
|
-
}
|
|
752
|
-
interface SendMoneyAmountSlice {
|
|
753
|
-
readonly value: string;
|
|
754
|
-
readonly change: (text: string) => void;
|
|
755
|
-
/** ADR-0023 R1: the parse verdict as a closed code; the app maps it to copy. */
|
|
756
|
-
readonly error: MoneyParseErrorReason | null;
|
|
757
|
-
readonly availableDisplay: string | null;
|
|
758
|
-
}
|
|
759
|
-
interface SendMoneyActionsSlice {
|
|
760
|
-
readonly submit: () => void;
|
|
761
|
-
readonly isSubmitting: boolean;
|
|
762
|
-
readonly blocked: boolean;
|
|
763
|
-
readonly blockedReason: CapxulSendMoneyBlockedReason | null;
|
|
764
|
-
}
|
|
765
|
-
//#endregion
|
|
766
|
-
//#region src/headless/send-money/send-money.d.ts
|
|
767
|
-
interface CapxulSendMoneyProps {
|
|
768
|
-
readonly actor: SendActor;
|
|
769
|
-
readonly onSent: (sent: SentPayment) => void;
|
|
770
|
-
/** ADR-0023 R1: the app maps `error.code` to its own copy; no SDK sentence. */
|
|
771
|
-
readonly onFailed: (error: CapxulError) => void;
|
|
772
|
-
readonly children: ReactNode;
|
|
773
|
-
}
|
|
774
|
-
declare function Root$4({ actor, onSent, onFailed, children }: CapxulSendMoneyProps): import("react/jsx-runtime").JSX.Element;
|
|
775
|
-
declare function Source({ children }: {
|
|
776
|
-
readonly children: (slice: SendMoneySourceSlice) => ReactNode;
|
|
777
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
778
|
-
declare function Asset$1({ children }: {
|
|
779
|
-
readonly children: (slice: SendMoneyAssetSlice) => ReactNode;
|
|
780
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
781
|
-
declare function Amount({ children }: {
|
|
782
|
-
readonly children: (slice: SendMoneyAmountSlice) => ReactNode;
|
|
783
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
784
|
-
declare function Recipient({ children }: {
|
|
785
|
-
readonly children: (slice: SendMoneyRecipientSlice) => ReactNode;
|
|
786
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
787
|
-
declare function Actions$1({ children }: {
|
|
788
|
-
readonly children: (slice: SendMoneyActionsSlice) => ReactNode;
|
|
789
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
790
|
-
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
791
|
-
declare const CapxulSendMoney: typeof Root$4 & {
|
|
792
|
-
Source: typeof Source;
|
|
793
|
-
Asset: typeof Asset$1;
|
|
794
|
-
Amount: typeof Amount;
|
|
795
|
-
Recipient: typeof Recipient;
|
|
796
|
-
Actions: typeof Actions$1;
|
|
797
|
-
};
|
|
695
|
+
//#region src/activity/use-capxul-activity.d.ts
|
|
696
|
+
export declare function useCapxulActivity(params?: ActivityListParams): UseQueryResult<ActivityPage, CapxulError>;
|
|
697
|
+
export declare function useCapxulActivityDetail(reference: ActivityReference | undefined, actor?: ActorReference): UseQueryResult<ActivityDetail | null, CapxulError>;
|
|
698
|
+
export declare function useCapxulAnnotateMovement(): UseMutationResult<ActivityAnnotation, CapxulError, ActivityAnnotationInput>;
|
|
798
699
|
//#endregion
|
|
799
|
-
//#region src/
|
|
700
|
+
//#region src/organizations/org-member.d.ts
|
|
800
701
|
/** The two enforcement facts, named the way a screen asks for them. */
|
|
801
702
|
type OrgMemberAction = "spend" | "managePeople";
|
|
802
703
|
/**
|
|
@@ -820,7 +721,7 @@ interface CapxulOrgMemberProps {
|
|
|
820
721
|
readonly orgId: OrgId | string | undefined;
|
|
821
722
|
readonly children: ReactNode;
|
|
822
723
|
}
|
|
823
|
-
declare function Root$3({ orgId, children }: CapxulOrgMemberProps): import("react
|
|
724
|
+
declare function Root$3({ orgId, children }: CapxulOrgMemberProps): import("react").JSX.Element;
|
|
824
725
|
/**
|
|
825
726
|
* One part serves all four denial idioms the app already uses: disabled with no
|
|
826
727
|
* explanation, disabled plus a native `title`, a whole-surface swap, and
|
|
@@ -830,135 +731,255 @@ declare function Root$3({ orgId, children }: CapxulOrgMemberProps): import("reac
|
|
|
830
731
|
declare function Can({ do: action, children }: {
|
|
831
732
|
readonly do: OrgMemberAction;
|
|
832
733
|
readonly children: (slice: OrgMemberCanSlice) => ReactNode;
|
|
833
|
-
}): import("react
|
|
734
|
+
}): import("react").JSX.Element;
|
|
834
735
|
declare function Standing({ children }: {
|
|
835
736
|
readonly children: (slice: OrgMemberStandingSlice) => ReactNode;
|
|
836
|
-
}): import("react
|
|
737
|
+
}): import("react").JSX.Element;
|
|
837
738
|
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
838
|
-
declare const CapxulOrgMember: typeof Root$3 & {
|
|
739
|
+
export declare const CapxulOrgMember: typeof Root$3 & {
|
|
839
740
|
Can: typeof Can;
|
|
840
741
|
Standing: typeof Standing;
|
|
841
742
|
};
|
|
842
743
|
//#endregion
|
|
843
|
-
//#region src/
|
|
844
|
-
type DashboardScope = {
|
|
845
|
-
readonly kind: "personal";
|
|
846
|
-
} | {
|
|
847
|
-
readonly kind: "organization";
|
|
848
|
-
readonly orgId?: string;
|
|
849
|
-
};
|
|
850
|
-
type DashboardAccessPhase = "checking" | "error" | "redirect" | "granted";
|
|
744
|
+
//#region src/organizations/use-capxul-create-org.d.ts
|
|
851
745
|
/**
|
|
852
|
-
*
|
|
853
|
-
*
|
|
854
|
-
* session read, the membership list or the lifecycle read raised it, and a
|
|
855
|
-
* consumer that reports a displayed gate error has to keep those apart
|
|
856
|
-
* (#1963 R05-2). It names the SOURCE only; `retry` still re-runs every failed
|
|
857
|
-
* probe, exactly as before.
|
|
746
|
+
* Create an Organization. Binds directly to the
|
|
747
|
+
* `onboarding.completeOrganization(input)` SDK method. On success, invalidates the org list.
|
|
858
748
|
*/
|
|
859
|
-
type
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
}
|
|
867
|
-
interface DashboardAccessRedirectSlice {
|
|
868
|
-
readonly destination: IdentityDestination;
|
|
869
|
-
}
|
|
870
|
-
interface CapxulDashboardAccessProps {
|
|
871
|
-
readonly scope: DashboardScope;
|
|
872
|
-
readonly children: ReactNode;
|
|
873
|
-
}
|
|
874
|
-
declare function Root$2({ scope, children }: CapxulDashboardAccessProps): import("react/jsx-runtime").JSX.Element;
|
|
875
|
-
/** Hands nothing — today's app renders `null` here, exactly as it does now. */
|
|
876
|
-
declare function Checking({ children }: {
|
|
877
|
-
readonly children?: ReactNode;
|
|
878
|
-
}): import("react/jsx-runtime").JSX.Element | null;
|
|
879
|
-
declare function DashboardError({ children }: {
|
|
880
|
-
readonly children: (slice: DashboardAccessErrorSlice) => ReactNode;
|
|
881
|
-
}): import("react/jsx-runtime").JSX.Element | null;
|
|
749
|
+
type UseCapxulCreateOrgReturn = UseMutationResult<OrganizationOnboarding, CapxulError, OrganizationOnboardingInput>;
|
|
750
|
+
export declare function useCapxulCreateOrg(): UseCapxulCreateOrgReturn;
|
|
751
|
+
//#endregion
|
|
752
|
+
//#region src/organizations/use-capxul-org-members.d.ts
|
|
753
|
+
type UseCapxulOrgMembersOptions = {
|
|
754
|
+
readonly enabled?: boolean;
|
|
755
|
+
};
|
|
882
756
|
/**
|
|
883
|
-
*
|
|
884
|
-
*
|
|
885
|
-
*
|
|
886
|
-
*
|
|
757
|
+
* List the members of one Organization. Binds directly to
|
|
758
|
+
* `capxul.org(orgId).members()`. Gated by
|
|
759
|
+
* `orgId !== undefined`; callers may additionally gate on canonical identity
|
|
760
|
+
* readiness through `options.enabled`.
|
|
887
761
|
*/
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
895
|
-
declare const CapxulDashboardAccess: typeof Root$2 & {
|
|
896
|
-
Checking: typeof Checking;
|
|
897
|
-
Error: typeof DashboardError;
|
|
898
|
-
Redirect: typeof Redirect;
|
|
899
|
-
Granted: typeof Granted;
|
|
762
|
+
type UseCapxulOrgMembersReturn = UseQueryResult<Page<MemberView>, CapxulError>;
|
|
763
|
+
export declare function useCapxulOrgMembers(orgId: OrgId | undefined, options?: UseCapxulOrgMembersOptions): UseCapxulOrgMembersReturn;
|
|
764
|
+
//#endregion
|
|
765
|
+
//#region src/organizations/use-capxul-org-roles.d.ts
|
|
766
|
+
type UseCapxulOrgRolesOptions = {
|
|
767
|
+
readonly enabled?: boolean;
|
|
900
768
|
};
|
|
769
|
+
/**
|
|
770
|
+
* List the roles for one Organization. Binds directly
|
|
771
|
+
* to `capxul.org(orgId).roles()`. Gated by `orgId !== undefined`.
|
|
772
|
+
*/
|
|
773
|
+
type UseCapxulOrgRolesReturn = UseQueryResult<Page<RoleView>, CapxulError>;
|
|
774
|
+
export declare function useCapxulOrgRoles(orgId: OrgId | undefined, options?: UseCapxulOrgRolesOptions): UseCapxulOrgRolesReturn;
|
|
901
775
|
//#endregion
|
|
902
|
-
//#region src/
|
|
903
|
-
|
|
904
|
-
readonly
|
|
776
|
+
//#region src/organizations/use-capxul-org-treasury.d.ts
|
|
777
|
+
type UseCapxulOrgTreasuryOptions = {
|
|
778
|
+
readonly enabled?: boolean;
|
|
779
|
+
};
|
|
780
|
+
/**
|
|
781
|
+
* Return the Organization treasury Account.
|
|
782
|
+
* NEVER `AccountStatus` (the deploy-readiness ladder, no balance). Binds
|
|
783
|
+
* Binds directly to `capxul.org(orgId).treasury()`. Gated by `orgId !== undefined`.
|
|
784
|
+
*/
|
|
785
|
+
type UseCapxulOrgTreasuryReturn = UseQueryResult<Account, CapxulError>;
|
|
786
|
+
export declare function useCapxulOrgTreasury(orgId: OrgId | undefined, options?: UseCapxulOrgTreasuryOptions): UseCapxulOrgTreasuryReturn;
|
|
787
|
+
//#endregion
|
|
788
|
+
//#region src/organizations/use-capxul-orgs.d.ts
|
|
789
|
+
/**
|
|
790
|
+
* List the Organizations that the current user can access. Binds directly to
|
|
791
|
+
* the locked `capxul.orgs()` SDK method.
|
|
792
|
+
*/
|
|
793
|
+
type UseCapxulOrgsReturn = UseQueryResult<Page<OrganizationAccess>, CapxulError>;
|
|
794
|
+
type UseCapxulOrgsOptions = {
|
|
795
|
+
/**
|
|
796
|
+
* Gate the query on auth readiness. `client.orgs()` is a session-scoped
|
|
797
|
+
* authenticated read; firing it before the session token settles surfaces a
|
|
798
|
+
* spurious `NOT_AUTHENTICATED`. Consumers pass `enabled: <auth-ready>`.
|
|
799
|
+
* Defaults to `true` to preserve the bare `useCapxulOrgs()` call shape.
|
|
800
|
+
*/
|
|
801
|
+
readonly enabled?: boolean;
|
|
802
|
+
};
|
|
803
|
+
export declare function useCapxulOrgs(options?: UseCapxulOrgsOptions): UseCapxulOrgsReturn;
|
|
804
|
+
//#endregion
|
|
805
|
+
//#region src/media/use-capxul-image-upload.d.ts
|
|
806
|
+
type ImageUploadTarget = {
|
|
807
|
+
readonly kind: "profile";
|
|
808
|
+
} | {
|
|
809
|
+
readonly kind: "orgLogo";
|
|
810
|
+
readonly orgId: string;
|
|
811
|
+
};
|
|
812
|
+
type ImageUploadInput = {
|
|
813
|
+
readonly blob: Blob;
|
|
814
|
+
readonly target: ImageUploadTarget;
|
|
815
|
+
};
|
|
816
|
+
type UseCapxulImageUploadReturn = UseMutationResult<{
|
|
817
|
+
readonly url: string | null;
|
|
818
|
+
}, CapxulError, ImageUploadInput>;
|
|
819
|
+
/**
|
|
820
|
+
* #1061 / ADR-0014: the whole upload→record sequence as one mutation —
|
|
821
|
+
* upload the blob, then bind the returned storage id to the profile image or
|
|
822
|
+
* the org logo. The url is the resolved serving URL (re-read from queries,
|
|
823
|
+
* never persisted by consumers).
|
|
824
|
+
*/
|
|
825
|
+
export declare function useCapxulImageUpload(): UseCapxulImageUploadReturn;
|
|
826
|
+
//#endregion
|
|
827
|
+
//#region src/media/use-capxul-upload-image.d.ts
|
|
828
|
+
type UseCapxulUploadImageReturn = UseMutationResult<{
|
|
829
|
+
readonly storageId: string;
|
|
830
|
+
}, CapxulError, Blob>;
|
|
831
|
+
/**
|
|
832
|
+
* #1955: upload only. Hands back the storage id for a CREATE call to carry
|
|
833
|
+
* (`ProfileDetails.imageStorageId`, `OrganizationDetails.logoStorageId`).
|
|
834
|
+
*
|
|
835
|
+
* `useCapxulImageUpload` is upload+bind and stays as it is for the settings
|
|
836
|
+
* pages. It cannot serve onboarding: the row it binds to does not exist yet.
|
|
837
|
+
* Nothing is bound here, so nothing is invalidated either — the create call
|
|
838
|
+
* that carries the id owns the cache change.
|
|
839
|
+
*/
|
|
840
|
+
export declare function useCapxulUploadImage(): UseCapxulUploadImageReturn;
|
|
841
|
+
//#endregion
|
|
842
|
+
//#region src/parties/contact-slices.d.ts
|
|
843
|
+
type ContactsActor = {
|
|
844
|
+
readonly kind: "personal";
|
|
845
|
+
} | {
|
|
846
|
+
readonly kind: "organization";
|
|
847
|
+
readonly orgId: OrgId | undefined;
|
|
848
|
+
};
|
|
849
|
+
/**
|
|
850
|
+
* How a contact entered the book. Taken from the shipped surface rather than
|
|
851
|
+
* re-declared, so the component can never advertise a provenance the wire
|
|
852
|
+
* cannot carry (ADR-0022 R2; #1532 owns the definition site).
|
|
853
|
+
*/
|
|
854
|
+
type ContactRelationship = AddressBookEntry["relationship"][number];
|
|
855
|
+
interface Contact {
|
|
856
|
+
/**
|
|
857
|
+
* The counterparty's `PartyId` — created once and claimed at signup, never
|
|
858
|
+
* re-keyed (ADR-0022 R1/R3). No email, no prefix, nothing to parse.
|
|
859
|
+
*/
|
|
860
|
+
readonly id: PartyId;
|
|
861
|
+
/** The saved label when there is one, else the party's display name. */
|
|
905
862
|
readonly name: string;
|
|
906
|
-
|
|
907
|
-
readonly
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
readonly totalDisplay: string;
|
|
911
|
-
readonly members: readonly {
|
|
912
|
-
/** The `partyId` — the stable id (ruling Q1), never an email. */
|
|
913
|
-
readonly recipientId: string;
|
|
914
|
-
readonly amount: string;
|
|
915
|
-
readonly currency: Money["currency"];
|
|
916
|
-
}[];
|
|
863
|
+
readonly relationship: readonly ContactRelationship[];
|
|
864
|
+
readonly hidden: boolean;
|
|
865
|
+
/** Epoch milliseconds. The seam never formats a date; the app writes the words. */
|
|
866
|
+
readonly lastActivityAt: number;
|
|
917
867
|
}
|
|
918
|
-
interface
|
|
919
|
-
|
|
920
|
-
readonly
|
|
868
|
+
interface ContactRow extends Contact {
|
|
869
|
+
/** Ours: one initials rule, not one copy per screen. */
|
|
870
|
+
readonly initials: string;
|
|
871
|
+
readonly rename: (name: string, options?: InvocationOptions) => void;
|
|
872
|
+
readonly hide: (options?: InvocationOptions) => void;
|
|
873
|
+
readonly unhide: (options?: InvocationOptions) => void;
|
|
874
|
+
}
|
|
875
|
+
/** ADR-0023 R1: refusal CODES, never sentences — the app owns the words. */
|
|
876
|
+
type ContactsRefusal = "loading" | "org-unavailable" | "unavailable";
|
|
877
|
+
/**
|
|
878
|
+
* The blocked facts, in the fixed order `.Add.blockedReason` names them.
|
|
879
|
+
* `"no-permission"` is absent by ruling, not by omission: the org screen places
|
|
880
|
+
* `CapxulOrgMember.Can do="managePeople"` around its own Add control.
|
|
881
|
+
*/
|
|
882
|
+
type ContactsAddBlockedReason = "org-unavailable" | "empty";
|
|
883
|
+
/**
|
|
884
|
+
* Why an add did not land, as a code. ADR-0023 R1 supersedes the contract's
|
|
885
|
+
* field-message carve-out: `"unresolved"` is the backend refusing to resolve
|
|
886
|
+
* what was typed (`INVALID_INPUT`), and every other code — offline, signed
|
|
887
|
+
* out, refused — is `"failed"`. A person can fix only one of them.
|
|
888
|
+
*/
|
|
889
|
+
type ContactsAddError = "unresolved" | "failed";
|
|
890
|
+
interface ContactsSummarySlice {
|
|
891
|
+
readonly total: number | null;
|
|
892
|
+
readonly activeCount: number | null;
|
|
921
893
|
readonly isLoading: boolean;
|
|
922
|
-
readonly
|
|
894
|
+
readonly reason: ContactsRefusal | null;
|
|
923
895
|
}
|
|
924
|
-
interface
|
|
925
|
-
readonly
|
|
896
|
+
interface ContactsListSlice {
|
|
897
|
+
readonly rows: readonly ContactRow[];
|
|
898
|
+
readonly isLoading: boolean;
|
|
899
|
+
readonly reason: ContactsRefusal | null;
|
|
900
|
+
}
|
|
901
|
+
interface ContactsListOptions {
|
|
902
|
+
readonly limit?: number | undefined;
|
|
903
|
+
/** `"all"` forwards `includeHidden` to the backend, which already accepts it. */
|
|
904
|
+
readonly show?: "visible" | "all" | undefined;
|
|
905
|
+
}
|
|
906
|
+
interface ContactsAddSlice {
|
|
907
|
+
readonly value: string;
|
|
908
|
+
readonly change: (text: string) => void;
|
|
926
909
|
/**
|
|
927
|
-
*
|
|
928
|
-
*
|
|
929
|
-
*
|
|
930
|
-
*
|
|
910
|
+
* #1960 R02: hand it the options the screen captured BEFORE the click. The
|
|
911
|
+
* same snapshot reaches the SDK add call and comes back on `onAdded`/
|
|
912
|
+
* `onFailed`, so the UI observation and the operation share one identity even
|
|
913
|
+
* when the reply lands after an account switch. Omitted stays omitted.
|
|
931
914
|
*/
|
|
932
|
-
readonly
|
|
933
|
-
readonly
|
|
934
|
-
readonly
|
|
935
|
-
readonly
|
|
936
|
-
readonly error:
|
|
915
|
+
readonly submit: (options?: InvocationOptions) => void;
|
|
916
|
+
readonly isSubmitting: boolean;
|
|
917
|
+
readonly blocked: boolean;
|
|
918
|
+
readonly blockedReason: ContactsAddBlockedReason | null;
|
|
919
|
+
readonly error: ContactsAddError | null;
|
|
937
920
|
}
|
|
938
921
|
//#endregion
|
|
939
|
-
//#region src/
|
|
940
|
-
interface
|
|
941
|
-
readonly
|
|
922
|
+
//#region src/parties/contacts.d.ts
|
|
923
|
+
interface CapxulContactsProps {
|
|
924
|
+
readonly actor: ContactsActor;
|
|
925
|
+
/**
|
|
926
|
+
* `options` is exactly what the caller handed `.Add.submit` or a row verb, so
|
|
927
|
+
* the screen's own observation of the finished action can reuse the attempt
|
|
928
|
+
* identity the SDK operation ran under (#1960 R02).
|
|
929
|
+
*/
|
|
930
|
+
readonly onAdded: (contact: Contact, options?: InvocationOptions) => void;
|
|
931
|
+
/** ADR-0023 R1: the app maps `error.code` to its own copy; no SDK sentence. */
|
|
932
|
+
readonly onFailed: (error: CapxulError, options?: InvocationOptions) => void;
|
|
942
933
|
readonly children: ReactNode;
|
|
943
934
|
}
|
|
944
|
-
declare function Root$
|
|
945
|
-
declare function Summary$
|
|
946
|
-
readonly children: (slice:
|
|
947
|
-
}): import("react
|
|
948
|
-
declare function
|
|
949
|
-
readonly children: (slice:
|
|
950
|
-
}): import("react
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
935
|
+
declare function Root$2({ actor, onAdded, onFailed, children }: CapxulContactsProps): import("react").JSX.Element;
|
|
936
|
+
declare function Summary$2({ children }: {
|
|
937
|
+
readonly children: (slice: ContactsSummarySlice) => ReactNode;
|
|
938
|
+
}): import("react").JSX.Element;
|
|
939
|
+
declare function List({ limit, show, children }: ContactsListOptions & {
|
|
940
|
+
readonly children: (slice: ContactsListSlice) => ReactNode;
|
|
941
|
+
}): import("react").JSX.Element;
|
|
942
|
+
declare function Add({ children }: {
|
|
943
|
+
readonly children: (slice: ContactsAddSlice) => ReactNode;
|
|
944
|
+
}): import("react").JSX.Element;
|
|
945
|
+
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
946
|
+
export declare const CapxulContacts: typeof Root$2 & {
|
|
947
|
+
Summary: typeof Summary$2;
|
|
948
|
+
List: typeof List;
|
|
949
|
+
Add: typeof Add;
|
|
950
|
+
};
|
|
951
|
+
//#endregion
|
|
952
|
+
//#region src/platform/query-keys.d.ts
|
|
953
|
+
export declare const capxulKeys: {
|
|
954
|
+
root: readonly ["capxul"];
|
|
955
|
+
profile: readonly ["capxul", "profile"];
|
|
956
|
+
handleAvailability: (handle: string) => readonly ["capxul", "profile", "handle-availability", string];
|
|
957
|
+
account: readonly ["capxul", "account"];
|
|
958
|
+
provisioning: readonly ["capxul", "provisioning"];
|
|
959
|
+
binding: readonly ["capxul", "binding"];
|
|
960
|
+
accountBalance: readonly ["capxul", "accountBalance"];
|
|
961
|
+
orgs: readonly ["capxul", "orgs"];
|
|
962
|
+
org: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId];
|
|
963
|
+
orgMembers: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "members"];
|
|
964
|
+
orgRoles: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "roles"];
|
|
965
|
+
orgTreasury: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "treasury"];
|
|
966
|
+
orgPermissions: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "permissions"];
|
|
967
|
+
orgMe: (orgId: OrgId | undefined, account: string | undefined) => readonly ["capxul", "org", "pending" | OrgId, "me", string];
|
|
968
|
+
orgLifecycle: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "lifecycle"];
|
|
969
|
+
contacts: (scope: string) => readonly ["capxul", "contacts", string];
|
|
970
|
+
contactsList: (scope: string, includeHidden: boolean) => readonly ["capxul", "contacts", string, "all" | "visible"];
|
|
971
|
+
payrollRuns: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "payroll", "runs"];
|
|
972
|
+
payrollGroups: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "payroll", "groups"];
|
|
973
|
+
payrollTerms: (orgId: OrgId | undefined) => readonly ["capxul", "org", "pending" | OrgId, "payroll", "terms"];
|
|
974
|
+
activity: readonly ["capxul", "activity"];
|
|
975
|
+
activityDetail: (reference: ActivityReference | undefined, actor?: ActorReference) => readonly ["capxul", "activity", "self" | ActorReference, "pending" | ActivityReference];
|
|
976
|
+
activitySummary: (actor?: ActorReference, window?: ActivityRange) => readonly ["capxul", "activity", "summary", "self" | ActorReference, "all" | ActivityRange];
|
|
977
|
+
holdings: (actor?: ActorReference) => readonly ["capxul", "holdings", "self" | ActorReference];
|
|
978
|
+
payments: readonly ["capxul", "payments"];
|
|
979
|
+
payment: (paymentId: string | undefined) => readonly ["capxul", "payments", string];
|
|
959
980
|
};
|
|
960
981
|
//#endregion
|
|
961
|
-
//#region src/
|
|
982
|
+
//#region src/payroll/reads.d.ts
|
|
962
983
|
/**
|
|
963
984
|
* One payable person, as the run composer and the group sheet see them.
|
|
964
985
|
*
|
|
@@ -972,11 +993,11 @@ interface PayrollRecipientOption {
|
|
|
972
993
|
readonly email: string | null;
|
|
973
994
|
}
|
|
974
995
|
//#endregion
|
|
975
|
-
//#region src/
|
|
996
|
+
//#region src/payroll/payroll-run-slices.d.ts
|
|
976
997
|
/**
|
|
977
998
|
* Refusal CODES, never sentences (ADR-0023 R1). `blockedReason` names the FIRST
|
|
978
|
-
* false fact in the fixed order
|
|
979
|
-
*
|
|
999
|
+
* false fact in the fixed order below, so the same composer state always
|
|
1000
|
+
* yields the same code.
|
|
980
1001
|
*/
|
|
981
1002
|
type CapxulPayrollRunBlockedReason = "signer-not-ready" | "no-source" | "ambiguous-source" | "no-asset" | "no-recipients" | "amount-invalid" | "insufficient-funds";
|
|
982
1003
|
interface PayrollRunGroupOption {
|
|
@@ -1005,7 +1026,7 @@ interface PayrollRunAmountEntry {
|
|
|
1005
1026
|
/** True while the value is one we seeded and the employer has not edited. */
|
|
1006
1027
|
readonly prefilled: boolean;
|
|
1007
1028
|
/** The treasury asset's currency. Rows stay absent until this value exists. */
|
|
1008
|
-
readonly currency:
|
|
1029
|
+
readonly currency: string;
|
|
1009
1030
|
}
|
|
1010
1031
|
interface PayrollRunAmountsSlice {
|
|
1011
1032
|
readonly entries: readonly PayrollRunAmountEntry[];
|
|
@@ -1048,7 +1069,7 @@ interface SentPayrollRun {
|
|
|
1048
1069
|
readonly recipientCount: number;
|
|
1049
1070
|
}
|
|
1050
1071
|
//#endregion
|
|
1051
|
-
//#region src/
|
|
1072
|
+
//#region src/payroll/payroll-run.d.ts
|
|
1052
1073
|
interface CapxulPayrollRunProps {
|
|
1053
1074
|
readonly orgId: OrgId | undefined;
|
|
1054
1075
|
/** How a group card opens pay-now pre-filled — today's group-context merge. */
|
|
@@ -1058,59 +1079,89 @@ interface CapxulPayrollRunProps {
|
|
|
1058
1079
|
readonly onFailed: (error: CapxulError) => void;
|
|
1059
1080
|
readonly children: ReactNode;
|
|
1060
1081
|
}
|
|
1061
|
-
declare function Root({ orgId, prefill, onRun, onFailed, children }: CapxulPayrollRunProps): import("react
|
|
1082
|
+
declare function Root$1({ orgId, prefill, onRun, onFailed, children }: CapxulPayrollRunProps): import("react").JSX.Element;
|
|
1062
1083
|
declare function Recipients({ children }: {
|
|
1063
1084
|
readonly children: (slice: PayrollRunRecipientsSlice) => ReactNode;
|
|
1064
|
-
}): import("react
|
|
1085
|
+
}): import("react").JSX.Element;
|
|
1065
1086
|
declare function Amounts({ children }: {
|
|
1066
1087
|
readonly children: (slice: PayrollRunAmountsSlice) => ReactNode;
|
|
1067
|
-
}): import("react
|
|
1088
|
+
}): import("react").JSX.Element;
|
|
1068
1089
|
declare function Asset({ children }: {
|
|
1069
1090
|
readonly children: (slice: PayrollRunAssetSlice) => ReactNode;
|
|
1070
|
-
}): import("react
|
|
1071
|
-
declare function Summary({ children }: {
|
|
1091
|
+
}): import("react").JSX.Element;
|
|
1092
|
+
declare function Summary$1({ children }: {
|
|
1072
1093
|
readonly children: (slice: PayrollRunSummarySlice) => ReactNode;
|
|
1073
|
-
}): import("react
|
|
1094
|
+
}): import("react").JSX.Element;
|
|
1074
1095
|
declare function Actions({ children }: {
|
|
1075
1096
|
readonly children: (slice: PayrollRunActionsSlice) => ReactNode;
|
|
1076
|
-
}): import("react
|
|
1097
|
+
}): import("react").JSX.Element;
|
|
1077
1098
|
/** The compound shape the app's own design system already uses (`StatusTabs`). */
|
|
1078
|
-
declare const CapxulPayrollRun: typeof Root & {
|
|
1099
|
+
export declare const CapxulPayrollRun: typeof Root$1 & {
|
|
1079
1100
|
Recipients: typeof Recipients;
|
|
1080
1101
|
Amounts: typeof Amounts;
|
|
1081
1102
|
Asset: typeof Asset;
|
|
1082
|
-
Summary: typeof Summary;
|
|
1103
|
+
Summary: typeof Summary$1;
|
|
1083
1104
|
Actions: typeof Actions;
|
|
1084
1105
|
};
|
|
1085
1106
|
//#endregion
|
|
1086
|
-
//#region src/
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1107
|
+
//#region src/payroll/use-payroll.d.ts
|
|
1108
|
+
/** ADR-0022 R9: where a run stands on the shipped command lifecycle. */
|
|
1109
|
+
interface PayrollGroupRow {
|
|
1110
|
+
readonly id: PayrollGroupId;
|
|
1111
|
+
readonly name: string;
|
|
1112
|
+
/** A stored display preference; the app narrows it to its own DS union. */
|
|
1113
|
+
readonly tone: string;
|
|
1114
|
+
readonly memberCount: number;
|
|
1115
|
+
/** `formatMoney` over the amounts the employer typed on this group. */
|
|
1116
|
+
readonly totalDisplay: string;
|
|
1117
|
+
readonly members: readonly {
|
|
1118
|
+
/** The `partyId` — the stable id (ruling Q1), never an email. */
|
|
1119
|
+
readonly recipientId: string;
|
|
1120
|
+
readonly amount: string;
|
|
1121
|
+
readonly currency: Money["currency"];
|
|
1122
|
+
}[];
|
|
1123
|
+
}
|
|
1124
|
+
interface PayrollSummarySlice {
|
|
1125
|
+
readonly walletBalanceDisplay: string | null;
|
|
1126
|
+
readonly paidThisMonthDisplay: string | null;
|
|
1127
|
+
readonly isLoading: boolean;
|
|
1128
|
+
readonly error: CapxulError | null;
|
|
1129
|
+
}
|
|
1130
|
+
interface PayrollGroupsSlice {
|
|
1131
|
+
readonly groups: readonly PayrollGroupRow[];
|
|
1132
|
+
/**
|
|
1133
|
+
* R13 (#1968): `options` is the browser attempt the caller captured before the
|
|
1134
|
+
* employer pressed the button. It reaches the SDK operation unchanged, so the
|
|
1135
|
+
* group's `ui_payroll_action_completed` and the durable `payroll_group_changed`
|
|
1136
|
+
* share one correlation. Absent, the write keeps its own invocation context.
|
|
1137
|
+
*/
|
|
1138
|
+
readonly save: (input: PayrollGroupInput, options?: InvocationOptions) => Promise<CapxulResult<PayrollGroupRow>>;
|
|
1139
|
+
readonly remove: (id: PayrollGroupId, options?: InvocationOptions) => Promise<CapxulResult<void>>;
|
|
1140
|
+
readonly isSaving: boolean;
|
|
1141
|
+
readonly isLoading: boolean;
|
|
1142
|
+
readonly error: CapxulError | null;
|
|
1143
|
+
}
|
|
1144
|
+
//#endregion
|
|
1145
|
+
//#region src/payroll/payroll.d.ts
|
|
1146
|
+
interface CapxulPayrollProps {
|
|
1147
|
+
readonly orgId: OrgId | undefined;
|
|
1148
|
+
readonly children: ReactNode;
|
|
1149
|
+
}
|
|
1150
|
+
declare function Root({ orgId, children }: CapxulPayrollProps): import("react").JSX.Element;
|
|
1151
|
+
declare function Summary({ children }: {
|
|
1152
|
+
readonly children: (slice: PayrollSummarySlice) => ReactNode;
|
|
1153
|
+
}): import("react").JSX.Element;
|
|
1154
|
+
declare function Groups({ children }: {
|
|
1155
|
+
readonly children: (slice: PayrollGroupsSlice) => ReactNode;
|
|
1156
|
+
}): import("react").JSX.Element;
|
|
1157
|
+
/**
|
|
1158
|
+
* The compound shape the app's own design system already uses (`StatusTabs`).
|
|
1159
|
+
* There is NO `.Runs` part (ruling Q6): no shipped region has the right shape
|
|
1160
|
+
* for a run list, and a part without a production caller may not ship.
|
|
1161
|
+
*/
|
|
1162
|
+
export declare const CapxulPayroll: typeof Root & {
|
|
1163
|
+
Summary: typeof Summary;
|
|
1164
|
+
Groups: typeof Groups;
|
|
1114
1165
|
};
|
|
1115
1166
|
//#endregion
|
|
1116
|
-
export { type AccountFailure, type AccountProgress, type ActionResult, type ActivityDetailSlice, type ActivityExportSlice, type ActivityFilterValues, type ActivityFiltersSlice, type ActivityLoadMoreSlice, type ActivityReceipt, type ActivityRow, type ActivityRowsSlice, type ActivitySearchSlice, type ActivitySummarySlice, type AuthenticatedState, type AuthenticationSlots, type CanReason,
|
|
1167
|
+
export { type AccountFailure, type AccountProgress, type ActionResult, type ActivityDetailSlice, type ActivityExportSlice, type ActivityFilterValues, type ActivityFiltersSlice, type ActivityLoadMoreSlice, type ActivityReceipt, type ActivityRow, type ActivityRowsSlice, type ActivitySearchSlice, type ActivitySummarySlice, type AuthenticatedState, type AuthenticationSlots, type CanReason, type CapxulActivityProps, type CapxulAuth, CapxulAuthenticationController, type CapxulBootstrapState, type CapxulBootstrapStatus, type CapxulClientConnectionProps, type CapxulContactsProps, type CapxulDashboardAccessProps, CapxulOnboardingController, type CapxulOrgMemberProps, type CapxulPayrollProps, type CapxulPayrollRunBlockedReason, type CapxulPayrollRunProps, type CapxulProviderProps, type CapxulSend, type CapxulSendMoneyBlockedReason, type CapxulSendMoneyProps, type CompleteSlice as ClientConnectionCompleteSlice, type ConsentSlice as ClientConnectionConsentSlice, type FailureSlice as ClientConnectionFailureSlice, type OtpSlice as ClientConnectionOtpSlice, type Contact, type ContactRelationship, type ContactRow, type ContactsActor, type ContactsAddBlockedReason, type ContactsAddError, type ContactsAddSlice, type ContactsListOptions, type ContactsListSlice, type ContactsRefusal, type ContactsSummarySlice, type ControllerAction, type CreateOrganizationFailure, type CreateOrganizationSubmission, type CsvExport, type DashboardAccessErrorSlice, type DashboardAccessPhase, type DashboardAccessProbe, type DashboardAccessRedirectSlice, type DashboardScope, type Destination, type FaultedState, type HandleAvailability, type ImageUploadInput, type ImageUploadTarget, type InvocationOptions, type NavigationAction, type OnboardingControllerProps, type OnboardingIntent, type OnboardingJourney, type OnboardingJourneyPosition, type OnboardingOrigin, type OnboardingStep, type OrgFailure, type OrgMemberAction, type OrgMemberCanSlice, type OrgMemberStanding, type OrgMemberStandingSlice, type OrgProgress, type OrganizationDetails, type OrganizationDraft, type OtpPendingState, type PayoutDraftChain, type PayoutDraftEntry, type PayrollGroupRow, type PayrollGroupsSlice, type PayrollRecipientOption, type PayrollRunActionsSlice, type PayrollRunAmountEntry, type PayrollRunAmountsSlice, type PayrollRunAssetSlice, type PayrollRunGroupOption, type PayrollRunPrefill, type PayrollRunRecipientsSlice, type PayrollRunStatus, type PayrollRunSummarySlice, type PayrollSummarySlice, type PendingAuthState, type ProfileDetails, type ProfileDraft, type ProfileSlotProps, type ReadyDestination, type RetryAction, type SendActor, type SendMoneyActionsSlice, type SendMoneyAmountSlice, type SendMoneyAssetError, type SendMoneyAssetOption, type SendMoneyAssetSlice, type SendMoneyRecipientSlice, type SendMoneyRecipientStatus, type SendMoneySourceError, type SendMoneySourceOption, type SendMoneySourceSlice, type SendResult, type SentPayment, type SentPayrollRun, type SignedOutState, type Slot, type SummaryWindow, type UseCapxulAccountBalanceOptions, type UseCapxulAccountBalanceReturn, type UseCapxulAccountFundReturn, type UseCapxulCreateOrgReturn, type UseCapxulHandleAvailabilityReturn, type UseCapxulImageUploadReturn, type UseCapxulOrgMembersOptions, type UseCapxulOrgMembersReturn, type UseCapxulOrgRolesOptions, type UseCapxulOrgRolesReturn, type UseCapxulOrgTreasuryOptions, type UseCapxulOrgTreasuryReturn, type UseCapxulOrgsReturn, type UseCapxulPayReturn, type UseCapxulPaymentReturn, type UseCapxulPaymentsReturn, type UseCapxulProfileReturn, type UseCapxulUploadImageReturn, isClaimed, isRestoring };
|