@streamoid/settings 0.6.6 → 0.7.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/README.md +11 -3
- package/dist/index.d.mts +101 -97
- package/dist/index.d.ts +101 -97
- package/dist/index.js +496 -686
- package/dist/index.mjs +519 -709
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -48,7 +48,11 @@ type SettingsTab = "profile"
|
|
|
48
48
|
| "organization"
|
|
49
49
|
/** Organization › Workspaces. */
|
|
50
50
|
| "organizationWorkspaces"
|
|
51
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated The Domains tab is gone; join requests moved to Organization ›
|
|
53
|
+
* Workspaces. Kept so old links and host code still resolve — it renders
|
|
54
|
+
* the Workspaces view.
|
|
55
|
+
*/
|
|
52
56
|
| "organizationDomains" | "referral" | "billing" | "apikey";
|
|
53
57
|
/** Which entity a tab acts on. Drives the nav grouping and the breadcrumb. */
|
|
54
58
|
type SettingsScope = "account" | "workspace" | "organization" | "global";
|
|
@@ -155,10 +159,11 @@ interface SettingsWorkspaceCurrent {
|
|
|
155
159
|
*/
|
|
156
160
|
organizationId?: string;
|
|
157
161
|
/**
|
|
158
|
-
* "
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
+
* "shared" = listed in the organization's workspace picker, so anyone in the
|
|
163
|
+
* organization can join it as a member; "private" = not listed, people get
|
|
164
|
+
* in by invite only. Visibility never grants access by itself. Org admins
|
|
165
|
+
* can open every workspace in their organization either way (host-side
|
|
166
|
+
* rule, not enforced by this package).
|
|
162
167
|
*/
|
|
163
168
|
orgVisibility?: "private" | "shared";
|
|
164
169
|
}
|
|
@@ -242,10 +247,11 @@ interface SettingsWorkspaceAdapter {
|
|
|
242
247
|
/**
|
|
243
248
|
* An organization membership role.
|
|
244
249
|
*
|
|
245
|
-
* `guest` is an outsider who accepted an invite to a
|
|
246
|
-
*
|
|
247
|
-
* responses — but inherit nothing from the org:
|
|
248
|
-
*
|
|
250
|
+
* `guest` is an outsider who accepted an invite to a workspace inside the
|
|
251
|
+
* organization. They hold a membership row — so they show up in these
|
|
252
|
+
* responses — but inherit nothing from the org: they can't join its shared
|
|
253
|
+
* workspaces from the picker, can only ever be a workspace member, and every
|
|
254
|
+
* org-level write is refused by the backend.
|
|
249
255
|
*
|
|
250
256
|
* Gate write affordances on `=== "admin"`, never on `!== "member"`: a role this
|
|
251
257
|
* union does not yet name must read as least-privileged, not as an editor.
|
|
@@ -267,7 +273,15 @@ interface SettingsOrganizationCurrent {
|
|
|
267
273
|
imageUrl?: string;
|
|
268
274
|
role?: SettingsOrganizationRole | string;
|
|
269
275
|
/**
|
|
270
|
-
*
|
|
276
|
+
* The email domain this organization is tied to (e.g. "acme.com"), when it
|
|
277
|
+
* has one. Organizations created for a team on a free email provider have
|
|
278
|
+
* none. Lets the workspace invite modal tell, from the address alone, that
|
|
279
|
+
* an invitee will be a guest — and so can only be invited as a member.
|
|
280
|
+
*/
|
|
281
|
+
domain?: string | null;
|
|
282
|
+
/**
|
|
283
|
+
* Whether the viewer may add people to this organization through a
|
|
284
|
+
* workspace invite ("Colleague").
|
|
271
285
|
*
|
|
272
286
|
* Orthogonal to `role`, not implied by it: a guest row can carry it too, so
|
|
273
287
|
* gate on `role !== "guest" && (role === "admin" || inviteAccess)`. The
|
|
@@ -279,7 +293,9 @@ interface SettingsOrganizationCurrent {
|
|
|
279
293
|
interface OrganizationMember {
|
|
280
294
|
_id: string;
|
|
281
295
|
role: SettingsOrganizationRole;
|
|
282
|
-
|
|
296
|
+
/** @deprecated Only meant anything for organization-level invites, which
|
|
297
|
+
* no longer exist. */
|
|
298
|
+
inviteAccess?: boolean;
|
|
283
299
|
/** Populated user. Rows whose user document was deleted come back from the
|
|
284
300
|
* API with a null `user` — OrganizationContent drops those on fetch, so
|
|
285
301
|
* every render site can treat this as present. */
|
|
@@ -295,7 +311,10 @@ interface OrganizationMember {
|
|
|
295
311
|
name?: string;
|
|
296
312
|
};
|
|
297
313
|
}
|
|
298
|
-
/**
|
|
314
|
+
/**
|
|
315
|
+
* @deprecated Organization-level invites no longer exist; the package never
|
|
316
|
+
* reads this. Kept so host adapters that still name it keep compiling.
|
|
317
|
+
*/
|
|
299
318
|
interface OrganizationInvite {
|
|
300
319
|
_id: string;
|
|
301
320
|
kind: "email" | "domain";
|
|
@@ -331,10 +350,8 @@ interface OrganizationJoinRequest {
|
|
|
331
350
|
};
|
|
332
351
|
createdAt?: string;
|
|
333
352
|
}
|
|
334
|
-
/**
|
|
335
|
-
*
|
|
336
|
-
* already exists for your company" prompt in the create-organization
|
|
337
|
-
* empty state, so people don't fragment a company across duplicate orgs. */
|
|
353
|
+
/** @deprecated Joining by domain now happens at sign-in; the package never
|
|
354
|
+
* reads this. */
|
|
338
355
|
interface OrganizationDomainMatch {
|
|
339
356
|
organizationId: string;
|
|
340
357
|
organizationName: string;
|
|
@@ -350,7 +367,9 @@ interface SettingsOrganizationAdapter {
|
|
|
350
367
|
managementUrl?: string;
|
|
351
368
|
current: SettingsOrganizationCurrent | null;
|
|
352
369
|
list: () => Promise<SettingsOrganizationListItem[]>;
|
|
353
|
-
|
|
370
|
+
/** @deprecated Organizations are created at sign-in from the email domain,
|
|
371
|
+
* or from the company name given in onboarding. Never called. */
|
|
372
|
+
create?: (input: {
|
|
354
373
|
name: string;
|
|
355
374
|
imageFile?: File | null;
|
|
356
375
|
}) => Promise<{
|
|
@@ -364,59 +383,55 @@ interface SettingsOrganizationAdapter {
|
|
|
364
383
|
switch: (id: string) => Promise<void>;
|
|
365
384
|
delete: (id: string) => Promise<void>;
|
|
366
385
|
fetchMembers: () => Promise<OrganizationMember[]>;
|
|
367
|
-
/**
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
inviteMemberByEmail
|
|
386
|
+
/** @deprecated Never called. */
|
|
387
|
+
fetchInvites?: () => Promise<OrganizationInvite[]>;
|
|
388
|
+
/** @deprecated Never called. */
|
|
389
|
+
inviteMemberByEmail?: (input: {
|
|
371
390
|
email: string;
|
|
372
391
|
role: "admin" | "member";
|
|
373
392
|
inviteAccess: boolean;
|
|
374
393
|
}) => Promise<void>;
|
|
375
|
-
|
|
394
|
+
/** @deprecated Never called. */
|
|
395
|
+
inviteDomain?: (input: {
|
|
376
396
|
domain: string;
|
|
377
397
|
autoJoinRole: "admin" | "member";
|
|
378
398
|
}) => Promise<void>;
|
|
379
|
-
/**
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
cancelInvite
|
|
383
|
-
|
|
399
|
+
/** @deprecated Never called. */
|
|
400
|
+
revokeDomainInvite?: (id: string) => Promise<void>;
|
|
401
|
+
/** @deprecated Never called. */
|
|
402
|
+
cancelInvite?: (token: string) => Promise<void>;
|
|
403
|
+
/** @deprecated Never called. */
|
|
404
|
+
resendInvite?: (invitationId: string) => Promise<void>;
|
|
405
|
+
/** Removes the users from the organization — and, on the backend, from
|
|
406
|
+
* every workspace in it. */
|
|
384
407
|
removeMember: (input: {
|
|
385
408
|
userIds?: string[];
|
|
409
|
+
/** @deprecated Organization invites no longer exist. */
|
|
386
410
|
invitationIds?: string[];
|
|
387
411
|
}) => Promise<void>;
|
|
388
412
|
updateMemberRole: (input: {
|
|
389
413
|
userId: string;
|
|
390
414
|
role: "admin" | "member";
|
|
415
|
+
/** @deprecated Organization invites no longer exist. */
|
|
391
416
|
inviteAccess?: boolean;
|
|
392
417
|
}) => Promise<void>;
|
|
393
418
|
/** Optional: gates write affordances inside the Organization tab. Can report
|
|
394
419
|
* "guest", so callers must gate on `=== "admin"` rather than `!== "member"`. */
|
|
395
420
|
getHighestRole?: () => Promise<{
|
|
396
421
|
role: SettingsOrganizationRole;
|
|
397
|
-
/**
|
|
398
|
-
* The viewer's own email domain, and whether it can be claimed at all.
|
|
399
|
-
*
|
|
400
|
-
* A self-serve domain claim can only ever be the claimer's OWN domain —
|
|
401
|
-
* there is no DNS verification, so the backend refuses any other — which
|
|
402
|
-
* makes one boolean about one known domain the entire answer. Server
|
|
403
|
-
* computed on purpose: the disposable-domain lists it consults are
|
|
404
|
-
* provisioned at runtime, so no bundled list could agree with it.
|
|
405
|
-
*/
|
|
422
|
+
/** @deprecated Domain claims no longer exist; never read. */
|
|
406
423
|
emailDomain?: string | null;
|
|
424
|
+
/** @deprecated Domain claims no longer exist; never read. */
|
|
407
425
|
canClaimEmailDomain?: boolean;
|
|
408
426
|
}>;
|
|
409
427
|
fetchWorkspaces: () => Promise<OrganizationWorkspaceItem[]>;
|
|
410
428
|
fetchJoinRequests: () => Promise<OrganizationJoinRequest[]>;
|
|
411
429
|
approveJoinRequest: (requestId: string) => Promise<void>;
|
|
412
430
|
rejectJoinRequest: (requestId: string) => Promise<void>;
|
|
413
|
-
/**
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
/** Self-service join for the domain-match prompt — domain invites are
|
|
418
|
-
* auto-join by design, so this doesn't need admin approval. */
|
|
419
|
-
joinByDomain: () => Promise<void>;
|
|
431
|
+
/** @deprecated Joining by domain now happens at sign-in. Never called. */
|
|
432
|
+
checkDomainMatch?: () => Promise<OrganizationDomainMatch | null>;
|
|
433
|
+
/** @deprecated Joining by domain now happens at sign-in. Never called. */
|
|
434
|
+
joinByDomain?: () => Promise<void>;
|
|
420
435
|
}
|
|
421
436
|
type TokenExpiry = "30d" | "60d" | "90d" | "1y" | "never";
|
|
422
437
|
interface ApiToken {
|
|
@@ -1040,21 +1055,17 @@ declare function TeamsContent({ embedded, onInviteOpen, onInviteOpenChange, work
|
|
|
1040
1055
|
}): react.JSX.Element;
|
|
1041
1056
|
|
|
1042
1057
|
/**
|
|
1043
|
-
* Which slice of the organization to show
|
|
1044
|
-
*
|
|
1045
|
-
* requests competed for the same screen and the sections below the table were
|
|
1046
|
-
* easy to miss entirely.
|
|
1058
|
+
* Which slice of the organization to show: its people, or its workspaces
|
|
1059
|
+
* together with the workspaces asking to join it.
|
|
1047
1060
|
*
|
|
1048
|
-
* `
|
|
1049
|
-
*
|
|
1050
|
-
*
|
|
1061
|
+
* `domains` is kept as an alias of `workspaces` for hosts and links that still
|
|
1062
|
+
* use it. The Domains tab it named is gone: an organization is tied to one
|
|
1063
|
+
* email domain from the moment it is created, and nobody claims one by hand.
|
|
1051
1064
|
*/
|
|
1052
1065
|
type OrganizationView = "people" | "workspaces" | "domains";
|
|
1053
|
-
declare function OrganizationContent({ embedded, view,
|
|
1066
|
+
declare function OrganizationContent({ embedded, view, }?: {
|
|
1054
1067
|
embedded?: boolean;
|
|
1055
1068
|
view?: OrganizationView;
|
|
1056
|
-
onInviteOpen?: boolean;
|
|
1057
|
-
onInviteOpenChange?: (open: boolean) => void;
|
|
1058
1069
|
}): react.JSX.Element;
|
|
1059
1070
|
|
|
1060
1071
|
declare function TokensContent({ embedded, showRevokedOverride, onShowRevokedChange: _onShowRevokedChange, createOpenOverride, onCreateOpenChange, }?: {
|
|
@@ -1141,7 +1152,9 @@ interface MemberListToolbarProps {
|
|
|
1141
1152
|
activeLabel: string;
|
|
1142
1153
|
/** Row counts, appended to each tab label. Pass `null` while still loading. */
|
|
1143
1154
|
activeCount: number | null;
|
|
1144
|
-
|
|
1155
|
+
/** Omit (or pass `undefined`) for a list with no pending invites — the
|
|
1156
|
+
* organization's — and the tab pair collapses to a single label. */
|
|
1157
|
+
pendingCount?: number | null;
|
|
1145
1158
|
searchQuery: string;
|
|
1146
1159
|
onSearchChange: (value: string) => void;
|
|
1147
1160
|
/** Optional trailing control, e.g. an Invite button on the page itself. */
|
|
@@ -1211,63 +1224,48 @@ interface OrganizationModalProps {
|
|
|
1211
1224
|
}
|
|
1212
1225
|
declare function OrganizationModal({ open, mode, organization, onClose, onCreate, onUpdate, onDelete, }: OrganizationModalProps): react.JSX.Element | null;
|
|
1213
1226
|
|
|
1214
|
-
|
|
1215
|
-
|
|
1227
|
+
interface WorkspacePickerItem {
|
|
1228
|
+
_id: string;
|
|
1229
|
+
name: string;
|
|
1230
|
+
imageUrl?: string;
|
|
1231
|
+
/** Who created it, shown under the name. */
|
|
1232
|
+
ownerName?: string;
|
|
1233
|
+
}
|
|
1234
|
+
interface WorkspacePickerProps {
|
|
1235
|
+
organizationName?: string;
|
|
1236
|
+
workspaces: WorkspacePickerItem[];
|
|
1237
|
+
/** While the list is still loading. */
|
|
1238
|
+
loading?: boolean;
|
|
1239
|
+
/** Join the ticked workspaces as a member. Throw to keep the picker open. */
|
|
1240
|
+
onJoin: (workspaceIds: string[]) => Promise<void>;
|
|
1241
|
+
/** Create a workspace (the user becomes its admin). Throw to keep it open. */
|
|
1242
|
+
onCreate: (name: string) => Promise<void>;
|
|
1243
|
+
}
|
|
1244
|
+
declare function WorkspacePicker({ organizationName, workspaces, loading, onJoin, onCreate, }: WorkspacePickerProps): react.JSX.Element;
|
|
1245
|
+
|
|
1246
|
+
interface OrganizationMemberModalProps {
|
|
1216
1247
|
open: boolean;
|
|
1217
|
-
|
|
1218
|
-
/** Update mode: the target member's email (read-only display). */
|
|
1248
|
+
/** The target member's email (read-only display). */
|
|
1219
1249
|
userEmail?: string;
|
|
1220
1250
|
/** admin/member only — the toggle below cannot express any other role, so
|
|
1221
1251
|
* pass `lockRole` for a target whose role is outside that pair. */
|
|
1222
1252
|
initialRole?: "admin" | "member";
|
|
1223
1253
|
/**
|
|
1224
1254
|
* Show the target's role read-only and disable Save, leaving Remove as the
|
|
1225
|
-
* only action.
|
|
1226
|
-
*
|
|
1227
|
-
* For an organization guest: the toggle offers Admin and Member and nothing
|
|
1228
|
-
* else, so opening it on a guest preselected "Member" and quietly promoted
|
|
1229
|
-
* them the moment Save was pressed — even by an admin who came only to flip
|
|
1230
|
-
* `inviteAccess`, which is itself the thing a guest must never hold. Removing
|
|
1231
|
-
* a guest happens through this same modal, so refusing to open it was not an
|
|
1232
|
-
* option.
|
|
1255
|
+
* only action. For an organization guest: the toggle offers Admin and Member
|
|
1256
|
+
* and nothing else, and a guest can't be made either.
|
|
1233
1257
|
*/
|
|
1234
1258
|
lockRole?: boolean;
|
|
1235
|
-
/**
|
|
1236
|
-
* Whether the viewer's own email domain can be claimed at all. Defaults to
|
|
1237
|
-
* true, preserving today's behaviour for any host that does not pass it.
|
|
1238
|
-
*
|
|
1239
|
-
* A domain claim can only ever be the claimer's OWN domain — there is no DNS
|
|
1240
|
-
* verification, so the backend refuses any other — and a public provider
|
|
1241
|
-
* like gmail.com can never be claimed by anybody. Offering the tab in that
|
|
1242
|
-
* case advertises the one mechanism that would solve bulk onboarding and
|
|
1243
|
-
* then fails after submit, which is worse than not offering it.
|
|
1244
|
-
*/
|
|
1245
|
-
canClaimDomain?: boolean;
|
|
1246
|
-
/** The viewer's own email domain: the only one they could ever claim. */
|
|
1247
|
-
claimableDomain?: string | null;
|
|
1248
1259
|
/** Label for the read-only role shown when `lockRole` is set. */
|
|
1249
1260
|
lockedRoleLabel?: string;
|
|
1250
|
-
initialInviteAccess?: boolean;
|
|
1251
|
-
/** Lets a pending-invite row reopen this modal to resend without edits. */
|
|
1252
|
-
allowSubmitWithoutChanges?: boolean;
|
|
1253
1261
|
canRemove?: boolean;
|
|
1254
1262
|
onClose: () => void;
|
|
1255
|
-
onInviteEmail?: (input: {
|
|
1256
|
-
email: string;
|
|
1257
|
-
role: "admin" | "member";
|
|
1258
|
-
inviteAccess: boolean;
|
|
1259
|
-
}) => void;
|
|
1260
|
-
onInviteDomain?: (input: {
|
|
1261
|
-
domain: string;
|
|
1262
|
-
autoJoinRole: "admin" | "member";
|
|
1263
|
-
}) => void;
|
|
1264
1263
|
onUpdate?: (input: {
|
|
1265
1264
|
role: "admin" | "member";
|
|
1266
|
-
inviteAccess: boolean;
|
|
1267
1265
|
}) => void;
|
|
1268
1266
|
onRemove?: () => void;
|
|
1269
1267
|
}
|
|
1270
|
-
declare function
|
|
1268
|
+
declare function OrganizationMemberModal({ open, userEmail, initialRole, lockRole, lockedRoleLabel, canRemove, onClose, onUpdate, onRemove, }: OrganizationMemberModalProps): react.JSX.Element | null;
|
|
1271
1269
|
|
|
1272
1270
|
interface ConfirmLeaveModalProps {
|
|
1273
1271
|
open: boolean;
|
|
@@ -1304,8 +1302,8 @@ interface StoreOption {
|
|
|
1304
1302
|
}
|
|
1305
1303
|
/**
|
|
1306
1304
|
* Standing in the workspace's parent organization, as distinct from `role`,
|
|
1307
|
-
* which is the role inside the workspace itself.
|
|
1308
|
-
*
|
|
1305
|
+
* which is the role inside the workspace itself. A colleague can hold either
|
|
1306
|
+
* workspace role; a guest can only ever be a workspace member.
|
|
1309
1307
|
*/
|
|
1310
1308
|
type OrganizationStanding = "colleague" | "guest";
|
|
1311
1309
|
interface InviteUpdateModalProps {
|
|
@@ -1372,10 +1370,16 @@ interface InviteUpdateModalProps {
|
|
|
1372
1370
|
allowGuestStanding?: boolean;
|
|
1373
1371
|
/** Defaults to "guest" — the least-privileged of the two. */
|
|
1374
1372
|
initialOrganizationStanding?: OrganizationStanding;
|
|
1373
|
+
/**
|
|
1374
|
+
* The email domain of the workspace's organization, when it has one. An
|
|
1375
|
+
* invitee outside it joins as a guest (unless invited as a Colleague), and
|
|
1376
|
+
* a guest can only be a workspace member — so Admin is locked off for them.
|
|
1377
|
+
*/
|
|
1378
|
+
organizationDomain?: string | null;
|
|
1375
1379
|
/** Called only in invite mode; receives (permissions, email, standing) */
|
|
1376
1380
|
onInvite?: (permissions: UserPermissions, email: string, organizationStanding?: OrganizationStanding) => void;
|
|
1377
1381
|
}
|
|
1378
|
-
declare function InviteUpdateModal({ open, mode, userEmail, stores, hiddenApps, allowSubmitWithoutChanges, initialPermissions, onClose, onSave, onRemove, canRemove, showOrganizationStanding, organizationName, allowGuestStanding, initialOrganizationStanding, onInvite, }: InviteUpdateModalProps): react.JSX.Element | null;
|
|
1382
|
+
declare function InviteUpdateModal({ open, mode, userEmail, stores, hiddenApps, allowSubmitWithoutChanges, initialPermissions, onClose, onSave, onRemove, canRemove, showOrganizationStanding, organizationName, allowGuestStanding, initialOrganizationStanding, organizationDomain, onInvite, }: InviteUpdateModalProps): react.JSX.Element | null;
|
|
1379
1383
|
|
|
1380
1384
|
interface ExportDateModalProps {
|
|
1381
1385
|
title: string;
|
|
@@ -1395,4 +1399,4 @@ declare function SettingsAdaptersProvider({ adapters, children, }: {
|
|
|
1395
1399
|
*/
|
|
1396
1400
|
declare function useSettingsAdapters(): SettingsAdapters;
|
|
1397
1401
|
|
|
1398
|
-
export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type CreatedToken, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, type OrganizationInvite,
|
|
1402
|
+
export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type CreatedToken, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, type OrganizationInvite, type OrganizationJoinRequest, type OrganizationMember, OrganizationMemberModal, type OrganizationMemberModalProps, OrganizationModal, type OrganizationView, type OrganizationWorkspaceItem, type Price, type PriceMetadata, type ProductsResponse, ProfileAvatar, ProfileTab, ReferralTab, SCOPE_LABELS, ScopeHeader, type ScopeHeaderProps, type ServiceItem, type SettingsAdapters, SettingsAdaptersProvider, type SettingsApiAdapter, type SettingsAuthAdapter, type SettingsAuthUser, SettingsContent, type SettingsContentProps, type SettingsImageUploadAdapter, type SettingsNavigationAdapter, type SettingsOrganizationAdapter, type SettingsOrganizationCurrent, type SettingsOrganizationListItem, type SettingsScope, type SettingsTab, type SettingsToastAdapter, SettingsTooltip, type SettingsTooltipPlacement, type SettingsTooltipProps, type SettingsWorkspaceAdapter, type SettingsWorkspaceCurrent, type SettingsWorkspaceListItem, SiconKey, type StoreItem, type SubscriptionPlan, type SubscriptionResponse, TAB_DESCRIPTIONS, TAB_LABELS, TAB_SCOPE, TAB_TO_URL, type TeamMember, TeamsContent, type TokenExpiry, TokensContent, URL_TO_TAB, USER_LANGUAGES, type UpdateSubscriptionPayload, type UpdateSubscriptionResponse, type UsageHistoryItem, type UsageHistoryResponse, type UserLanguage, type UserPermissions, type WorkspaceData, WorkspaceGeneralTab, type WorkspaceGeneralTabProps, type WorkspaceInvite, WorkspaceListTab, type WorkspaceMember, WorkspaceModal, type WorkspaceOrganization, type WorkspaceOrganizationRequest, WorkspacePicker, type WorkspacePickerItem, type WorkspacePickerProps, WorkspaceTab, type WorkspaceUsageResponse, countLabel, loadWorkspaceOrganization, resolveSettingsTabFromPath, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel };
|