@burdenoff/microfe-planmagnet 2026.924.2 → 2026.924.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.
Files changed (68) hide show
  1. package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
  2. package/dist/planmagnet/PlanMagnetRoot.js +93 -142
  3. package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
  4. package/dist/planmagnet/admin/PlanMagnetAdminRoot.d.ts.map +1 -1
  5. package/dist/planmagnet/admin/PlanMagnetAdminRoot.js +150 -149
  6. package/dist/planmagnet/admin/PlanMagnetAdminRoot.js.map +1 -1
  7. package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +1 -1
  8. package/dist/planmagnet/pages/DashboardDashboardPagePage.js +113 -116
  9. package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +1 -1
  10. package/dist/planmagnet/pages/GoalsGoalsPagePage.d.ts.map +1 -1
  11. package/dist/planmagnet/pages/GoalsGoalsPagePage.js +59 -58
  12. package/dist/planmagnet/pages/GoalsGoalsPagePage.js.map +1 -1
  13. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.d.ts.map +1 -1
  14. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js +150 -149
  15. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js.map +1 -1
  16. package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts.map +1 -1
  17. package/dist/planmagnet/pages/ProductsEditProductPagePage.js +108 -107
  18. package/dist/planmagnet/pages/ProductsEditProductPagePage.js.map +1 -1
  19. package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -1
  20. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +93 -92
  21. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -1
  22. package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts.map +1 -1
  23. package/dist/planmagnet/pages/ProductsProductsPagePage.js +89 -87
  24. package/dist/planmagnet/pages/ProductsProductsPagePage.js.map +1 -1
  25. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +1 -1
  26. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +94 -93
  27. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +1 -1
  28. package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts.map +1 -1
  29. package/dist/planmagnet/pages/ProductsReleasesPagePage.js +57 -56
  30. package/dist/planmagnet/pages/ProductsReleasesPagePage.js.map +1 -1
  31. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +1 -1
  32. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +82 -81
  33. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +1 -1
  34. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts.map +1 -1
  35. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js +72 -71
  36. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js.map +1 -1
  37. package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.d.ts.map +1 -1
  38. package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js +38 -37
  39. package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js.map +1 -1
  40. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts.map +1 -1
  41. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +72 -71
  42. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js.map +1 -1
  43. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts.map +1 -1
  44. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js +47 -46
  45. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js.map +1 -1
  46. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
  47. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +120 -119
  48. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
  49. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
  50. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +131 -130
  51. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
  52. package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts.map +1 -1
  53. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +77 -75
  54. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +1 -1
  55. package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -1
  56. package/dist/planmagnet/pages/ReportsReportsPagePage.js +71 -70
  57. package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -1
  58. package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +1 -1
  59. package/dist/planmagnet/pages/TeamTeamPagePage.js +58 -57
  60. package/dist/planmagnet/pages/TeamTeamPagePage.js.map +1 -1
  61. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.d.ts.map +1 -1
  62. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js +81 -72
  63. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js.map +1 -1
  64. package/dist/planmagnet/people/People.d.ts +20 -0
  65. package/dist/planmagnet/people/People.d.ts.map +1 -0
  66. package/dist/planmagnet/people/People.js +42 -0
  67. package/dist/planmagnet/people/People.js.map +1 -0
  68. package/package.json +1 -1
@@ -1,14 +1,15 @@
1
1
  import { PlanMagnetProvider as e, usePlanMagnet as t } from "../providers/PlanMagnetProvider.js";
