@burdenoff/microfe-organization 2026.1013.2 → 2026.1101.1
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/dist/generated/global-operations.js +57 -58
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.js +1 -2
- package/dist/generated/global-types.js.map +1 -1
- package/dist/node_modules/sonner/dist/index.js +2 -3
- package/dist/node_modules/sonner/dist/index.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/errors.js +44 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +7 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +652 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +429 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +143 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +84 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +29 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +90 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +285 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/memoizer.js +188 -0
- package/dist/node_modules/zod/v4/core/memoizer.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +159 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +34 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +41 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +979 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js +330 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +417 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/node_modules/zod/v4/locales/en.js +96 -0
- package/dist/node_modules/zod/v4/locales/en.js.map +1 -0
- package/dist/organization-management/AdminOrganizationRoot.js +13 -10
- package/dist/organization-management/AdminOrganizationRoot.js.map +1 -1
- package/dist/organization-management/AdminOrganizationRoutes.js +53 -47
- package/dist/organization-management/AdminOrganizationRoutes.js.map +1 -1
- package/dist/organization-management/UserOrganizationRoot.js +13 -10
- package/dist/organization-management/UserOrganizationRoot.js.map +1 -1
- package/dist/organization-management/UserOrganizationRoutes.js +52 -46
- package/dist/organization-management/UserOrganizationRoutes.js.map +1 -1
- package/dist/organization-management/constants/permissions.js +1 -2
- package/dist/organization-management/constants/permissions.js.map +1 -1
- package/dist/organization-management/hooks/useOrganizationEventEmitter.js +1 -2
- package/dist/organization-management/hooks/useOrganizationEventEmitter.js.map +1 -1
- package/dist/organization-management/hooks/useOrganizationPageView.js +1 -2
- package/dist/organization-management/hooks/useOrganizationPageView.js.map +1 -1
- package/dist/organization-management/modules/members/components/BulkInviteForm.js +3 -3
- package/dist/organization-management/modules/members/components/BulkInviteForm.js.map +1 -1
- package/dist/organization-management/modules/members/components/InviteMemberForm.js +1 -2
- package/dist/organization-management/modules/members/components/InviteMemberForm.js.map +1 -1
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js +1 -2
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js.map +1 -1
- package/dist/organization-management/modules/members/components/MemberRoleBadge.js +1 -2
- package/dist/organization-management/modules/members/components/MemberRoleBadge.js.map +1 -1
- package/dist/organization-management/modules/members/components/MyInviteCard.js +5 -6
- package/dist/organization-management/modules/members/components/MyInviteCard.js.map +1 -1
- package/dist/organization-management/modules/members/components/PendingInvitesList.js +8 -9
- package/dist/organization-management/modules/members/components/PendingInvitesList.js.map +1 -1
- package/dist/organization-management/modules/members/hooks/useInvites.js +2 -3
- package/dist/organization-management/modules/members/hooks/useInvites.js.map +1 -1
- package/dist/organization-management/modules/members/hooks/useMembers.js +1 -2
- package/dist/organization-management/modules/members/hooks/useMembers.js.map +1 -1
- package/dist/organization-management/modules/members/hooks/useWorkspaceInvites.js +1 -2
- package/dist/organization-management/modules/members/hooks/useWorkspaceInvites.js.map +1 -1
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js +16 -17
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/InvitePeoplePage.js +14 -15
- package/dist/organization-management/modules/members/pages/InvitePeoplePage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js +18 -19
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MembersListPage.js +142 -143
- package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js +168 -169
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js +13 -14
- package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js.map +1 -1
- package/dist/organization-management/modules/members/utils/bulkInviteCsv.js +4 -10
- package/dist/organization-management/modules/members/utils/bulkInviteCsv.js.map +1 -1
- package/dist/organization-management/modules/members/utils/workspaceInvitationDisplay.js +1 -2
- package/dist/organization-management/modules/members/utils/workspaceInvitationDisplay.js.map +1 -1
- package/dist/organization-management/modules/organizations/components/OrganizationForm.js +14 -15
- package/dist/organization-management/modules/organizations/components/OrganizationForm.js.map +1 -1
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js +1 -2
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js.map +1 -1
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.js +2 -3
- package/dist/organization-management/modules/organizations/hooks/useOrganizations.js.map +1 -1
- package/dist/organization-management/modules/organizations/hooks/useOrgsWithPermission.js +22 -21
- package/dist/organization-management/modules/organizations/hooks/useOrgsWithPermission.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +18 -19
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +29 -30
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +14 -15
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +33 -34
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/schemas/index.js +11 -12
- package/dist/organization-management/modules/organizations/schemas/index.js.map +1 -1
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js +16 -24
- package/dist/organization-management/modules/workspaces/components/AddWorkspaceMemberDialog.js.map +1 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js +5 -6
- package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js.map +1 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js +31 -32
- package/dist/organization-management/modules/workspaces/components/WorkspaceForm.js.map +1 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js +1 -2
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js.map +1 -1
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js +1 -2
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaceMembers.js.map +1 -1
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js +11 -12
- package/dist/organization-management/modules/workspaces/hooks/useWorkspaces.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +18 -19
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +43 -44
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +19 -20
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +240 -241
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/schemas/index.js +6 -7
- package/dist/organization-management/modules/workspaces/schemas/index.js.map +1 -1
- package/dist/organization-management/providers/OrgConsoleProvider.js +1 -2
- package/dist/organization-management/providers/OrgConsoleProvider.js.map +1 -1
- package/dist/organization-management/providers/OrgScopedPermissions.js +1 -2
- package/dist/organization-management/providers/OrgScopedPermissions.js.map +1 -1
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js +1 -2
- package/dist/organization-management/shared/components/dialog/ConfirmDialog.js.map +1 -1
- package/dist/organization-management/shared/components/dialog/ConfirmDialogView.js +1 -2
- package/dist/organization-management/shared/components/dialog/ConfirmDialogView.js.map +1 -1
- package/dist/organization-management/shared/components/feedback/ErrorState.js +1 -2
- package/dist/organization-management/shared/components/feedback/ErrorState.js.map +1 -1
- package/dist/organization-management/shared/components/feedback/LoadingState.js +1 -2
- package/dist/organization-management/shared/components/feedback/LoadingState.js.map +1 -1
- package/dist/organization-management/shared/components/input/SearchInput.js +1 -2
- package/dist/organization-management/shared/components/input/SearchInput.js.map +1 -1
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js +1 -2
- package/dist/organization-management/shared/components/input/SelectionCheckbox.js.map +1 -1
- package/dist/organization-management/shared/hooks/useDebouncedValue.js +1 -2
- package/dist/organization-management/shared/hooks/useDebouncedValue.js.map +1 -1
- package/dist/organization-management/shared/hooks/useTr.js +1 -2
- package/dist/organization-management/shared/hooks/useTr.js.map +1 -1
- package/dist/organization-management/shared/logger.js +1 -2
- package/dist/organization-management/shared/logger.js.map +1 -1
- package/dist/organization-management/shared/recaptcha.js +1 -2
- package/dist/organization-management/shared/recaptcha.js.map +1 -1
- package/dist/organization-management/shared/types/graphql.js +1 -2
- package/dist/organization-management/shared/types/graphql.js.map +1 -1
- package/dist/utils/nativeBridge.js +1 -2
- package/package.json +7 -6
- package/dist/node_modules/zod/v3/ZodError.js +0 -82
- package/dist/node_modules/zod/v3/ZodError.js.map +0 -1
- package/dist/node_modules/zod/v3/errors.js +0 -10
- package/dist/node_modules/zod/v3/errors.js.map +0 -1
- package/dist/node_modules/zod/v3/helpers/errorUtil.js +0 -9
- package/dist/node_modules/zod/v3/helpers/errorUtil.js.map +0 -1
- package/dist/node_modules/zod/v3/helpers/parseUtil.js +0 -93
- package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +0 -1
- package/dist/node_modules/zod/v3/helpers/util.js +0 -76
- package/dist/node_modules/zod/v3/helpers/util.js.map +0 -1
- package/dist/node_modules/zod/v3/locales/en.js +0 -62
- package/dist/node_modules/zod/v3/locales/en.js.map +0 -1
- package/dist/node_modules/zod/v3/types.js +0 -2441
- package/dist/node_modules/zod/v3/types.js.map +0 -1
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { toast as e } from "../../../../node_modules/sonner/dist/index.js";
|
|
2
|
+
import { useOrgConsole as t } from "../../../providers/OrgConsoleProvider.js";
|
|
3
|
+
import { useMembers as n, useRemoveMember as r } from "../hooks/useMembers.js";
|
|
4
|
+
import { MemberRoleBadge as i } from "../components/MemberRoleBadge.js";
|
|
5
|
+
import { SearchInput as a } from "../../../shared/components/input/SearchInput.js";
|
|
6
|
+
import { SelectionCheckbox as o } from "../../../shared/components/input/SelectionCheckbox.js";
|
|
7
|
+
import { LoadingState as s } from "../../../shared/components/feedback/LoadingState.js";
|
|
8
|
+
import { ErrorState as c } from "../../../shared/components/feedback/ErrorState.js";
|
|
9
|
+
import { useDebouncedValue as l } from "../../../shared/hooks/useDebouncedValue.js";
|
|
9
10
|
import { useConfirmDialog as ee } from "../../../shared/components/dialog/ConfirmDialog.js";
|
|
10
|
-
import { PERMISSIONS as
|
|
11
|
-
import {
|
|
12
|
-
import { useMembers as u, useRemoveMember as d } from "../hooks/useMembers.js";
|
|
11
|
+
import { PERMISSIONS as u } from "../../../constants/permissions.js";
|
|
12
|
+
import { useTr as d } from "../../../shared/hooks/useTr.js";
|
|
13
13
|
import { useEffect as f, useMemo as p, useState as m } from "react";
|
|
14
14
|
import { Eye as h, Mail as g, RefreshCw as _, Shield as v, Trash2 as y } from "lucide-react";
|
|
15
15
|
import { GlassCard as b, IllustratedEmptyState as te, PagePurpose as ne } from "@burdenoff/fe-libs/ui";
|
|
16
16
|
import { useFeatureFlagDetails as re } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
17
17
|
import { usePermissions as ie } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
18
|
-
import { Fragment as
|
|
19
|
-
import { useParams as
|
|
20
|
-
import { ActorIdentity as
|
|
21
|
-
|
|
18
|
+
import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
19
|
+
import { useParams as ae } from "react-router";
|
|
20
|
+
import { ActorIdentity as oe, buildActorFallback as w, useActorProfiles as se } from "@burdenoff/fe-libs/shared";
|
|
21
|
+
// src/organization-management/modules/members/pages/MembersListPage.tsx
|
|
22
22
|
function ce() {
|
|
23
|
-
let e =
|
|
23
|
+
let e = d();
|
|
24
24
|
return (t) => t ? new Date(t).toLocaleDateString() : e("common.status.pending", "Pending");
|
|
25
25
|
}
|
|
26
26
|
function T() {
|
|
27
|
-
let T =
|
|
27
|
+
let T = d(), E = ce(), { navigate: D, basePath: O = "/organizations" } = t(), { hasPermission: k, isLoading: A } = ie(), j = re("organization.invite"), M = !j || !!j.value, { organizationId: N } = ae(), [P, le] = m(""), F = l(P, 250), [I, L] = m(/* @__PURE__ */ new Set()), { openConfirmDialog: R, ConfirmDialog: z } = ee(), { members: B, loading: V, error: H, refetch: U } = n(N ?? "", 50, 0), { removeMember: ue, loading: W } = r(), { apiGatewayUrl: de, authToken: fe } = t(), pe = p(() => B.map((e) => ({
|
|
28
28
|
actorId: e.userId,
|
|
29
29
|
actorType: "user"
|
|
30
|
-
})), [B]), {
|
|
30
|
+
})), [B]), G = se(pe, {
|
|
31
31
|
apiGatewayUrl: de,
|
|
32
32
|
authToken: fe,
|
|
33
|
-
orgId:
|
|
33
|
+
orgId: N
|
|
34
34
|
}), K = p(() => {
|
|
35
35
|
if (!F) return B;
|
|
36
36
|
let e = F.toLowerCase();
|
|
@@ -49,16 +49,16 @@ function T() {
|
|
|
49
49
|
return n.size === e.size ? e : n;
|
|
50
50
|
});
|
|
51
51
|
}, [K]);
|
|
52
|
-
let q = p(() => K.filter((e) => I.has(e.id)), [K, I]), J = K.length > 0 && K.every((e) => I.has(e.id)), Y = K.some((e) => I.has(e.id)) && !J, X = async (
|
|
53
|
-
if (
|
|
54
|
-
let n = (await Promise.allSettled(
|
|
55
|
-
let t = await ue(
|
|
52
|
+
let q = p(() => K.filter((e) => I.has(e.id)), [K, I]), J = K.length > 0 && K.every((e) => I.has(e.id)), Y = K.some((e) => I.has(e.id)) && !J, X = async (t) => {
|
|
53
|
+
if (N) try {
|
|
54
|
+
let n = (await Promise.allSettled(t.map(async (e) => {
|
|
55
|
+
let t = await ue(N, e);
|
|
56
56
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Failed to remove member");
|
|
57
57
|
}))).find((e) => e.status === "rejected");
|
|
58
58
|
if (n?.status === "rejected") throw n.reason;
|
|
59
|
-
L(/* @__PURE__ */ new Set()), await U(),
|
|
60
|
-
} catch (
|
|
61
|
-
|
|
59
|
+
L(/* @__PURE__ */ new Set()), await U(), e.success(t.length === 1 ? T("members.remove.successSingle", "Member removed successfully") : `${t.length} ${T("members.remove.successMany", "members removed successfully")}`);
|
|
60
|
+
} catch (t) {
|
|
61
|
+
e.error(t instanceof Error ? t.message : T("members.remove.failed", "Failed to remove member"));
|
|
62
62
|
}
|
|
63
63
|
}, Z = (e) => {
|
|
64
64
|
R({
|
|
@@ -70,7 +70,7 @@ function T() {
|
|
|
70
70
|
X([e]);
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
|
-
},
|
|
73
|
+
}, me = () => {
|
|
74
74
|
q.length !== 0 && R({
|
|
75
75
|
title: T("members.remove.bulkTitle", "Remove selected members"),
|
|
76
76
|
description: `${T("members.remove.bulkPrefix", "Remove")} ${q.length} ${T(q.length === 1 ? "members.remove.bulkSuffixSingle" : "members.remove.bulkSuffixMany", q.length === 1 ? "selected member from this organization?" : "selected members from this organization?")}`,
|
|
@@ -93,15 +93,15 @@ function T() {
|
|
|
93
93
|
}), n;
|
|
94
94
|
});
|
|
95
95
|
};
|
|
96
|
-
return
|
|
96
|
+
return N ? A ? /* @__PURE__ */ S("div", {
|
|
97
97
|
className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
|
|
98
|
-
children: /* @__PURE__ */
|
|
99
|
-
}) : k(
|
|
98
|
+
children: /* @__PURE__ */ S(s, { message: T("common.loadingPermissions", "Loading permissions...") })
|
|
99
|
+
}) : k(u.MEMBER_LIST) ? V ? /* @__PURE__ */ S("div", {
|
|
100
100
|
className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6",
|
|
101
|
-
children: /* @__PURE__ */
|
|
102
|
-
}) : H ? /* @__PURE__ */
|
|
101
|
+
children: /* @__PURE__ */ S(s, { message: T("members.list.loading", "Loading members...") })
|
|
102
|
+
}) : H ? /* @__PURE__ */ S("div", {
|
|
103
103
|
className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6",
|
|
104
|
-
children: /* @__PURE__ */
|
|
104
|
+
children: /* @__PURE__ */ S(c, {
|
|
105
105
|
message: H.message,
|
|
106
106
|
action: {
|
|
107
107
|
label: T("common.retry", "Retry"),
|
|
@@ -110,80 +110,80 @@ function T() {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
})
|
|
113
|
-
}) : /* @__PURE__ */
|
|
113
|
+
}) : /* @__PURE__ */ C("div", {
|
|
114
114
|
className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6 animate-in fade-in duration-200",
|
|
115
|
-
children: [/* @__PURE__ */
|
|
115
|
+
children: [/* @__PURE__ */ C("div", {
|
|
116
116
|
className: "mx-auto flex w-full max-w-7xl flex-col gap-6",
|
|
117
117
|
children: [
|
|
118
|
-
/* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ C("div", {
|
|
119
119
|
className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",
|
|
120
|
-
children: [/* @__PURE__ */
|
|
120
|
+
children: [/* @__PURE__ */ C("div", {
|
|
121
121
|
className: "space-y-2",
|
|
122
122
|
children: [
|
|
123
|
-
/* @__PURE__ */
|
|
123
|
+
/* @__PURE__ */ S("h1", {
|
|
124
124
|
className: "text-3xl font-bold text-[var(--color-text-primary)]",
|
|
125
125
|
children: T("members.list.title", "Members")
|
|
126
126
|
}),
|
|
127
|
-
/* @__PURE__ */
|
|
127
|
+
/* @__PURE__ */ S("p", {
|
|
128
128
|
className: "max-w-2xl text-[var(--color-text-secondary)]",
|
|
129
129
|
children: T("members.list.subtitle", "Manage organization members, inspect their roles, and invite more people into this organization.")
|
|
130
130
|
}),
|
|
131
|
-
/* @__PURE__ */
|
|
131
|
+
/* @__PURE__ */ S(ne, {
|
|
132
132
|
className: "max-w-2xl",
|
|
133
133
|
children: T("members.list.purpose", "Members are the people who belong to this organization and inherit access to its workspaces. Use this page to see who has access, check their roles, invite new people, or remove anyone who should no longer be here.")
|
|
134
134
|
})
|
|
135
135
|
]
|
|
136
|
-
}),
|
|
136
|
+
}), M && k(u.MEMBER_INVITE) && /* @__PURE__ */ C("button", {
|
|
137
137
|
type: "button",
|
|
138
|
-
onClick: () => D(`${O}/${
|
|
138
|
+
onClick: () => D(`${O}/${N}/members/invite`),
|
|
139
139
|
className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2.5 text-[var(--color-action-primary-text)] transition-all duration-200 hover:opacity-90",
|
|
140
|
-
children: [/* @__PURE__ */
|
|
140
|
+
children: [/* @__PURE__ */ S(g, {
|
|
141
141
|
size: 18,
|
|
142
142
|
"aria-hidden": "true"
|
|
143
|
-
}), /* @__PURE__ */
|
|
143
|
+
}), /* @__PURE__ */ S("span", {
|
|
144
144
|
className: "font-medium",
|
|
145
145
|
children: T("members.invite.button", "Invite Member")
|
|
146
146
|
})]
|
|
147
147
|
})]
|
|
148
148
|
}),
|
|
149
|
-
B.length > 0 ? /* @__PURE__ */
|
|
149
|
+
B.length > 0 ? /* @__PURE__ */ C("div", {
|
|
150
150
|
className: "grid grid-cols-2 gap-4",
|
|
151
|
-
children: [/* @__PURE__ */
|
|
151
|
+
children: [/* @__PURE__ */ C(b, {
|
|
152
152
|
treatment: "glass",
|
|
153
153
|
glow: !0,
|
|
154
154
|
className: "p-4",
|
|
155
|
-
children: [/* @__PURE__ */
|
|
155
|
+
children: [/* @__PURE__ */ S("p", {
|
|
156
156
|
className: "text-sm text-text-secondary",
|
|
157
157
|
children: T("members.list.title", "Members")
|
|
158
|
-
}), /* @__PURE__ */
|
|
158
|
+
}), /* @__PURE__ */ S("p", {
|
|
159
159
|
className: "mt-1 text-2xl font-semibold tabular-nums text-text-primary",
|
|
160
160
|
children: B.length
|
|
161
161
|
})]
|
|
162
|
-
}), /* @__PURE__ */
|
|
162
|
+
}), /* @__PURE__ */ C(b, {
|
|
163
163
|
treatment: "metric",
|
|
164
164
|
className: "p-4",
|
|
165
|
-
children: [/* @__PURE__ */
|
|
165
|
+
children: [/* @__PURE__ */ S("p", {
|
|
166
166
|
className: "text-sm text-text-secondary",
|
|
167
167
|
children: T("members.list.column.role", "Role")
|
|
168
|
-
}), /* @__PURE__ */
|
|
168
|
+
}), /* @__PURE__ */ S("p", {
|
|
169
169
|
className: "mt-1 text-2xl font-semibold tabular-nums text-text-primary",
|
|
170
170
|
children: new Set(B.map((e) => e.role)).size
|
|
171
171
|
})]
|
|
172
172
|
})]
|
|
173
173
|
}) : null,
|
|
174
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ C(b, {
|
|
175
175
|
treatment: "plain",
|
|
176
176
|
className: "border-border-seam p-4",
|
|
177
|
-
children: [/* @__PURE__ */
|
|
177
|
+
children: [/* @__PURE__ */ C("div", {
|
|
178
178
|
className: "flex flex-col gap-3 sm:flex-row sm:items-center",
|
|
179
|
-
children: [/* @__PURE__ */
|
|
180
|
-
value:
|
|
181
|
-
onChange:
|
|
179
|
+
children: [/* @__PURE__ */ S(a, {
|
|
180
|
+
value: P,
|
|
181
|
+
onChange: le,
|
|
182
182
|
placeholder: T("members.list.searchPlaceholder", "Search by member ID or role..."),
|
|
183
183
|
label: T("members.list.searchLabel", "Search organization members"),
|
|
184
184
|
inputId: "organization-members-search",
|
|
185
185
|
className: "flex-1"
|
|
186
|
-
}), /* @__PURE__ */
|
|
186
|
+
}), /* @__PURE__ */ S("button", {
|
|
187
187
|
type: "button",
|
|
188
188
|
onClick: () => {
|
|
189
189
|
U();
|
|
@@ -191,50 +191,50 @@ function T() {
|
|
|
191
191
|
className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-4 py-2 text-[var(--color-text-primary)] transition-all duration-200 hover:bg-[var(--color-bg-subtle)]",
|
|
192
192
|
"aria-label": T("members.list.refresh", "Refresh members"),
|
|
193
193
|
title: T("members.list.refresh", "Refresh members"),
|
|
194
|
-
children: /* @__PURE__ */
|
|
194
|
+
children: /* @__PURE__ */ S(_, {
|
|
195
195
|
size: 18,
|
|
196
196
|
"aria-hidden": "true"
|
|
197
197
|
})
|
|
198
198
|
})]
|
|
199
|
-
}), K.length > 0 ? /* @__PURE__ */
|
|
199
|
+
}), K.length > 0 ? /* @__PURE__ */ C("div", {
|
|
200
200
|
className: "mt-4 flex flex-col gap-3 rounded-lg border border-[var(--color-border-default)] bg-[var(--color-bg-canvas)] p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
201
|
-
children: [/* @__PURE__ */
|
|
201
|
+
children: [/* @__PURE__ */ C("div", {
|
|
202
202
|
className: "flex flex-wrap items-center gap-3",
|
|
203
|
-
children: [/* @__PURE__ */
|
|
203
|
+
children: [/* @__PURE__ */ C("label", {
|
|
204
204
|
className: "flex items-center gap-2 text-sm text-[var(--color-text-primary)]",
|
|
205
|
-
children: [/* @__PURE__ */
|
|
205
|
+
children: [/* @__PURE__ */ S(o, {
|
|
206
206
|
checked: J,
|
|
207
207
|
indeterminate: Y,
|
|
208
208
|
onChange: $,
|
|
209
209
|
ariaLabel: T("members.list.selectAll", "Select all members")
|
|
210
|
-
}), /* @__PURE__ */
|
|
211
|
-
}), I.size > 0 ? /* @__PURE__ */
|
|
210
|
+
}), /* @__PURE__ */ S("span", { children: T("common.selectAllVisible", "Select all visible") })]
|
|
211
|
+
}), I.size > 0 ? /* @__PURE__ */ S("button", {
|
|
212
212
|
type: "button",
|
|
213
213
|
onClick: () => L(/* @__PURE__ */ new Set()),
|
|
214
214
|
className: "text-sm text-[var(--color-text-secondary)] transition-colors hover:text-[var(--color-text-primary)]",
|
|
215
215
|
children: T("common.clearSelection", "Clear selection")
|
|
216
216
|
}) : null]
|
|
217
|
-
}), /* @__PURE__ */
|
|
217
|
+
}), /* @__PURE__ */ C("div", {
|
|
218
218
|
className: "flex flex-col gap-2 sm:flex-row sm:items-center",
|
|
219
|
-
children: [/* @__PURE__ */
|
|
219
|
+
children: [/* @__PURE__ */ C("span", {
|
|
220
220
|
className: "text-sm text-[var(--color-text-secondary)]",
|
|
221
221
|
children: [
|
|
222
222
|
I.size,
|
|
223
223
|
" ",
|
|
224
224
|
T("common.selected", "selected")
|
|
225
225
|
]
|
|
226
|
-
}), k(
|
|
226
|
+
}), k(u.MEMBER_REMOVE) && /* @__PURE__ */ C("button", {
|
|
227
227
|
type: "button",
|
|
228
|
-
onClick:
|
|
228
|
+
onClick: me,
|
|
229
229
|
disabled: q.length === 0 || W,
|
|
230
230
|
className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg border border-[var(--color-status-error-border)] px-3 py-2 text-[var(--color-status-error-text)] transition-all duration-200 hover:bg-[var(--color-status-error-bgSubtle)] disabled:cursor-not-allowed disabled:opacity-50",
|
|
231
231
|
children: [
|
|
232
|
-
/* @__PURE__ */
|
|
232
|
+
/* @__PURE__ */ S(y, {
|
|
233
233
|
size: 16,
|
|
234
234
|
"aria-hidden": "true"
|
|
235
235
|
}),
|
|
236
|
-
/* @__PURE__ */
|
|
237
|
-
q.length > 0 ? /* @__PURE__ */
|
|
236
|
+
/* @__PURE__ */ S("span", { children: T("common.removeSelected", "Remove Selected") }),
|
|
237
|
+
q.length > 0 ? /* @__PURE__ */ C("span", { children: [
|
|
238
238
|
"(",
|
|
239
239
|
q.length,
|
|
240
240
|
")"
|
|
@@ -244,62 +244,62 @@ function T() {
|
|
|
244
244
|
})]
|
|
245
245
|
}) : null]
|
|
246
246
|
}),
|
|
247
|
-
K.length === 0 ? /* @__PURE__ */
|
|
247
|
+
K.length === 0 ? /* @__PURE__ */ S(b, {
|
|
248
248
|
treatment: "glass",
|
|
249
249
|
glow: B.length === 0,
|
|
250
250
|
className: "border-border-seam p-6",
|
|
251
|
-
children: /* @__PURE__ */
|
|
251
|
+
children: /* @__PURE__ */ S(te, {
|
|
252
252
|
illustration: "empty-people",
|
|
253
253
|
title: T("members.list.emptyTitle", "No members found"),
|
|
254
254
|
description: T("members.list.emptyDescription", "Invite someone to this organization to grant them access and assign their role."),
|
|
255
|
-
action:
|
|
255
|
+
action: M && k(u.MEMBER_INVITE) ? /* @__PURE__ */ S("button", {
|
|
256
256
|
type: "button",
|
|
257
|
-
onClick: () => D(`${O}/${
|
|
257
|
+
onClick: () => D(`${O}/${N}/members/invite`),
|
|
258
258
|
className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2 font-medium text-[var(--color-action-primary-text)] transition-all duration-200 hover:bg-[var(--color-action-primary-bgHover)]",
|
|
259
259
|
children: T("members.invite.button", "Invite Member")
|
|
260
260
|
}) : void 0
|
|
261
261
|
})
|
|
262
|
-
}) : /* @__PURE__ */
|
|
262
|
+
}) : /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S("div", {
|
|
263
263
|
className: "grid gap-4 md:hidden",
|
|
264
|
-
children: K.map((e) => /* @__PURE__ */
|
|
264
|
+
children: K.map((e) => /* @__PURE__ */ C(b, {
|
|
265
265
|
treatment: "insight",
|
|
266
266
|
className: "border-border-seam p-4",
|
|
267
|
-
children: [/* @__PURE__ */
|
|
267
|
+
children: [/* @__PURE__ */ C("div", {
|
|
268
268
|
className: "flex items-start gap-3",
|
|
269
|
-
children: [/* @__PURE__ */
|
|
269
|
+
children: [/* @__PURE__ */ S(o, {
|
|
270
270
|
checked: I.has(e.id),
|
|
271
271
|
onChange: (t) => Q(e.id, t),
|
|
272
272
|
ariaLabel: `${T("members.list.selectMember", "Select member")} ${e.userId}`
|
|
273
|
-
}), /* @__PURE__ */
|
|
273
|
+
}), /* @__PURE__ */ C("div", {
|
|
274
274
|
className: "flex min-w-0 flex-1 gap-3",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ S("div", {
|
|
276
276
|
className: "flex size-10 items-center justify-center rounded-full bg-[var(--color-status-info-bgSubtle)] text-[var(--color-status-info-text)]",
|
|
277
|
-
children: /* @__PURE__ */
|
|
277
|
+
children: /* @__PURE__ */ S(v, {
|
|
278
278
|
size: 18,
|
|
279
279
|
"aria-hidden": "true"
|
|
280
280
|
})
|
|
281
|
-
}), /* @__PURE__ */
|
|
281
|
+
}), /* @__PURE__ */ C("div", {
|
|
282
282
|
className: "min-w-0 flex-1 space-y-3",
|
|
283
|
-
children: [/* @__PURE__ */
|
|
284
|
-
/* @__PURE__ */
|
|
283
|
+
children: [/* @__PURE__ */ C("div", { children: [
|
|
284
|
+
/* @__PURE__ */ C("div", {
|
|
285
285
|
className: "flex flex-wrap items-start gap-2",
|
|
286
|
-
children: [/* @__PURE__ */
|
|
286
|
+
children: [/* @__PURE__ */ S("h2", {
|
|
287
287
|
className: "break-all text-base font-semibold text-[var(--color-text-primary)]",
|
|
288
288
|
children: G[e.userId]?.displayName ?? `User ${e.userId.slice(0, 8)}…`
|
|
289
|
-
}), /* @__PURE__ */
|
|
289
|
+
}), /* @__PURE__ */ S(i, { role: e.role })]
|
|
290
290
|
}),
|
|
291
|
-
G[e.userId]?.email ? /* @__PURE__ */
|
|
291
|
+
G[e.userId]?.email ? /* @__PURE__ */ S("p", {
|
|
292
292
|
className: "mt-0.5 break-all text-xs text-[var(--color-text-secondary)]",
|
|
293
293
|
children: G[e.userId]?.email
|
|
294
294
|
}) : null,
|
|
295
|
-
/* @__PURE__ */
|
|
295
|
+
/* @__PURE__ */ C("details", {
|
|
296
296
|
className: "mt-1 text-xs text-[var(--color-text-muted)]",
|
|
297
297
|
children: [
|
|
298
|
-
/* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ S("summary", {
|
|
299
299
|
className: "cursor-pointer",
|
|
300
300
|
children: T("members.list.showIds", "Show IDs")
|
|
301
301
|
}),
|
|
302
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ C("p", {
|
|
303
303
|
className: "mt-1 break-all font-mono",
|
|
304
304
|
children: [
|
|
305
305
|
T("members.detail.userId", "User ID"),
|
|
@@ -307,7 +307,7 @@ function T() {
|
|
|
307
307
|
e.userId
|
|
308
308
|
]
|
|
309
309
|
}),
|
|
310
|
-
/* @__PURE__ */
|
|
310
|
+
/* @__PURE__ */ C("p", {
|
|
311
311
|
className: "mt-0.5 break-all font-mono",
|
|
312
312
|
children: [
|
|
313
313
|
T("members.list.memberId", "Member ID"),
|
|
@@ -317,118 +317,118 @@ function T() {
|
|
|
317
317
|
})
|
|
318
318
|
]
|
|
319
319
|
})
|
|
320
|
-
] }), /* @__PURE__ */
|
|
320
|
+
] }), /* @__PURE__ */ C("dl", {
|
|
321
321
|
className: "grid grid-cols-1 gap-3 text-sm",
|
|
322
|
-
children: [/* @__PURE__ */
|
|
322
|
+
children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("dt", {
|
|
323
323
|
className: "text-[var(--color-text-secondary)]",
|
|
324
324
|
children: T("members.list.invitedBy", "Invited by")
|
|
325
|
-
}), /* @__PURE__ */
|
|
325
|
+
}), /* @__PURE__ */ S("dd", {
|
|
326
326
|
className: "mt-1 break-all font-mono text-[var(--color-text-primary)]",
|
|
327
327
|
children: e.invitedBy || T("common.notAvailable", "N/A")
|
|
328
|
-
})] }), /* @__PURE__ */
|
|
328
|
+
})] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("dt", {
|
|
329
329
|
className: "text-[var(--color-text-secondary)]",
|
|
330
330
|
children: T("members.list.joined", "Joined")
|
|
331
|
-
}), /* @__PURE__ */
|
|
331
|
+
}), /* @__PURE__ */ S("dd", {
|
|
332
332
|
className: "mt-1 text-[var(--color-text-primary)]",
|
|
333
333
|
children: E(e.joinedAt)
|
|
334
334
|
})] })]
|
|
335
335
|
})]
|
|
336
336
|
})]
|
|
337
337
|
})]
|
|
338
|
-
}), /* @__PURE__ */
|
|
338
|
+
}), /* @__PURE__ */ C("div", {
|
|
339
339
|
className: "mt-4 flex flex-wrap gap-2 border-t border-[var(--color-border-default)] pt-4",
|
|
340
|
-
children: [/* @__PURE__ */
|
|
340
|
+
children: [/* @__PURE__ */ C("button", {
|
|
341
341
|
type: "button",
|
|
342
|
-
onClick: () => D(`${O}/${
|
|
342
|
+
onClick: () => D(`${O}/${N}/members/${e.userId}`),
|
|
343
343
|
className: "inline-flex min-h-10 items-center gap-2 rounded-lg border border-[var(--color-border-default)] px-3 py-2 text-sm text-[var(--color-text-primary)] transition-all duration-200 hover:bg-[var(--color-bg-subtle)]",
|
|
344
|
-
children: [/* @__PURE__ */
|
|
344
|
+
children: [/* @__PURE__ */ S(h, {
|
|
345
345
|
size: 16,
|
|
346
346
|
"aria-hidden": "true"
|
|
347
347
|
}), T("common.view", "View")]
|
|
348
|
-
}), k(
|
|
348
|
+
}), k(u.MEMBER_REMOVE) && /* @__PURE__ */ C("button", {
|
|
349
349
|
type: "button",
|
|
350
350
|
onClick: () => Z(e.userId),
|
|
351
351
|
disabled: W,
|
|
352
352
|
className: "inline-flex min-h-10 items-center gap-2 rounded-lg border border-[var(--color-status-error-border)] px-3 py-2 text-sm text-[var(--color-status-error-text)] transition-all duration-200 hover:bg-[var(--color-status-error-bgSubtle)] disabled:cursor-not-allowed disabled:opacity-50",
|
|
353
|
-
children: [/* @__PURE__ */
|
|
353
|
+
children: [/* @__PURE__ */ S(y, {
|
|
354
354
|
size: 16,
|
|
355
355
|
"aria-hidden": "true"
|
|
356
356
|
}), T("members.remove.confirm", "Remove")]
|
|
357
357
|
})]
|
|
358
358
|
})]
|
|
359
359
|
}, e.id))
|
|
360
|
-
}), /* @__PURE__ */
|
|
360
|
+
}), /* @__PURE__ */ S(b, {
|
|
361
361
|
treatment: "plain",
|
|
362
362
|
className: "hidden overflow-hidden border-border-seam p-0 md:block",
|
|
363
|
-
children: /* @__PURE__ */
|
|
363
|
+
children: /* @__PURE__ */ S("div", {
|
|
364
364
|
className: "overflow-x-auto",
|
|
365
|
-
children: /* @__PURE__ */
|
|
365
|
+
children: /* @__PURE__ */ C("table", {
|
|
366
366
|
className: "min-w-full",
|
|
367
|
-
children: [/* @__PURE__ */
|
|
367
|
+
children: [/* @__PURE__ */ S("thead", {
|
|
368
368
|
className: "bg-[var(--color-bg-subtle)]",
|
|
369
|
-
children: /* @__PURE__ */
|
|
370
|
-
/* @__PURE__ */
|
|
369
|
+
children: /* @__PURE__ */ C("tr", { children: [
|
|
370
|
+
/* @__PURE__ */ S("th", {
|
|
371
371
|
className: "w-12 px-6 py-3 text-left text-xs font-semibold uppercase tracking-wide text-[var(--color-text-secondary)]",
|
|
372
|
-
children: /* @__PURE__ */
|
|
372
|
+
children: /* @__PURE__ */ S(o, {
|
|
373
373
|
checked: J,
|
|
374
374
|
indeterminate: Y,
|
|
375
375
|
onChange: $,
|
|
376
376
|
ariaLabel: T("members.list.selectAll", "Select all members")
|
|
377
377
|
})
|
|
378
378
|
}),
|
|
379
|
-
/* @__PURE__ */
|
|
379
|
+
/* @__PURE__ */ S("th", {
|
|
380
380
|
className: "px-6 py-3 text-left text-xs font-semibold uppercase tracking-wide text-[var(--color-text-secondary)]",
|
|
381
381
|
children: T("members.list.column.user", "User")
|
|
382
382
|
}),
|
|
383
|
-
/* @__PURE__ */
|
|
383
|
+
/* @__PURE__ */ S("th", {
|
|
384
384
|
className: "px-6 py-3 text-left text-xs font-semibold uppercase tracking-wide text-[var(--color-text-secondary)]",
|
|
385
385
|
children: T("members.list.column.role", "Role")
|
|
386
386
|
}),
|
|
387
|
-
/* @__PURE__ */
|
|
387
|
+
/* @__PURE__ */ S("th", {
|
|
388
388
|
className: "px-6 py-3 text-left text-xs font-semibold uppercase tracking-wide text-[var(--color-text-secondary)]",
|
|
389
389
|
children: T("members.list.invitedBy", "Invited by")
|
|
390
390
|
}),
|
|
391
|
-
/* @__PURE__ */
|
|
391
|
+
/* @__PURE__ */ S("th", {
|
|
392
392
|
className: "px-6 py-3 text-left text-xs font-semibold uppercase tracking-wide text-[var(--color-text-secondary)]",
|
|
393
393
|
children: T("members.list.joined", "Joined")
|
|
394
394
|
}),
|
|
395
|
-
/* @__PURE__ */
|
|
395
|
+
/* @__PURE__ */ S("th", {
|
|
396
396
|
className: "px-6 py-3 text-right text-xs font-semibold uppercase tracking-wide text-[var(--color-text-secondary)]",
|
|
397
397
|
children: T("common.actions", "Actions")
|
|
398
398
|
})
|
|
399
399
|
] })
|
|
400
|
-
}), /* @__PURE__ */
|
|
400
|
+
}), /* @__PURE__ */ S("tbody", {
|
|
401
401
|
className: "divide-y divide-[var(--color-border-seam)]",
|
|
402
|
-
children: K.map((e) => /* @__PURE__ */
|
|
402
|
+
children: K.map((e) => /* @__PURE__ */ C("tr", {
|
|
403
403
|
className: "transition-colors hover:bg-[var(--color-bg-subtle)]",
|
|
404
404
|
children: [
|
|
405
|
-
/* @__PURE__ */
|
|
405
|
+
/* @__PURE__ */ S("td", {
|
|
406
406
|
className: "px-6 py-4 align-top",
|
|
407
|
-
children: /* @__PURE__ */
|
|
407
|
+
children: /* @__PURE__ */ S(o, {
|
|
408
408
|
checked: I.has(e.id),
|
|
409
409
|
onChange: (t) => Q(e.id, t),
|
|
410
410
|
ariaLabel: `${T("members.list.selectMember", "Select member")} ${e.userId}`
|
|
411
411
|
})
|
|
412
412
|
}),
|
|
413
|
-
/* @__PURE__ */
|
|
413
|
+
/* @__PURE__ */ S("td", {
|
|
414
414
|
className: "px-6 py-4",
|
|
415
|
-
children: /* @__PURE__ */
|
|
415
|
+
children: /* @__PURE__ */ C("div", {
|
|
416
416
|
className: "flex items-start gap-3",
|
|
417
|
-
children: [/* @__PURE__ */
|
|
417
|
+
children: [/* @__PURE__ */ S("div", {
|
|
418
418
|
className: "flex size-10 items-center justify-center rounded-full bg-[var(--color-status-info-bgSubtle)] text-[var(--color-status-info-text)]",
|
|
419
|
-
children: /* @__PURE__ */
|
|
419
|
+
children: /* @__PURE__ */ S(v, {
|
|
420
420
|
size: 18,
|
|
421
421
|
"aria-hidden": "true"
|
|
422
422
|
})
|
|
423
|
-
}), /* @__PURE__ */
|
|
423
|
+
}), /* @__PURE__ */ C("div", {
|
|
424
424
|
className: "min-w-0",
|
|
425
|
-
children: [/* @__PURE__ */
|
|
426
|
-
profile: G[e.userId] ??
|
|
425
|
+
children: [/* @__PURE__ */ S(oe, {
|
|
426
|
+
profile: G[e.userId] ?? w({
|
|
427
427
|
actorId: e.userId,
|
|
428
428
|
actorType: "user"
|
|
429
429
|
}),
|
|
430
430
|
variant: "cell"
|
|
431
|
-
}), /* @__PURE__ */
|
|
431
|
+
}), /* @__PURE__ */ C("p", {
|
|
432
432
|
className: "break-all font-mono text-xs text-[var(--color-text-muted)]",
|
|
433
433
|
children: [
|
|
434
434
|
T("common.idLabel", "ID"),
|
|
@@ -439,40 +439,40 @@ function T() {
|
|
|
439
439
|
})]
|
|
440
440
|
})
|
|
441
441
|
}),
|
|
442
|
-
/* @__PURE__ */
|
|
442
|
+
/* @__PURE__ */ S("td", {
|
|
443
443
|
className: "px-6 py-4 align-top",
|
|
444
|
-
children: /* @__PURE__ */
|
|
444
|
+
children: /* @__PURE__ */ S(i, { role: e.role })
|
|
445
445
|
}),
|
|
446
|
-
/* @__PURE__ */
|
|
446
|
+
/* @__PURE__ */ S("td", {
|
|
447
447
|
className: "px-6 py-4 align-top text-sm text-[var(--color-text-secondary)]",
|
|
448
448
|
children: e.invitedBy || T("common.notAvailable", "N/A")
|
|
449
449
|
}),
|
|
450
|
-
/* @__PURE__ */
|
|
450
|
+
/* @__PURE__ */ S("td", {
|
|
451
451
|
className: "px-6 py-4 align-top text-sm text-[var(--color-text-secondary)]",
|
|
452
452
|
children: E(e.joinedAt)
|
|
453
453
|
}),
|
|
454
|
-
/* @__PURE__ */
|
|
454
|
+
/* @__PURE__ */ S("td", {
|
|
455
455
|
className: "px-6 py-4 align-top",
|
|
456
|
-
children: /* @__PURE__ */
|
|
456
|
+
children: /* @__PURE__ */ C("div", {
|
|
457
457
|
className: "flex items-center justify-end gap-2",
|
|
458
|
-
children: [/* @__PURE__ */
|
|
458
|
+
children: [/* @__PURE__ */ S("button", {
|
|
459
459
|
type: "button",
|
|
460
|
-
onClick: () => D(`${O}/${
|
|
460
|
+
onClick: () => D(`${O}/${N}/members/${e.userId}`),
|
|
461
461
|
className: "rounded-lg p-2 text-[var(--color-text-secondary)] transition-all duration-200 hover:bg-[var(--color-bg-muted)] hover:text-[var(--color-text-primary)]",
|
|
462
462
|
"aria-label": `${T("members.list.viewMember", "View member")} ${e.userId}`,
|
|
463
463
|
title: `${T("members.list.viewMember", "View member")} ${e.userId}`,
|
|
464
|
-
children: /* @__PURE__ */
|
|
464
|
+
children: /* @__PURE__ */ S(h, {
|
|
465
465
|
size: 18,
|
|
466
466
|
"aria-hidden": "true"
|
|
467
467
|
})
|
|
468
|
-
}), k(
|
|
468
|
+
}), k(u.MEMBER_REMOVE) && /* @__PURE__ */ S("button", {
|
|
469
469
|
type: "button",
|
|
470
470
|
onClick: () => Z(e.userId),
|
|
471
471
|
disabled: W,
|
|
472
472
|
className: "rounded-lg p-2 text-[var(--color-status-error-text)] transition-all duration-200 hover:bg-[var(--color-status-error-bgSubtle)] disabled:cursor-not-allowed disabled:opacity-50",
|
|
473
473
|
"aria-label": `${T("members.list.removeMember", "Remove member")} ${e.userId}`,
|
|
474
474
|
title: `${T("members.list.removeMember", "Remove member")} ${e.userId}`,
|
|
475
|
-
children: /* @__PURE__ */
|
|
475
|
+
children: /* @__PURE__ */ S(y, {
|
|
476
476
|
size: 18,
|
|
477
477
|
"aria-hidden": "true"
|
|
478
478
|
})
|
|
@@ -487,15 +487,15 @@ function T() {
|
|
|
487
487
|
})] })
|
|
488
488
|
]
|
|
489
489
|
}), z]
|
|
490
|
-
}) : /* @__PURE__ */
|
|
490
|
+
}) : /* @__PURE__ */ S("div", {
|
|
491
491
|
className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
|
|
492
|
-
children: /* @__PURE__ */
|
|
492
|
+
children: /* @__PURE__ */ S("div", {
|
|
493
493
|
className: "p-8 text-center text-[var(--color-text-secondary)]",
|
|
494
494
|
children: T("members.list.noPermission", "You don't have permission to view members.")
|
|
495
495
|
})
|
|
496
|
-
}) : /* @__PURE__ */
|
|
496
|
+
}) : /* @__PURE__ */ S("div", {
|
|
497
497
|
className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6",
|
|
498
|
-
children: /* @__PURE__ */
|
|
498
|
+
children: /* @__PURE__ */ S(c, {
|
|
499
499
|
message: T("members.list.missingOrg", "Organization ID is required to view members"),
|
|
500
500
|
action: {
|
|
501
501
|
label: T("members.list.goToOrganizations", "Go to Organizations"),
|
|
@@ -504,7 +504,6 @@ function T() {
|
|
|
504
504
|
})
|
|
505
505
|
});
|
|
506
506
|
}
|
|
507
|
-
//#endregion
|
|
508
507
|
export { T as MembersListPage };
|
|
509
508
|
|
|
510
509
|
//# sourceMappingURL=MembersListPage.js.map
|