@burdenoff/microfe-planmagnet 2026.925.17 → 2026.926.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/generated/wspace-types.d.ts +76 -2
  2. package/dist/generated/wspace-types.d.ts.map +1 -1
  3. package/dist/node_modules/@apollo/client/errors/ServerError.js +17 -0
  4. package/dist/node_modules/@apollo/client/errors/ServerError.js.map +1 -0
  5. package/dist/planmagnet/pages/DocsDocDetailPagePage.d.ts.map +1 -1
  6. package/dist/planmagnet/pages/DocsDocDetailPagePage.js +128 -127
  7. package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +1 -1
  8. package/dist/planmagnet/pages/ProductsCreateProductPagePage.d.ts.map +1 -1
  9. package/dist/planmagnet/pages/ProductsCreateProductPagePage.js +93 -98
  10. package/dist/planmagnet/pages/ProductsCreateProductPagePage.js.map +1 -1
  11. package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.d.ts.map +1 -1
  12. package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js +72 -79
  13. package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js.map +1 -1
  14. package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts.map +1 -1
  15. package/dist/planmagnet/pages/ProductsEditProductPagePage.js +112 -123
  16. package/dist/planmagnet/pages/ProductsEditProductPagePage.js.map +1 -1
  17. package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -1
  18. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +92 -98
  19. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -1
  20. package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts.map +1 -1
  21. package/dist/planmagnet/pages/ProductsProductsPagePage.js +88 -96
  22. package/dist/planmagnet/pages/ProductsProductsPagePage.js.map +1 -1
  23. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +1 -1
  24. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +102 -122
  25. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +1 -1
  26. package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.d.ts.map +1 -1
  27. package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js +116 -114
  28. package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js.map +1 -1
  29. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +1 -1
  30. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +82 -88
  31. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +1 -1
  32. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts.map +1 -1
  33. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js +79 -79
  34. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js.map +1 -1
  35. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
  36. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +150 -154
  37. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
  38. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts.map +1 -1
  39. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +120 -109
  40. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js.map +1 -1
  41. package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -1
  42. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +75 -31
  43. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -1
  44. package/dist/planmagnet/releases/ReleaseReadinessCard.d.ts.map +1 -1
  45. package/dist/planmagnet/releases/ReleaseReadinessCard.js +90 -89
  46. package/dist/planmagnet/releases/ReleaseReadinessCard.js.map +1 -1
  47. package/dist/planmagnet/releases/ReleaseWorkItemsCard.d.ts +13 -0
  48. package/dist/planmagnet/releases/ReleaseWorkItemsCard.d.ts.map +1 -0
  49. package/dist/planmagnet/releases/ReleaseWorkItemsCard.js +189 -0
  50. package/dist/planmagnet/releases/ReleaseWorkItemsCard.js.map +1 -0
  51. package/dist/planmagnet/roadmaps/planningFocus.d.ts +23 -0
  52. package/dist/planmagnet/roadmaps/planningFocus.d.ts.map +1 -0
  53. package/dist/planmagnet/roadmaps/planningFocus.js +76 -0
  54. package/dist/planmagnet/roadmaps/planningFocus.js.map +1 -0
  55. package/dist/planmagnet/sprints/SprintDates.d.ts +37 -0
  56. package/dist/planmagnet/sprints/SprintDates.d.ts.map +1 -0
  57. package/dist/planmagnet/sprints/SprintDates.js +114 -0
  58. package/dist/planmagnet/sprints/SprintDates.js.map +1 -0
  59. package/package.json +1 -1
@@ -1,15 +1,16 @@
1
1
  import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
2
2
  import { PersonName as n } from "../people/People.js";