2
- import { useTr as n } from "../../shared/hooks/useTr.js";
3
- import { cn as r } from "../utils/cn.js";
4
- import { useMemo as i, useState as a } from "react";
5
- import { AlertCircle as o, Archive as s, FolderKanban as c, LayoutTemplate as l, Loader2 as u, Zap as d } from "lucide-react";
6
- import { gql as f } from "@apollo/client";
7
- import { useMutation as p, useQuery as m } from "@apollo/client/react";
8
- import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
9
- import { Badge as v, Button as y, Card as b, CardContent as x, CardHeader as S, CardTitle as C, Checkbox as w, Skeleton as T } from "@burdenoff/fe-libs/ui";
2
+ import { PersonName as n } from "../people/People.js";
3
+ import { useTr as r } from "../../shared/hooks/useTr.js";
4
+ import { cn as i } from "../utils/cn.js";
5
+ import { useMemo as a, useState as o } from "react";
6
+ import { AlertCircle as s, Archive as c, FolderKanban as l, LayoutTemplate as u, Loader2 as d, Zap as f } from "lucide-react";
7
+ import { gql as p } from "@apollo/client";
8
+ import { useMutation as m, useQuery as h } from "@apollo/client/react";
9
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
10
+ import { Badge as y, Button as b, Card as x, CardContent as S, CardHeader as C, CardTitle as w, Checkbox as T, Skeleton as E } from "@burdenoff/fe-libs/ui";
10
11
  //#region src/planmagnet/admin/PlanMagnetAdminRoot.tsx
