@burdenoff/microfe-planmagnet 2026.1001.2 → 2026.1001.3
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/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoot.js +160 -153
- package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.js +121 -109
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
- package/dist/planmagnet/controls/MilestoneControls.d.ts +2 -0
- package/dist/planmagnet/controls/MilestoneControls.d.ts.map +1 -1
- package/dist/planmagnet/controls/MilestoneControls.js +89 -72
- package/dist/planmagnet/controls/MilestoneControls.js.map +1 -1
- package/dist/planmagnet/meetings/MeetingActionItemsPanel.d.ts +17 -0
- package/dist/planmagnet/meetings/MeetingActionItemsPanel.d.ts.map +1 -0
- package/dist/planmagnet/meetings/MeetingActionItemsPanel.js +218 -0
- package/dist/planmagnet/meetings/MeetingActionItemsPanel.js.map +1 -0
- package/dist/planmagnet/meetings/MeetingsCard.d.ts +7 -0
- package/dist/planmagnet/meetings/MeetingsCard.d.ts.map +1 -0
- package/dist/planmagnet/meetings/MeetingsCard.js +108 -0
- package/dist/planmagnet/meetings/MeetingsCard.js.map +1 -0
- package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.d.ts +9 -0
- package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.d.ts.map +1 -0
- package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.js +232 -0
- package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.js.map +1 -0
- package/dist/planmagnet/meetings/ScheduleMeetingDialog.d.ts +19 -0
- package/dist/planmagnet/meetings/ScheduleMeetingDialog.d.ts.map +1 -0
- package/dist/planmagnet/meetings/ScheduleMeetingDialog.js +226 -0
- package/dist/planmagnet/meetings/ScheduleMeetingDialog.js.map +1 -0
- package/dist/planmagnet/meetings/UnlinkMeetingDialog.d.ts +14 -0
- package/dist/planmagnet/meetings/UnlinkMeetingDialog.d.ts.map +1 -0
- package/dist/planmagnet/meetings/UnlinkMeetingDialog.js +81 -0
- package/dist/planmagnet/meetings/UnlinkMeetingDialog.js.map +1 -0
- package/dist/planmagnet/meetings/meetingActions.d.ts +57 -0
- package/dist/planmagnet/meetings/meetingActions.d.ts.map +1 -0
- package/dist/planmagnet/meetings/meetingActions.js +51 -0
- package/dist/planmagnet/meetings/meetingActions.js.map +1 -0
- package/dist/planmagnet/meetings/meetingGraphql.d.ts +29 -0
- package/dist/planmagnet/meetings/meetingGraphql.d.ts.map +1 -0
- package/dist/planmagnet/meetings/meetingGraphql.js +166 -0
- package/dist/planmagnet/meetings/meetingGraphql.js.map +1 -0
- package/dist/planmagnet/meetings/meetingModel.d.ts +74 -0
- package/dist/planmagnet/meetings/meetingModel.d.ts.map +1 -0
- package/dist/planmagnet/meetings/meetingModel.js +88 -0
- package/dist/planmagnet/meetings/meetingModel.js.map +1 -0
- package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.js +197 -0
- package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.js.map +1 -0
- package/dist/planmagnet/pages/MeetingsMeetingsPagePage.d.ts +2 -0
- package/dist/planmagnet/pages/MeetingsMeetingsPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/MeetingsMeetingsPagePage.js +173 -0
- package/dist/planmagnet/pages/MeetingsMeetingsPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js +73 -52
- package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +205 -190
- package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +192 -187
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
- package/dist/planmagnet/reports/ShareDialog.js +65 -65
- package/dist/planmagnet/reports/ShareDialog.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,21 +8,22 @@ import { useEntityId as ne } from "../hooks/useEntityId.js";
|
|
|
8
8
|
import { combineLiveRefreshModes as re, useLiveRefresh as s } from "../hooks/useLiveRefresh.js";
|
|
9
9
|
import { LiveStatus as c } from "../controls/LiveStatus.js";
|
|
10
10
|
import { PresenceAvatars as ie } from "../presence/PresenceAvatars.js";
|
|
11
|
-
import { ProjectComments as
|
|
12
|
-
import { usePresence as
|
|
13
|
-
import { NewRiskDialog as
|
|
11
|
+
import { ProjectComments as l } from "../comments/TargetComments.js";
|
|
12
|
+
import { usePresence as u } from "../hooks/usePresence.js";
|
|
13
|
+
import { NewRiskDialog as d, NewTemplateFromProjectDialog as ae } from "../create/CreateDialogs.js";
|
|
14
14
|
import { ProjectHeaderActions as f } from "../controls/ProjectControls.js";
|
|
15
|
+
import { MeetingsCard as p } from "../meetings/MeetingsCard.js";
|
|
15
16
|
import { ProjectBudgetsSummary as oe } from "../budgets/ProjectBudgetsSummary.js";
|
|
16
17
|
import { ProjectOutlookCard as se } from "../forecast/ProjectOutlookCard.js";
|
|
17
|
-
import { ResourceForecastCard as
|
|
18
|
-
import { ProjectRiskSummaryCard as
|
|
19
|
-
import { Bot as
|
|
20
|
-
import { gql as
|
|
18
|
+
import { ResourceForecastCard as ce } from "../forecast/ResourceForecastCard.js";
|
|
19
|
+
import { ProjectRiskSummaryCard as m } from "../forecast/ProjectRiskSummaryCard.js";
|
|
20
|
+
import { Bot as h, Calendar as g, CheckSquare as _, FolderKanban as v, LayoutTemplate as y, Route as b, ShieldAlert as le, ShieldCheck as ue, Users as x, Zap as S } from "lucide-react";
|
|
21
|
+
import { gql as C } from "@apollo/client";
|
|
21
22
|
import { useQuery as de } from "@apollo/client/react";
|
|
22
|
-
import { jsx as
|
|
23
|
-
import { Badge as
|
|
23
|
+
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
24
|
+
import { Badge as E, Button as D, Card as O, CardContent as k, CardHeader as A, CardTitle as j } from "@burdenoff/fe-libs/ui";
|
|
24
25
|
//#region src/planmagnet/pages/ProjectsProjectDetailPagePage.tsx
|
|
25
|
-
var
|
|
26
|
+
var M = ["GetProjectDetail"], N = C`
|
|
26
27
|
query GetProjectDetail($id: ID!) {
|
|
27
28
|
planmagnetProject(id: $id) {
|
|
28
29
|
id
|
|
@@ -95,64 +96,64 @@ var j = ["GetProjectDetail"], M = S`
|
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
|
-
`,
|
|
99
|
+
`, P = {
|
|
99
100
|
ACTIVE: "bg-green-100 text-green-800",
|
|
100
101
|
ON_HOLD: "bg-orange-100 text-orange-800",
|
|
101
102
|
CANCELLED: "bg-red-100 text-red-800",
|
|
102
103
|
COMPLETED: "bg-blue-100 text-blue-800",
|
|
103
104
|
PLANNING: "bg-gray-100 text-gray-800",
|
|
104
105
|
ARCHIVED: "bg-gray-100 text-gray-800"
|
|
105
|
-
},
|
|
106
|
+
}, F = {
|
|
106
107
|
CRITICAL: "bg-red-100 text-red-800",
|
|
107
108
|
HIGH: "bg-orange-100 text-orange-800",
|
|
108
109
|
MEDIUM: "bg-yellow-100 text-yellow-800",
|
|
109
110
|
LOW: "bg-blue-100 text-blue-800",
|
|
110
111
|
NEGLIGIBLE: "bg-gray-100 text-gray-800"
|
|
111
|
-
},
|
|
112
|
+
}, I = new Set([
|
|
112
113
|
"IDENTIFIED",
|
|
113
114
|
"ANALYZING",
|
|
114
115
|
"MITIGATING",
|
|
115
116
|
"ACCEPTED"
|
|
116
117
|
]);
|
|
117
|
-
function
|
|
118
|
-
let
|
|
119
|
-
variables: { id:
|
|
120
|
-
skip: !
|
|
121
|
-
}), V = s({
|
|
122
|
-
kind: "project",
|
|
123
|
-
projectId: S,
|
|
124
|
-
queries: j
|
|
118
|
+
function L() {
|
|
119
|
+
let C = ne("projectId"), L = t(), { workspaceId: R } = e(), { data: z, loading: B, error: V } = de(N, {
|
|
120
|
+
variables: { id: C },
|
|
121
|
+
skip: !C
|
|
125
122
|
}), fe = s({
|
|
126
|
-
kind: "
|
|
127
|
-
projectId:
|
|
128
|
-
|
|
129
|
-
queries: j
|
|
123
|
+
kind: "project",
|
|
124
|
+
projectId: C,
|
|
125
|
+
queries: M
|
|
130
126
|
}), pe = s({
|
|
127
|
+
kind: "sprint",
|
|
128
|
+
projectId: C,
|
|
129
|
+
enabled: !!C,
|
|
130
|
+
queries: M
|
|
131
|
+
}), me = s({
|
|
131
132
|
kind: "workItem",
|
|
132
|
-
projectId:
|
|
133
|
-
queries:
|
|
134
|
-
}),
|
|
135
|
-
if (!
|
|
133
|
+
projectId: C,
|
|
134
|
+
queries: M
|
|
135
|
+
}), he = re(fe.mode, pe.mode, me.mode), H = u("PROJECT", C);
|
|
136
|
+
if (!C) return /* @__PURE__ */ w("div", {
|
|
136
137
|
className: "p-6 text-muted-foreground",
|
|
137
138
|
children: "No project selected. Open one from the list."
|
|
138
139
|
});
|
|
139
|
-
if (
|
|
140
|
+
if (B && !z) return /* @__PURE__ */ w("div", {
|
|
140
141
|
className: "flex items-center justify-center p-12",
|
|
141
|
-
children: /* @__PURE__ */
|
|
142
|
+
children: /* @__PURE__ */ w("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
|
|
142
143
|
});
|
|
143
|
-
if (
|
|
144
|
+
if (V) return /* @__PURE__ */ T("div", {
|
|
144
145
|
className: "p-6 text-red-500",
|
|
145
|
-
children: ["Error loading project: ",
|
|
146
|
+
children: ["Error loading project: ", V.message]
|
|
146
147
|
});
|
|
147
|
-
let U =
|
|
148
|
-
if (!U) return /* @__PURE__ */
|
|
148
|
+
let U = z?.planmagnetProject;
|
|
149
|
+
if (!U) return /* @__PURE__ */ w("div", {
|
|
149
150
|
className: "p-6 text-muted-foreground",
|
|
150
151
|
children: "Project not found."
|
|
151
152
|
});
|
|
152
|
-
let W = U.workItems ?? [], G = U.sprints ?? [], K = U.milestones ?? [], q = U.risks ?? [], J = q.filter((e) =>
|
|
153
|
+
let W = U.workItems ?? [], G = U.sprints ?? [], K = U.milestones ?? [], q = U.risks ?? [], J = q.filter((e) => I.has(e.status)), ge = [...J].sort((e, t) => t.riskScore - e.riskScore).slice(0, 3), Y = G.find((e) => e.status === "ACTIVE"), X = G.filter((e) => e.status === "COMPLETED" && e.velocity != null).sort((e, t) => (t.endDate ?? "").localeCompare(e.endDate ?? ""))[0], Z = ee(W.map((e) => ({
|
|
153
154
|
status: e.status,
|
|
154
155
|
storyPoints: e.storyPoints
|
|
155
|
-
}))), Q = W.filter((e) => e.status !== "CANCELLED"),
|
|
156
|
+
}))), Q = W.filter((e) => e.status !== "CANCELLED"), _e = Q.filter((e) => e.status === "DONE").length, ve = [...W].sort((e, t) => t.createdAt.localeCompare(e.createdAt)).slice(0, 5), $ = Object.values(W.reduce((e, t) => {
|
|
156
157
|
if (!t.sprint?.team) return e;
|
|
157
158
|
let n = e[t.sprint.id] ?? {
|
|
158
159
|
sprint: {
|
|
@@ -167,219 +168,219 @@ function I() {
|
|
|
167
168
|
title: t.title
|
|
168
169
|
}), e[t.sprint.id] = n, e;
|
|
169
170
|
}, {}));
|
|
170
|
-
return /* @__PURE__ */
|
|
171
|
+
return /* @__PURE__ */ T("div", {
|
|
171
172
|
className: "space-y-6 p-6",
|
|
172
173
|
children: [
|
|
173
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ T("div", {
|
|
174
175
|
className: "flex items-center justify-between",
|
|
175
|
-
children: [/* @__PURE__ */
|
|
176
|
-
/* @__PURE__ */
|
|
176
|
+
children: [/* @__PURE__ */ T("div", { children: [
|
|
177
|
+
/* @__PURE__ */ T("div", {
|
|
177
178
|
className: "flex items-center gap-2",
|
|
178
179
|
children: [
|
|
179
|
-
/* @__PURE__ */
|
|
180
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ w(v, { className: "h-5 w-5 text-primary" }),
|
|
181
|
+
/* @__PURE__ */ w("h1", {
|
|
181
182
|
className: "text-2xl font-semibold",
|
|
182
183
|
children: U.name
|
|
183
184
|
}),
|
|
184
|
-
/* @__PURE__ */
|
|
185
|
-
className: `text-xs px-2 py-0.5 rounded-full capitalize ${
|
|
185
|
+
/* @__PURE__ */ w("span", {
|
|
186
|
+
className: `text-xs px-2 py-0.5 rounded-full capitalize ${P[U.status] ?? "bg-gray-100"}`,
|
|
186
187
|
children: U.status.toLowerCase().replace("_", " ")
|
|
187
188
|
}),
|
|
188
|
-
/* @__PURE__ */
|
|
189
|
+
/* @__PURE__ */ w(c, { mode: he })
|
|
189
190
|
]
|
|
190
191
|
}),
|
|
191
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ w("p", {
|
|
192
193
|
className: "text-sm text-muted-foreground mt-1",
|
|
193
194
|
children: U.description ?? "No description"
|
|
194
195
|
}),
|
|
195
|
-
/* @__PURE__ */
|
|
196
|
-
] }), /* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ w(ie, { others: H.others })
|
|
197
|
+
] }), /* @__PURE__ */ T("div", {
|
|
197
198
|
className: "flex flex-col items-end gap-2",
|
|
198
199
|
children: [
|
|
199
|
-
/* @__PURE__ */
|
|
200
|
+
/* @__PURE__ */ w(f, {
|
|
200
201
|
projectId: U.id,
|
|
201
202
|
name: U.name,
|
|
202
203
|
status: U.status
|
|
203
204
|
}),
|
|
204
|
-
/* @__PURE__ */
|
|
205
|
+
/* @__PURE__ */ T("div", {
|
|
205
206
|
className: "flex items-center gap-2",
|
|
206
207
|
children: [
|
|
207
|
-
/* @__PURE__ */
|
|
208
|
+
/* @__PURE__ */ T(D, {
|
|
208
209
|
size: "sm",
|
|
209
210
|
variant: "outline",
|
|
210
|
-
onClick: () =>
|
|
211
|
+
onClick: () => L("/automation/automation-rules-page"),
|
|
211
212
|
"data-testid": "project-automation-rules",
|
|
212
|
-
children: [/* @__PURE__ */
|
|
213
|
+
children: [/* @__PURE__ */ w(h, { className: "mr-1 h-4 w-4" }), "Automation rules"]
|
|
213
214
|
}),
|
|
214
|
-
/* @__PURE__ */
|
|
215
|
+
/* @__PURE__ */ T(D, {
|
|
215
216
|
size: "sm",
|
|
216
217
|
variant: "outline",
|
|
217
|
-
onClick: () =>
|
|
218
|
+
onClick: () => L(`/projects/quality-gates-page?projectId=${encodeURIComponent(U.id)}`),
|
|
218
219
|
"data-testid": "project-quality-gates",
|
|
219
|
-
children: [/* @__PURE__ */
|
|
220
|
+
children: [/* @__PURE__ */ w(ue, { className: "mr-1 h-4 w-4" }), "Quality gates"]
|
|
220
221
|
}),
|
|
221
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ w(ae, {
|
|
222
223
|
projectId: U.id,
|
|
223
224
|
projectName: U.name,
|
|
224
|
-
onCreated: (e) =>
|
|
225
|
-
trigger: /* @__PURE__ */
|
|
225
|
+
onCreated: (e) => L(a("/templates/edit-template-page", e)),
|
|
226
|
+
trigger: /* @__PURE__ */ T(D, {
|
|
226
227
|
size: "sm",
|
|
227
228
|
variant: "outline",
|
|
228
229
|
"data-testid": "project-save-as-template",
|
|
229
|
-
children: [/* @__PURE__ */
|
|
230
|
+
children: [/* @__PURE__ */ w(y, { className: "mr-1 h-4 w-4" }), "Save as template"]
|
|
230
231
|
})
|
|
231
232
|
})
|
|
232
233
|
]
|
|
233
234
|
}),
|
|
234
|
-
/* @__PURE__ */
|
|
235
|
+
/* @__PURE__ */ w(E, {
|
|
235
236
|
variant: "outline",
|
|
236
237
|
className: "capitalize",
|
|
237
238
|
children: U.methodology.toLowerCase()
|
|
238
239
|
}),
|
|
239
|
-
/* @__PURE__ */
|
|
240
|
+
/* @__PURE__ */ T(D, {
|
|
240
241
|
size: "sm",
|
|
241
242
|
variant: "outline",
|
|
242
|
-
onClick: () =>
|
|
243
|
-
children: [/* @__PURE__ */
|
|
243
|
+
onClick: () => L(a("/projects/critical-path-page", U.id)),
|
|
244
|
+
children: [/* @__PURE__ */ w(b, { className: "mr-1 h-4 w-4" }), "Critical path"]
|
|
244
245
|
})
|
|
245
246
|
]
|
|
246
247
|
})]
|
|
247
248
|
}),
|
|
248
|
-
/* @__PURE__ */
|
|
249
|
+
/* @__PURE__ */ T("div", {
|
|
249
250
|
className: "grid grid-cols-2 md:grid-cols-4 gap-4",
|
|
250
251
|
children: [
|
|
251
|
-
/* @__PURE__ */
|
|
252
|
+
/* @__PURE__ */ w(O, { children: /* @__PURE__ */ T(k, {
|
|
252
253
|
className: "pt-4",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
254
|
+
children: [/* @__PURE__ */ T("div", {
|
|
254
255
|
className: "flex items-center gap-2 text-muted-foreground text-xs",
|
|
255
|
-
children: [/* @__PURE__ */
|
|
256
|
-
}), /* @__PURE__ */
|
|
256
|
+
children: [/* @__PURE__ */ w(_, { className: "h-4 w-4" }), "Work Items"]
|
|
257
|
+
}), /* @__PURE__ */ T("p", {
|
|
257
258
|
className: "text-xl font-bold mt-1",
|
|
258
259
|
children: [
|
|
259
|
-
|
|
260
|
+
_e,
|
|
260
261
|
"/",
|
|
261
262
|
Q.length
|
|
262
263
|
]
|
|
263
264
|
})]
|
|
264
265
|
}) }),
|
|
265
|
-
/* @__PURE__ */
|
|
266
|
+
/* @__PURE__ */ w(O, { children: /* @__PURE__ */ T(k, {
|
|
266
267
|
className: "pt-4",
|
|
267
|
-
children: [/* @__PURE__ */
|
|
268
|
+
children: [/* @__PURE__ */ T("div", {
|
|
268
269
|
className: "flex items-center gap-2 text-muted-foreground text-xs",
|
|
269
|
-
children: [/* @__PURE__ */
|
|
270
|
-
}), /* @__PURE__ */
|
|
270
|
+
children: [/* @__PURE__ */ w(S, { className: "h-4 w-4" }), "Sprints"]
|
|
271
|
+
}), /* @__PURE__ */ w("p", {
|
|
271
272
|
className: "text-xl font-bold mt-1",
|
|
272
273
|
children: G.length
|
|
273
274
|
})]
|
|
274
275
|
}) }),
|
|
275
|
-
/* @__PURE__ */
|
|
276
|
+
/* @__PURE__ */ w(O, { children: /* @__PURE__ */ T(k, {
|
|
276
277
|
className: "pt-4",
|
|
277
|
-
children: [/* @__PURE__ */
|
|
278
|
+
children: [/* @__PURE__ */ T("div", {
|
|
278
279
|
className: "flex items-center gap-2 text-muted-foreground text-xs",
|
|
279
|
-
children: [/* @__PURE__ */
|
|
280
|
-
}), /* @__PURE__ */
|
|
280
|
+
children: [/* @__PURE__ */ w(g, { className: "h-4 w-4" }), "Milestones"]
|
|
281
|
+
}), /* @__PURE__ */ w("p", {
|
|
281
282
|
className: "text-xl font-bold mt-1",
|
|
282
283
|
children: K.length
|
|
283
284
|
})]
|
|
284
285
|
}) }),
|
|
285
|
-
/* @__PURE__ */
|
|
286
|
+
/* @__PURE__ */ w(O, { children: /* @__PURE__ */ T(k, {
|
|
286
287
|
className: "pt-4",
|
|
287
|
-
children: [/* @__PURE__ */
|
|
288
|
+
children: [/* @__PURE__ */ T("div", {
|
|
288
289
|
className: "flex items-center gap-2 text-muted-foreground text-xs",
|
|
289
|
-
children: [/* @__PURE__ */
|
|
290
|
-
}), /* @__PURE__ */
|
|
290
|
+
children: [/* @__PURE__ */ w(x, { className: "h-4 w-4" }), "Owner"]
|
|
291
|
+
}), /* @__PURE__ */ w("p", {
|
|
291
292
|
className: "text-sm font-bold mt-1 truncate",
|
|
292
|
-
children: /* @__PURE__ */
|
|
293
|
+
children: /* @__PURE__ */ w(n, { id: U.ownerId })
|
|
293
294
|
})]
|
|
294
295
|
}) })
|
|
295
296
|
]
|
|
296
297
|
}),
|
|
297
|
-
/* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ T("div", {
|
|
298
299
|
className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
|
|
299
|
-
children: [/* @__PURE__ */
|
|
300
|
-
workspaceId:
|
|
300
|
+
children: [/* @__PURE__ */ w(te, {
|
|
301
|
+
workspaceId: R,
|
|
301
302
|
projectId: U.id,
|
|
302
303
|
sprintId: Y?.id,
|
|
303
304
|
sprintName: Y?.name
|
|
304
|
-
}), /* @__PURE__ */
|
|
305
|
-
workspaceId:
|
|
305
|
+
}), /* @__PURE__ */ w(se, {
|
|
306
|
+
workspaceId: R,
|
|
306
307
|
projectId: U.id
|
|
307
308
|
})]
|
|
308
309
|
}),
|
|
309
|
-
/* @__PURE__ */
|
|
310
|
+
/* @__PURE__ */ T("div", {
|
|
310
311
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
311
|
-
children: [/* @__PURE__ */
|
|
312
|
+
children: [/* @__PURE__ */ T("div", {
|
|
312
313
|
className: "lg:col-span-2 space-y-6",
|
|
313
314
|
children: [
|
|
314
|
-
/* @__PURE__ */
|
|
315
|
-
/* @__PURE__ */
|
|
315
|
+
/* @__PURE__ */ T(O, { children: [/* @__PURE__ */ w(A, { children: /* @__PURE__ */ w(j, { children: "Timeline" }) }), /* @__PURE__ */ T(k, { children: [
|
|
316
|
+
/* @__PURE__ */ T("div", {
|
|
316
317
|
className: "flex justify-between text-sm mb-2",
|
|
317
|
-
children: [/* @__PURE__ */
|
|
318
|
+
children: [/* @__PURE__ */ w("span", {
|
|
318
319
|
className: "text-muted-foreground",
|
|
319
320
|
children: "Tasks done"
|
|
320
|
-
}), /* @__PURE__ */
|
|
321
|
+
}), /* @__PURE__ */ w("span", {
|
|
321
322
|
className: "font-medium",
|
|
322
323
|
children: Z === null ? "No open tasks" : `${Z}%`
|
|
323
324
|
})]
|
|
324
325
|
}),
|
|
325
|
-
/* @__PURE__ */
|
|
326
|
+
/* @__PURE__ */ w("div", {
|
|
326
327
|
className: "w-full h-4 rounded-full bg-muted overflow-hidden",
|
|
327
|
-
children: /* @__PURE__ */
|
|
328
|
+
children: /* @__PURE__ */ w("div", {
|
|
328
329
|
className: "h-full bg-primary rounded-full",
|
|
329
330
|
style: { width: `${Z ?? 0}%` }
|
|
330
331
|
})
|
|
331
332
|
}),
|
|
332
|
-
/* @__PURE__ */
|
|
333
|
+
/* @__PURE__ */ T("div", {
|
|
333
334
|
className: "flex justify-between text-xs text-muted-foreground mt-2",
|
|
334
|
-
children: [/* @__PURE__ */
|
|
335
|
+
children: [/* @__PURE__ */ w("span", { children: U.startDate ? new Date(U.startDate).toLocaleDateString() : "Not set" }), /* @__PURE__ */ w("span", { children: U.endDate ? new Date(U.endDate).toLocaleDateString() : "Not set" })]
|
|
335
336
|
})
|
|
336
337
|
] })] }),
|
|
337
|
-
Y && /* @__PURE__ */
|
|
338
|
+
Y && /* @__PURE__ */ T(O, { children: [/* @__PURE__ */ w(A, { children: /* @__PURE__ */ T(j, {
|
|
338
339
|
className: "flex items-center gap-2",
|
|
339
|
-
children: [/* @__PURE__ */
|
|
340
|
-
}) }), /* @__PURE__ */
|
|
340
|
+
children: [/* @__PURE__ */ w(S, { className: "h-4 w-4 text-primary" }), "Active Sprint"]
|
|
341
|
+
}) }), /* @__PURE__ */ T(k, {
|
|
341
342
|
className: "space-y-3",
|
|
342
343
|
children: [
|
|
343
|
-
/* @__PURE__ */
|
|
344
|
+
/* @__PURE__ */ T("div", {
|
|
344
345
|
className: "flex justify-between",
|
|
345
|
-
children: [/* @__PURE__ */
|
|
346
|
+
children: [/* @__PURE__ */ w("span", {
|
|
346
347
|
className: "font-medium",
|
|
347
348
|
children: Y.name
|
|
348
|
-
}), /* @__PURE__ */
|
|
349
|
+
}), /* @__PURE__ */ w(E, { children: "Active" })]
|
|
349
350
|
}),
|
|
350
|
-
Y.goal && /* @__PURE__ */
|
|
351
|
+
Y.goal && /* @__PURE__ */ w("p", {
|
|
351
352
|
className: "text-sm text-muted-foreground",
|
|
352
353
|
children: Y.goal
|
|
353
354
|
}),
|
|
354
|
-
/* @__PURE__ */
|
|
355
|
+
/* @__PURE__ */ T("div", {
|
|
355
356
|
className: "grid grid-cols-3 gap-4 text-center",
|
|
356
357
|
children: [
|
|
357
|
-
/* @__PURE__ */
|
|
358
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("p", {
|
|
358
359
|
className: "text-lg font-semibold",
|
|
359
360
|
children: [
|
|
360
361
|
Y.workItems?.filter((e) => e.status === "DONE").reduce((e, t) => e + (t.storyPoints ?? 0), 0),
|
|
361
362
|
"/",
|
|
362
363
|
Y.workItems?.reduce((e, t) => e + (t.storyPoints ?? 0), 0) ?? 0
|
|
363
364
|
]
|
|
364
|
-
}), /* @__PURE__ */
|
|
365
|
+
}), /* @__PURE__ */ w("p", {
|
|
365
366
|
className: "text-xs text-muted-foreground",
|
|
366
367
|
children: "Points"
|
|
367
368
|
})] }),
|
|
368
|
-
/* @__PURE__ */
|
|
369
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("p", {
|
|
369
370
|
className: "text-lg font-semibold",
|
|
370
371
|
children: [
|
|
371
372
|
Y.workItems?.filter((e) => e.status === "DONE").length ?? 0,
|
|
372
373
|
"/",
|
|
373
374
|
Y.workItems?.length ?? 0
|
|
374
375
|
]
|
|
375
|
-
}), /* @__PURE__ */
|
|
376
|
+
}), /* @__PURE__ */ w("p", {
|
|
376
377
|
className: "text-xs text-muted-foreground",
|
|
377
378
|
children: "Tasks"
|
|
378
379
|
})] }),
|
|
379
|
-
/* @__PURE__ */
|
|
380
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
380
381
|
className: "text-lg font-semibold",
|
|
381
382
|
children: X ? `${X.velocity} pts` : "—"
|
|
382
|
-
}), /* @__PURE__ */
|
|
383
|
+
}), /* @__PURE__ */ w("p", {
|
|
383
384
|
className: "text-xs text-muted-foreground",
|
|
384
385
|
children: "Velocity of the last sprint"
|
|
385
386
|
})] })
|
|
@@ -387,113 +388,117 @@ function I() {
|
|
|
387
388
|
})
|
|
388
389
|
]
|
|
389
390
|
})] }),
|
|
390
|
-
/* @__PURE__ */
|
|
391
|
+
/* @__PURE__ */ T(O, { children: [/* @__PURE__ */ w(A, { children: /* @__PURE__ */ T(j, { children: [
|
|
391
392
|
"Work items (",
|
|
392
393
|
W.length,
|
|
393
394
|
")",
|
|
394
395
|
W.length > 5 ? " · latest 5" : ""
|
|
395
|
-
] }) }), /* @__PURE__ */
|
|
396
|
+
] }) }), /* @__PURE__ */ T(k, {
|
|
396
397
|
className: "space-y-2",
|
|
397
|
-
children: [
|
|
398
|
-
...o(() =>
|
|
398
|
+
children: [ve.map((e) => /* @__PURE__ */ T("div", {
|
|
399
|
+
...o(() => L(`/tasks/task-detail-page?taskId=${encodeURIComponent(e.id)}`), e.key),
|
|
399
400
|
className: `flex items-center justify-between border rounded-md p-2.5 ${i}`,
|
|
400
|
-
children: [/* @__PURE__ */
|
|
401
|
+
children: [/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("p", {
|
|
401
402
|
className: "text-sm font-medium",
|
|
402
403
|
children: [
|
|
403
404
|
e.key,
|
|
404
405
|
" ",
|
|
405
|
-
/* @__PURE__ */
|
|
406
|
+
/* @__PURE__ */ w("span", {
|
|
406
407
|
className: "font-normal",
|
|
407
408
|
children: e.title
|
|
408
409
|
})
|
|
409
410
|
]
|
|
410
|
-
}), /* @__PURE__ */
|
|
411
|
+
}), /* @__PURE__ */ w("div", {
|
|
411
412
|
className: "flex gap-1 mt-1",
|
|
412
|
-
children: e.labels.map((e) => /* @__PURE__ */
|
|
413
|
+
children: e.labels.map((e) => /* @__PURE__ */ w("span", {
|
|
413
414
|
className: "text-[10px] px-1.5 py-0.5 rounded bg-muted",
|
|
414
415
|
children: e
|
|
415
416
|
}, e))
|
|
416
|
-
})] }), /* @__PURE__ */
|
|
417
|
+
})] }), /* @__PURE__ */ T("div", {
|
|
417
418
|
className: "flex items-center gap-2",
|
|
418
|
-
children: [/* @__PURE__ */
|
|
419
|
+
children: [/* @__PURE__ */ T("span", {
|
|
419
420
|
className: "text-xs text-muted-foreground",
|
|
420
421
|
children: [e.storyPoints ?? 0, " pts"]
|
|
421
|
-
}), /* @__PURE__ */
|
|
422
|
+
}), /* @__PURE__ */ w(E, {
|
|
422
423
|
variant: "secondary",
|
|
423
424
|
className: "capitalize text-xs",
|
|
424
425
|
children: e.status.toLowerCase().replace("_", " ")
|
|
425
426
|
})]
|
|
426
427
|
})]
|
|
427
|
-
}, e.id)), W.length === 0 && /* @__PURE__ */
|
|
428
|
+
}, e.id)), W.length === 0 && /* @__PURE__ */ w("p", {
|
|
428
429
|
className: "text-sm text-muted-foreground text-center py-4",
|
|
429
430
|
children: "No work items yet."
|
|
430
431
|
})]
|
|
431
432
|
})] }),
|
|
432
|
-
/* @__PURE__ */
|
|
433
|
+
/* @__PURE__ */ w(l, {
|
|
433
434
|
projectId: U.id,
|
|
434
435
|
presence: H
|
|
435
436
|
})
|
|
436
437
|
]
|
|
437
|
-
}), /* @__PURE__ */
|
|
438
|
+
}), /* @__PURE__ */ T("div", {
|
|
438
439
|
className: "space-y-6",
|
|
439
440
|
children: [
|
|
440
|
-
/* @__PURE__ */
|
|
441
|
-
workspaceId:
|
|
441
|
+
/* @__PURE__ */ w(oe, {
|
|
442
|
+
workspaceId: R,
|
|
442
443
|
projectId: U.id
|
|
443
444
|
}),
|
|
444
|
-
/* @__PURE__ */
|
|
445
|
-
workspaceId:
|
|
445
|
+
/* @__PURE__ */ w(ce, {
|
|
446
|
+
workspaceId: R,
|
|
446
447
|
projectId: U.id
|
|
447
448
|
}),
|
|
448
|
-
/* @__PURE__ */
|
|
449
|
-
workspaceId:
|
|
449
|
+
/* @__PURE__ */ w(m, {
|
|
450
|
+
workspaceId: R,
|
|
450
451
|
projectId: U.id
|
|
451
452
|
}),
|
|
452
|
-
/* @__PURE__ */
|
|
453
|
+
/* @__PURE__ */ T(O, { children: [/* @__PURE__ */ w(A, { children: /* @__PURE__ */ T(j, { children: [
|
|
453
454
|
"Milestones (",
|
|
454
455
|
K.length,
|
|
455
456
|
")"
|
|
456
|
-
] }) }), /* @__PURE__ */
|
|
457
|
+
] }) }), /* @__PURE__ */ T(k, {
|
|
457
458
|
className: "space-y-3",
|
|
458
|
-
children: [K.map((e) => /* @__PURE__ */
|
|
459
|
+
children: [K.map((e) => /* @__PURE__ */ T("div", {
|
|
459
460
|
className: "border-b pb-2 last:border-0",
|
|
460
|
-
children: [/* @__PURE__ */
|
|
461
|
+
children: [/* @__PURE__ */ T("div", {
|
|
461
462
|
className: "flex justify-between",
|
|
462
|
-
children: [/* @__PURE__ */
|
|
463
|
+
children: [/* @__PURE__ */ w("span", {
|
|
463
464
|
className: "text-sm font-medium",
|
|
464
465
|
children: e.name
|
|
465
|
-
}), /* @__PURE__ */
|
|
466
|
+
}), /* @__PURE__ */ w(E, {
|
|
466
467
|
variant: "outline",
|
|
467
468
|
className: "text-xs capitalize",
|
|
468
469
|
children: e.status.toLowerCase().replace("_", " ")
|
|
469
470
|
})]
|
|
470
|
-
}), /* @__PURE__ */
|
|
471
|
+
}), /* @__PURE__ */ T("div", {
|
|
471
472
|
className: "flex items-center gap-1 text-xs text-muted-foreground mt-1",
|
|
472
|
-
children: [/* @__PURE__ */
|
|
473
|
+
children: [/* @__PURE__ */ w(g, { className: "h-3 w-3" }), e.dueDate ? new Date(e.dueDate).toLocaleDateString() : "No due date"]
|
|
473
474
|
})]
|
|
474
|
-
}, e.id)), K.length === 0 && /* @__PURE__ */
|
|
475
|
+
}, e.id)), K.length === 0 && /* @__PURE__ */ w("p", {
|
|
475
476
|
className: "text-sm text-muted-foreground text-center py-2",
|
|
476
477
|
children: "No milestones."
|
|
477
478
|
})]
|
|
478
479
|
})] }),
|
|
479
|
-
|
|
480
|
+
/* @__PURE__ */ w(p, {
|
|
481
|
+
workspaceId: R,
|
|
482
|
+
projectId: U.id
|
|
483
|
+
}),
|
|
484
|
+
$.length > 0 && /* @__PURE__ */ T(O, {
|
|
480
485
|
"data-testid": "team-sprint-work",
|
|
481
|
-
children: [/* @__PURE__ */
|
|
486
|
+
children: [/* @__PURE__ */ w(A, { children: /* @__PURE__ */ T(j, {
|
|
482
487
|
className: "flex items-center gap-2",
|
|
483
|
-
children: [/* @__PURE__ */
|
|
484
|
-
}) }), /* @__PURE__ */
|
|
488
|
+
children: [/* @__PURE__ */ w(x, { className: "h-4 w-4" }), "Team sprint work"]
|
|
489
|
+
}) }), /* @__PURE__ */ w(k, {
|
|
485
490
|
className: "space-y-3",
|
|
486
|
-
children: $.map((e) => /* @__PURE__ */
|
|
491
|
+
children: $.map((e) => /* @__PURE__ */ T("div", {
|
|
487
492
|
className: "border-b pb-2 last:border-0",
|
|
488
|
-
children: [/* @__PURE__ */
|
|
493
|
+
children: [/* @__PURE__ */ w("button", {
|
|
489
494
|
type: "button",
|
|
490
495
|
className: "text-sm font-medium hover:underline text-left",
|
|
491
|
-
onClick: () =>
|
|
496
|
+
onClick: () => L(a("/projects/planning-detail-page", e.sprint.id)),
|
|
492
497
|
children: e.sprint.name
|
|
493
|
-
}), /* @__PURE__ */
|
|
498
|
+
}), /* @__PURE__ */ T("button", {
|
|
494
499
|
type: "button",
|
|
495
500
|
className: "block text-xs text-muted-foreground hover:underline",
|
|
496
|
-
onClick: () =>
|
|
501
|
+
onClick: () => L(a("/team/team-detail-page", e.sprint.team.id)),
|
|
497
502
|
children: [
|
|
498
503
|
e.items.length,
|
|
499
504
|
" item",
|
|
@@ -506,36 +511,36 @@ function I() {
|
|
|
506
511
|
}, e.sprint.id))
|
|
507
512
|
})]
|
|
508
513
|
}),
|
|
509
|
-
/* @__PURE__ */
|
|
514
|
+
/* @__PURE__ */ T(O, { children: [/* @__PURE__ */ T(A, {
|
|
510
515
|
className: "flex flex-row items-center justify-between space-y-0",
|
|
511
|
-
children: [/* @__PURE__ */
|
|
516
|
+
children: [/* @__PURE__ */ T(j, {
|
|
512
517
|
className: "flex items-center gap-2",
|
|
513
518
|
children: [
|
|
514
|
-
/* @__PURE__ */
|
|
519
|
+
/* @__PURE__ */ w(le, { className: "h-4 w-4 text-primary" }),
|
|
515
520
|
"Risks (",
|
|
516
521
|
J.length,
|
|
517
522
|
" open)"
|
|
518
523
|
]
|
|
519
|
-
}), /* @__PURE__ */
|
|
524
|
+
}), /* @__PURE__ */ w(d, {
|
|
520
525
|
projectId: U.id,
|
|
521
|
-
onCreated: (e) =>
|
|
526
|
+
onCreated: (e) => L(a("/risks/risk-detail-page", e))
|
|
522
527
|
})]
|
|
523
|
-
}), /* @__PURE__ */
|
|
528
|
+
}), /* @__PURE__ */ T(k, {
|
|
524
529
|
className: "space-y-3",
|
|
525
530
|
children: [
|
|
526
|
-
|
|
527
|
-
...o(() =>
|
|
531
|
+
ge.map((e) => /* @__PURE__ */ T("div", {
|
|
532
|
+
...o(() => L(a("/risks/risk-detail-page", e.id)), e.title),
|
|
528
533
|
className: `border-b pb-2 last:border-0 ${i}`,
|
|
529
|
-
children: [/* @__PURE__ */
|
|
534
|
+
children: [/* @__PURE__ */ T("div", {
|
|
530
535
|
className: "flex justify-between gap-2",
|
|
531
|
-
children: [/* @__PURE__ */
|
|
536
|
+
children: [/* @__PURE__ */ w("span", {
|
|
532
537
|
className: "text-sm font-medium truncate",
|
|
533
538
|
children: e.title
|
|
534
|
-
}), /* @__PURE__ */
|
|
535
|
-
className: `text-xs px-2 py-0.5 rounded-full shrink-0 ${
|
|
539
|
+
}), /* @__PURE__ */ w("span", {
|
|
540
|
+
className: `text-xs px-2 py-0.5 rounded-full shrink-0 ${F[e.severity] ?? "bg-gray-100"}`,
|
|
536
541
|
children: r(e.severity)
|
|
537
542
|
})]
|
|
538
|
-
}), /* @__PURE__ */
|
|
543
|
+
}), /* @__PURE__ */ T("div", {
|
|
539
544
|
className: "text-xs text-muted-foreground mt-1",
|
|
540
545
|
children: [
|
|
541
546
|
"Score ",
|
|
@@ -545,14 +550,14 @@ function I() {
|
|
|
545
550
|
]
|
|
546
551
|
})]
|
|
547
552
|
}, e.id)),
|
|
548
|
-
J.length === 0 && /* @__PURE__ */
|
|
553
|
+
J.length === 0 && /* @__PURE__ */ w("p", {
|
|
549
554
|
className: "text-sm text-muted-foreground text-center py-2",
|
|
550
555
|
children: "No open risks."
|
|
551
556
|
}),
|
|
552
|
-
/* @__PURE__ */
|
|
557
|
+
/* @__PURE__ */ T("button", {
|
|
553
558
|
type: "button",
|
|
554
559
|
className: "text-xs text-primary hover:underline",
|
|
555
|
-
onClick: () =>
|
|
560
|
+
onClick: () => L(`/risks/risk-register-page?projectId=${encodeURIComponent(U.id)}`),
|
|
556
561
|
children: [
|
|
557
562
|
"View risk register (",
|
|
558
563
|
q.length,
|
|
@@ -561,59 +566,59 @@ function I() {
|
|
|
561
566
|
})
|
|
562
567
|
]
|
|
563
568
|
})] }),
|
|
564
|
-
/* @__PURE__ */
|
|
569
|
+
/* @__PURE__ */ T(O, { children: [/* @__PURE__ */ w(A, { children: /* @__PURE__ */ w(j, { children: "Details" }) }), /* @__PURE__ */ T(k, {
|
|
565
570
|
className: "space-y-2 text-sm",
|
|
566
571
|
children: [
|
|
567
|
-
/* @__PURE__ */
|
|
572
|
+
/* @__PURE__ */ T("div", {
|
|
568
573
|
className: "flex justify-between",
|
|
569
|
-
children: [/* @__PURE__ */
|
|
574
|
+
children: [/* @__PURE__ */ w("span", {
|
|
570
575
|
className: "text-muted-foreground",
|
|
571
576
|
children: "Owner"
|
|
572
|
-
}), /* @__PURE__ */
|
|
577
|
+
}), /* @__PURE__ */ w("span", { children: /* @__PURE__ */ w(n, { id: U.ownerId }) })]
|
|
573
578
|
}),
|
|
574
|
-
/* @__PURE__ */
|
|
579
|
+
/* @__PURE__ */ T("div", {
|
|
575
580
|
className: "flex justify-between",
|
|
576
|
-
children: [/* @__PURE__ */
|
|
581
|
+
children: [/* @__PURE__ */ w("span", {
|
|
577
582
|
className: "text-muted-foreground",
|
|
578
583
|
children: "Key"
|
|
579
|
-
}), /* @__PURE__ */
|
|
584
|
+
}), /* @__PURE__ */ w("span", {
|
|
580
585
|
className: "font-mono",
|
|
581
586
|
children: U.key
|
|
582
587
|
})]
|
|
583
588
|
}),
|
|
584
|
-
/* @__PURE__ */
|
|
589
|
+
/* @__PURE__ */ T("div", {
|
|
585
590
|
className: "flex justify-between",
|
|
586
|
-
children: [/* @__PURE__ */
|
|
591
|
+
children: [/* @__PURE__ */ w("span", {
|
|
587
592
|
className: "text-muted-foreground",
|
|
588
593
|
children: "Methodology"
|
|
589
|
-
}), /* @__PURE__ */
|
|
594
|
+
}), /* @__PURE__ */ w("span", {
|
|
590
595
|
className: "capitalize",
|
|
591
596
|
children: U.methodology.toLowerCase()
|
|
592
597
|
})]
|
|
593
598
|
}),
|
|
594
|
-
/* @__PURE__ */
|
|
599
|
+
/* @__PURE__ */ T("div", {
|
|
595
600
|
className: "flex justify-between",
|
|
596
|
-
children: [/* @__PURE__ */
|
|
601
|
+
children: [/* @__PURE__ */ w("span", {
|
|
597
602
|
className: "text-muted-foreground",
|
|
598
603
|
children: "Program"
|
|
599
|
-
}), U.program ? /* @__PURE__ */
|
|
604
|
+
}), U.program ? /* @__PURE__ */ w("button", {
|
|
600
605
|
type: "button",
|
|
601
606
|
className: "text-primary hover:underline underline-offset-2",
|
|
602
|
-
onClick: () =>
|
|
607
|
+
onClick: () => L(a("/products/program-detail-page", U.program.id)),
|
|
603
608
|
children: U.program.name
|
|
604
|
-
}) : /* @__PURE__ */
|
|
609
|
+
}) : /* @__PURE__ */ w("span", {
|
|
605
610
|
className: "text-muted-foreground",
|
|
606
611
|
children: "No program"
|
|
607
612
|
})]
|
|
608
613
|
}),
|
|
609
|
-
U.tags.length > 0 && /* @__PURE__ */
|
|
614
|
+
U.tags.length > 0 && /* @__PURE__ */ T("div", {
|
|
610
615
|
className: "flex justify-between items-start",
|
|
611
|
-
children: [/* @__PURE__ */
|
|
616
|
+
children: [/* @__PURE__ */ w("span", {
|
|
612
617
|
className: "text-muted-foreground",
|
|
613
618
|
children: "Tags"
|
|
614
|
-
}), /* @__PURE__ */
|
|
619
|
+
}), /* @__PURE__ */ w("div", {
|
|
615
620
|
className: "flex gap-1 flex-wrap justify-end",
|
|
616
|
-
children: U.tags.map((e) => /* @__PURE__ */
|
|
621
|
+
children: U.tags.map((e) => /* @__PURE__ */ w(E, {
|
|
617
622
|
variant: "outline",
|
|
618
623
|
className: "text-xs",
|
|
619
624
|
children: e
|
|
@@ -629,6 +634,6 @@ function I() {
|
|
|
629
634
|
});
|
|
630
635
|
}
|
|
631
636
|
//#endregion
|
|
632
|
-
export {
|
|
637
|
+
export { L as ProjectsProjectDetailPagePage };
|
|
633
638
|
|
|
634
639
|
//# sourceMappingURL=ProjectsProjectDetailPagePage.js.map
|