@burdenoff/microfe-workspaces 2026.520.1 → 2026.528.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/WorkspacesRoot.js +4 -1
- package/dist/WorkspacesRoot.js.map +1 -1
- package/dist/WorkspacesRoutes.js +4 -4
- package/dist/WorkspacesRoutes.js.map +1 -1
- package/dist/components/CreateProjectDialog.js +1 -1
- package/dist/components/CreateProjectDialog.js.map +1 -1
- package/dist/components/CreateWorkspaceDialog.js +2 -2
- package/dist/components/CreateWorkspaceDialog.js.map +1 -1
- package/dist/components/InviteMemberDialog.js +2 -2
- package/dist/components/InviteMemberDialog.js.map +1 -1
- package/dist/components/MemberListItem.js +71 -86
- package/dist/components/MemberListItem.js.map +1 -1
- package/dist/components/ProjectCard.js +12 -10
- package/dist/components/ProjectCard.js.map +1 -1
- package/dist/components/WorkspaceCard.js.map +1 -1
- package/dist/components/WorkspacesErrorBoundary.js +12 -4
- package/dist/components/WorkspacesErrorBoundary.js.map +1 -1
- package/dist/components/tags/ProjectTagsWidget.js +248 -0
- package/dist/components/tags/ProjectTagsWidget.js.map +1 -0
- package/dist/hooks/useOrgsWithPermission.js +1 -1
- package/dist/hooks/useOrgsWithPermission.js.map +1 -1
- package/dist/hooks/useWorkspacesEventEmitter.js.map +1 -1
- package/dist/hooks/useWorkspacesPageView.js +6 -4
- package/dist/hooks/useWorkspacesPageView.js.map +1 -1
- package/dist/pages/CreateWorkspacePage.js +239 -224
- package/dist/pages/CreateWorkspacePage.js.map +1 -1
- package/dist/pages/InviteAcceptancePage.js +28 -28
- package/dist/pages/InviteAcceptancePage.js.map +1 -1
- package/dist/pages/MembersListPage.js +380 -352
- package/dist/pages/MembersListPage.js.map +1 -1
- package/dist/pages/ProjectDetailPage.js +96 -97
- package/dist/pages/ProjectDetailPage.js.map +1 -1
- package/dist/pages/ProjectsListPage.js +307 -304
- package/dist/pages/ProjectsListPage.js.map +1 -1
- package/dist/pages/WorkspaceSettingsPage.js +94 -91
- package/dist/pages/WorkspaceSettingsPage.js.map +1 -1
- package/dist/pages/WorkspacesListPage.js +1 -1
- package/dist/pages/WorkspacesListPage.js.map +1 -1
- package/dist/pages/dashboard/DashboardCustomizer.js +68 -68
- package/dist/pages/dashboard/DashboardCustomizer.js.map +1 -1
- package/dist/pages/dashboard/DashboardGrid.js +52 -41
- package/dist/pages/dashboard/DashboardGrid.js.map +1 -1
- package/dist/pages/dashboard/DashboardPage.js +74 -65
- package/dist/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/pages/dashboard/WidgetWrapper.js +3 -3
- package/dist/pages/dashboard/WidgetWrapper.js.map +1 -1
- package/dist/pages/dashboard/config.js +126 -30
- package/dist/pages/dashboard/config.js.map +1 -1
- package/dist/pages/dashboard/hooks/useDashboardData.js +39 -2
- package/dist/pages/dashboard/hooks/useDashboardData.js.map +1 -1
- package/dist/pages/dashboard/widgets/AgentsWidget.js +109 -0
- package/dist/pages/dashboard/widgets/AgentsWidget.js.map +1 -0
- package/dist/pages/dashboard/widgets/GroupsWidget.js +6 -5
- package/dist/pages/dashboard/widgets/GroupsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/MembersWidget.js +6 -6
- package/dist/pages/dashboard/widgets/MembersWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/ProjectsWidget.js +8 -7
- package/dist/pages/dashboard/widgets/ProjectsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/QuickActionsWidget.js +72 -18
- package/dist/pages/dashboard/widgets/QuickActionsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/RecentActivityWidget.js +3 -3
- package/dist/pages/dashboard/widgets/RecentActivityWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/SessionsWidget.js +78 -0
- package/dist/pages/dashboard/widgets/SessionsWidget.js.map +1 -0
- package/dist/pages/dashboard/widgets/StorageWidget.js +35 -20
- package/dist/pages/dashboard/widgets/StorageWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/TagCloudWidget.js +2 -2
- package/dist/pages/dashboard/widgets/TagCloudWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/TipsWidget.js +81 -22
- package/dist/pages/dashboard/widgets/TipsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/UpcomingEventsWidget.js +6 -5
- package/dist/pages/dashboard/widgets/UpcomingEventsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/VibesWidget.js +64 -0
- package/dist/pages/dashboard/widgets/VibesWidget.js.map +1 -0
- package/dist/pages/dashboard/widgets/WelcomeWidget.js +5 -5
- package/dist/pages/dashboard/widgets/WelcomeWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/WorkflowStatsWidget.js +3 -3
- package/dist/pages/dashboard/widgets/WorkflowStatsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/WorkspacesWidget.js +6 -5
- package/dist/pages/dashboard/widgets/WorkspacesWidget.js.map +1 -1
- package/dist/providers/WorkspacesProvider.js +1 -1
- package/dist/providers/WorkspacesProvider.js.map +1 -1
- package/dist/store/workspacesStore.js.map +1 -1
- package/dist/utils/formatters.js +21 -16
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/telemetryError.js +1 -1
- package/dist/utils/telemetryError.js.map +1 -1
- package/package.json +7 -7
- package/dist/WorkspacesRoot.d.ts +0 -35
- package/dist/WorkspacesRoot.d.ts.map +0 -1
- package/dist/WorkspacesRoutes.d.ts +0 -10
- package/dist/WorkspacesRoutes.d.ts.map +0 -1
- package/dist/components/CreateProjectDialog.d.ts +0 -6
- package/dist/components/CreateProjectDialog.d.ts.map +0 -1
- package/dist/components/CreateWorkspaceDialog.d.ts +0 -2
- package/dist/components/CreateWorkspaceDialog.d.ts.map +0 -1
- package/dist/components/InviteMemberDialog.d.ts +0 -7
- package/dist/components/InviteMemberDialog.d.ts.map +0 -1
- package/dist/components/MemberListItem.d.ts +0 -11
- package/dist/components/MemberListItem.d.ts.map +0 -1
- package/dist/components/ProjectCard.d.ts +0 -13
- package/dist/components/ProjectCard.d.ts.map +0 -1
- package/dist/components/WorkspaceCard.d.ts +0 -8
- package/dist/components/WorkspaceCard.d.ts.map +0 -1
- package/dist/components/WorkspacesErrorBoundary.d.ts +0 -27
- package/dist/components/WorkspacesErrorBoundary.d.ts.map +0 -1
- package/dist/components/index.d.ts +0 -8
- package/dist/components/index.d.ts.map +0 -1
- package/dist/constants/permissions.d.ts +0 -33
- package/dist/constants/permissions.d.ts.map +0 -1
- package/dist/generated/global-operations.d.ts +0 -319
- package/dist/generated/global-operations.d.ts.map +0 -1
- package/dist/generated/global-types.d.ts +0 -23527
- package/dist/generated/global-types.d.ts.map +0 -1
- package/dist/generated/wspace-operations.d.ts +0 -2300
- package/dist/generated/wspace-operations.d.ts.map +0 -1
- package/dist/generated/wspace-types.d.ts +0 -57851
- package/dist/generated/wspace-types.d.ts.map +0 -1
- package/dist/hooks/index.d.ts +0 -8
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/useMemberMutations.d.ts +0 -61
- package/dist/hooks/useMemberMutations.d.ts.map +0 -1
- package/dist/hooks/useOrgsWithPermission.d.ts +0 -7
- package/dist/hooks/useOrgsWithPermission.d.ts.map +0 -1
- package/dist/hooks/useProjectMutations.d.ts +0 -26
- package/dist/hooks/useProjectMutations.d.ts.map +0 -1
- package/dist/hooks/useProjects.d.ts +0 -16
- package/dist/hooks/useProjects.d.ts.map +0 -1
- package/dist/hooks/useScopedNavigation.d.ts +0 -4
- package/dist/hooks/useScopedNavigation.d.ts.map +0 -1
- package/dist/hooks/useTenants.d.ts +0 -13
- package/dist/hooks/useTenants.d.ts.map +0 -1
- package/dist/hooks/useWorkspaceActivity.d.ts +0 -12
- package/dist/hooks/useWorkspaceActivity.d.ts.map +0 -1
- package/dist/hooks/useWorkspaceMembers.d.ts +0 -24
- package/dist/hooks/useWorkspaceMembers.d.ts.map +0 -1
- package/dist/hooks/useWorkspaceMutations.d.ts +0 -36
- package/dist/hooks/useWorkspaceMutations.d.ts.map +0 -1
- package/dist/hooks/useWorkspacePermissions.d.ts +0 -29
- package/dist/hooks/useWorkspacePermissions.d.ts.map +0 -1
- package/dist/hooks/useWorkspaceRoles.d.ts +0 -8
- package/dist/hooks/useWorkspaceRoles.d.ts.map +0 -1
- package/dist/hooks/useWorkspaces.d.ts +0 -21
- package/dist/hooks/useWorkspaces.d.ts.map +0 -1
- package/dist/hooks/useWorkspacesEventEmitter.d.ts +0 -18
- package/dist/hooks/useWorkspacesEventEmitter.d.ts.map +0 -1
- package/dist/hooks/useWorkspacesPageView.d.ts +0 -27
- package/dist/hooks/useWorkspacesPageView.d.ts.map +0 -1
- package/dist/index.d.ts +0 -33
- package/dist/index.d.ts.map +0 -1
- package/dist/pages/ActivityListPage.d.ts +0 -2
- package/dist/pages/ActivityListPage.d.ts.map +0 -1
- package/dist/pages/CreateWorkspacePage.d.ts +0 -2
- package/dist/pages/CreateWorkspacePage.d.ts.map +0 -1
- package/dist/pages/InviteAcceptancePage.d.ts +0 -6
- package/dist/pages/InviteAcceptancePage.d.ts.map +0 -1
- package/dist/pages/MembersListPage.d.ts +0 -2
- package/dist/pages/MembersListPage.d.ts.map +0 -1
- package/dist/pages/ProjectDetailPage.d.ts +0 -2
- package/dist/pages/ProjectDetailPage.d.ts.map +0 -1
- package/dist/pages/ProjectsListPage.d.ts +0 -2
- package/dist/pages/ProjectsListPage.d.ts.map +0 -1
- package/dist/pages/WorkspaceDetailPage.d.ts +0 -2
- package/dist/pages/WorkspaceDetailPage.d.ts.map +0 -1
- package/dist/pages/WorkspaceSettingsPage.d.ts +0 -2
- package/dist/pages/WorkspaceSettingsPage.d.ts.map +0 -1
- package/dist/pages/WorkspacesListPage.d.ts +0 -2
- package/dist/pages/WorkspacesListPage.d.ts.map +0 -1
- package/dist/pages/dashboard/DashboardCustomizer.d.ts +0 -12
- package/dist/pages/dashboard/DashboardCustomizer.d.ts.map +0 -1
- package/dist/pages/dashboard/DashboardGrid.d.ts +0 -8
- package/dist/pages/dashboard/DashboardGrid.d.ts.map +0 -1
- package/dist/pages/dashboard/DashboardPage.d.ts +0 -14
- package/dist/pages/dashboard/DashboardPage.d.ts.map +0 -1
- package/dist/pages/dashboard/WidgetWrapper.d.ts +0 -17
- package/dist/pages/dashboard/WidgetWrapper.d.ts.map +0 -1
- package/dist/pages/dashboard/config.d.ts +0 -9
- package/dist/pages/dashboard/config.d.ts.map +0 -1
- package/dist/pages/dashboard/hooks/useDashboardData.d.ts +0 -9
- package/dist/pages/dashboard/hooks/useDashboardData.d.ts.map +0 -1
- package/dist/pages/dashboard/hooks/useDashboardPreferences.d.ts +0 -4
- package/dist/pages/dashboard/hooks/useDashboardPreferences.d.ts.map +0 -1
- package/dist/pages/dashboard/types.d.ts +0 -145
- package/dist/pages/dashboard/types.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/GroupsWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/GroupsWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/MembersWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/MembersWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/ProjectsWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/ProjectsWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/QuickActionsWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/QuickActionsWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/RecentActivityWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/RecentActivityWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/StorageWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/StorageWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/SystemHealthWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/SystemHealthWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/SystemHealthWidget.js +0 -59
- package/dist/pages/dashboard/widgets/SystemHealthWidget.js.map +0 -1
- package/dist/pages/dashboard/widgets/TagCloudWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/TagCloudWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/TipsWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/TipsWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/UpcomingEventsWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/UpcomingEventsWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/WelcomeWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/WelcomeWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/WorkflowStatsWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/WorkflowStatsWidget.d.ts.map +0 -1
- package/dist/pages/dashboard/widgets/WorkspacesWidget.d.ts +0 -4
- package/dist/pages/dashboard/widgets/WorkspacesWidget.d.ts.map +0 -1
- package/dist/providers/WorkspacesProvider.d.ts +0 -13
- package/dist/providers/WorkspacesProvider.d.ts.map +0 -1
- package/dist/store/workspacesStore.d.ts +0 -82
- package/dist/store/workspacesStore.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -280
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/formatters.d.ts +0 -60
- package/dist/utils/formatters.d.ts.map +0 -1
- package/dist/utils/i18n.d.ts +0 -13
- package/dist/utils/i18n.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/nativeBridge.d.ts +0 -3
- package/dist/utils/nativeBridge.d.ts.map +0 -1
- package/dist/utils/projectTags.d.ts +0 -6
- package/dist/utils/projectTags.d.ts.map +0 -1
- package/dist/utils/slug.d.ts +0 -13
- package/dist/utils/slug.d.ts.map +0 -1
- package/dist/utils/telemetryError.d.ts +0 -2
- package/dist/utils/telemetryError.d.ts.map +0 -1
- package/dist/utils/tokenHelpers.d.ts +0 -114
- package/dist/utils/tokenHelpers.d.ts.map +0 -1
|
@@ -2,423 +2,451 @@ import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
|
|
|
2
2
|
import { useWorkspacesStore as t } from "../store/workspacesStore.js";
|
|
3
3
|
import { WORKSPACE_PERMISSIONS as n } from "../constants/permissions.js";
|
|
4
4
|
import { tWithFallback as r } from "../utils/i18n.js";
|
|
5
|
-
import { useWorkspacesPageView as
|
|
6
|
-
import { nativeConfirm as
|
|
7
|
-
import { useWorkspaceInvitations as
|
|
5
|
+
import { useWorkspacesPageView as ee } from "../hooks/useWorkspacesPageView.js";
|
|
6
|
+
import { nativeConfirm as te, nativeImpact as ne } from "../utils/nativeBridge.js";
|
|
7
|
+
import { useWorkspaceInvitations as i, useWorkspaceMembers as re } from "../hooks/useWorkspaceMembers.js";
|
|
8
8
|
import { useRemoveUserFromWorkspace as ie, useResendInvitation as ae } from "../hooks/useMemberMutations.js";
|
|
9
9
|
import { MemberListItem as oe } from "../components/MemberListItem.js";
|
|
10
10
|
import { InviteMemberDialog as se } from "../components/InviteMemberDialog.js";
|
|
11
|
-
import { useWorkspacePermissions as
|
|
12
|
-
import { useEffect as
|
|
13
|
-
import { AlertCircle as
|
|
14
|
-
import {
|
|
15
|
-
import { Badge as
|
|
16
|
-
import { useParams as
|
|
17
|
-
import { useDebounce as
|
|
18
|
-
import { PermissionButton as
|
|
19
|
-
import { useI18n as
|
|
11
|
+
import { useWorkspacePermissions as ce } from "../hooks/useWorkspacePermissions.js";
|
|
12
|
+
import { useEffect as a, useMemo as o, useState as s } from "react";
|
|
13
|
+
import { AlertCircle as le, RefreshCw as ue, Search as c, UserPlus as l, Users as u } from "lucide-react";
|
|
14
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
15
|
+
import { Badge as p, Button as m, Input as de, PageContainer as fe, Skeleton as h } from "@burdenoff/fe-libs/ui";
|
|
16
|
+
import { useParams as pe, useSearchParams as me } from "react-router-dom";
|
|
17
|
+
import { useDebounce as he } from "@burdenoff/fe-libs/shared/hooks";
|
|
18
|
+
import { PermissionButton as g } from "@burdenoff/fe-libs/shared/components";
|
|
19
|
+
import { useI18n as ge } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
20
|
+
import { useActorProfiles as _e } from "@burdenoff/fe-libs/shared";
|
|
20
21
|
//#region src/pages/MembersListPage.tsx
|
|
21
|
-
function
|
|
22
|
-
let { t:
|
|
23
|
-
|
|
22
|
+
function _() {
|
|
23
|
+
let { t: _ } = ge(), { memberFilters: ve, setMemberFilters: v, selectedMemberIds: y, toggleMemberSelection: b, clearMemberSelection: x, openInviteMemberDialog: S } = t(), { workspaceId: C } = e(), { workspaceId: w } = pe(), T = w || C;
|
|
24
|
+
ee("workspaces.members", {
|
|
24
25
|
workspaceId: T,
|
|
25
26
|
requireParams: !0
|
|
26
27
|
});
|
|
27
|
-
let [E,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}, [
|
|
31
|
-
let { data:
|
|
32
|
-
|
|
28
|
+
let [E, ye] = s(ve.search || ""), D = he(E, 500);
|
|
29
|
+
a(() => {
|
|
30
|
+
v({ search: D });
|
|
31
|
+
}, [D, v]);
|
|
32
|
+
let { data: O, isLoading: be, error: k } = re(T || ""), { data: A, isLoading: j } = i(T || "", "PENDING"), { mutate: M, isPending: N } = ae(), { mutate: xe, isPending: Se } = ie(), [P, F] = s(null), [I, L] = s(/* @__PURE__ */ new Set()), Ce = (e) => {
|
|
33
|
+
F(e), M(e, {
|
|
33
34
|
onSuccess: () => {
|
|
34
|
-
|
|
35
|
+
F(null);
|
|
35
36
|
},
|
|
36
37
|
onError: (e) => {
|
|
37
|
-
console.error("Failed to resend invitation:", e),
|
|
38
|
+
console.error("Failed to resend invitation:", e), F(null);
|
|
38
39
|
}
|
|
39
40
|
});
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
}, R = o(() => O?.items || [], [O?.items]), z = o(() => A?.items || [], [A?.items]), B = be || j, V = R.length > 0, H = z.length > 0, { apiGatewayUrl: we, authToken: Te, organizationId: Ee } = e(), De = _e(o(() => R.map((e) => ({
|
|
42
|
+
actorId: e.userId,
|
|
43
|
+
actorType: "user"
|
|
44
|
+
})), [R]), {
|
|
45
|
+
apiGatewayUrl: we,
|
|
46
|
+
authToken: Te,
|
|
47
|
+
orgId: Ee
|
|
48
|
+
}), U = R.filter((e) => {
|
|
49
|
+
if (!D) return !0;
|
|
50
|
+
let t = D.toLowerCase(), n = De[e.userId];
|
|
51
|
+
return n && (n.displayName.toLowerCase().includes(t) || n.email?.toLowerCase().includes(t)) ? !0 : e.userId.toLowerCase().includes(t);
|
|
52
|
+
}), W = o(() => U.filter((e) => y.has(e.id)), [U, y]), G = o(() => z.filter((e) => I.has(e.id)), [z, I]), K = U.length > 0 && U.every((e) => y.has(e.id)), Oe = U.some((e) => y.has(e.id)) && !K, q = z.length > 0 && z.every((e) => I.has(e.id)), J = z.some((e) => I.has(e.id)) && !q;
|
|
53
|
+
a(() => () => x(), [x]);
|
|
54
|
+
let [Y, X] = me();
|
|
55
|
+
a(() => {
|
|
56
|
+
if (Y.get("invite") === "true" && T) {
|
|
57
|
+
S({ id: T });
|
|
58
|
+
let e = new URLSearchParams(Y);
|
|
59
|
+
e.delete("invite"), X(e, { replace: !0 });
|
|
60
|
+
}
|
|
61
|
+
}, [
|
|
62
|
+
Y,
|
|
63
|
+
X,
|
|
64
|
+
T,
|
|
65
|
+
S
|
|
66
|
+
]);
|
|
67
|
+
let { canListMembers: ke, canInviteMember: Z, canRemoveMember: Q, isLoading: Ae } = ce();
|
|
68
|
+
if (Ae) return /* @__PURE__ */ f("div", {
|
|
44
69
|
className: "space-y-4 p-6",
|
|
45
|
-
children: [/* @__PURE__ */
|
|
70
|
+
children: [/* @__PURE__ */ d(h, { className: "h-10 w-1/3" }), /* @__PURE__ */ d(h, { className: "h-64" })]
|
|
46
71
|
});
|
|
47
|
-
if (!
|
|
72
|
+
if (!ke && !Z) return /* @__PURE__ */ d("div", {
|
|
48
73
|
className: "flex items-center justify-center min-h-[400px]",
|
|
49
|
-
children: /* @__PURE__ */
|
|
74
|
+
children: /* @__PURE__ */ f("div", {
|
|
50
75
|
className: "text-center space-y-2",
|
|
51
|
-
children: [/* @__PURE__ */
|
|
76
|
+
children: [/* @__PURE__ */ d("h2", {
|
|
52
77
|
className: "text-lg font-semibold",
|
|
53
|
-
children: r(
|
|
54
|
-
}), /* @__PURE__ */
|
|
78
|
+
children: r(_, "membersList.accessDenied", "Access Denied")
|
|
79
|
+
}), /* @__PURE__ */ d("p", {
|
|
55
80
|
className: "text-sm text-muted-foreground",
|
|
56
|
-
children: r(
|
|
81
|
+
children: r(_, "membersList.noPermissionToViewMembers", "You don't have permission to view workspace members.")
|
|
57
82
|
})]
|
|
58
83
|
})
|
|
59
84
|
});
|
|
60
85
|
let $ = () => {
|
|
61
|
-
T &&
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
e !==
|
|
86
|
+
T && S({ id: T });
|
|
87
|
+
}, je = (e) => {
|
|
88
|
+
U.forEach((t) => {
|
|
89
|
+
e !== y.has(t.id) && b(t.id);
|
|
65
90
|
});
|
|
66
|
-
},
|
|
67
|
-
|
|
91
|
+
}, Me = (e, t) => {
|
|
92
|
+
L((n) => {
|
|
68
93
|
let r = new Set(n);
|
|
69
94
|
return t ? r.add(e) : r.delete(e), r;
|
|
70
95
|
});
|
|
71
|
-
},
|
|
72
|
-
|
|
96
|
+
}, Ne = (e) => {
|
|
97
|
+
L((t) => {
|
|
73
98
|
let n = new Set(t);
|
|
74
|
-
return
|
|
99
|
+
return z.forEach((t) => {
|
|
75
100
|
e ? n.add(t.id) : n.delete(t.id);
|
|
76
101
|
}), n;
|
|
77
102
|
});
|
|
78
|
-
},
|
|
79
|
-
if (
|
|
80
|
-
|
|
81
|
-
let e = `${r(
|
|
103
|
+
}, Pe = async () => {
|
|
104
|
+
if (W.length === 0) return;
|
|
105
|
+
ne("medium");
|
|
106
|
+
let e = `${r(_, "membersList.bulkRemoveConfirmPrefix", "Remove")} ${W.length} ${W.length === 1 ? r(_, "membersList.bulkRemoveConfirmSingular", "selected member") : r(_, "membersList.bulkRemoveConfirmPlural", "selected members")} ${r(_, "membersList.bulkRemoveConfirmSuffix", "from this workspace?")}`, t = await te({
|
|
82
107
|
title: "Remove members",
|
|
83
108
|
message: e,
|
|
84
109
|
okButtonTitle: "Remove",
|
|
85
110
|
cancelButtonTitle: "Cancel"
|
|
86
111
|
});
|
|
87
|
-
(t === null ? window.confirm(e) : t) && (
|
|
88
|
-
|
|
89
|
-
}),
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
112
|
+
(t === null ? window.confirm(e) : t) && (W.forEach((e) => {
|
|
113
|
+
xe(e.userId);
|
|
114
|
+
}), x());
|
|
115
|
+
}, Fe = () => {
|
|
116
|
+
G.length !== 0 && G.forEach((e) => {
|
|
117
|
+
M(e.id, { onSuccess: () => {
|
|
118
|
+
L((t) => {
|
|
94
119
|
let n = new Set(t);
|
|
95
120
|
return n.delete(e.id), n;
|
|
96
121
|
});
|
|
97
122
|
} });
|
|
98
123
|
});
|
|
99
124
|
};
|
|
100
|
-
return /* @__PURE__ */
|
|
101
|
-
|
|
102
|
-
children: [
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
className: "
|
|
107
|
-
children:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
children:
|
|
123
|
-
|
|
125
|
+
return /* @__PURE__ */ f(fe, {
|
|
126
|
+
padded: !1,
|
|
127
|
+
children: [/* @__PURE__ */ f("div", {
|
|
128
|
+
className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
|
|
129
|
+
children: [
|
|
130
|
+
/* @__PURE__ */ f("div", {
|
|
131
|
+
className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",
|
|
132
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h1", {
|
|
133
|
+
className: "text-2xl sm:text-3xl font-bold",
|
|
134
|
+
children: r(_, "membersList.pageTitle", "Members")
|
|
135
|
+
}), /* @__PURE__ */ d("p", {
|
|
136
|
+
className: "text-muted-foreground text-sm sm:text-base",
|
|
137
|
+
children: r(_, "membersList.pageSubtitle", "Manage workspace members and invitations")
|
|
138
|
+
})] }), /* @__PURE__ */ d("div", {
|
|
139
|
+
className: "flex gap-2",
|
|
140
|
+
children: /* @__PURE__ */ d(g, {
|
|
141
|
+
permission: n.MEMBER_CREATE,
|
|
142
|
+
deniedBehavior: "disable",
|
|
143
|
+
deniedTooltip: r(_, "membersList.noPermissionToInvite", "You don't have permission to invite members"),
|
|
144
|
+
children: /* @__PURE__ */ f(m, {
|
|
145
|
+
onClick: $,
|
|
146
|
+
disabled: !T,
|
|
147
|
+
children: [/* @__PURE__ */ d(l, { className: "size-4 sm:mr-2" }), /* @__PURE__ */ d("span", {
|
|
148
|
+
className: "hidden sm:inline",
|
|
149
|
+
children: r(_, "membersList.inviteMember", "Invite Member")
|
|
150
|
+
})]
|
|
151
|
+
})
|
|
124
152
|
})
|
|
125
|
-
})
|
|
126
|
-
})]
|
|
127
|
-
}),
|
|
128
|
-
/* @__PURE__ */ p("div", {
|
|
129
|
-
className: "flex flex-col sm:flex-row gap-3 sm:gap-4",
|
|
130
|
-
children: [/* @__PURE__ */ p("div", {
|
|
131
|
-
className: "relative flex-1",
|
|
132
|
-
children: [/* @__PURE__ */ f(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ f(g, {
|
|
133
|
-
placeholder: r(b, "membersList.searchPlaceholder", "Search members..."),
|
|
134
|
-
value: E,
|
|
135
|
-
onChange: (e) => D(e.target.value),
|
|
136
|
-
className: "pl-9"
|
|
137
153
|
})]
|
|
138
|
-
}),
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
className: "
|
|
143
|
-
children: [
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
className: "flex items-center gap-2 text-sm text-foreground",
|
|
155
|
-
children: [/* @__PURE__ */ f("input", {
|
|
156
|
-
type: "checkbox",
|
|
157
|
-
checked: Y,
|
|
158
|
-
ref: (e) => {
|
|
159
|
-
e && (e.indeterminate = ye && !Y);
|
|
160
|
-
},
|
|
161
|
-
onChange: (e) => Ce(e.target.checked),
|
|
162
|
-
"aria-label": r(b, "membersList.selectAllMembersAriaLabel", "Select all workspace members"),
|
|
163
|
-
className: "h-4 w-4 rounded border-border text-primary"
|
|
164
|
-
}), /* @__PURE__ */ f("span", { children: r(b, "membersList.selectAllVisibleMembers", "Select all visible members") })]
|
|
165
|
-
}), /* @__PURE__ */ p("div", {
|
|
166
|
-
className: "flex flex-wrap items-center gap-2",
|
|
167
|
-
children: [
|
|
168
|
-
/* @__PURE__ */ p("span", {
|
|
169
|
-
className: "text-sm text-muted-foreground",
|
|
154
|
+
}),
|
|
155
|
+
/* @__PURE__ */ f("div", {
|
|
156
|
+
className: "flex flex-col sm:flex-row gap-3 sm:gap-4",
|
|
157
|
+
children: [/* @__PURE__ */ f("div", {
|
|
158
|
+
className: "relative flex-1",
|
|
159
|
+
children: [/* @__PURE__ */ d(c, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground" }), /* @__PURE__ */ d(de, {
|
|
160
|
+
placeholder: r(_, "membersList.searchPlaceholder", "Search members..."),
|
|
161
|
+
value: E,
|
|
162
|
+
onChange: (e) => ye(e.target.value),
|
|
163
|
+
className: "pl-9"
|
|
164
|
+
})]
|
|
165
|
+
}), H && /* @__PURE__ */ d("div", {
|
|
166
|
+
className: "flex items-center gap-2",
|
|
167
|
+
children: /* @__PURE__ */ f(p, {
|
|
168
|
+
variant: "secondary",
|
|
169
|
+
className: "text-sm",
|
|
170
170
|
children: [
|
|
171
|
-
|
|
171
|
+
z.length,
|
|
172
172
|
" ",
|
|
173
|
-
r(
|
|
173
|
+
z.length === 1 ? r(_, "membersList.pendingInvitation", "Pending Invitation") : r(_, "membersList.pendingInvitations", "Pending Invitations")
|
|
174
174
|
]
|
|
175
|
+
})
|
|
176
|
+
})]
|
|
177
|
+
}),
|
|
178
|
+
U.length > 0 && /* @__PURE__ */ f("div", {
|
|
179
|
+
className: "flex flex-col gap-3 rounded-lg border bg-card p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
180
|
+
children: [/* @__PURE__ */ f("label", {
|
|
181
|
+
className: "flex items-center gap-2 text-sm text-foreground",
|
|
182
|
+
children: [/* @__PURE__ */ d("input", {
|
|
183
|
+
type: "checkbox",
|
|
184
|
+
checked: K,
|
|
185
|
+
ref: (e) => {
|
|
186
|
+
e && (e.indeterminate = Oe && !K);
|
|
187
|
+
},
|
|
188
|
+
onChange: (e) => je(e.target.checked),
|
|
189
|
+
"aria-label": r(_, "membersList.selectAllMembersAriaLabel", "Select all workspace members"),
|
|
190
|
+
className: "size-4 rounded border-border text-primary"
|
|
191
|
+
}), /* @__PURE__ */ d("span", { children: r(_, "membersList.selectAllVisibleMembers", "Select all visible members") })]
|
|
192
|
+
}), /* @__PURE__ */ f("div", {
|
|
193
|
+
className: "flex flex-wrap items-center gap-2",
|
|
194
|
+
children: [
|
|
195
|
+
/* @__PURE__ */ f("span", {
|
|
196
|
+
className: "text-sm text-muted-foreground",
|
|
197
|
+
children: [
|
|
198
|
+
y.size,
|
|
199
|
+
" ",
|
|
200
|
+
r(_, "membersList.selected", "selected")
|
|
201
|
+
]
|
|
202
|
+
}),
|
|
203
|
+
y.size > 0 && /* @__PURE__ */ d(m, {
|
|
204
|
+
variant: "ghost",
|
|
205
|
+
size: "sm",
|
|
206
|
+
onClick: x,
|
|
207
|
+
children: r(_, "membersList.clearSelection", "Clear selection")
|
|
208
|
+
}),
|
|
209
|
+
Q && /* @__PURE__ */ f(m, {
|
|
210
|
+
variant: "outline",
|
|
211
|
+
size: "sm",
|
|
212
|
+
onClick: Pe,
|
|
213
|
+
disabled: W.length === 0 || Se,
|
|
214
|
+
className: "text-destructive",
|
|
215
|
+
children: [r(_, "membersList.removeSelected", "Remove Selected"), W.length > 0 ? ` (${W.length})` : ""]
|
|
216
|
+
})
|
|
217
|
+
]
|
|
218
|
+
})]
|
|
219
|
+
}),
|
|
220
|
+
B && /* @__PURE__ */ d("div", {
|
|
221
|
+
className: "space-y-3",
|
|
222
|
+
children: [...[
|
|
223
|
+
,
|
|
224
|
+
,
|
|
225
|
+
,
|
|
226
|
+
,
|
|
227
|
+
,
|
|
228
|
+
]].map((e, t) => /* @__PURE__ */ d(h, { className: "h-20 w-full" }, t))
|
|
229
|
+
}),
|
|
230
|
+
!B && k && /* @__PURE__ */ f("div", {
|
|
231
|
+
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
232
|
+
children: [
|
|
233
|
+
/* @__PURE__ */ d("div", {
|
|
234
|
+
className: "rounded-full bg-destructive/10 p-6 mb-4",
|
|
235
|
+
children: /* @__PURE__ */ d(le, {
|
|
236
|
+
size: 48,
|
|
237
|
+
className: "text-destructive"
|
|
238
|
+
})
|
|
175
239
|
}),
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
onClick: w,
|
|
180
|
-
children: r(b, "membersList.clearSelection", "Clear selection")
|
|
240
|
+
/* @__PURE__ */ d("h3", {
|
|
241
|
+
className: "text-lg font-semibold mb-2",
|
|
242
|
+
children: r(_, "membersList.failedToLoad", "Failed to Load Members")
|
|
181
243
|
}),
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
onClick: Ee,
|
|
186
|
-
disabled: q.length === 0 || I,
|
|
187
|
-
className: "text-destructive",
|
|
188
|
-
children: [r(b, "membersList.removeSelected", "Remove Selected"), q.length > 0 ? ` (${q.length})` : ""]
|
|
244
|
+
/* @__PURE__ */ d("p", {
|
|
245
|
+
className: "text-muted-foreground max-w-sm",
|
|
246
|
+
children: k instanceof Error ? k.message : r(_, "membersList.errorLoadingMembers", "An error occurred while loading members")
|
|
189
247
|
})
|
|
190
248
|
]
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
size: 48,
|
|
210
|
-
className: "text-destructive"
|
|
211
|
-
})
|
|
212
|
-
}),
|
|
213
|
-
/* @__PURE__ */ f("h3", {
|
|
214
|
-
className: "text-lg font-semibold mb-2",
|
|
215
|
-
children: r(b, "membersList.failedToLoad", "Failed to Load Members")
|
|
216
|
-
}),
|
|
217
|
-
/* @__PURE__ */ f("p", {
|
|
218
|
-
className: "text-muted-foreground max-w-sm",
|
|
219
|
-
children: A instanceof Error ? A.message : r(b, "membersList.errorLoadingMembers", "An error occurred while loading members")
|
|
220
|
-
})
|
|
221
|
-
]
|
|
222
|
-
}),
|
|
223
|
-
!U && !A && !T && /* @__PURE__ */ p("div", {
|
|
224
|
-
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
225
|
-
children: [
|
|
226
|
-
/* @__PURE__ */ f("div", {
|
|
227
|
-
className: "rounded-full bg-muted p-6 mb-4",
|
|
228
|
-
children: /* @__PURE__ */ f(d, {
|
|
229
|
-
size: 48,
|
|
230
|
-
className: "text-muted-foreground"
|
|
231
|
-
})
|
|
232
|
-
}),
|
|
233
|
-
/* @__PURE__ */ f("h3", {
|
|
234
|
-
className: "text-lg font-semibold mb-2",
|
|
235
|
-
children: r(b, "membersList.noWorkspaceSelected", "No Workspace Selected")
|
|
236
|
-
}),
|
|
237
|
-
/* @__PURE__ */ f("p", {
|
|
238
|
-
className: "text-muted-foreground max-w-sm",
|
|
239
|
-
children: r(b, "membersList.selectWorkspacePrompt", "Select a workspace to view and manage its members")
|
|
240
|
-
})
|
|
241
|
-
]
|
|
242
|
-
}),
|
|
243
|
-
!U && !A && T && !W && /* @__PURE__ */ p("div", {
|
|
244
|
-
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
245
|
-
children: [
|
|
246
|
-
/* @__PURE__ */ f("div", {
|
|
247
|
-
className: "rounded-full bg-muted p-6 mb-4",
|
|
248
|
-
children: /* @__PURE__ */ f(d, {
|
|
249
|
-
size: 48,
|
|
250
|
-
className: "text-muted-foreground"
|
|
249
|
+
}),
|
|
250
|
+
!B && !k && !T && /* @__PURE__ */ f("div", {
|
|
251
|
+
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
252
|
+
children: [
|
|
253
|
+
/* @__PURE__ */ d("div", {
|
|
254
|
+
className: "rounded-full bg-muted p-6 mb-4",
|
|
255
|
+
children: /* @__PURE__ */ d(u, {
|
|
256
|
+
size: 48,
|
|
257
|
+
className: "text-muted-foreground"
|
|
258
|
+
})
|
|
259
|
+
}),
|
|
260
|
+
/* @__PURE__ */ d("h3", {
|
|
261
|
+
className: "text-lg font-semibold mb-2",
|
|
262
|
+
children: r(_, "membersList.noWorkspaceSelected", "No Workspace Selected")
|
|
263
|
+
}),
|
|
264
|
+
/* @__PURE__ */ d("p", {
|
|
265
|
+
className: "text-muted-foreground max-w-sm",
|
|
266
|
+
children: r(_, "membersList.selectWorkspacePrompt", "Select a workspace to view and manage its members")
|
|
251
267
|
})
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
+
]
|
|
269
|
+
}),
|
|
270
|
+
!B && !k && T && !V && /* @__PURE__ */ f("div", {
|
|
271
|
+
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
272
|
+
children: [
|
|
273
|
+
/* @__PURE__ */ d("div", {
|
|
274
|
+
className: "rounded-full bg-muted p-6 mb-4",
|
|
275
|
+
children: /* @__PURE__ */ d(u, {
|
|
276
|
+
size: 48,
|
|
277
|
+
className: "text-muted-foreground"
|
|
278
|
+
})
|
|
279
|
+
}),
|
|
280
|
+
/* @__PURE__ */ d("h3", {
|
|
281
|
+
className: "text-lg font-semibold mb-2",
|
|
282
|
+
children: r(_, "membersList.noMembersYet", "No Members Yet")
|
|
283
|
+
}),
|
|
284
|
+
/* @__PURE__ */ d("p", {
|
|
285
|
+
className: "text-muted-foreground max-w-sm mb-4",
|
|
286
|
+
children: r(_, "membersList.noMembersPrompt", "Start building your team by inviting members to this workspace")
|
|
287
|
+
}),
|
|
288
|
+
/* @__PURE__ */ d(g, {
|
|
289
|
+
permission: n.MEMBER_CREATE,
|
|
290
|
+
deniedBehavior: "disable",
|
|
291
|
+
deniedTooltip: r(_, "membersList.noPermissionToInvite", "You don't have permission to invite members"),
|
|
292
|
+
children: /* @__PURE__ */ f(m, {
|
|
293
|
+
onClick: $,
|
|
294
|
+
children: [/* @__PURE__ */ d(l, { className: "mr-2 size-4" }), r(_, "membersList.inviteFirstMember", "Invite Your First Member")]
|
|
295
|
+
})
|
|
268
296
|
})
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
297
|
+
]
|
|
298
|
+
}),
|
|
299
|
+
!B && !k && T && V && U.length === 0 && /* @__PURE__ */ f("div", {
|
|
300
|
+
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
301
|
+
children: [
|
|
302
|
+
/* @__PURE__ */ d("div", {
|
|
303
|
+
className: "rounded-full bg-muted p-6 mb-4",
|
|
304
|
+
children: /* @__PURE__ */ d(c, {
|
|
305
|
+
size: 48,
|
|
306
|
+
className: "text-muted-foreground"
|
|
307
|
+
})
|
|
308
|
+
}),
|
|
309
|
+
/* @__PURE__ */ d("h3", {
|
|
310
|
+
className: "text-lg font-semibold mb-2",
|
|
311
|
+
children: r(_, "membersList.noMembersFound", "No Members Found")
|
|
312
|
+
}),
|
|
313
|
+
/* @__PURE__ */ d("p", {
|
|
314
|
+
className: "text-muted-foreground max-w-sm",
|
|
315
|
+
children: r(_, "membersList.noMembersFoundPrompt", "No members match your search criteria. Try adjusting your search.")
|
|
280
316
|
})
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
})
|
|
290
|
-
]
|
|
291
|
-
}),
|
|
292
|
-
!U && K.length > 0 && /* @__PURE__ */ p("div", {
|
|
293
|
-
className: "space-y-3",
|
|
294
|
-
children: [/* @__PURE__ */ f("div", {
|
|
295
|
-
className: "flex items-center justify-between",
|
|
296
|
-
children: /* @__PURE__ */ p("h2", {
|
|
297
|
-
className: "text-lg font-semibold",
|
|
298
|
-
children: [
|
|
299
|
-
r(b, "membersList.activeMembers", "Active Members"),
|
|
300
|
-
" (",
|
|
301
|
-
K.length,
|
|
302
|
-
")"
|
|
303
|
-
]
|
|
304
|
-
})
|
|
305
|
-
}), /* @__PURE__ */ f("div", {
|
|
306
|
-
className: "space-y-2",
|
|
307
|
-
children: K.map((e) => /* @__PURE__ */ f(oe, {
|
|
308
|
-
member: e,
|
|
309
|
-
selected: S.has(e.id),
|
|
310
|
-
onToggleSelect: (t) => {
|
|
311
|
-
t !== S.has(e.id) && C(e.id);
|
|
312
|
-
},
|
|
313
|
-
canRemove: Q
|
|
314
|
-
}, e.id))
|
|
315
|
-
})]
|
|
316
|
-
}),
|
|
317
|
-
!U && G && /* @__PURE__ */ p("div", {
|
|
318
|
-
className: "space-y-3",
|
|
319
|
-
children: [
|
|
320
|
-
/* @__PURE__ */ f("h2", {
|
|
321
|
-
className: "text-lg font-semibold",
|
|
322
|
-
children: r(b, "membersList.pendingInvitationsHeader", "Pending Invitations")
|
|
323
|
-
}),
|
|
324
|
-
/* @__PURE__ */ p("div", {
|
|
325
|
-
className: "flex flex-col gap-3 rounded-lg border bg-card p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
326
|
-
children: [/* @__PURE__ */ p("label", {
|
|
327
|
-
className: "flex items-center gap-2 text-sm text-foreground",
|
|
328
|
-
children: [/* @__PURE__ */ f("input", {
|
|
329
|
-
type: "checkbox",
|
|
330
|
-
checked: X,
|
|
331
|
-
ref: (e) => {
|
|
332
|
-
e && (e.indeterminate = be && !X);
|
|
333
|
-
},
|
|
334
|
-
onChange: (e) => Te(e.target.checked),
|
|
335
|
-
"aria-label": r(b, "membersList.selectAllInvitationsAriaLabel", "Select all pending invitations"),
|
|
336
|
-
className: "h-4 w-4 rounded border-border text-primary"
|
|
337
|
-
}), /* @__PURE__ */ f("span", { children: r(b, "membersList.selectAllInvitations", "Select all invitations") })]
|
|
338
|
-
}), /* @__PURE__ */ p("div", {
|
|
339
|
-
className: "flex flex-wrap items-center gap-2",
|
|
317
|
+
]
|
|
318
|
+
}),
|
|
319
|
+
!B && U.length > 0 && /* @__PURE__ */ f("div", {
|
|
320
|
+
className: "space-y-3",
|
|
321
|
+
children: [/* @__PURE__ */ d("div", {
|
|
322
|
+
className: "flex items-center justify-between",
|
|
323
|
+
children: /* @__PURE__ */ f("h2", {
|
|
324
|
+
className: "text-lg font-semibold",
|
|
340
325
|
children: [
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
" ",
|
|
346
|
-
r(b, "membersList.selected", "selected")
|
|
347
|
-
]
|
|
348
|
-
}),
|
|
349
|
-
z.size > 0 && /* @__PURE__ */ f(h, {
|
|
350
|
-
variant: "ghost",
|
|
351
|
-
size: "sm",
|
|
352
|
-
onClick: () => B(/* @__PURE__ */ new Set()),
|
|
353
|
-
children: r(b, "membersList.clearSelection", "Clear selection")
|
|
354
|
-
}),
|
|
355
|
-
Z && /* @__PURE__ */ p(h, {
|
|
356
|
-
variant: "outline",
|
|
357
|
-
size: "sm",
|
|
358
|
-
onClick: De,
|
|
359
|
-
disabled: J.length === 0 || P,
|
|
360
|
-
children: [r(b, "membersList.resendSelected", "Resend Selected"), J.length > 0 ? ` (${J.length})` : ""]
|
|
361
|
-
})
|
|
326
|
+
r(_, "membersList.activeMembers", "Active Members"),
|
|
327
|
+
" (",
|
|
328
|
+
U.length,
|
|
329
|
+
")"
|
|
362
330
|
]
|
|
363
|
-
})
|
|
364
|
-
}),
|
|
365
|
-
/* @__PURE__ */ f("div", {
|
|
331
|
+
})
|
|
332
|
+
}), /* @__PURE__ */ d("div", {
|
|
366
333
|
className: "space-y-2",
|
|
367
|
-
children:
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
334
|
+
children: U.map((e) => /* @__PURE__ */ d(oe, {
|
|
335
|
+
member: e,
|
|
336
|
+
selected: y.has(e.id),
|
|
337
|
+
onToggleSelect: (t) => {
|
|
338
|
+
t !== y.has(e.id) && b(e.id);
|
|
339
|
+
},
|
|
340
|
+
canRemove: Q
|
|
341
|
+
}, e.id))
|
|
342
|
+
})]
|
|
343
|
+
}),
|
|
344
|
+
!B && H && /* @__PURE__ */ f("div", {
|
|
345
|
+
className: "space-y-3",
|
|
346
|
+
children: [
|
|
347
|
+
/* @__PURE__ */ d("h2", {
|
|
348
|
+
className: "text-lg font-semibold",
|
|
349
|
+
children: r(_, "membersList.pendingInvitationsHeader", "Pending Invitations")
|
|
350
|
+
}),
|
|
351
|
+
/* @__PURE__ */ f("div", {
|
|
352
|
+
className: "flex flex-col gap-3 rounded-lg border bg-card p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
353
|
+
children: [/* @__PURE__ */ f("label", {
|
|
354
|
+
className: "flex items-center gap-2 text-sm text-foreground",
|
|
355
|
+
children: [/* @__PURE__ */ d("input", {
|
|
356
|
+
type: "checkbox",
|
|
357
|
+
checked: q,
|
|
358
|
+
ref: (e) => {
|
|
359
|
+
e && (e.indeterminate = J && !q);
|
|
360
|
+
},
|
|
361
|
+
onChange: (e) => Ne(e.target.checked),
|
|
362
|
+
"aria-label": r(_, "membersList.selectAllInvitationsAriaLabel", "Select all pending invitations"),
|
|
363
|
+
className: "size-4 rounded border-border text-primary"
|
|
364
|
+
}), /* @__PURE__ */ d("span", { children: r(_, "membersList.selectAllInvitations", "Select all invitations") })]
|
|
365
|
+
}), /* @__PURE__ */ f("div", {
|
|
366
|
+
className: "flex flex-wrap items-center gap-2",
|
|
371
367
|
children: [
|
|
372
|
-
/* @__PURE__ */ f("
|
|
373
|
-
|
|
374
|
-
checked: z.has(e.id),
|
|
375
|
-
onChange: (t) => we(e.id, t.target.checked),
|
|
376
|
-
"aria-label": `${r(b, "membersList.selectInvitationAriaLabel", "Select invitation")} ${e.email}`,
|
|
377
|
-
className: "h-4 w-4 rounded border-border text-primary"
|
|
378
|
-
}),
|
|
379
|
-
/* @__PURE__ */ f("div", {
|
|
380
|
-
className: "w-10 h-10 rounded-full bg-status-warning/10 flex items-center justify-center transition-colors",
|
|
381
|
-
children: /* @__PURE__ */ f(d, { className: "h-5 w-5 text-status-warning" })
|
|
382
|
-
}),
|
|
383
|
-
/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
|
|
384
|
-
className: "font-medium text-sm",
|
|
385
|
-
children: e.email
|
|
386
|
-
}), /* @__PURE__ */ p("p", {
|
|
387
|
-
className: "text-xs text-muted-foreground",
|
|
368
|
+
/* @__PURE__ */ f("span", {
|
|
369
|
+
className: "text-sm text-muted-foreground",
|
|
388
370
|
children: [
|
|
389
|
-
|
|
371
|
+
I.size,
|
|
390
372
|
" ",
|
|
391
|
-
|
|
373
|
+
r(_, "membersList.selected", "selected")
|
|
392
374
|
]
|
|
393
|
-
})
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
children: /* @__PURE__ */ p(h, {
|
|
375
|
+
}),
|
|
376
|
+
I.size > 0 && /* @__PURE__ */ d(m, {
|
|
377
|
+
variant: "ghost",
|
|
378
|
+
size: "sm",
|
|
379
|
+
onClick: () => L(/* @__PURE__ */ new Set()),
|
|
380
|
+
children: r(_, "membersList.clearSelection", "Clear selection")
|
|
381
|
+
}),
|
|
382
|
+
Z && /* @__PURE__ */ f(m, {
|
|
402
383
|
variant: "outline",
|
|
403
384
|
size: "sm",
|
|
404
|
-
onClick:
|
|
405
|
-
disabled:
|
|
406
|
-
children: [
|
|
385
|
+
onClick: Fe,
|
|
386
|
+
disabled: G.length === 0 || N,
|
|
387
|
+
children: [r(_, "membersList.resendSelected", "Resend Selected"), G.length > 0 ? ` (${G.length})` : ""]
|
|
407
388
|
})
|
|
408
|
-
|
|
409
|
-
variant: "outline",
|
|
410
|
-
className: "bg-status-warning/10 text-status-warning border-status-warning/30 transition-colors",
|
|
411
|
-
children: r(b, "membersList.pending", "Pending")
|
|
412
|
-
})]
|
|
389
|
+
]
|
|
413
390
|
})]
|
|
414
|
-
},
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
391
|
+
}),
|
|
392
|
+
/* @__PURE__ */ d("div", {
|
|
393
|
+
className: "space-y-2",
|
|
394
|
+
children: z.map((e) => /* @__PURE__ */ f("div", {
|
|
395
|
+
className: "flex items-center justify-between p-4 border rounded-lg bg-card",
|
|
396
|
+
children: [/* @__PURE__ */ f("div", {
|
|
397
|
+
className: "flex items-center gap-3",
|
|
398
|
+
children: [
|
|
399
|
+
/* @__PURE__ */ d("input", {
|
|
400
|
+
type: "checkbox",
|
|
401
|
+
checked: I.has(e.id),
|
|
402
|
+
onChange: (t) => Me(e.id, t.target.checked),
|
|
403
|
+
"aria-label": `${r(_, "membersList.selectInvitationAriaLabel", "Select invitation")} ${e.email}`,
|
|
404
|
+
className: "size-4 rounded border-border text-primary"
|
|
405
|
+
}),
|
|
406
|
+
/* @__PURE__ */ d("div", {
|
|
407
|
+
className: "size-10 rounded-full bg-status-warning/10 flex items-center justify-center transition-colors",
|
|
408
|
+
children: /* @__PURE__ */ d(u, { className: "size-5 text-status-warning" })
|
|
409
|
+
}),
|
|
410
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
|
|
411
|
+
className: "font-medium text-sm",
|
|
412
|
+
children: e.email
|
|
413
|
+
}), /* @__PURE__ */ f("p", {
|
|
414
|
+
className: "text-xs text-muted-foreground",
|
|
415
|
+
children: [
|
|
416
|
+
r(_, "membersList.invited", "Invited"),
|
|
417
|
+
" ",
|
|
418
|
+
new Date(e.createdAt).toLocaleDateString()
|
|
419
|
+
]
|
|
420
|
+
})] })
|
|
421
|
+
]
|
|
422
|
+
}), /* @__PURE__ */ f("div", {
|
|
423
|
+
className: "flex items-center gap-2",
|
|
424
|
+
children: [/* @__PURE__ */ d(g, {
|
|
425
|
+
permission: n.MEMBER_CREATE,
|
|
426
|
+
deniedBehavior: "disable",
|
|
427
|
+
deniedTooltip: r(_, "membersList.noPermissionToResend", "You don't have permission to resend invitations"),
|
|
428
|
+
children: /* @__PURE__ */ f(m, {
|
|
429
|
+
variant: "outline",
|
|
430
|
+
size: "sm",
|
|
431
|
+
onClick: () => Ce(e.id),
|
|
432
|
+
disabled: N && P === e.id,
|
|
433
|
+
children: [/* @__PURE__ */ d(ue, { className: `size-4 mr-1 ${N && P === e.id ? "animate-spin" : ""}` }), N && P === e.id ? r(_, "membersList.sending", "Sending...") : r(_, "membersList.resend", "Resend")]
|
|
434
|
+
})
|
|
435
|
+
}), /* @__PURE__ */ d(p, {
|
|
436
|
+
variant: "outline",
|
|
437
|
+
className: "bg-status-warning/10 text-status-warning border-status-warning/30 transition-colors",
|
|
438
|
+
children: r(_, "membersList.pending", "Pending")
|
|
439
|
+
})]
|
|
440
|
+
})]
|
|
441
|
+
}, e.id))
|
|
442
|
+
})
|
|
443
|
+
]
|
|
444
|
+
})
|
|
445
|
+
]
|
|
446
|
+
}), /* @__PURE__ */ d(se, { workspaceId: T })]
|
|
447
|
+
});
|
|
420
448
|
}
|
|
421
449
|
//#endregion
|
|
422
|
-
export {
|
|
450
|
+
export { _ as MembersListPage };
|
|
423
451
|
|
|
424
452
|
//# sourceMappingURL=MembersListPage.js.map
|