11
- var E = f`
12
+ var D = p`
12
13
  query AdminPlanmagnetProjects($workspaceId: ID!) {
13
14
  planmagnetProjects(workspaceId: $workspaceId, pagination: { first: 100 }) {
14
15
  items {
@@ -23,7 +24,7 @@ var E = f`
23
24
  totalCount
24
25
  }
25
26
  }
26
- `, D = f`
27
+ `, O = p`
27
28
  query AdminPlanmagnetBoards($workspaceId: ID!) {
28
29
  planmagnetBoards(workspaceId: $workspaceId, pagination: { first: 100 }) {
29
30
  items {
@@ -35,7 +36,7 @@ var E = f`
35
36
  totalCount
36
37
  }
37
38
  }
38
- `, O = f`
39
+ `, k = p`
39
40
  query AdminPlanmagnetAutomationRules($workspaceId: ID!) {
40
41
  planmagnetAutomationRules(workspaceId: $workspaceId, pagination: { first: 100 }) {
41
42
  items {
@@ -50,7 +51,7 @@ var E = f`
50
51
  totalCount
51
52
  }
52
53
  }
53
- `, k = f`
54
+ `, A = p`
54
55
  mutation AdminArchiveProjectr($id: ID!) {
55
56
  planmagnetUpdateProjectr(id: $id, input: { status: ARCHIVED }) {
56
57
  id
@@ -58,7 +59,7 @@ var E = f`
58
59
  }
59
60
  }
60
61
  `;
61
- function A(e) {
62
+ function j(e) {
62
63
  switch (e) {
63
64
  case "ACTIVE": return "success";
64
65
  case "ARCHIVED": return "secondary";
@@ -69,7 +70,7 @@ function A(e) {
69
70
  default: return "default";
70
71
  }
71
72
  }
72
- function j(e) {
73
+ function M(e) {
73
74
  switch (e) {
74
75
  case "ACTIVE": return "success";
75
76
  case "PAUSED": return "warning";
@@ -78,7 +79,7 @@ function j(e) {
78
79
  default: return "default";
79
80
  }
80
81
  }
81
- function M(e) {
82
+ function N(e) {
82
83
  if (!e) return "—";
83
84
  try {
84
85
  return new Date(e).toLocaleDateString();
@@ -86,44 +87,44 @@ function M(e) {
86
87
  return e;
87
88
  }
88
89
  }
89
- function N(e) {
90
+ function P(e) {
90
91
  return e.toLowerCase().replace(/_/g, " ");
91
92
  }
92
- function P(e) {
93
+ function F(e) {
93
94
  return e.toLowerCase().replace(/_/g, " ");
94
95
  }
95
- function F({ icon: e, label: t, used: n, limit: i, className: a }) {
96
- let o = Math.min(100, Math.round(n / Math.max(1, i) * 100));
97
- return /* @__PURE__ */ g(b, {
96
+ function I({ icon: e, label: t, used: n, limit: r, className: a }) {
97
+ let o = Math.min(100, Math.round(n / Math.max(1, r) * 100));
98
+ return /* @__PURE__ */ _(x, {
98
99
  className: a,
99
- children: /* @__PURE__ */ _(x, {
100
+ children: /* @__PURE__ */ v(S, {
100
101
  className: "pt-6",
101
102
  children: [
102
- /* @__PURE__ */ _("div", {
103
+ /* @__PURE__ */ v("div", {
103
104
  className: "flex items-center gap-2 text-muted-foreground",
104
- children: [/* @__PURE__ */ g(e, { className: "h-4 w-4" }), /* @__PURE__ */ g("span", {
105
+ children: [/* @__PURE__ */ _(e, { className: "h-4 w-4" }), /* @__PURE__ */ _("span", {
105
106
  className: "text-sm",
106
107
  children: t
107
108
  })]
108
109
  }),
109
- /* @__PURE__ */ _("div", {
110
+ /* @__PURE__ */ v("div", {
110
111
  className: "mt-2 flex items-baseline gap-2",
111
- children: [/* @__PURE__ */ g("span", {
112
+ children: [/* @__PURE__ */ _("span", {
112
113
  className: "text-2xl font-semibold",
113
114
  children: n
114
- }), /* @__PURE__ */ _("span", {
115
+ }), /* @__PURE__ */ v("span", {
115
116
  className: "text-sm text-muted-foreground",
116
- children: ["/ ", i]
117
+ children: ["/ ", r]
117
118
  })]
118
119
  }),
119
- /* @__PURE__ */ g("div", {
120
+ /* @__PURE__ */ _("div", {
120
121
  className: "mt-3 h-2 w-full overflow-hidden rounded-full bg-muted",
121
- children: /* @__PURE__ */ g("div", {
122
- className: r("h-full rounded-full transition-all", o >= 90 ? "bg-destructive" : o >= 70 ? "bg-warning" : "bg-success"),
122
+ children: /* @__PURE__ */ _("div", {
123
+ className: i("h-full rounded-full transition-all", o >= 90 ? "bg-destructive" : o >= 70 ? "bg-warning" : "bg-success"),
123
124
  style: { width: `${o}%` }
124
125
  })
125
126
  }),
126
- /* @__PURE__ */ _("p", {
127
+ /* @__PURE__ */ v("p", {
127
128
  className: "mt-2 text-xs text-muted-foreground",
128
129
  children: [o, "% used"]
129
130
  })
@@ -131,32 +132,32 @@ function F({ icon: e, label: t, used: n, limit: i, className: a }) {
131
132
  })
132
133
  });
133
134
  }
134
- function I() {
135
- return /* @__PURE__ */ _("div", {
135
+ function L() {
136
+ return /* @__PURE__ */ v("div", {
136
137
  className: "space-y-3",
137
- children: [/* @__PURE__ */ g(T, { className: "h-8 w-1/3" }), /* @__PURE__ */ g(T, { className: "h-32 w-full" })]
138
+ children: [/* @__PURE__ */ _(E, { className: "h-8 w-1/3" }), /* @__PURE__ */ _(E, { className: "h-32 w-full" })]
138
139
  });
139
140
  }
140
- function L({ columns: e, data: t, emptyState: n }) {
141
- return t.length === 0 ? /* @__PURE__ */ g("div", {
141
+ function R({ columns: e, data: t, emptyState: n }) {
142
+ return t.length === 0 ? /* @__PURE__ */ _("div", {
142
143
  className: "py-8 text-center text-sm text-muted-foreground",
143
144
  children: n
144
- }) : /* @__PURE__ */ g("div", {
145
+ }) : /* @__PURE__ */ _("div", {
145
146
  className: "overflow-x-auto",
146
- children: /* @__PURE__ */ _("table", {
147
+ children: /* @__PURE__ */ v("table", {
147
148
  className: "w-full text-sm",
148
- children: [/* @__PURE__ */ g("thead", {
149
+ children: [/* @__PURE__ */ _("thead", {
149
150
  className: "bg-muted/50",
150
- children: /* @__PURE__ */ g("tr", { children: e.map((e) => /* @__PURE__ */ g("th", {
151
- className: r("px-4 py-3 text-left font-medium text-muted-foreground", e.className),
151
+ children: /* @__PURE__ */ _("tr", { children: e.map((e) => /* @__PURE__ */ _("th", {
152
+ className: i("px-4 py-3 text-left font-medium text-muted-foreground", e.className),
152
153
  children: e.header
153
154
  }, e.key)) })
154
- }), /* @__PURE__ */ g("tbody", {
155
+ }), /* @__PURE__ */ _("tbody", {
155
156
  className: "divide-y",
156
- children: t.map((t) => /* @__PURE__ */ g("tr", {
157
+ children: t.map((t) => /* @__PURE__ */ _("tr", {
157
158
  className: "hover:bg-muted/30",
158
- children: e.map((e) => /* @__PURE__ */ g("td", {
159
- className: r("px-4 py-3", e.className),
159
+ children: e.map((e) => /* @__PURE__ */ _("td", {
160
+ className: i("px-4 py-3", e.className),
160
161
  children: e.cell(t)
161
162
  }, `${t.id}-${e.key}`))
162
163
  }, t.id))
@@ -164,131 +165,131 @@ function L({ columns: e, data: t, emptyState: n }) {
164
165
  })
165
166
  });
166
167
  }
167
- function R() {
168
- let { workspaceId: e } = t(), r = n(), [f, T] = a(/* @__PURE__ */ new Set()), [R, z] = a(!1), [B, V] = a(null), H = m(E, {
168
+ function z() {
169
+ let { workspaceId: e } = t(), i = r(), [p, E] = o(/* @__PURE__ */ new Set()), [z, B] = o(!1), [V, H] = o(null), U = h(D, {
169
170
  variables: { workspaceId: e ?? "" },
170
171
  skip: !e
171
- }), U = m(D, {
172
+ }), W = h(O, {
172
173
  variables: { workspaceId: e ?? "" },
173
174
  skip: !e
174
- }), W = m(O, {
175
+ }), G = h(k, {
175
176
  variables: { workspaceId: e ?? "" },
176
177
  skip: !e
177
- }), [G] = p(k), K = H.data?.planmagnetProjects.items ?? [], q = U.data?.planmagnetBoards.items ?? [], J = W.data?.planmagnetAutomationRules.items ?? [], Y = i(() => K.filter((e) => e.status === "ACTIVE"), [K]), X = (e) => {
178
- T((t) => {
178
+ }), [K] = m(A), q = U.data?.planmagnetProjects.items ?? [], J = W.data?.planmagnetBoards.items ?? [], Y = G.data?.planmagnetAutomationRules.items ?? [], X = a(() => q.filter((e) => e.status === "ACTIVE"), [q]), Z = (e) => {
179
+ E((t) => {
179
180
  let n = new Set(t);
180
181
  return n.has(e) ? n.delete(e) : n.add(e), n;
181
182
  });
182
- }, Z = () => {
183
- let e = Y.filter((e) => e.status !== "ARCHIVED");
184
- f.size === e.length ? T(/* @__PURE__ */ new Set()) : T(new Set(e.map((e) => e.id)));
185
- }, Q = async () => {
186
- if (f.size !== 0) {
187
- z(!0), V(null);
183
+ }, Q = () => {
184
+ let e = X.filter((e) => e.status !== "ARCHIVED");
185
+ p.size === e.length ? E(/* @__PURE__ */ new Set()) : E(new Set(e.map((e) => e.id)));
186
+ }, $ = async () => {
187
+ if (p.size !== 0) {
188
+ B(!0), H(null);
188
189
  try {
189
- await Promise.all(Array.from(f).map((e) => G({ variables: { id: e } }))), await H.refetch(), T(/* @__PURE__ */ new Set());
190
+ await Promise.all(Array.from(p).map((e) => K({ variables: { id: e } }))), await U.refetch(), E(/* @__PURE__ */ new Set());
190
191
  } catch (e) {
191
- V(e instanceof Error ? e.message : r("planmagnet.admin.archive.unknownError", "Bulk archive failed"));
192
+ H(e instanceof Error ? e.message : i("planmagnet.admin.archive.unknownError", "Bulk archive failed"));
192
193
  } finally {
193
- z(!1);
194
+ B(!1);
194
195
  }
195
196
  }
196
197
  };
197
- if (!e) return /* @__PURE__ */ g("div", {
198
+ if (!e) return /* @__PURE__ */ _("div", {
198
199
  className: "min-h-screen bg-background",
199
- children: /* @__PURE__ */ _("div", {
200
+ children: /* @__PURE__ */ v("div", {
200
201
  className: "flex min-h-[320px] flex-col items-center justify-center gap-3 text-muted-foreground",
201
- children: [/* @__PURE__ */ g(o, { className: "h-8 w-8" }), /* @__PURE__ */ g("p", { children: r("planmagnet.admin.noWorkspace", "Select a workspace to manage PlanMagnet admin settings.") })]
202
+ children: [/* @__PURE__ */ _(s, { className: "h-8 w-8" }), /* @__PURE__ */ _("p", { children: i("planmagnet.admin.noWorkspace", "Select a workspace to manage PlanMagnet admin settings.") })]
202
203
  })
203
204
  });
204
- let $ = H.loading || U.loading || W.loading;
205
- return /* @__PURE__ */ g("div", {
205
+ let ee = U.loading || W.loading || G.loading;
206
+ return /* @__PURE__ */ _("div", {
206
207
  className: "min-h-screen bg-background",
207
- children: /* @__PURE__ */ _("div", {
208
+ children: /* @__PURE__ */ v("div", {
208
209
  className: "mx-auto max-w-7xl space-y-6 p-6",
209
210
  children: [
210
- /* @__PURE__ */ g("div", {
211
+ /* @__PURE__ */ _("div", {
211
212
  className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",
212
- children: /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h1", {
213
+ children: /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("h1", {
213
214
  className: "text-2xl font-semibold tracking-tight",
214
- children: r("planmagnet.admin.title", "PlanMagnet Admin")
215
- }), /* @__PURE__ */ g("p", {
215
+ children: i("planmagnet.admin.title", "PlanMagnet Admin")
216
+ }), /* @__PURE__ */ _("p", {
216
217
  className: "text-sm text-muted-foreground",
217
- children: r("planmagnet.admin.purpose", "Workspace quota overview, bulk project archive, and automation rule audit.")
218
+ children: i("planmagnet.admin.purpose", "Workspace quota overview, bulk project archive, and automation rule audit.")
218
219
  })] })
219
220
  }),
220
- /* @__PURE__ */ _("div", {
221
+ /* @__PURE__ */ v("div", {
221
222
  className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
222
223
  children: [
223
- /* @__PURE__ */ g(F, {
224
- icon: c,
225
- label: r("planmagnet.admin.quota.projects", "Projects"),
226
- used: K.length,
227
- limit: 50
228
- }),
229
- /* @__PURE__ */ g(F, {
224
+ /* @__PURE__ */ _(I, {
230
225
  icon: l,
231
- label: r("planmagnet.admin.quota.boards", "Boards"),
226
+ label: i("planmagnet.admin.quota.projects", "Projects"),
232
227
  used: q.length,
233
- limit: 100
228
+ limit: 50
234
229
  }),
235
- /* @__PURE__ */ g(F, {
236
- icon: d,
237
- label: r("planmagnet.admin.quota.automationRules", "Automation Rules"),
230
+ /* @__PURE__ */ _(I, {
231
+ icon: u,
232
+ label: i("planmagnet.admin.quota.boards", "Boards"),
238
233
  used: J.length,
234
+ limit: 100
235
+ }),
236
+ /* @__PURE__ */ _(I, {
237
+ icon: f,
238
+ label: i("planmagnet.admin.quota.automationRules", "Automation Rules"),
239
+ used: Y.length,
239
240
  limit: 25
240
241
  })
241
242
  ]
242
243
  }),
243
- $ ? /* @__PURE__ */ g(I, {}) : /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ _(b, { children: [/* @__PURE__ */ _(S, {
244
+ ee ? /* @__PURE__ */ _(L, {}) : /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ v(x, { children: [/* @__PURE__ */ v(C, {
244
245
  className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
245
- children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g(C, { children: r("planmagnet.admin.archive.title", "Bulk Project Archive") }), /* @__PURE__ */ g("p", {
246
+ children: [/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _(w, { children: i("planmagnet.admin.archive.title", "Bulk Project Archive") }), /* @__PURE__ */ _("p", {
246
247
  className: "text-sm text-muted-foreground",
247
- children: r("planmagnet.admin.archive.subtitle", "Select active projects and archive them in one action.")
248
- })] }), /* @__PURE__ */ _(y, {
248
+ children: i("planmagnet.admin.archive.subtitle", "Select active projects and archive them in one action.")
249
+ })] }), /* @__PURE__ */ v(b, {
249
250
  size: "sm",
250
251
  variant: "destructive",
251
- disabled: f.size === 0 || R,
252
- onClick: Q,
252
+ disabled: p.size === 0 || z,
253
+ onClick: $,
253
254
  children: [
254
- R ? /* @__PURE__ */ g(u, { className: "mr-2 h-4 w-4 animate-spin" }) : /* @__PURE__ */ g(s, { className: "mr-2 h-4 w-4" }),
255
- r("planmagnet.admin.archive.action", "Archive"),
255
+ z ? /* @__PURE__ */ _(d, { className: "mr-2 h-4 w-4 animate-spin" }) : /* @__PURE__ */ _(c, { className: "mr-2 h-4 w-4" }),
256
+ i("planmagnet.admin.archive.action", "Archive"),
256
257
  " (",
257
- f.size,
258
+ p.size,
258
259
  ")"
259
260
  ]
260
261
  })]
261
- }), /* @__PURE__ */ _(x, { children: [B && /* @__PURE__ */ _("div", {
262
+ }), /* @__PURE__ */ v(S, { children: [V && /* @__PURE__ */ v("div", {
262
263
  className: "mb-4 flex items-center gap-2 rounded-md bg-destructive/10 p-3 text-sm text-destructive",
263
- children: [/* @__PURE__ */ g(o, { className: "h-4 w-4" }), B]
264
- }), /* @__PURE__ */ g("div", {
264
+ children: [/* @__PURE__ */ _(s, { className: "h-4 w-4" }), V]
265
+ }), /* @__PURE__ */ _("div", {
265
266
  className: "rounded-md border",
266
- children: /* @__PURE__ */ g(L, {
267
- data: Y,
267
+ children: /* @__PURE__ */ _(R, {
268
+ data: X,
268
269
  columns: [
269
270
  {
270
271
  key: "select",
271
- header: /* @__PURE__ */ g(w, {
272
- checked: Y.length > 0 && f.size === Y.length,
273
- onCheckedChange: Z,
274
- "aria-label": r("planmagnet.admin.archive.selectAll", "Select all active projects")
272
+ header: /* @__PURE__ */ _(T, {
273
+ checked: X.length > 0 && p.size === X.length,
274
+ onCheckedChange: Q,
275
+ "aria-label": i("planmagnet.admin.archive.selectAll", "Select all active projects")
275
276
  }),
276
- cell: (e) => /* @__PURE__ */ g(w, {
277
- checked: f.has(e.id),
278
- onCheckedChange: () => X(e.id),
279
- "aria-label": r("planmagnet.admin.archive.selectProject", "Select project")
277
+ cell: (e) => /* @__PURE__ */ _(T, {
278
+ checked: p.has(e.id),
279
+ onCheckedChange: () => Z(e.id),
280
+ "aria-label": i("planmagnet.admin.archive.selectProject", "Select project")
280
281
  }),
281
282
  className: "w-12"
282
283
  },
283
284
  {
284
285
  key: "name",
285
- header: r("planmagnet.admin.archive.column.name", "Project"),
286
- cell: (e) => /* @__PURE__ */ _("div", {
286
+ header: i("planmagnet.admin.archive.column.name", "Project"),
287
+ cell: (e) => /* @__PURE__ */ v("div", {
287
288
  className: "flex flex-col",
288
- children: [/* @__PURE__ */ g("span", {
289
+ children: [/* @__PURE__ */ _("span", {
289
290
  className: "font-medium",
290
291
  children: e.name
291
- }), /* @__PURE__ */ g("span", {
292
+ }), /* @__PURE__ */ _("span", {
292
293
  className: "text-xs text-muted-foreground font-mono",
293
294
  children: e.key
294
295
  })]
@@ -296,110 +297,110 @@ function R() {
296
297
  },
297
298
  {
298
299
  key: "status",
299
- header: r("planmagnet.admin.archive.column.status", "Status"),
300
- cell: (e) => /* @__PURE__ */ g(v, {
301
- variant: A(e.status),
300
+ header: i("planmagnet.admin.archive.column.status", "Status"),
301
+ cell: (e) => /* @__PURE__ */ _(y, {
302
+ variant: j(e.status),
302
303
  children: e.status.toLowerCase().replace("_", " ")
303
304
  })
304
305
  },
305
306
  {
306
307
  key: "methodology",
307
- header: r("planmagnet.admin.archive.column.methodology", "Methodology"),
308
- cell: (e) => /* @__PURE__ */ g("span", {
308
+ header: i("planmagnet.admin.archive.column.methodology", "Methodology"),
309
+ cell: (e) => /* @__PURE__ */ _("span", {
309
310
  className: "text-sm capitalize",
310
- children: N(e.methodology)
311
+ children: P(e.methodology)
311
312
  })
312
313
  },
313
314
  {
314
315
  key: "owner",
315
- header: r("planmagnet.admin.archive.column.owner", "Owner"),
316
- cell: (e) => /* @__PURE__ */ g("span", {
316
+ header: i("planmagnet.admin.archive.column.owner", "Owner"),
317
+ cell: (e) => /* @__PURE__ */ _("span", {
317
318
  className: "text-sm text-muted-foreground font-mono",
318
- children: e.ownerId
319
+ children: /* @__PURE__ */ _(n, { id: e.ownerId })
319
320
  })
320
321
  },
321
322
  {
322
323
  key: "created",
323
- header: r("planmagnet.admin.archive.column.created", "Created"),
324
- cell: (e) => /* @__PURE__ */ g("span", {
324
+ header: i("planmagnet.admin.archive.column.created", "Created"),
325
+ cell: (e) => /* @__PURE__ */ _("span", {
325
326
  className: "text-sm",
326
- children: M(e.createdAt)
327
+ children: N(e.createdAt)
327
328
  })
328
329
  }
329
330
  ],
330
- emptyState: r("planmagnet.admin.archive.empty", "No active projects to archive.")
331
+ emptyState: i("planmagnet.admin.archive.empty", "No active projects to archive.")
331
332
  })
332
- })] })] }), /* @__PURE__ */ _(b, { children: [/* @__PURE__ */ _(S, { children: [/* @__PURE__ */ g(C, { children: r("planmagnet.admin.automation.title", "Automation Rule Audit") }), /* @__PURE__ */ g("p", {
333
+ })] })] }), /* @__PURE__ */ v(x, { children: [/* @__PURE__ */ v(C, { children: [/* @__PURE__ */ _(w, { children: i("planmagnet.admin.automation.title", "Automation Rule Audit") }), /* @__PURE__ */ _("p", {
333
334
  className: "text-sm text-muted-foreground",
334
- children: r("planmagnet.admin.automation.subtitle", "Review rule health, execution counts, and last run timestamps.")
335
- })] }), /* @__PURE__ */ g(x, { children: /* @__PURE__ */ g("div", {
335
+ children: i("planmagnet.admin.automation.subtitle", "Review rule health, execution counts, and last run timestamps.")
336
+ })] }), /* @__PURE__ */ _(S, { children: /* @__PURE__ */ _("div", {
336
337
  className: "rounded-md border",
337
- children: /* @__PURE__ */ g(L, {
338
- data: J,
338
+ children: /* @__PURE__ */ _(R, {
339
+ data: Y,
339
340
  columns: [
340
341
  {
341
342
  key: "name",
342
- header: r("planmagnet.admin.automation.column.name", "Rule"),
343
- cell: (e) => /* @__PURE__ */ g("span", {
343
+ header: i("planmagnet.admin.automation.column.name", "Rule"),
344
+ cell: (e) => /* @__PURE__ */ _("span", {
344
345
  className: "font-medium",
345
346
  children: e.name
346
347
  })
347
348
  },
348
349
  {
349
350
  key: "trigger",
350
- header: r("planmagnet.admin.automation.column.trigger", "Trigger"),
351
- cell: (e) => /* @__PURE__ */ g("span", {
351
+ header: i("planmagnet.admin.automation.column.trigger", "Trigger"),
352
+ cell: (e) => /* @__PURE__ */ _("span", {
352
353
  className: "text-sm",
353
- children: P(e.triggerType)
354
+ children: F(e.triggerType)
354
355
  })
355
356
  },
356
357
  {
357
358
  key: "status",
358
- header: r("planmagnet.admin.automation.column.status", "Status"),
359
- cell: (e) => /* @__PURE__ */ g(v, {
360
- variant: j(e.status),
359
+ header: i("planmagnet.admin.automation.column.status", "Status"),
360
+ cell: (e) => /* @__PURE__ */ _(y, {
361
+ variant: M(e.status),
361
362
  children: e.status.toLowerCase()
362
363
  })
363
364
  },
364
365
  {
365
366
  key: "executions",
366
- header: r("planmagnet.admin.automation.column.executions", "Executions"),
367
- cell: (e) => /* @__PURE__ */ g("span", {
367
+ header: i("planmagnet.admin.automation.column.executions", "Executions"),
368
+ cell: (e) => /* @__PURE__ */ _("span", {
368
369
  className: "text-sm",
369
370
  children: e.executionCount
370
371
  })
371
372
  },
372
373
  {
373
374
  key: "lastRun",
374
- header: r("planmagnet.admin.automation.column.lastRun", "Last Run"),
375
- cell: (e) => /* @__PURE__ */ g("span", {
375
+ header: i("planmagnet.admin.automation.column.lastRun", "Last Run"),
376
+ cell: (e) => /* @__PURE__ */ _("span", {
376
377
  className: "text-sm",
377
- children: M(e.lastExecutedAt)
378
+ children: N(e.lastExecutedAt)
378
379
  })
379
380
  },
380
381
  {
381
382
  key: "created",
382
- header: r("planmagnet.admin.automation.column.created", "Created"),
383
- cell: (e) => /* @__PURE__ */ g("span", {
383
+ header: i("planmagnet.admin.automation.column.created", "Created"),
384
+ cell: (e) => /* @__PURE__ */ _("span", {
384
385
  className: "text-sm",
385
- children: M(e.createdAt)
386
+ children: N(e.createdAt)
386
387
  })
387
388
  }
388
389
  ],
389
- emptyState: r("planmagnet.admin.automation.empty", "No automation rules found.")
390
+ emptyState: i("planmagnet.admin.automation.empty", "No automation rules found.")
390
391
  })
391
392
  }) })] })] })
392
393
  ]
393
394
  })
394
395
  });
395
396
  }
396
- function z(t) {
397
- return /* @__PURE__ */ g(e, {
397
+ function B(t) {
398
+ return /* @__PURE__ */ _(e, {
398
399
  ...t,
399
- children: /* @__PURE__ */ g(R, {})
400
+ children: /* @__PURE__ */ _(z, {})
400
401
  });
401
402
  }
402
403
  //#endregion
403
- export { z as PlanMagnetAdminRoot };
404
+ export { B as PlanMagnetAdminRoot };
404
405
 
405
406
  //# sourceMappingURL=PlanMagnetAdminRoot.js.map