@burdenoff/microfe-workspaces 2026.625.2 → 2026.625.4
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/pages/ActivityListPage.js +32 -48
- package/dist/pages/ActivityListPage.js.map +1 -1
- package/dist/pages/MembersListPage.js +196 -241
- package/dist/pages/MembersListPage.js.map +1 -1
- package/dist/pages/PendingInvitesPage.js +69 -78
- package/dist/pages/PendingInvitesPage.js.map +1 -1
- package/dist/pages/ProjectDetailPage.js +37 -52
- package/dist/pages/ProjectDetailPage.js.map +1 -1
- package/dist/pages/ProjectMembersPage.js +74 -87
- package/dist/pages/ProjectMembersPage.js.map +1 -1
- package/dist/pages/ProjectsListPage.js +103 -118
- package/dist/pages/ProjectsListPage.js.map +1 -1
- package/dist/pages/WorkspaceDetailPage.js +74 -76
- package/dist/pages/WorkspaceDetailPage.js.map +1 -1
- package/dist/pages/WorkspacesListPage.js +167 -178
- package/dist/pages/WorkspacesListPage.js.map +1 -1
- package/dist/pages/dashboard/widgets/AgentsWidget.js +21 -22
- package/dist/pages/dashboard/widgets/AgentsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/ProjectsWidget.js +26 -27
- package/dist/pages/dashboard/widgets/ProjectsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/RecentActivityWidget.js +19 -23
- package/dist/pages/dashboard/widgets/RecentActivityWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/SessionsWidget.js +30 -32
- package/dist/pages/dashboard/widgets/SessionsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/UpcomingEventsWidget.js +18 -20
- package/dist/pages/dashboard/widgets/UpcomingEventsWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/VibesWidget.js +18 -19
- package/dist/pages/dashboard/widgets/VibesWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/WelcomeWidget.js +14 -12
- package/dist/pages/dashboard/widgets/WelcomeWidget.js.map +1 -1
- package/dist/pages/dashboard/widgets/WorkspacesWidget.js +20 -21
- package/dist/pages/dashboard/widgets/WorkspacesWidget.js.map +1 -1
- package/package.json +2 -2
|
@@ -6,12 +6,12 @@ import { useWorkspacePermissions as a } from "../hooks/useWorkspacePermissions.j
|
|
|
6
6
|
import { useMyProjects as o } from "../hooks/useProjects.js";
|
|
7
7
|
import { useArchiveProject as s, useDeleteProject as c, useUnarchiveProject as l } from "../hooks/useProjectMutations.js";
|
|
8
8
|
import { getProjectDisplayTags as ee } from "../utils/projectTags.js";
|
|
9
|
-
import { ProjectCard as
|
|
10
|
-
import { CreateProjectDialog as
|
|
11
|
-
import { useEffect as
|
|
12
|
-
import {
|
|
13
|
-
import { Fragment as
|
|
14
|
-
import { Button as
|
|
9
|
+
import { ProjectCard as u } from "../components/ProjectCard.js";
|
|
10
|
+
import { CreateProjectDialog as d } from "../components/CreateProjectDialog.js";
|
|
11
|
+
import { useEffect as f, useMemo as p, useState as m } from "react";
|
|
12
|
+
import { Grid3x3 as te, List as ne, Plus as h, Search as re } from "lucide-react";
|
|
13
|
+
import { Fragment as ie, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
14
|
+
import { Button as v, Card as ae, CardContent as y, GlassCard as oe, IllustratedEmptyState as se, Input as ce, PageContainer as le, Select as b, SelectContent as x, SelectItem as S, SelectTrigger as C, SelectValue as w, Skeleton as T } from "@burdenoff/fe-libs/ui";
|
|
15
15
|
import { useParams as ue } from "react-router-dom";
|
|
16
16
|
import { useDebounce as de } from "@burdenoff/fe-libs/shared/hooks";
|
|
17
17
|
import { useI18n as fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
@@ -23,10 +23,10 @@ function E() {
|
|
|
23
23
|
workspaceId: D,
|
|
24
24
|
requireParams: !0
|
|
25
25
|
});
|
|
26
|
-
let { viewMode: O, setViewMode: k, projectFilters: A, setProjectFilters: j, clearProjectFilters: me, selectedProjectIds: M, toggleProjectSelection: N, clearProjectSelection: P, openCreateProjectDialog: he, isCreateProjectDialogOpen: ge } = e(), [F, I] =
|
|
27
|
-
|
|
26
|
+
let { viewMode: O, setViewMode: k, projectFilters: A, setProjectFilters: j, clearProjectFilters: me, selectedProjectIds: M, toggleProjectSelection: N, clearProjectSelection: P, openCreateProjectDialog: he, isCreateProjectDialogOpen: ge } = e(), [F, I] = m(A.search || ""), [L, R] = m([]), [z, B] = m(!0), V = de(F, 500);
|
|
27
|
+
f(() => {
|
|
28
28
|
j({ search: V });
|
|
29
|
-
}, [V, j]),
|
|
29
|
+
}, [V, j]), f(() => {
|
|
30
30
|
if (L.length === 0) {
|
|
31
31
|
j({
|
|
32
32
|
tagIds: void 0,
|
|
@@ -46,20 +46,20 @@ function E() {
|
|
|
46
46
|
L,
|
|
47
47
|
z,
|
|
48
48
|
j
|
|
49
|
-
]),
|
|
49
|
+
]), f(() => () => P(), [P]);
|
|
50
50
|
let { data: H, isLoading: U, error: W } = o({
|
|
51
51
|
limit: 500,
|
|
52
52
|
offset: 0
|
|
53
|
-
}), G =
|
|
53
|
+
}), G = p(() => {
|
|
54
54
|
let e = H?.items ?? [], t = (A.search ?? "").trim().toLowerCase(), n = A.tagIds ?? [], r = A.matchAllTags ?? !0, i = (e) => !D || e.workspaceId === D, a = (e) => !t || e.name.toLowerCase().includes(t) || e.key.toLowerCase().includes(t), o = (e) => !A.status || e.status === A.status, s = (e) => A.archived === void 0 || e.archived === A.archived, c = (e) => {
|
|
55
55
|
if (n.length === 0) return !0;
|
|
56
56
|
let t = new Set(ee(e).map((e) => e.tagId));
|
|
57
57
|
return r ? n.every((e) => t.has(e)) : n.some((e) => t.has(e));
|
|
58
|
-
}, l = e.filter((e) => i(e) && a(e) && o(e) && s(e) && c(e)),
|
|
58
|
+
}, l = e.filter((e) => i(e) && a(e) && o(e) && s(e) && c(e)), u = H?.total ?? l.length, d = H?.hasMore ?? !1;
|
|
59
59
|
return {
|
|
60
60
|
items: l,
|
|
61
|
-
total: D || n.length > 0 ? l.length :
|
|
62
|
-
hasMore:
|
|
61
|
+
total: D || n.length > 0 ? l.length : u,
|
|
62
|
+
hasMore: d
|
|
63
63
|
};
|
|
64
64
|
}, [
|
|
65
65
|
H?.items,
|
|
@@ -67,15 +67,15 @@ function E() {
|
|
|
67
67
|
H?.hasMore,
|
|
68
68
|
A,
|
|
69
69
|
D
|
|
70
|
-
]), { mutateAsync: _e } = s(D), { mutateAsync: ve } = l(D), { mutateAsync: ye } = c(D), K =
|
|
71
|
-
if (xe) return /* @__PURE__ */
|
|
70
|
+
]), { mutateAsync: _e } = s(D), { mutateAsync: ve } = l(D), { mutateAsync: ye } = c(D), K = p(() => G?.items.filter((e) => M.has(e.id)) ?? [], [G?.items, M]), q = p(() => K.filter((e) => !e.archived), [K]), J = p(() => K.filter((e) => e.archived), [K]), Y = (G?.items.length ?? 0) > 0 && (G?.items ?? []).every((e) => M.has(e.id)), be = (G?.items ?? []).some((e) => M.has(e.id)) && !Y, { canCreateProject: X, canDeleteProject: Z, canArchiveProject: Q, isLoading: xe } = a();
|
|
71
|
+
if (xe) return /* @__PURE__ */ _("div", {
|
|
72
72
|
className: "space-y-4 p-6",
|
|
73
|
-
children: [/* @__PURE__ */
|
|
73
|
+
children: [/* @__PURE__ */ g(T, { className: "h-10 w-1/3" }), /* @__PURE__ */ _("div", {
|
|
74
74
|
className: "grid grid-cols-1 md:grid-cols-3 gap-4",
|
|
75
75
|
children: [
|
|
76
|
-
/* @__PURE__ */
|
|
77
|
-
/* @__PURE__ */
|
|
78
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ g(T, { className: "h-32" }),
|
|
77
|
+
/* @__PURE__ */ g(T, { className: "h-32" }),
|
|
78
|
+
/* @__PURE__ */ g(T, { className: "h-32" })
|
|
79
79
|
]
|
|
80
80
|
})]
|
|
81
81
|
});
|
|
@@ -100,138 +100,138 @@ function E() {
|
|
|
100
100
|
e !== M.has(t.id) && N(t.id);
|
|
101
101
|
});
|
|
102
102
|
};
|
|
103
|
-
return /* @__PURE__ */
|
|
103
|
+
return /* @__PURE__ */ g(le, {
|
|
104
104
|
padded: !1,
|
|
105
|
-
children: /* @__PURE__ */
|
|
105
|
+
children: /* @__PURE__ */ _("div", {
|
|
106
106
|
className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
|
|
107
107
|
children: [
|
|
108
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ _("div", {
|
|
109
109
|
className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4",
|
|
110
|
-
children: [/* @__PURE__ */
|
|
110
|
+
children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h1", {
|
|
111
111
|
className: "text-2xl sm:text-3xl font-bold",
|
|
112
112
|
children: t(E, "projectsList.pageTitle", "Projects")
|
|
113
|
-
}), /* @__PURE__ */
|
|
113
|
+
}), /* @__PURE__ */ g("p", {
|
|
114
114
|
className: "text-text-secondary",
|
|
115
115
|
children: t(E, "projectsList.pageSubtitle", "Manage and organize your projects")
|
|
116
|
-
})] }), /* @__PURE__ */
|
|
116
|
+
})] }), /* @__PURE__ */ _("div", {
|
|
117
117
|
className: "flex items-center gap-2",
|
|
118
|
-
children: [/* @__PURE__ */
|
|
118
|
+
children: [/* @__PURE__ */ _("div", {
|
|
119
119
|
className: "flex items-center gap-1 border rounded-lg p-1",
|
|
120
|
-
children: [/* @__PURE__ */
|
|
120
|
+
children: [/* @__PURE__ */ g(v, {
|
|
121
121
|
variant: O === "grid" ? "secondary" : "ghost",
|
|
122
122
|
size: "sm",
|
|
123
123
|
onClick: () => k("grid"),
|
|
124
124
|
className: "size-8 p-0",
|
|
125
125
|
"aria-label": t(E, "projectsList.gridViewAriaLabel", "Show projects in grid view"),
|
|
126
|
-
children: /* @__PURE__ */
|
|
127
|
-
}), /* @__PURE__ */
|
|
126
|
+
children: /* @__PURE__ */ g(te, { size: 16 })
|
|
127
|
+
}), /* @__PURE__ */ g(v, {
|
|
128
128
|
variant: O === "list" ? "secondary" : "ghost",
|
|
129
129
|
size: "sm",
|
|
130
130
|
onClick: () => k("list"),
|
|
131
131
|
className: "size-8 p-0",
|
|
132
132
|
"aria-label": t(E, "projectsList.listViewAriaLabel", "Show projects in list view"),
|
|
133
|
-
children: /* @__PURE__ */
|
|
133
|
+
children: /* @__PURE__ */ g(ne, { size: 16 })
|
|
134
134
|
})]
|
|
135
|
-
}), X && /* @__PURE__ */
|
|
135
|
+
}), X && /* @__PURE__ */ _(v, {
|
|
136
136
|
onClick: Se,
|
|
137
|
-
children: [/* @__PURE__ */ h
|
|
137
|
+
children: [/* @__PURE__ */ g(h, { className: "size-4 sm:mr-2" }), /* @__PURE__ */ g("span", {
|
|
138
138
|
className: "hidden sm:inline",
|
|
139
139
|
children: t(E, "projectsList.createProject", "Create Project")
|
|
140
140
|
})]
|
|
141
141
|
})]
|
|
142
142
|
})]
|
|
143
143
|
}),
|
|
144
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ _("div", {
|
|
145
145
|
className: "flex flex-col sm:flex-row gap-3",
|
|
146
146
|
children: [
|
|
147
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ _("div", {
|
|
148
148
|
className: "relative flex-1",
|
|
149
|
-
children: [/* @__PURE__ */
|
|
149
|
+
children: [/* @__PURE__ */ g(re, {
|
|
150
150
|
className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-text-secondary",
|
|
151
151
|
size: 18
|
|
152
|
-
}), /* @__PURE__ */
|
|
152
|
+
}), /* @__PURE__ */ g(ce, {
|
|
153
153
|
placeholder: t(E, "projectsList.searchPlaceholder", "Search projects..."),
|
|
154
154
|
value: F,
|
|
155
155
|
onChange: (e) => I(e.target.value),
|
|
156
156
|
className: "pl-[3.25rem]"
|
|
157
157
|
})]
|
|
158
158
|
}),
|
|
159
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ _(b, {
|
|
160
160
|
value: A.status || "all",
|
|
161
161
|
onValueChange: Ce,
|
|
162
|
-
children: [/* @__PURE__ */
|
|
162
|
+
children: [/* @__PURE__ */ g(C, {
|
|
163
163
|
className: "w-full sm:w-[180px]",
|
|
164
|
-
children: /* @__PURE__ */
|
|
165
|
-
}), /* @__PURE__ */
|
|
166
|
-
/* @__PURE__ */
|
|
164
|
+
children: /* @__PURE__ */ g(w, { placeholder: t(E, "projectsList.filterByStatus", "Filter by status") })
|
|
165
|
+
}), /* @__PURE__ */ _(x, { children: [
|
|
166
|
+
/* @__PURE__ */ g(S, {
|
|
167
167
|
value: "all",
|
|
168
168
|
children: t(E, "projectsList.statusAll", "All Statuses")
|
|
169
169
|
}),
|
|
170
|
-
/* @__PURE__ */
|
|
170
|
+
/* @__PURE__ */ g(S, {
|
|
171
171
|
value: "ACTIVE",
|
|
172
172
|
children: t(E, "projectsList.statusActive", "Active")
|
|
173
173
|
}),
|
|
174
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ g(S, {
|
|
175
175
|
value: "INACTIVE",
|
|
176
176
|
children: t(E, "projectsList.statusInactive", "Inactive")
|
|
177
177
|
})
|
|
178
178
|
] })]
|
|
179
179
|
}),
|
|
180
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ _(b, {
|
|
181
181
|
value: A.archived === void 0 ? "all" : A.archived ? "true" : "false",
|
|
182
182
|
onValueChange: we,
|
|
183
|
-
children: [/* @__PURE__ */
|
|
183
|
+
children: [/* @__PURE__ */ g(C, {
|
|
184
184
|
className: "w-full sm:w-[180px]",
|
|
185
|
-
children: /* @__PURE__ */
|
|
186
|
-
}), /* @__PURE__ */
|
|
187
|
-
/* @__PURE__ */
|
|
185
|
+
children: /* @__PURE__ */ g(w, { placeholder: t(E, "projectsList.filterByArchive", "Filter by archive") })
|
|
186
|
+
}), /* @__PURE__ */ _(x, { children: [
|
|
187
|
+
/* @__PURE__ */ g(S, {
|
|
188
188
|
value: "all",
|
|
189
189
|
children: t(E, "projectsList.archiveAll", "All Projects")
|
|
190
190
|
}),
|
|
191
|
-
/* @__PURE__ */
|
|
191
|
+
/* @__PURE__ */ g(S, {
|
|
192
192
|
value: "false",
|
|
193
193
|
children: t(E, "projectsList.archiveActiveProjects", "Active Projects")
|
|
194
194
|
}),
|
|
195
|
-
/* @__PURE__ */
|
|
195
|
+
/* @__PURE__ */ g(S, {
|
|
196
196
|
value: "true",
|
|
197
197
|
children: t(E, "projectsList.archiveArchived", "Archived")
|
|
198
198
|
})
|
|
199
199
|
] })]
|
|
200
200
|
}),
|
|
201
|
-
(A.search || A.status || A.archived !== void 0 || L.length > 0) && /* @__PURE__ */
|
|
201
|
+
(A.search || A.status || A.archived !== void 0 || L.length > 0) && /* @__PURE__ */ g(v, {
|
|
202
202
|
variant: "outline",
|
|
203
203
|
onClick: Te,
|
|
204
204
|
children: t(E, "projectsList.clearFilters", "Clear Filters")
|
|
205
205
|
})
|
|
206
206
|
]
|
|
207
207
|
}),
|
|
208
|
-
L.length > 0 && /* @__PURE__ */
|
|
208
|
+
L.length > 0 && /* @__PURE__ */ _("div", {
|
|
209
209
|
className: "flex flex-col gap-3 rounded-lg border border-border-seam bg-bg-surface px-4 py-3",
|
|
210
|
-
children: [/* @__PURE__ */
|
|
210
|
+
children: [/* @__PURE__ */ _("div", {
|
|
211
211
|
className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
|
|
212
|
-
children: [/* @__PURE__ */
|
|
212
|
+
children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
|
|
213
213
|
className: "text-sm font-medium",
|
|
214
214
|
children: t(E, "projectsList.activeTagFilters", "Active tag filters")
|
|
215
|
-
}), /* @__PURE__ */
|
|
215
|
+
}), /* @__PURE__ */ g("p", {
|
|
216
216
|
className: "text-xs text-text-secondary",
|
|
217
217
|
children: t(E, "projectsList.activeTagFiltersDescription", "Click a project tag to add or remove it from the current filter set.")
|
|
218
|
-
})] }), /* @__PURE__ */
|
|
218
|
+
})] }), /* @__PURE__ */ _(b, {
|
|
219
219
|
value: z ? "all" : "any",
|
|
220
220
|
onValueChange: (e) => B(e === "all"),
|
|
221
|
-
children: [/* @__PURE__ */
|
|
221
|
+
children: [/* @__PURE__ */ g(C, {
|
|
222
222
|
className: "w-full sm:w-[180px]",
|
|
223
|
-
children: /* @__PURE__ */
|
|
224
|
-
}), /* @__PURE__ */
|
|
223
|
+
children: /* @__PURE__ */ g(w, { placeholder: t(E, "projectsList.tagMatchMode", "Tag match mode") })
|
|
224
|
+
}), /* @__PURE__ */ _(x, { children: [/* @__PURE__ */ g(S, {
|
|
225
225
|
value: "all",
|
|
226
226
|
children: t(E, "projectsList.tagMatchAll", "Match all tags")
|
|
227
|
-
}), /* @__PURE__ */
|
|
227
|
+
}), /* @__PURE__ */ g(S, {
|
|
228
228
|
value: "any",
|
|
229
229
|
children: t(E, "projectsList.tagMatchAny", "Match any tag")
|
|
230
230
|
})] })]
|
|
231
231
|
})]
|
|
232
|
-
}), /* @__PURE__ */
|
|
232
|
+
}), /* @__PURE__ */ g("div", {
|
|
233
233
|
className: "flex flex-wrap gap-2",
|
|
234
|
-
children: L.map((e) => /* @__PURE__ */
|
|
234
|
+
children: L.map((e) => /* @__PURE__ */ g(pe, {
|
|
235
235
|
id: e.tagId,
|
|
236
236
|
label: e.label,
|
|
237
237
|
color: e.color ?? void 0,
|
|
@@ -243,80 +243,65 @@ function E() {
|
|
|
243
243
|
}, e.tagId))
|
|
244
244
|
})]
|
|
245
245
|
}),
|
|
246
|
-
W && /* @__PURE__ */
|
|
246
|
+
W && /* @__PURE__ */ g(oe, {
|
|
247
247
|
treatment: "plain",
|
|
248
248
|
className: "border-status-error-border",
|
|
249
|
-
children: /* @__PURE__ */
|
|
249
|
+
children: /* @__PURE__ */ g(y, {
|
|
250
250
|
className: "pt-6",
|
|
251
|
-
children: /* @__PURE__ */
|
|
251
|
+
children: /* @__PURE__ */ _("div", {
|
|
252
252
|
className: "flex flex-col items-center justify-center py-8 text-center",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
253
|
+
children: [/* @__PURE__ */ g("p", {
|
|
254
254
|
className: "text-status-error-text font-semibold mb-2",
|
|
255
255
|
children: t(E, "projectsList.errorLoading", "Error loading projects")
|
|
256
|
-
}), /* @__PURE__ */
|
|
256
|
+
}), /* @__PURE__ */ g("p", {
|
|
257
257
|
className: "text-sm text-text-secondary",
|
|
258
258
|
children: W instanceof Error ? W.message : t(E, "projectsList.unknownError", "An unknown error occurred")
|
|
259
259
|
})]
|
|
260
260
|
})
|
|
261
261
|
})
|
|
262
262
|
}),
|
|
263
|
-
U && /* @__PURE__ */
|
|
263
|
+
U && /* @__PURE__ */ g("div", {
|
|
264
264
|
className: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",
|
|
265
|
-
children: Array.from({ length: 6 }).map((e, t) => /* @__PURE__ */
|
|
265
|
+
children: Array.from({ length: 6 }).map((e, t) => /* @__PURE__ */ g(ae, {
|
|
266
266
|
className: "border-border-seam",
|
|
267
|
-
children: /* @__PURE__ */
|
|
267
|
+
children: /* @__PURE__ */ g(y, {
|
|
268
268
|
className: "pt-6",
|
|
269
|
-
children: /* @__PURE__ */
|
|
269
|
+
children: /* @__PURE__ */ _("div", {
|
|
270
270
|
className: "space-y-3",
|
|
271
271
|
children: [
|
|
272
|
-
/* @__PURE__ */
|
|
273
|
-
/* @__PURE__ */
|
|
274
|
-
/* @__PURE__ */
|
|
272
|
+
/* @__PURE__ */ g(T, { className: "size-12 rounded-lg" }),
|
|
273
|
+
/* @__PURE__ */ g(T, { className: "h-4 w-3/4" }),
|
|
274
|
+
/* @__PURE__ */ g(T, { className: "h-4 w-1/2" })
|
|
275
275
|
]
|
|
276
276
|
})
|
|
277
277
|
})
|
|
278
278
|
}, t))
|
|
279
279
|
}),
|
|
280
|
-
!U && !W && G?.items.length === 0 && /* @__PURE__ */
|
|
280
|
+
!U && !W && G?.items.length === 0 && /* @__PURE__ */ g(oe, {
|
|
281
281
|
treatment: "plain",
|
|
282
282
|
className: "border-border-seam",
|
|
283
|
-
children: /* @__PURE__ */
|
|
283
|
+
children: /* @__PURE__ */ g(y, {
|
|
284
284
|
className: "pt-6",
|
|
285
|
-
children: /* @__PURE__ */ g(
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
}),
|
|
295
|
-
|
|
296
|
-
className: "text-lg font-semibold mb-2",
|
|
297
|
-
children: t(E, "projectsList.noProjectsFound", "No projects found")
|
|
298
|
-
}),
|
|
299
|
-
/* @__PURE__ */ h("p", {
|
|
300
|
-
className: "text-text-secondary max-w-sm mb-4",
|
|
301
|
-
children: A.search ? t(E, "projectsList.adjustSearchOrFilters", "Try adjusting your search or filters") : t(E, "projectsList.createFirstProject", "Create your first project to get started organizing your work")
|
|
302
|
-
}),
|
|
303
|
-
!A.search && X && /* @__PURE__ */ g(_, {
|
|
304
|
-
onClick: Se,
|
|
305
|
-
children: [/* @__PURE__ */ h(m, {
|
|
306
|
-
size: 16,
|
|
307
|
-
className: "mr-2"
|
|
308
|
-
}), t(E, "projectsList.createProject", "Create Project")]
|
|
309
|
-
})
|
|
310
|
-
]
|
|
285
|
+
children: /* @__PURE__ */ g(se, {
|
|
286
|
+
illustration: A.search ? "empty-search" : "empty-data",
|
|
287
|
+
title: t(E, "projectsList.noProjectsFound", "No projects found"),
|
|
288
|
+
description: A.search ? t(E, "projectsList.adjustSearchOrFilters", "Try adjusting your search or filters") : t(E, "projectsList.createFirstProject", "Create your first project to get started organizing your work"),
|
|
289
|
+
action: !A.search && X ? /* @__PURE__ */ _(v, {
|
|
290
|
+
onClick: Se,
|
|
291
|
+
children: [/* @__PURE__ */ g(h, {
|
|
292
|
+
size: 16,
|
|
293
|
+
className: "mr-2"
|
|
294
|
+
}), t(E, "projectsList.createProject", "Create Project")]
|
|
295
|
+
}) : void 0
|
|
311
296
|
})
|
|
312
297
|
})
|
|
313
298
|
}),
|
|
314
|
-
!U && !W && G && G.items.length > 0 && /* @__PURE__ */
|
|
315
|
-
/* @__PURE__ */
|
|
299
|
+
!U && !W && G && G.items.length > 0 && /* @__PURE__ */ _(ie, { children: [
|
|
300
|
+
/* @__PURE__ */ _("div", {
|
|
316
301
|
className: "flex flex-col gap-3 rounded-lg border border-border-seam bg-bg-surface p-4 sm:flex-row sm:items-center sm:justify-between",
|
|
317
|
-
children: [/* @__PURE__ */
|
|
302
|
+
children: [/* @__PURE__ */ _("label", {
|
|
318
303
|
className: "flex items-center gap-2 text-sm text-text-primary",
|
|
319
|
-
children: [/* @__PURE__ */
|
|
304
|
+
children: [/* @__PURE__ */ g("input", {
|
|
320
305
|
type: "checkbox",
|
|
321
306
|
checked: Y,
|
|
322
307
|
ref: (e) => {
|
|
@@ -325,11 +310,11 @@ function E() {
|
|
|
325
310
|
onChange: (e) => Ee(e.target.checked),
|
|
326
311
|
"aria-label": t(E, "projectsList.selectAllAriaLabel", "Select all projects"),
|
|
327
312
|
className: "size-4 rounded border-border-subtle text-primary"
|
|
328
|
-
}), /* @__PURE__ */
|
|
329
|
-
}), /* @__PURE__ */
|
|
313
|
+
}), /* @__PURE__ */ g("span", { children: t(E, "projectsList.selectAllVisible", "Select all visible") })]
|
|
314
|
+
}), /* @__PURE__ */ _("div", {
|
|
330
315
|
className: "flex flex-wrap items-center gap-2",
|
|
331
316
|
children: [
|
|
332
|
-
/* @__PURE__ */
|
|
317
|
+
/* @__PURE__ */ _("span", {
|
|
333
318
|
className: "text-sm text-text-secondary",
|
|
334
319
|
children: [
|
|
335
320
|
M.size,
|
|
@@ -337,13 +322,13 @@ function E() {
|
|
|
337
322
|
t(E, "projectsList.selected", "selected")
|
|
338
323
|
]
|
|
339
324
|
}),
|
|
340
|
-
M.size > 0 && /* @__PURE__ */
|
|
325
|
+
M.size > 0 && /* @__PURE__ */ g(v, {
|
|
341
326
|
variant: "ghost",
|
|
342
327
|
size: "sm",
|
|
343
328
|
onClick: P,
|
|
344
329
|
children: t(E, "projectsList.clearSelection", "Clear selection")
|
|
345
330
|
}),
|
|
346
|
-
D && Q && /* @__PURE__ */
|
|
331
|
+
D && Q && /* @__PURE__ */ _(v, {
|
|
347
332
|
variant: "outline",
|
|
348
333
|
size: "sm",
|
|
349
334
|
onClick: async () => {
|
|
@@ -352,7 +337,7 @@ function E() {
|
|
|
352
337
|
disabled: q.length === 0,
|
|
353
338
|
children: [t(E, "projectsList.archiveSelected", "Archive Selected"), q.length > 0 ? ` (${q.length})` : ""]
|
|
354
339
|
}),
|
|
355
|
-
D && Q && /* @__PURE__ */
|
|
340
|
+
D && Q && /* @__PURE__ */ _(v, {
|
|
356
341
|
variant: "outline",
|
|
357
342
|
size: "sm",
|
|
358
343
|
onClick: async () => {
|
|
@@ -361,7 +346,7 @@ function E() {
|
|
|
361
346
|
disabled: J.length === 0,
|
|
362
347
|
children: [t(E, "projectsList.unarchiveSelected", "Unarchive Selected"), J.length > 0 ? ` (${J.length})` : ""]
|
|
363
348
|
}),
|
|
364
|
-
D && Z && /* @__PURE__ */
|
|
349
|
+
D && Z && /* @__PURE__ */ _(v, {
|
|
365
350
|
variant: "outline",
|
|
366
351
|
size: "sm",
|
|
367
352
|
onClick: async () => {
|
|
@@ -382,9 +367,9 @@ function E() {
|
|
|
382
367
|
]
|
|
383
368
|
})]
|
|
384
369
|
}),
|
|
385
|
-
/* @__PURE__ */
|
|
370
|
+
/* @__PURE__ */ g("div", {
|
|
386
371
|
className: O === "list" ? "space-y-3" : "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",
|
|
387
|
-
children: G.items.map((e) => /* @__PURE__ */
|
|
372
|
+
children: G.items.map((e) => /* @__PURE__ */ g(u, {
|
|
388
373
|
project: e,
|
|
389
374
|
selected: M.has(e.id),
|
|
390
375
|
canArchive: Q,
|
|
@@ -395,7 +380,7 @@ function E() {
|
|
|
395
380
|
}
|
|
396
381
|
}, e.id))
|
|
397
382
|
}),
|
|
398
|
-
G.total > G.items.length && /* @__PURE__ */
|
|
383
|
+
G.total > G.items.length && /* @__PURE__ */ _("div", {
|
|
399
384
|
className: "text-center text-sm text-text-secondary",
|
|
400
385
|
children: [
|
|
401
386
|
t(E, "projectsList.showingPrefix", "Showing"),
|
|
@@ -410,7 +395,7 @@ function E() {
|
|
|
410
395
|
]
|
|
411
396
|
})
|
|
412
397
|
] }),
|
|
413
|
-
ge && /* @__PURE__ */
|
|
398
|
+
ge && /* @__PURE__ */ g(d, { workspaceId: D })
|
|
414
399
|
]
|
|
415
400
|
})
|
|
416
401
|
});
|