@burdenoff/microfe-workspaces 2026.510.50 → 2026.511.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/wspace-operations.d.ts +91 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -1
- package/dist/generated/wspace-operations.js +79 -51
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/hooks/useMemberMutations.d.ts.map +1 -1
- package/dist/hooks/useMemberMutations.js +141 -60
- package/dist/hooks/useMemberMutations.js.map +1 -1
- package/dist/hooks/useProjectMutations.d.ts.map +1 -1
- package/dist/hooks/useProjectMutations.js +84 -44
- package/dist/hooks/useProjectMutations.js.map +1 -1
- package/dist/hooks/useWorkspaceMutations.d.ts.map +1 -1
- package/dist/hooks/useWorkspaceMutations.js +64 -29
- package/dist/hooks/useWorkspaceMutations.js.map +1 -1
- package/dist/hooks/useWorkspacesEventEmitter.d.ts +5 -1
- package/dist/hooks/useWorkspacesEventEmitter.d.ts.map +1 -1
- package/dist/hooks/useWorkspacesEventEmitter.js +8 -7
- package/dist/hooks/useWorkspacesEventEmitter.js.map +1 -1
- package/dist/hooks/useWorkspacesPageView.d.ts +27 -0
- package/dist/hooks/useWorkspacesPageView.d.ts.map +1 -0
- package/dist/hooks/useWorkspacesPageView.js +29 -0
- package/dist/hooks/useWorkspacesPageView.js.map +1 -0
- package/dist/pages/ActivityListPage.d.ts.map +1 -1
- package/dist/pages/ActivityListPage.js +59 -56
- package/dist/pages/ActivityListPage.js.map +1 -1
- package/dist/pages/CreateWorkspacePage.d.ts.map +1 -1
- package/dist/pages/CreateWorkspacePage.js +104 -104
- package/dist/pages/CreateWorkspacePage.js.map +1 -1
- package/dist/pages/InviteAcceptancePage.d.ts.map +1 -1
- package/dist/pages/InviteAcceptancePage.js +197 -216
- package/dist/pages/InviteAcceptancePage.js.map +1 -1
- package/dist/pages/MembersListPage.d.ts.map +1 -1
- package/dist/pages/MembersListPage.js +142 -138
- package/dist/pages/MembersListPage.js.map +1 -1
- package/dist/pages/ProjectDetailPage.d.ts.map +1 -1
- package/dist/pages/ProjectDetailPage.js +181 -176
- package/dist/pages/ProjectDetailPage.js.map +1 -1
- package/dist/pages/ProjectsListPage.d.ts.map +1 -1
- package/dist/pages/ProjectsListPage.js +175 -171
- package/dist/pages/ProjectsListPage.js.map +1 -1
- package/dist/pages/WorkspaceDetailPage.d.ts.map +1 -1
- package/dist/pages/WorkspaceDetailPage.js +104 -101
- package/dist/pages/WorkspaceDetailPage.js.map +1 -1
- package/dist/pages/WorkspaceSettingsPage.d.ts.map +1 -1
- package/dist/pages/WorkspaceSettingsPage.js +182 -137
- package/dist/pages/WorkspaceSettingsPage.js.map +1 -1
- package/dist/pages/WorkspacesListPage.d.ts.map +1 -1
- package/dist/pages/WorkspacesListPage.js +77 -77
- package/dist/pages/WorkspacesListPage.js.map +1 -1
- package/dist/pages/dashboard/DashboardCustomizer.d.ts.map +1 -1
- package/dist/pages/dashboard/DashboardCustomizer.js +53 -55
- package/dist/pages/dashboard/DashboardCustomizer.js.map +1 -1
- package/dist/pages/dashboard/DashboardGrid.d.ts.map +1 -1
- package/dist/pages/dashboard/DashboardGrid.js +33 -36
- package/dist/pages/dashboard/DashboardGrid.js.map +1 -1
- package/dist/pages/dashboard/DashboardPage.d.ts.map +1 -1
- package/dist/pages/dashboard/DashboardPage.js +67 -65
- package/dist/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/pages/dashboard/WidgetWrapper.d.ts.map +1 -1
- package/dist/pages/dashboard/WidgetWrapper.js +3 -6
- package/dist/pages/dashboard/WidgetWrapper.js.map +1 -1
- package/dist/utils/i18n.d.ts +13 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +12 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/telemetryError.d.ts +2 -0
- package/dist/utils/telemetryError.d.ts.map +1 -0
- package/dist/utils/telemetryError.js +28 -0
- package/dist/utils/telemetryError.js.map +1 -0
- package/package.json +9 -4
|
@@ -1,361 +1,366 @@
|
|
|
1
1
|
import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
|
|
2
2
|
import { getProjectStatusClasses as t } from "../utils/tokenHelpers.js";
|
|
3
|
-
import { useScopedNavigation as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
3
|
+
import { useScopedNavigation as ee } from "../hooks/useScopedNavigation.js";
|
|
4
|
+
import { tWithFallback as n } from "../utils/i18n.js";
|
|
5
|
+
import { useWorkspacesPageView as te } from "../hooks/useWorkspacesPageView.js";
|
|
6
|
+
import { nativeImpact as ne, nativeNotify as r } from "../utils/nativeBridge.js";
|
|
7
|
+
import { useProject as re, useProjectMembersCount as i } from "../hooks/useProjects.js";
|
|
8
|
+
import { useArchiveProject as a, useDeleteProject as o, useUnarchiveProject as s, useUpdateProject as c } from "../hooks/useProjectMutations.js";
|
|
9
|
+
import { formatDate as l } from "../utils/formatters.js";
|
|
10
|
+
import { normalizeProjectTags as u, toProjectTag as d } from "../utils/projectTags.js";
|
|
9
11
|
import { useWorkspaceActivity as ie } from "../hooks/useWorkspaceActivity.js";
|
|
10
12
|
import { useWorkspacePermissions as ae } from "../hooks/useWorkspacePermissions.js";
|
|
11
|
-
import {
|
|
12
|
-
import { Activity as
|
|
13
|
-
import { jsx as
|
|
14
|
-
import { AlertDialog as le, AlertDialogAction as ue, AlertDialogCancel as de, AlertDialogContent as fe, AlertDialogDescription as pe, AlertDialogFooter as me, AlertDialogHeader as he, AlertDialogTitle as ge, Badge as
|
|
15
|
-
import { useNavigate as
|
|
16
|
-
import { useI18n as
|
|
17
|
-
import { TagsWidget as
|
|
13
|
+
import { useEffect as oe, useMemo as se, useState as f } from "react";
|
|
14
|
+
import { Activity as p, Archive as m, ArrowLeft as h, Clock as g, FolderKanban as _, MoreVertical as ce, Users as v } from "lucide-react";
|
|
15
|
+
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
16
|
+
import { AlertDialog as le, AlertDialogAction as ue, AlertDialogCancel as de, AlertDialogContent as fe, AlertDialogDescription as pe, AlertDialogFooter as me, AlertDialogHeader as he, AlertDialogTitle as ge, Badge as x, Button as S, Card as C, CardContent as w, CardHeader as T, CardTitle as E, DropdownMenu as D, DropdownMenuContent as O, DropdownMenuItem as k, DropdownMenuSeparator as A, DropdownMenuTrigger as j, Skeleton as M } from "@burdenoff/fe-libs/ui";
|
|
17
|
+
import { useNavigate as N, useParams as P } from "react-router-dom";
|
|
18
|
+
import { useI18n as F } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
19
|
+
import { TagsWidget as I } from "@burdenoff/fe-libs/tag";
|
|
18
20
|
//#region src/pages/ProjectDetailPage.tsx
|
|
19
|
-
function
|
|
20
|
-
let { t:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}, [
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
function L() {
|
|
22
|
+
let { t: L } = F(), { workspaceId: R, projectId: z } = P();
|
|
23
|
+
te("workspaces.project-detail", {
|
|
24
|
+
workspaceId: R,
|
|
25
|
+
projectId: z,
|
|
26
|
+
requireParams: !0
|
|
27
|
+
});
|
|
28
|
+
let B = N(), { basePath: V = "/workspaces" } = e(), { withCurrentSearch: H } = ee(), { data: U, isLoading: _e, error: ve } = re(z || "", R), [ye, W] = f(!1), [G, K] = f(() => u(U?.tags)), { mutate: be, isPending: q } = a(R), { mutate: xe, isPending: J } = s(R), { mutate: Se, isPending: Y } = o(R), { mutateAsync: Ce, isPending: we } = c(R), { data: Te } = i(z || "", R), { data: Ee } = ie(R), De = (Ee ?? []).filter((e) => e.resourceId === z || e.resourceType?.toLowerCase() === "project").length, { canViewProject: Oe, canDeleteProject: X, canArchiveProject: Z, isLoading: ke } = ae();
|
|
29
|
+
oe(() => {
|
|
30
|
+
K(u(U?.tags));
|
|
31
|
+
}, [U?.tags]);
|
|
32
|
+
let Ae = se(() => G, [G]);
|
|
33
|
+
if (ke) return /* @__PURE__ */ b("div", {
|
|
29
34
|
className: "space-y-4 p-6",
|
|
30
|
-
children: [/* @__PURE__ */
|
|
35
|
+
children: [/* @__PURE__ */ y(M, { className: "h-10 w-1/3" }), /* @__PURE__ */ y(M, { className: "h-64" })]
|
|
31
36
|
});
|
|
32
|
-
if (!Oe) return /* @__PURE__ */
|
|
37
|
+
if (!Oe) return /* @__PURE__ */ y("div", {
|
|
33
38
|
className: "flex items-center justify-center min-h-[400px]",
|
|
34
|
-
children: /* @__PURE__ */
|
|
39
|
+
children: /* @__PURE__ */ b("div", {
|
|
35
40
|
className: "text-center space-y-2",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
41
|
+
children: [/* @__PURE__ */ y("h2", {
|
|
37
42
|
className: "text-lg font-semibold",
|
|
38
|
-
children:
|
|
39
|
-
}), /* @__PURE__ */
|
|
43
|
+
children: n(L, "projectDetail.accessDenied", "Access Denied")
|
|
44
|
+
}), /* @__PURE__ */ y("p", {
|
|
40
45
|
className: "text-sm text-muted-foreground",
|
|
41
|
-
children:
|
|
46
|
+
children: n(L, "projectDetail.noPermissionToViewProject", "You don't have permission to view this project.")
|
|
42
47
|
})]
|
|
43
48
|
})
|
|
44
49
|
});
|
|
45
50
|
let Q = () => {
|
|
46
|
-
|
|
51
|
+
B(H(`${V}/${R}/projects`));
|
|
47
52
|
}, je = () => {
|
|
48
|
-
|
|
53
|
+
U && (U.archived ? xe(U.id, { onError: (e) => {
|
|
49
54
|
console.error("Failed to unarchive project:", e);
|
|
50
|
-
} }) :
|
|
55
|
+
} }) : be(U.id, { onError: (e) => {
|
|
51
56
|
console.error("Failed to archive project:", e);
|
|
52
57
|
} }));
|
|
53
58
|
}, Me = () => {
|
|
54
|
-
|
|
59
|
+
U && (ne("medium"), Se(U.id, {
|
|
55
60
|
onSuccess: () => {
|
|
56
|
-
|
|
61
|
+
r("success"), W(!1), B(H(`${V}/${R}/projects`));
|
|
57
62
|
},
|
|
58
63
|
onError: (e) => {
|
|
59
|
-
|
|
64
|
+
r("error"), console.error("Failed to delete project:", e);
|
|
60
65
|
}
|
|
61
66
|
}));
|
|
62
67
|
}, $ = async (e) => {
|
|
63
|
-
if (!
|
|
64
|
-
let t = e.map((e) =>
|
|
65
|
-
|
|
68
|
+
if (!U) return;
|
|
69
|
+
let t = e.map((e) => d(e));
|
|
70
|
+
K(t);
|
|
66
71
|
try {
|
|
67
|
-
await
|
|
68
|
-
id:
|
|
72
|
+
await Ce({
|
|
73
|
+
id: U.id,
|
|
69
74
|
input: { tags: t }
|
|
70
75
|
});
|
|
71
76
|
} catch (e) {
|
|
72
|
-
throw
|
|
77
|
+
throw K(u(U.tags)), e;
|
|
73
78
|
}
|
|
74
79
|
};
|
|
75
|
-
return
|
|
80
|
+
return _e ? /* @__PURE__ */ b("div", {
|
|
76
81
|
className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
|
|
77
82
|
children: [
|
|
78
|
-
/* @__PURE__ */
|
|
79
|
-
/* @__PURE__ */
|
|
80
|
-
/* @__PURE__ */
|
|
83
|
+
/* @__PURE__ */ y(M, { className: "h-10 w-32" }),
|
|
84
|
+
/* @__PURE__ */ y(M, { className: "h-10 w-1/3" }),
|
|
85
|
+
/* @__PURE__ */ b("div", {
|
|
81
86
|
className: "grid grid-cols-1 md:grid-cols-3 gap-4",
|
|
82
87
|
children: [
|
|
83
|
-
/* @__PURE__ */
|
|
84
|
-
/* @__PURE__ */
|
|
85
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ y(M, { className: "h-32" }),
|
|
89
|
+
/* @__PURE__ */ y(M, { className: "h-32" }),
|
|
90
|
+
/* @__PURE__ */ y(M, { className: "h-32" })
|
|
86
91
|
]
|
|
87
92
|
}),
|
|
88
|
-
/* @__PURE__ */
|
|
93
|
+
/* @__PURE__ */ y(M, { className: "h-48" })
|
|
89
94
|
]
|
|
90
|
-
}) :
|
|
95
|
+
}) : ve || !U ? /* @__PURE__ */ b("div", {
|
|
91
96
|
className: "space-y-4 p-6",
|
|
92
|
-
children: [/* @__PURE__ */
|
|
97
|
+
children: [/* @__PURE__ */ b(S, {
|
|
93
98
|
variant: "ghost",
|
|
94
99
|
onClick: Q,
|
|
95
100
|
className: "gap-2",
|
|
96
|
-
children: [/* @__PURE__ */
|
|
97
|
-
}), /* @__PURE__ */
|
|
101
|
+
children: [/* @__PURE__ */ y(h, { size: 20 }), n(L, "projectDetail.backToProjects", "Back to Projects")]
|
|
102
|
+
}), /* @__PURE__ */ b("div", {
|
|
98
103
|
className: "text-center py-12",
|
|
99
104
|
children: [
|
|
100
|
-
/* @__PURE__ */
|
|
105
|
+
/* @__PURE__ */ y("div", {
|
|
101
106
|
className: "rounded-full bg-muted p-6 mb-4 inline-block",
|
|
102
|
-
children: /* @__PURE__ */
|
|
107
|
+
children: /* @__PURE__ */ y(_, {
|
|
103
108
|
size: 48,
|
|
104
109
|
className: "text-muted-foreground"
|
|
105
110
|
})
|
|
106
111
|
}),
|
|
107
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ y("h3", {
|
|
108
113
|
className: "text-lg font-semibold mb-2",
|
|
109
|
-
children:
|
|
114
|
+
children: n(L, "projectDetail.projectNotFound", "Project not found")
|
|
110
115
|
}),
|
|
111
|
-
/* @__PURE__ */
|
|
116
|
+
/* @__PURE__ */ y("p", {
|
|
112
117
|
className: "text-muted-foreground max-w-sm mx-auto mb-4",
|
|
113
|
-
children:
|
|
118
|
+
children: n(L, "projectDetail.projectNotFoundDescription", "The project you're looking for doesn't exist or you don't have permission to view it.")
|
|
114
119
|
}),
|
|
115
|
-
/* @__PURE__ */
|
|
120
|
+
/* @__PURE__ */ b(S, {
|
|
116
121
|
onClick: Q,
|
|
117
|
-
children: [/* @__PURE__ */
|
|
122
|
+
children: [/* @__PURE__ */ y(h, {
|
|
118
123
|
size: 16,
|
|
119
124
|
className: "mr-2"
|
|
120
|
-
}),
|
|
125
|
+
}), n(L, "projectDetail.backToProjects", "Back to Projects")]
|
|
121
126
|
})
|
|
122
127
|
]
|
|
123
128
|
})]
|
|
124
|
-
}) : /* @__PURE__ */
|
|
129
|
+
}) : /* @__PURE__ */ b("div", {
|
|
125
130
|
className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
|
|
126
131
|
children: [
|
|
127
|
-
/* @__PURE__ */
|
|
132
|
+
/* @__PURE__ */ b("div", {
|
|
128
133
|
className: "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3",
|
|
129
|
-
children: [/* @__PURE__ */
|
|
130
|
-
/* @__PURE__ */
|
|
134
|
+
children: [/* @__PURE__ */ b("div", { children: [
|
|
135
|
+
/* @__PURE__ */ b(S, {
|
|
131
136
|
variant: "ghost",
|
|
132
137
|
onClick: Q,
|
|
133
138
|
className: "gap-2 mb-2 -ml-2",
|
|
134
|
-
children: [/* @__PURE__ */
|
|
139
|
+
children: [/* @__PURE__ */ y(h, { size: 20 }), n(L, "projectDetail.backToProjects", "Back to Projects")]
|
|
135
140
|
}),
|
|
136
|
-
/* @__PURE__ */
|
|
141
|
+
/* @__PURE__ */ b("div", {
|
|
137
142
|
className: "flex items-center gap-3",
|
|
138
|
-
children: [/* @__PURE__ */
|
|
143
|
+
children: [/* @__PURE__ */ y("div", {
|
|
139
144
|
className: "p-3 rounded-lg bg-primary/10",
|
|
140
|
-
children: /* @__PURE__ */
|
|
145
|
+
children: /* @__PURE__ */ y(_, {
|
|
141
146
|
className: "text-primary",
|
|
142
147
|
size: 28
|
|
143
148
|
})
|
|
144
|
-
}), /* @__PURE__ */
|
|
149
|
+
}), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h1", {
|
|
145
150
|
className: "text-2xl sm:text-3xl font-bold",
|
|
146
|
-
children:
|
|
147
|
-
}), /* @__PURE__ */
|
|
151
|
+
children: U.name
|
|
152
|
+
}), /* @__PURE__ */ y("p", {
|
|
148
153
|
className: "text-sm text-muted-foreground font-mono",
|
|
149
|
-
children:
|
|
154
|
+
children: U.key
|
|
150
155
|
})] })]
|
|
151
156
|
}),
|
|
152
|
-
/* @__PURE__ */
|
|
157
|
+
/* @__PURE__ */ b("div", {
|
|
153
158
|
className: "flex items-center gap-2 mt-3",
|
|
154
|
-
children: [/* @__PURE__ */
|
|
155
|
-
className: `border ${t(
|
|
156
|
-
children:
|
|
157
|
-
}),
|
|
159
|
+
children: [/* @__PURE__ */ y(x, {
|
|
160
|
+
className: `border ${t(U.status)}`,
|
|
161
|
+
children: U.status
|
|
162
|
+
}), U.archived && /* @__PURE__ */ b(x, {
|
|
158
163
|
variant: "outline",
|
|
159
164
|
className: "border-workspace-archived-border text-workspace-archived-text",
|
|
160
|
-
children: [/* @__PURE__ */
|
|
165
|
+
children: [/* @__PURE__ */ y(m, {
|
|
161
166
|
size: 12,
|
|
162
167
|
className: "mr-1"
|
|
163
|
-
}),
|
|
168
|
+
}), n(L, "projectDetail.archived", "Archived")]
|
|
164
169
|
})]
|
|
165
170
|
})
|
|
166
|
-
] }), /* @__PURE__ */
|
|
171
|
+
] }), /* @__PURE__ */ y("div", {
|
|
167
172
|
className: "flex items-center gap-2",
|
|
168
|
-
children: /* @__PURE__ */
|
|
173
|
+
children: /* @__PURE__ */ b(D, { children: [/* @__PURE__ */ y(j, {
|
|
169
174
|
asChild: !0,
|
|
170
|
-
children: /* @__PURE__ */
|
|
175
|
+
children: /* @__PURE__ */ y(S, {
|
|
171
176
|
variant: "outline",
|
|
172
177
|
size: "icon",
|
|
173
|
-
"aria-label":
|
|
174
|
-
children: /* @__PURE__ */
|
|
178
|
+
"aria-label": n(L, "projectDetail.openProjectActionsAriaLabel", "Open project actions"),
|
|
179
|
+
children: /* @__PURE__ */ y(ce, { size: 20 })
|
|
175
180
|
})
|
|
176
|
-
}), /* @__PURE__ */
|
|
181
|
+
}), /* @__PURE__ */ b(O, {
|
|
177
182
|
align: "end",
|
|
178
183
|
children: [
|
|
179
|
-
Z && /* @__PURE__ */
|
|
184
|
+
Z && /* @__PURE__ */ b(k, {
|
|
180
185
|
onClick: je,
|
|
181
|
-
disabled:
|
|
182
|
-
children: [/* @__PURE__ */
|
|
186
|
+
disabled: q || J,
|
|
187
|
+
children: [/* @__PURE__ */ y(m, {
|
|
183
188
|
size: 16,
|
|
184
189
|
className: "mr-2"
|
|
185
|
-
}),
|
|
190
|
+
}), q || J ? n(L, "projectDetail.processing", "Processing...") : U.archived ? n(L, "projectDetail.unarchive", "Unarchive") : n(L, "projectDetail.archive", "Archive")]
|
|
186
191
|
}),
|
|
187
|
-
Z && X && /* @__PURE__ */
|
|
188
|
-
X && /* @__PURE__ */
|
|
189
|
-
onClick: () =>
|
|
192
|
+
Z && X && /* @__PURE__ */ y(A, {}),
|
|
193
|
+
X && /* @__PURE__ */ y(k, {
|
|
194
|
+
onClick: () => W(!0),
|
|
190
195
|
className: "text-destructive",
|
|
191
|
-
children:
|
|
196
|
+
children: n(L, "projectDetail.deleteProject", "Delete Project")
|
|
192
197
|
})
|
|
193
198
|
]
|
|
194
199
|
})] })
|
|
195
200
|
})]
|
|
196
201
|
}),
|
|
197
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ b("div", {
|
|
198
203
|
className: "grid grid-cols-1 md:grid-cols-2 gap-4",
|
|
199
|
-
children: [/* @__PURE__ */
|
|
204
|
+
children: [/* @__PURE__ */ b(C, { children: [/* @__PURE__ */ y(T, {
|
|
200
205
|
className: "flex flex-row items-center justify-between pb-2",
|
|
201
|
-
children: /* @__PURE__ */
|
|
206
|
+
children: /* @__PURE__ */ b(E, {
|
|
202
207
|
className: "flex items-center gap-2 text-base",
|
|
203
|
-
children: [/* @__PURE__ */ v
|
|
208
|
+
children: [/* @__PURE__ */ y(v, {
|
|
204
209
|
size: 20,
|
|
205
210
|
className: "text-muted-foreground"
|
|
206
|
-
}),
|
|
211
|
+
}), n(L, "projectDetail.membersCardTitle", "Members")]
|
|
207
212
|
})
|
|
208
|
-
}), /* @__PURE__ */
|
|
213
|
+
}), /* @__PURE__ */ b(w, { children: [/* @__PURE__ */ y("p", {
|
|
209
214
|
className: "text-3xl font-bold",
|
|
210
|
-
children:
|
|
211
|
-
}), /* @__PURE__ */
|
|
215
|
+
children: Te ?? 0
|
|
216
|
+
}), /* @__PURE__ */ y("p", {
|
|
212
217
|
className: "text-sm text-muted-foreground",
|
|
213
|
-
children:
|
|
214
|
-
})] })] }), /* @__PURE__ */
|
|
218
|
+
children: n(L, "projectDetail.projectMembers", "Project members")
|
|
219
|
+
})] })] }), /* @__PURE__ */ b(C, { children: [/* @__PURE__ */ y(T, {
|
|
215
220
|
className: "flex flex-row items-center justify-between pb-2",
|
|
216
|
-
children: /* @__PURE__ */
|
|
221
|
+
children: /* @__PURE__ */ b(E, {
|
|
217
222
|
className: "flex items-center gap-2 text-base",
|
|
218
|
-
children: [/* @__PURE__ */
|
|
223
|
+
children: [/* @__PURE__ */ y(p, {
|
|
219
224
|
size: 20,
|
|
220
225
|
className: "text-muted-foreground"
|
|
221
|
-
}),
|
|
226
|
+
}), n(L, "projectDetail.activityCardTitle", "Activity")]
|
|
222
227
|
})
|
|
223
|
-
}), /* @__PURE__ */
|
|
228
|
+
}), /* @__PURE__ */ b(w, { children: [/* @__PURE__ */ y("p", {
|
|
224
229
|
className: "text-3xl font-bold",
|
|
225
|
-
children:
|
|
226
|
-
}), /* @__PURE__ */
|
|
230
|
+
children: De
|
|
231
|
+
}), /* @__PURE__ */ y("p", {
|
|
227
232
|
className: "text-sm text-muted-foreground",
|
|
228
|
-
children:
|
|
233
|
+
children: n(L, "projectDetail.recentActivityItems", "Recent activity items")
|
|
229
234
|
})] })] })]
|
|
230
235
|
}),
|
|
231
|
-
/* @__PURE__ */
|
|
236
|
+
/* @__PURE__ */ b(C, { children: [/* @__PURE__ */ y(T, { children: /* @__PURE__ */ y(E, { children: n(L, "projectDetail.tagsTitle", "Tags") }) }), /* @__PURE__ */ b(w, {
|
|
232
237
|
className: "space-y-3",
|
|
233
|
-
children: [/* @__PURE__ */
|
|
238
|
+
children: [/* @__PURE__ */ y("p", {
|
|
234
239
|
className: "text-sm text-muted-foreground",
|
|
235
|
-
children:
|
|
236
|
-
}), /* @__PURE__ */
|
|
240
|
+
children: n(L, "projectDetail.tagsDescription", "Use universal tags to classify and filter this project across the workspace.")
|
|
241
|
+
}), /* @__PURE__ */ y(I, {
|
|
237
242
|
entityType: "Project",
|
|
238
|
-
entityId:
|
|
239
|
-
workspaceId:
|
|
243
|
+
entityId: U.id,
|
|
244
|
+
workspaceId: R,
|
|
240
245
|
tags: Ae,
|
|
241
246
|
onAdd: async (e) => {
|
|
242
|
-
await $([...
|
|
247
|
+
await $([...G, d(e)]);
|
|
243
248
|
},
|
|
244
249
|
onRemove: async (e) => {
|
|
245
|
-
await $(
|
|
250
|
+
await $(G.filter((t) => t.tagId !== e && t.id !== e));
|
|
246
251
|
},
|
|
247
252
|
syncGraphNotifications: !1,
|
|
248
|
-
className:
|
|
253
|
+
className: we ? "pointer-events-none opacity-75" : void 0
|
|
249
254
|
})]
|
|
250
255
|
})] }),
|
|
251
|
-
/* @__PURE__ */
|
|
256
|
+
/* @__PURE__ */ b(C, { children: [/* @__PURE__ */ y(T, { children: /* @__PURE__ */ y(E, { children: n(L, "projectDetail.projectInformation", "Project Information") }) }), /* @__PURE__ */ b(w, {
|
|
252
257
|
className: "space-y-4",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
258
|
+
children: [/* @__PURE__ */ b("div", {
|
|
254
259
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm",
|
|
255
260
|
children: [
|
|
256
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ b("div", {
|
|
257
262
|
className: "space-y-1",
|
|
258
|
-
children: [/* @__PURE__ */
|
|
263
|
+
children: [/* @__PURE__ */ b("span", {
|
|
259
264
|
className: "text-muted-foreground flex items-center gap-2",
|
|
260
|
-
children: [/* @__PURE__ */
|
|
261
|
-
}), /* @__PURE__ */
|
|
265
|
+
children: [/* @__PURE__ */ y(_, { size: 14 }), n(L, "projectDetail.projectId", "Project ID")]
|
|
266
|
+
}), /* @__PURE__ */ y("span", {
|
|
262
267
|
className: "font-mono text-xs block",
|
|
263
|
-
children:
|
|
268
|
+
children: U.id
|
|
264
269
|
})]
|
|
265
270
|
}),
|
|
266
|
-
/* @__PURE__ */
|
|
271
|
+
/* @__PURE__ */ b("div", {
|
|
267
272
|
className: "space-y-1",
|
|
268
|
-
children: [/* @__PURE__ */
|
|
273
|
+
children: [/* @__PURE__ */ b("span", {
|
|
269
274
|
className: "text-muted-foreground flex items-center gap-2",
|
|
270
|
-
children: [/* @__PURE__ */
|
|
271
|
-
}), /* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ y(_, { size: 14 }), n(L, "projectDetail.projectKey", "Project Key")]
|
|
276
|
+
}), /* @__PURE__ */ y("span", {
|
|
272
277
|
className: "font-medium",
|
|
273
|
-
children:
|
|
278
|
+
children: U.key
|
|
274
279
|
})]
|
|
275
280
|
}),
|
|
276
|
-
/* @__PURE__ */
|
|
281
|
+
/* @__PURE__ */ b("div", {
|
|
277
282
|
className: "space-y-1",
|
|
278
|
-
children: [/* @__PURE__ */
|
|
283
|
+
children: [/* @__PURE__ */ b("span", {
|
|
279
284
|
className: "text-muted-foreground flex items-center gap-2",
|
|
280
|
-
children: [/* @__PURE__ */
|
|
281
|
-
}), /* @__PURE__ */
|
|
285
|
+
children: [/* @__PURE__ */ y(g, { size: 14 }), n(L, "projectDetail.created", "Created")]
|
|
286
|
+
}), /* @__PURE__ */ y("span", { children: l(U.createdAt) })]
|
|
282
287
|
}),
|
|
283
|
-
/* @__PURE__ */
|
|
288
|
+
/* @__PURE__ */ b("div", {
|
|
284
289
|
className: "space-y-1",
|
|
285
|
-
children: [/* @__PURE__ */
|
|
290
|
+
children: [/* @__PURE__ */ b("span", {
|
|
286
291
|
className: "text-muted-foreground flex items-center gap-2",
|
|
287
|
-
children: [/* @__PURE__ */
|
|
288
|
-
}), /* @__PURE__ */
|
|
292
|
+
children: [/* @__PURE__ */ y(g, { size: 14 }), n(L, "projectDetail.lastUpdated", "Last Updated")]
|
|
293
|
+
}), /* @__PURE__ */ y("span", { children: l(U.updatedAt) })]
|
|
289
294
|
}),
|
|
290
|
-
/* @__PURE__ */
|
|
295
|
+
/* @__PURE__ */ b("div", {
|
|
291
296
|
className: "space-y-1",
|
|
292
|
-
children: [/* @__PURE__ */
|
|
297
|
+
children: [/* @__PURE__ */ b("span", {
|
|
293
298
|
className: "text-muted-foreground flex items-center gap-2",
|
|
294
|
-
children: [/* @__PURE__ */ v
|
|
295
|
-
}), /* @__PURE__ */
|
|
299
|
+
children: [/* @__PURE__ */ y(v, { size: 14 }), n(L, "projectDetail.workspaceId", "Workspace ID")]
|
|
300
|
+
}), /* @__PURE__ */ y("span", {
|
|
296
301
|
className: "font-mono text-xs block",
|
|
297
|
-
children:
|
|
302
|
+
children: U.workspaceId
|
|
298
303
|
})]
|
|
299
304
|
}),
|
|
300
|
-
/* @__PURE__ */
|
|
305
|
+
/* @__PURE__ */ b("div", {
|
|
301
306
|
className: "space-y-1",
|
|
302
|
-
children: [/* @__PURE__ */
|
|
307
|
+
children: [/* @__PURE__ */ b("span", {
|
|
303
308
|
className: "text-muted-foreground flex items-center gap-2",
|
|
304
|
-
children: [/* @__PURE__ */ v
|
|
305
|
-
}), /* @__PURE__ */
|
|
309
|
+
children: [/* @__PURE__ */ y(v, { size: 14 }), n(L, "projectDetail.creatorId", "Creator ID")]
|
|
310
|
+
}), /* @__PURE__ */ y("span", {
|
|
306
311
|
className: "font-mono text-xs block",
|
|
307
|
-
children:
|
|
312
|
+
children: U.creatorId
|
|
308
313
|
})]
|
|
309
314
|
})
|
|
310
315
|
]
|
|
311
|
-
}),
|
|
316
|
+
}), U.config && Object.keys(U.config).length > 0 && /* @__PURE__ */ b("div", {
|
|
312
317
|
className: "pt-4 border-t",
|
|
313
|
-
children: [/* @__PURE__ */
|
|
318
|
+
children: [/* @__PURE__ */ y("h4", {
|
|
314
319
|
className: "text-sm font-medium mb-2",
|
|
315
|
-
children:
|
|
316
|
-
}), /* @__PURE__ */
|
|
320
|
+
children: n(L, "projectDetail.configuration", "Configuration")
|
|
321
|
+
}), /* @__PURE__ */ y("pre", {
|
|
317
322
|
className: "text-xs bg-muted p-3 rounded-lg overflow-auto",
|
|
318
|
-
children: JSON.stringify(
|
|
323
|
+
children: JSON.stringify(U.config, null, 2)
|
|
319
324
|
})]
|
|
320
325
|
})]
|
|
321
326
|
})] }),
|
|
322
|
-
/* @__PURE__ */
|
|
327
|
+
/* @__PURE__ */ b(C, { children: [/* @__PURE__ */ y(T, { children: /* @__PURE__ */ y(E, { children: n(L, "projectDetail.quickActions", "Quick Actions") }) }), /* @__PURE__ */ y(w, { children: /* @__PURE__ */ b("div", {
|
|
323
328
|
className: "flex flex-wrap gap-2",
|
|
324
|
-
children: [/* @__PURE__ */
|
|
329
|
+
children: [/* @__PURE__ */ b(S, {
|
|
325
330
|
variant: "outline",
|
|
326
331
|
size: "sm",
|
|
327
|
-
onClick: () =>
|
|
328
|
-
children: [/* @__PURE__ */ v
|
|
332
|
+
onClick: () => B(H(`${V}/${R}/members`)),
|
|
333
|
+
children: [/* @__PURE__ */ y(v, {
|
|
329
334
|
size: 16,
|
|
330
335
|
className: "mr-2"
|
|
331
|
-
}),
|
|
332
|
-
}), /* @__PURE__ */
|
|
336
|
+
}), n(L, "projectDetail.workspaceMembers", "Workspace Members")]
|
|
337
|
+
}), /* @__PURE__ */ b(S, {
|
|
333
338
|
variant: "outline",
|
|
334
339
|
size: "sm",
|
|
335
|
-
onClick: () =>
|
|
336
|
-
children: [/* @__PURE__ */
|
|
340
|
+
onClick: () => B(H(`${V}/${R}/activity`)),
|
|
341
|
+
children: [/* @__PURE__ */ y(p, {
|
|
337
342
|
size: 16,
|
|
338
343
|
className: "mr-2"
|
|
339
|
-
}),
|
|
344
|
+
}), n(L, "projectDetail.workspaceActivity", "Workspace Activity")]
|
|
340
345
|
})]
|
|
341
346
|
}) })] }),
|
|
342
|
-
/* @__PURE__ */
|
|
343
|
-
open:
|
|
344
|
-
onOpenChange:
|
|
345
|
-
children: /* @__PURE__ */
|
|
346
|
-
disabled:
|
|
347
|
-
children:
|
|
348
|
-
}), /* @__PURE__ */
|
|
347
|
+
/* @__PURE__ */ y(le, {
|
|
348
|
+
open: ye,
|
|
349
|
+
onOpenChange: W,
|
|
350
|
+
children: /* @__PURE__ */ b(fe, { children: [/* @__PURE__ */ b(he, { children: [/* @__PURE__ */ y(ge, { children: n(L, "projectDetail.deleteDialogTitle", "Delete Project") }), /* @__PURE__ */ y(pe, { children: n(L, "projectDetail.deleteConfirmPrefix", "Are you sure you want to delete \"") + U.name + n(L, "projectDetail.deleteConfirmSuffix", "\"? This action cannot be undone and all project data will be permanently removed.") })] }), /* @__PURE__ */ b(me, { children: [/* @__PURE__ */ y(de, {
|
|
351
|
+
disabled: Y,
|
|
352
|
+
children: n(L, "projectDetail.cancel", "Cancel")
|
|
353
|
+
}), /* @__PURE__ */ y(ue, {
|
|
349
354
|
onClick: Me,
|
|
350
|
-
disabled:
|
|
355
|
+
disabled: Y,
|
|
351
356
|
className: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
352
|
-
children:
|
|
357
|
+
children: Y ? n(L, "projectDetail.deleting", "Deleting...") : n(L, "projectDetail.deleteProject", "Delete Project")
|
|
353
358
|
})] })] })
|
|
354
359
|
})
|
|
355
360
|
]
|
|
356
361
|
});
|
|
357
362
|
}
|
|
358
363
|
//#endregion
|
|
359
|
-
export {
|
|
364
|
+
export { L as ProjectDetailPage };
|
|
360
365
|
|
|
361
366
|
//# sourceMappingURL=ProjectDetailPage.js.map
|