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