3
- import { detailPath as r, rowLinkProps as i } from "../utils/rowNavigation.js";
4
- import { useState as a } from "react";
5
- import { Calendar as o, GitBranch as s, Loader2 as c, Map as l, Package as u, Plus as d } from "lucide-react";
6
- import { gql as f } from "@apollo/client";
7
- import { useQuery as p } from "@apollo/client/react";
8
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
9
- import { useI18n as g } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
10
- import { Badge as _, Button as v, Card as y, CardContent as b, CardHeader as x, CardTitle as S } from "@burdenoff/fe-libs/ui";
3
+ import { PlanningFocusBadge as r, planningFocusLabel as i } from "../roadmaps/planningFocus.js";
4
+ import { detailPath as a, rowLinkProps as o } from "../utils/rowNavigation.js";
5
+ import { useState as s } from "react";
6
+ import { Calendar as c, GitBranch as l, Loader2 as u, Map as d, Package as f, Plus as p } from "lucide-react";
7
+ import { gql as m } from "@apollo/client";
8
+ import { useQuery as h } from "@apollo/client/react";
9
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
10
+ import { useI18n as v } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
+ import { Button as y, Card as b, CardContent as x, CardHeader as S, CardTitle as C } from "@burdenoff/fe-libs/ui";
11
12
  //#region src/planmagnet/pages/ProductsProductsPagePage.tsx
12
- var C = f`
13
+ var w = m`
13
14
  query ListRoadmaps($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {
14
15
  planmagnetRoadmaps(workspaceId: $workspaceId, pagination: $pagination) {
15
16
  items {
@@ -18,6 +19,7 @@ var C = f`
18
19
  name
19
20
  description
20
21
  type
22
+ planningFocus
21
23
  isPublic
22
24
  ownerId
23
25
  metadata
@@ -33,185 +35,175 @@ var C = f`
33
35
  totalCount
34
36
  }
35
37
  }
36
- `, w = f`
38
+ `, T = m`
37
39
  query ListFeatureRequestsForProducts($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {
38
40
  planmagnetFeatureRequests(workspaceId: $workspaceId, pagination: $pagination) {
39
41
  totalCount
40
42
  }
41
43
  }
42
- `, T = f`
44
+ `, E = m`
43
45
  query ListReleasesForProducts($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {
44
46
  planmagnetReleases(workspaceId: $workspaceId, pagination: $pagination) {
45
47
  totalCount
46
48
  }
47
49
  }
48
50
  `;
49
- function E() {
50
- let { workspaceId: f } = e(), E = t(), { t: D } = g(), [O, k] = a("grid"), { data: A, loading: j, error: M } = p(C, {
51
+ function D() {
52
+ let { workspaceId: m } = e(), D = t(), { t: O } = v(), [k, A] = s("grid"), { data: j, loading: M, error: N } = h(w, {
51
53
  variables: {
52
- workspaceId: f,
54
+ workspaceId: m,
53
55
  pagination: { first: 50 }
54
56
  },
55
- skip: !f
56
- }), { data: N } = p(w, {
57
+ skip: !m
58
+ }), { data: P } = h(T, {
57
59
  variables: {
58
- workspaceId: f,
60
+ workspaceId: m,
59
61
  pagination: { first: 1 }
60
62
  },
61
- skip: !f
62
- }), { data: P } = p(T, {
63
+ skip: !m
64
+ }), { data: F } = h(E, {
63
65
  variables: {
64
- workspaceId: f,
66
+ workspaceId: m,
65
67
  pagination: { first: 1 }
66
68
  },
67
- skip: !f
69
+ skip: !m
68
70
  });
69
- if (j && !A) return /* @__PURE__ */ m("div", {
71
+ if (M && !j) return /* @__PURE__ */ g("div", {
70
72
  className: "flex items-center justify-center p-12",
71
- children: /* @__PURE__ */ m(c, { className: "h-8 w-8 animate-spin text-muted-foreground" })
73
+ children: /* @__PURE__ */ g(u, { className: "h-8 w-8 animate-spin text-muted-foreground" })
72
74
  });
73
- if (M) return /* @__PURE__ */ h("div", {
75
+ if (N) return /* @__PURE__ */ _("div", {
74
76
  className: "p-6 text-destructive",
75
77
  children: [
76
- D("planmagnet.products.errorLoading", "Failed to load products"),
78
+ O("planmagnet.products.errorLoading", "Failed to load products"),
77
79
  ": ",
78
- M.message
80
+ N.message
79
81
  ]
80
82
  });
81
- let F = A?.planmagnetRoadmaps?.items ?? [], I = A?.planmagnetRoadmaps?.totalCount ?? 0, L = N?.planmagnetFeatureRequests?.totalCount ?? 0, R = P?.planmagnetReleases?.totalCount ?? 0, z = (e) => {
82
- switch (e) {
83
- case "TIMELINE": return "default";
84
- case "GANTT": return "secondary";
85
- case "SWIMLANE": return "outline";
86
- default: return "outline";
87
- }
88
- };
89
- return /* @__PURE__ */ h("div", {
83
+ let I = j?.planmagnetRoadmaps?.items ?? [], L = j?.planmagnetRoadmaps?.totalCount ?? 0, R = P?.planmagnetFeatureRequests?.totalCount ?? 0, z = F?.planmagnetReleases?.totalCount ?? 0;
84
+ return /* @__PURE__ */ _("div", {
90
85
  className: "space-y-6 p-6",
91
86
  children: [
92
- /* @__PURE__ */ h("div", {
87
+ /* @__PURE__ */ _("div", {
93
88
  className: "flex items-center justify-between",
94
- children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("h1", {
89
+ children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ _("h1", {
95
90
  className: "text-2xl font-semibold flex items-center gap-2",
96
91
  children: [
97
- /* @__PURE__ */ m(u, { className: "h-6 w-6" }),
92
+ /* @__PURE__ */ g(f, { className: "h-6 w-6" }),
98
93
  " ",
99
- D("planmagnet.products.title", "Products")
94
+ O("planmagnet.products.title", "Products")
100
95
  ]
101
- }), /* @__PURE__ */ m("p", {
96
+ }), /* @__PURE__ */ g("p", {
102
97
  className: "text-sm text-muted-foreground mt-1",
103
- children: D("planmagnet.products.subtitle", "Manage your product portfolio and track feature development")
104
- })] }), /* @__PURE__ */ h(v, {
98
+ children: O("planmagnet.products.subtitle", "Manage your product portfolio and track feature development")
99
+ })] }), /* @__PURE__ */ _(y, {
105
100
  size: "sm",
106
- onClick: () => E("/products/create-product-page"),
107
- children: [/* @__PURE__ */ m(d, { className: "h-4 w-4 mr-1" }), D("planmagnet.products.actions.newProduct", "New Product")]
101
+ onClick: () => D("/products/create-product-page"),
102
+ children: [/* @__PURE__ */ g(p, { className: "h-4 w-4 mr-1" }), O("planmagnet.products.actions.newProduct", "New Product")]
108
103
  })]
109
104
  }),
110
- /* @__PURE__ */ m("div", {
105
+ /* @__PURE__ */ g("div", {
111
106
  className: "grid gap-4 md:grid-cols-4",
112
107
  children: [
113
108
  {
114
- label: D("planmagnet.products.metrics.totalProducts", "Total Products"),
115
- val: I,
116
- icon: u,
109
+ label: O("planmagnet.products.metrics.totalProducts", "Total Products"),
110
+ val: L,
111
+ icon: f,
117
112
  color: "text-blue-500"
118
113
  },
119
114
  {
120
- label: D("planmagnet.products.metrics.activeFeatures", "Active Features"),
121
- val: L,
122
- icon: s,
115
+ label: O("planmagnet.products.metrics.activeFeatures", "Active Features"),
116
+ val: R,
117
+ icon: l,
123
118
  color: "text-green-500"
124
119
  },
125
120
  {
126
- label: D("planmagnet.products.metrics.releases", "Releases"),
127
- val: R,
128
- icon: o,
121
+ label: O("planmagnet.products.metrics.releases", "Releases"),
122
+ val: z,
123
+ icon: c,
129
124
  color: "text-purple-500"
130
125
  },
131
126
  {
132
- label: D("planmagnet.products.metrics.roadmaps", "Roadmaps"),
133
- val: I,
134
- icon: l,
127
+ label: O("planmagnet.products.metrics.roadmaps", "Roadmaps"),
128
+ val: L,
129
+ icon: d,
135
130
  color: "text-orange-500"
136
131
  }
137
- ].map((e) => /* @__PURE__ */ m(y, { children: /* @__PURE__ */ m(b, {
132
+ ].map((e) => /* @__PURE__ */ g(b, { children: /* @__PURE__ */ g(x, {
138
133
  className: "pt-6",
139
- children: /* @__PURE__ */ h("div", {
134
+ children: /* @__PURE__ */ _("div", {
140
135
  className: "flex items-center justify-between",
141
- children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
136
+ children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
142
137
  className: "text-sm text-muted-foreground",
143
138
  children: e.label
144
- }), /* @__PURE__ */ m("p", {
139
+ }), /* @__PURE__ */ g("p", {
145
140
  className: "text-2xl font-bold",
146
141
  children: e.val
147
- })] }), /* @__PURE__ */ m(e.icon, { className: `h-8 w-8 ${e.color} opacity-60` })]
142
+ })] }), /* @__PURE__ */ g(e.icon, { className: `h-8 w-8 ${e.color} opacity-60` })]
148
143
  })
149
144
  }) }, e.label))
150
145
  }),
151
- /* @__PURE__ */ m("div", {
146
+ /* @__PURE__ */ g("div", {
152
147
  className: "grid gap-4 md:grid-cols-2 lg:grid-cols-2",
153
- children: F.map((e) => /* @__PURE__ */ h(y, {
154
- ...i(() => E(r("/products/product-detail-page", e.id)), e.name),
155
- children: [/* @__PURE__ */ m(x, { children: /* @__PURE__ */ h("div", {
148
+ children: I.map((e) => /* @__PURE__ */ _(b, {
149
+ ...o(() => D(a("/products/product-detail-page", e.id)), e.name),
150
+ children: [/* @__PURE__ */ g(S, { children: /* @__PURE__ */ _("div", {
156
151
  className: "flex items-center justify-between",
157
- children: [/* @__PURE__ */ m(S, {
152
+ children: [/* @__PURE__ */ g(C, {
158
153
  className: "text-base",
159
154
  children: e.name
160
- }), /* @__PURE__ */ m(_, {
161
- variant: z(e.type),
162
- children: e.type.toLowerCase()
163
- })]
164
- }) }), /* @__PURE__ */ h(b, {
155
+ }), /* @__PURE__ */ g(r, { focus: e.planningFocus })]
156
+ }) }), /* @__PURE__ */ _(x, {
165
157
  className: "space-y-3",
166
158
  children: [
167
- /* @__PURE__ */ m("p", {
159
+ /* @__PURE__ */ g("p", {
168
160
  className: "text-sm text-muted-foreground",
169
- children: e.description ?? D("planmagnet.products.shared.noDescription", "No description")
161
+ children: e.description ?? O("planmagnet.products.shared.noDescription", "No description")
170
162
  }),
171
- /* @__PURE__ */ h("div", {
163
+ /* @__PURE__ */ _("div", {
172
164
  className: "grid grid-cols-3 gap-2 text-center",
173
165
  children: [
174
- /* @__PURE__ */ h("div", {
166
+ /* @__PURE__ */ _("div", {
175
167
  className: "rounded border p-2",
176
- children: [/* @__PURE__ */ m("p", {
168
+ children: [/* @__PURE__ */ g("p", {
177
169
  className: "text-lg font-bold",
178
170
  children: e.items?.length ?? 0
179
- }), /* @__PURE__ */ m("p", {
171
+ }), /* @__PURE__ */ g("p", {
180
172
  className: "text-xs text-muted-foreground",
181
- children: D("planmagnet.products.shared.items", "Items")
173
+ children: O("planmagnet.products.shared.items", "Items")
182
174
  })]
183
175
  }),
184
- /* @__PURE__ */ h("div", {
176
+ /* @__PURE__ */ _("div", {
185
177
  className: "rounded border p-2",
186
- children: [/* @__PURE__ */ m("p", {
178
+ children: [/* @__PURE__ */ g("p", {
187
179
  className: "text-lg font-bold",
188
- children: e.isPublic ? D("planmagnet.products.shared.public", "Public") : D("planmagnet.products.shared.private", "Private")
189
- }), /* @__PURE__ */ m("p", {
180
+ children: e.isPublic ? O("planmagnet.products.shared.public", "Public") : O("planmagnet.products.shared.private", "Private")
181
+ }), /* @__PURE__ */ g("p", {
190
182
  className: "text-xs text-muted-foreground",
191
- children: D("planmagnet.products.shared.visibility", "Visibility")
183
+ children: O("planmagnet.products.shared.visibility", "Visibility")
192
184
  })]
193
185
  }),
194
- /* @__PURE__ */ h("div", {
186
+ /* @__PURE__ */ _("div", {
195
187
  className: "rounded border p-2",
196
- children: [/* @__PURE__ */ m("p", {
188
+ children: [/* @__PURE__ */ g("p", {
197
189
  className: "text-lg font-bold",
198
- children: e.type.toLowerCase()
199
- }), /* @__PURE__ */ m("p", {
190
+ children: i(e.planningFocus)
191
+ }), /* @__PURE__ */ g("p", {
200
192
  className: "text-xs text-muted-foreground",
201
- children: D("planmagnet.products.shared.type", "Type")
193
+ children: O("planmagnet.products.shared.planningFocus", "Planning focus")
202
194
  })]
203
195
  })
204
196
  ]
205
197
  }),
206
- /* @__PURE__ */ h("div", {
198
+ /* @__PURE__ */ _("div", {
207
199
  className: "flex items-center justify-between text-xs text-muted-foreground",
208
- children: [/* @__PURE__ */ h("span", { children: [
209
- D("planmagnet.products.shared.owner", "Owner"),
200
+ children: [/* @__PURE__ */ _("span", { children: [
201
+ O("planmagnet.products.shared.owner", "Owner"),
210
202
  ":",
211
203
  " ",
212
- /* @__PURE__ */ m(n, { id: e.ownerId })
213
- ] }), /* @__PURE__ */ h("span", { children: [
214
- D("planmagnet.products.shared.updated", "Updated"),
204
+ /* @__PURE__ */ g(n, { id: e.ownerId })
205
+ ] }), /* @__PURE__ */ _("span", { children: [
206
+ O("planmagnet.products.shared.updated", "Updated"),
215
207
  " ",
216
208
  new Date(e.updatedAt).toLocaleDateString()
217
209
  ] })]
@@ -224,6 +216,6 @@ function E() {
224
216
  });
225
217
  }
226
218
  //#endregion
227
- export { E as ProductsProductsPagePage };
219
+ export { D as ProductsProductsPagePage };
228
220
 
229
221
  //# sourceMappingURL=ProductsProductsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductsProductsPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/ProductsProductsPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Package, Plus, TrendingUp, Calendar, GitBranch, Map, Loader2 } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { rowLinkProps, detailPath } from '../utils/rowNavigation';\nimport { PersonName } from '../people/People';\n\nconst LIST_ROADMAPS = gql`\n query ListRoadmaps($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {\n planmagnetRoadmaps(workspaceId: $workspaceId, pagination: $pagination) {\n items {\n id\n workspaceId\n name\n description\n type\n isPublic\n ownerId\n metadata\n createdBy\n createdAt\n updatedAt\n updatedBy\n items {\n id\n status\n }\n }\n totalCount\n }\n }\n`;\n\nconst LIST_FEATURE_REQUESTS = gql`\n query ListFeatureRequestsForProducts($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {\n planmagnetFeatureRequests(workspaceId: $workspaceId, pagination: $pagination) {\n totalCount\n }\n }\n`;\n\nconst LIST_RELEASES = gql`\n query ListReleasesForProducts($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {\n planmagnetReleases(workspaceId: $workspaceId, pagination: $pagination) {\n totalCount\n }\n }\n`;\n\ninterface RoadmapNode {\n id: string;\n name: string;\n description: string | null;\n type: string;\n isPublic: boolean;\n ownerId: string;\n createdAt: string;\n updatedAt: string;\n items: { id: string; status: string }[];\n}\n\nexport function ProductsProductsPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const { t } = useI18n();\n const [view, setView] = useState<'grid' | 'list'>('grid');\n\n const {\n data: roadmapsData,\n loading: roadmapsLoading,\n error: roadmapsError,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = useQuery<Record<string, any>>(LIST_ROADMAPS, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n variables: { workspaceId, pagination: { first: 50 } },\n skip: !workspaceId,\n });\n\n const {\n data: featuresData,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(LIST_FEATURE_REQUESTS, {\n variables: { workspaceId, pagination: { first: 1 } },\n skip: !workspaceId,\n });\n\n const {\n data: releasesData,\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(LIST_RELEASES, {\n variables: { workspaceId, pagination: { first: 1 } },\n skip: !workspaceId,\n });\n\n // Only before the first load: a refetch must not blank the page.\n if (roadmapsLoading && !roadmapsData) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n </div>\n );\n }\n\n if (roadmapsError) {\n return (\n <div className=\"p-6 text-destructive\">\n {t('planmagnet.products.errorLoading', 'Failed to load products')}: {roadmapsError.message}\n </div>\n );\n }\n\n const roadmaps: RoadmapNode[] = roadmapsData?.planmagnetRoadmaps?.items ?? [];\n const totalRoadmaps = roadmapsData?.planmagnetRoadmaps?.totalCount ?? 0;\n const totalFeatures = featuresData?.planmagnetFeatureRequests?.totalCount ?? 0;\n const totalReleases = releasesData?.planmagnetReleases?.totalCount ?? 0;\n\n const typeLabel = (t: string) => {\n switch (t) {\n case 'TIMELINE':\n return 'default';\n case 'GANTT':\n return 'secondary';\n case 'SWIMLANE':\n return 'outline';\n default:\n return 'outline';\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold flex items-center gap-2\">\n <Package className=\"h-6 w-6\" /> {t('planmagnet.products.title', 'Products')}\n </h1>\n <p className=\"text-sm text-muted-foreground mt-1\">\n {t(\n 'planmagnet.products.subtitle',\n 'Manage your product portfolio and track feature development'\n )}\n </p>\n </div>\n <Button size=\"sm\" onClick={() => navigate('/products/create-product-page')}>\n <Plus className=\"h-4 w-4 mr-1\" />\n {t('planmagnet.products.actions.newProduct', 'New Product')}\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n {[\n {\n label: t('planmagnet.products.metrics.totalProducts', 'Total Products'),\n val: totalRoadmaps,\n icon: Package,\n color: 'text-blue-500',\n },\n {\n label: t('planmagnet.products.metrics.activeFeatures', 'Active Features'),\n val: totalFeatures,\n icon: GitBranch,\n color: 'text-green-500',\n },\n {\n label: t('planmagnet.products.metrics.releases', 'Releases'),\n val: totalReleases,\n icon: Calendar,\n color: 'text-purple-500',\n },\n {\n label: t('planmagnet.products.metrics.roadmaps', 'Roadmaps'),\n val: totalRoadmaps,\n icon: Map,\n color: 'text-orange-500',\n },\n ].map((s) => (\n <Card key={s.label}>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm text-muted-foreground\">{s.label}</p>\n <p className=\"text-2xl font-bold\">{s.val}</p>\n </div>\n <s.icon className={`h-8 w-8 ${s.color} opacity-60`} />\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-2\">\n {roadmaps.map((roadmap) => (\n <Card\n key={roadmap.id}\n {...rowLinkProps(\n () => navigate(detailPath('/products/product-detail-page', roadmap.id)),\n roadmap.name\n )}\n >\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-base\">{roadmap.name}</CardTitle>\n <Badge variant={typeLabel(roadmap.type)}>{roadmap.type.toLowerCase()}</Badge>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-sm text-muted-foreground\">\n {roadmap.description ??\n t('planmagnet.products.shared.noDescription', 'No description')}\n </p>\n <div className=\"grid grid-cols-3 gap-2 text-center\">\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">{roadmap.items?.length ?? 0}</p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.items', 'Items')}\n </p>\n </div>\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">\n {roadmap.isPublic\n ? t('planmagnet.products.shared.public', 'Public')\n : t('planmagnet.products.shared.private', 'Private')}\n </p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.visibility', 'Visibility')}\n </p>\n </div>\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">{roadmap.type.toLowerCase()}</p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.type', 'Type')}\n </p>\n </div>\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span>\n {t('planmagnet.products.shared.owner', 'Owner')}:{' '}\n <PersonName id={roadmap.ownerId} />\n </span>\n <span>\n {t('planmagnet.products.shared.updated', 'Updated')}{' '}\n {new Date(roadmap.updatedAt).toLocaleDateString()}\n </span>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProductsProductsPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/ProductsProductsPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Package, Plus, TrendingUp, Calendar, GitBranch, Map, Loader2 } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { rowLinkProps, detailPath } from '../utils/rowNavigation';\nimport { PersonName } from '../people/People';\nimport { PlanningFocusBadge, planningFocusLabel } from '../roadmaps/planningFocus';\n\nconst LIST_ROADMAPS = gql`\n query ListRoadmaps($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {\n planmagnetRoadmaps(workspaceId: $workspaceId, pagination: $pagination) {\n items {\n id\n workspaceId\n name\n description\n type\n planningFocus\n isPublic\n ownerId\n metadata\n createdBy\n createdAt\n updatedAt\n updatedBy\n items {\n id\n status\n }\n }\n totalCount\n }\n }\n`;\n\nconst LIST_FEATURE_REQUESTS = gql`\n query ListFeatureRequestsForProducts($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {\n planmagnetFeatureRequests(workspaceId: $workspaceId, pagination: $pagination) {\n totalCount\n }\n }\n`;\n\nconst LIST_RELEASES = gql`\n query ListReleasesForProducts($workspaceId: ID!, $pagination: PlanmagnetPaginationInput) {\n planmagnetReleases(workspaceId: $workspaceId, pagination: $pagination) {\n totalCount\n }\n }\n`;\n\ninterface RoadmapNode {\n id: string;\n name: string;\n description: string | null;\n type: string;\n planningFocus: string | null;\n isPublic: boolean;\n ownerId: string;\n createdAt: string;\n updatedAt: string;\n items: { id: string; status: string }[];\n}\n\nexport function ProductsProductsPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const { t } = useI18n();\n const [view, setView] = useState<'grid' | 'list'>('grid');\n\n const {\n data: roadmapsData,\n loading: roadmapsLoading,\n error: roadmapsError,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = useQuery<Record<string, any>>(LIST_ROADMAPS, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n variables: { workspaceId, pagination: { first: 50 } },\n skip: !workspaceId,\n });\n\n const {\n data: featuresData,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(LIST_FEATURE_REQUESTS, {\n variables: { workspaceId, pagination: { first: 1 } },\n skip: !workspaceId,\n });\n\n const {\n data: releasesData,\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(LIST_RELEASES, {\n variables: { workspaceId, pagination: { first: 1 } },\n skip: !workspaceId,\n });\n\n // Only before the first load: a refetch must not blank the page.\n if (roadmapsLoading && !roadmapsData) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n </div>\n );\n }\n\n if (roadmapsError) {\n return (\n <div className=\"p-6 text-destructive\">\n {t('planmagnet.products.errorLoading', 'Failed to load products')}: {roadmapsError.message}\n </div>\n );\n }\n\n const roadmaps: RoadmapNode[] = roadmapsData?.planmagnetRoadmaps?.items ?? [];\n const totalRoadmaps = roadmapsData?.planmagnetRoadmaps?.totalCount ?? 0;\n const totalFeatures = featuresData?.planmagnetFeatureRequests?.totalCount ?? 0;\n const totalReleases = releasesData?.planmagnetReleases?.totalCount ?? 0;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold flex items-center gap-2\">\n <Package className=\"h-6 w-6\" /> {t('planmagnet.products.title', 'Products')}\n </h1>\n <p className=\"text-sm text-muted-foreground mt-1\">\n {t(\n 'planmagnet.products.subtitle',\n 'Manage your product portfolio and track feature development'\n )}\n </p>\n </div>\n <Button size=\"sm\" onClick={() => navigate('/products/create-product-page')}>\n <Plus className=\"h-4 w-4 mr-1\" />\n {t('planmagnet.products.actions.newProduct', 'New Product')}\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n {[\n {\n label: t('planmagnet.products.metrics.totalProducts', 'Total Products'),\n val: totalRoadmaps,\n icon: Package,\n color: 'text-blue-500',\n },\n {\n label: t('planmagnet.products.metrics.activeFeatures', 'Active Features'),\n val: totalFeatures,\n icon: GitBranch,\n color: 'text-green-500',\n },\n {\n label: t('planmagnet.products.metrics.releases', 'Releases'),\n val: totalReleases,\n icon: Calendar,\n color: 'text-purple-500',\n },\n {\n label: t('planmagnet.products.metrics.roadmaps', 'Roadmaps'),\n val: totalRoadmaps,\n icon: Map,\n color: 'text-orange-500',\n },\n ].map((s) => (\n <Card key={s.label}>\n <CardContent className=\"pt-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm text-muted-foreground\">{s.label}</p>\n <p className=\"text-2xl font-bold\">{s.val}</p>\n </div>\n <s.icon className={`h-8 w-8 ${s.color} opacity-60`} />\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-2\">\n {roadmaps.map((roadmap) => (\n <Card\n key={roadmap.id}\n {...rowLinkProps(\n () => navigate(detailPath('/products/product-detail-page', roadmap.id)),\n roadmap.name\n )}\n >\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-base\">{roadmap.name}</CardTitle>\n <PlanningFocusBadge focus={roadmap.planningFocus} />\n </div>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-sm text-muted-foreground\">\n {roadmap.description ??\n t('planmagnet.products.shared.noDescription', 'No description')}\n </p>\n <div className=\"grid grid-cols-3 gap-2 text-center\">\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">{roadmap.items?.length ?? 0}</p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.items', 'Items')}\n </p>\n </div>\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">\n {roadmap.isPublic\n ? t('planmagnet.products.shared.public', 'Public')\n : t('planmagnet.products.shared.private', 'Private')}\n </p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.visibility', 'Visibility')}\n </p>\n </div>\n <div className=\"rounded border p-2\">\n <p className=\"text-lg font-bold\">{planningFocusLabel(roadmap.planningFocus)}</p>\n <p className=\"text-xs text-muted-foreground\">\n {t('planmagnet.products.shared.planningFocus', 'Planning focus')}\n </p>\n </div>\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span>\n {t('planmagnet.products.shared.owner', 'Owner')}:{' '}\n <PersonName id={roadmap.ownerId} />\n </span>\n <span>\n {t('planmagnet.products.shared.updated', 'Updated')}{' '}\n {new Date(roadmap.updatedAt).toLocaleDateString()}\n </span>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProductsReleaseDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/ProductsReleaseDetailPagePage.tsx"],"names":[],"mappings":"AA6DA,wBAAgB,6BAA6B,4CA+M5C"}
1
+ {"version":3,"file":"ProductsReleaseDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/ProductsReleaseDetailPagePage.tsx"],"names":[],"mappings":"AA8DA,wBAAgB,6BAA6B,4CA2L5C"}