@burdenoff/microfe-planmagnet 2026.927.2 → 2026.927.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.
Files changed (106) 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/FeatureControls.d.ts +26 -0
  9. package/dist/planmagnet/controls/FeatureControls.d.ts.map +1 -0
  10. package/dist/planmagnet/controls/FeatureControls.js +318 -0
  11. package/dist/planmagnet/controls/FeatureControls.js.map +1 -0
  12. package/dist/planmagnet/controls/MilestoneControls.d.ts +17 -0
  13. package/dist/planmagnet/controls/MilestoneControls.d.ts.map +1 -0
  14. package/dist/planmagnet/controls/MilestoneControls.js +200 -0
  15. package/dist/planmagnet/controls/MilestoneControls.js.map +1 -0
  16. package/dist/planmagnet/controls/ObjectiveControls.d.ts +31 -0
  17. package/dist/planmagnet/controls/ObjectiveControls.d.ts.map +1 -0
  18. package/dist/planmagnet/controls/ObjectiveControls.js +296 -0
  19. package/dist/planmagnet/controls/ObjectiveControls.js.map +1 -0
  20. package/dist/planmagnet/controls/Pickers.d.ts +26 -0
  21. package/dist/planmagnet/controls/Pickers.d.ts.map +1 -0
  22. package/dist/planmagnet/controls/Pickers.js +171 -0
  23. package/dist/planmagnet/controls/Pickers.js.map +1 -0
  24. package/dist/planmagnet/controls/ProjectControls.d.ts +13 -0
  25. package/dist/planmagnet/controls/ProjectControls.d.ts.map +1 -0
  26. package/dist/planmagnet/controls/ProjectControls.js +104 -0
  27. package/dist/planmagnet/controls/ProjectControls.js.map +1 -0
  28. package/dist/planmagnet/controls/ReleaseControls.d.ts +14 -0
  29. package/dist/planmagnet/controls/ReleaseControls.d.ts.map +1 -0
  30. package/dist/planmagnet/controls/ReleaseControls.js +108 -0
  31. package/dist/planmagnet/controls/ReleaseControls.js.map +1 -0
  32. package/dist/planmagnet/controls/WorkItemControls.d.ts +52 -0
  33. package/dist/planmagnet/controls/WorkItemControls.d.ts.map +1 -0
  34. package/dist/planmagnet/controls/WorkItemControls.js +198 -0
  35. package/dist/planmagnet/controls/WorkItemControls.js.map +1 -0
  36. package/dist/planmagnet/pages/DocsDocDetailPagePage.d.ts.map +1 -1
  37. package/dist/planmagnet/pages/DocsDocDetailPagePage.js +188 -154
  38. package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +1 -1
  39. package/dist/planmagnet/pages/DocsDocsPagePage.js +4 -4
  40. package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.d.ts.map +1 -1
  41. package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.js +63 -56
  42. package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.js.map +1 -1
  43. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.d.ts.map +1 -1
  44. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js +229 -214
  45. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js.map +1 -1
  46. package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts.map +1 -1
  47. package/dist/planmagnet/pages/ProductsEditProductPagePage.js +142 -114
  48. package/dist/planmagnet/pages/ProductsEditProductPagePage.js.map +1 -1
  49. package/dist/planmagnet/pages/ProductsEditReleasePagePage.d.ts.map +1 -1
  50. package/dist/planmagnet/pages/ProductsEditReleasePagePage.js +134 -105
  51. package/dist/planmagnet/pages/ProductsEditReleasePagePage.js.map +1 -1
  52. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +1 -1
  53. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +102 -108
  54. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +1 -1
  55. package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts.map +1 -1
  56. package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js +119 -94
  57. package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js.map +1 -1
  58. package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +1 -1
  59. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +97 -90
  60. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +1 -1
  61. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +1 -1
  62. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +107 -106
  63. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +1 -1
  64. package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts.map +1 -1
  65. package/dist/planmagnet/pages/ProductsReleasesPagePage.js +2 -0
  66. package/dist/planmagnet/pages/ProductsReleasesPagePage.js.map +1 -1
  67. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +1 -1
  68. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +150 -111
  69. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +1 -1
  70. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts.map +1 -1
  71. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +116 -93
  72. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js.map +1 -1
  73. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts.map +1 -1
  74. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +55 -63
  75. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js.map +1 -1
  76. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +4 -4
  77. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
  78. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +134 -132
  79. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
  80. package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -1
  81. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +6 -5
  82. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -1
  83. package/dist/planmagnet/pages/TasksCreateTaskPagePage.d.ts.map +1 -1
  84. package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +167 -116
  85. package/dist/planmagnet/pages/TasksCreateTaskPagePage.js.map +1 -1
  86. package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts.map +1 -1
  87. package/dist/planmagnet/pages/TasksEditTaskPagePage.js +139 -107
  88. package/dist/planmagnet/pages/TasksEditTaskPagePage.js.map +1 -1
  89. package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
  90. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +205 -158
  91. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
  92. package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -1
  93. package/dist/planmagnet/pages/TasksTasksPagePage.js +1 -0
  94. package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -1
  95. package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +1 -1
  96. package/dist/planmagnet/pages/TeamTeamPagePage.js +1 -1
  97. package/dist/planmagnet/pages/TeamTeamPagePage.js.map +1 -1
  98. package/dist/planmagnet/people/People.js +1 -1
  99. package/dist/planmagnet/roadmaps/RoadmapControls.d.ts +34 -0
  100. package/dist/planmagnet/roadmaps/RoadmapControls.d.ts.map +1 -0
  101. package/dist/planmagnet/roadmaps/RoadmapControls.js +301 -0
  102. package/dist/planmagnet/roadmaps/RoadmapControls.js.map +1 -0
  103. package/dist/planmagnet/sprints/SprintControls.d.ts.map +1 -1
  104. package/dist/planmagnet/sprints/SprintControls.js +194 -215
  105. package/dist/planmagnet/sprints/SprintControls.js.map +1 -1
  106. package/package.json +1 -1
@@ -1,17 +1,19 @@
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 { MarkdownEditor as r } from "../../components/MarkdownEditor.js";
4
- import { throwOnError as i } from "../utils/mutationResult.js";
5
- import { WorkItemComments as a } from "../comments/WorkItemComments.js";
6
- import { WorkItemActivity as o } from "../comments/WorkItemActivity.js";
7
- import { useState as s } from "react";
8
- import { FileText as c, Plus as l, X as u } from "lucide-react";
9
- import { gql as d } from "@apollo/client";
10
- import { useMutation as f, useQuery as p } from "@apollo/client/react";
11
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
12
- import { Badge as g, Button as _, Card as v, CardContent as y, CardHeader as b, CardTitle as x, Input as S } from "@burdenoff/fe-libs/ui";
3
+ import { throwOnError as r } from "../utils/mutationResult.js";
4
+ import { DocSearchSelect as i } from "../controls/Pickers.js";
5
+ import { MarkdownEditor as a } from "../../components/MarkdownEditor.js";
6
+ import { WORK_ITEM_PRIORITIES as o, WORK_ITEM_STATUSES as s, WorkItemAssigneeSelect as c, WorkItemEnumSelect as l, WorkItemHeaderActions as u } from "../controls/WorkItemControls.js";
7
+ import { WorkItemComments as d } from "../comments/WorkItemComments.js";
8
+ import { WorkItemActivity as f } from "../comments/WorkItemActivity.js";
9
+ import { useState as p } from "react";
10
+ import { FileText as m, Link2 as h, Plus as g, X as _ } from "lucide-react";
11
+ import { gql as v } from "@apollo/client";
12
+ import { useMutation as y, useQuery as b } from "@apollo/client/react";
13
+ import { jsx as x, jsxs as S } from "react/jsx-runtime";
14
+ import { Badge as C, Button as w, Card as T, CardContent as E, CardHeader as D, CardTitle as O, Input as k } from "@burdenoff/fe-libs/ui";
13
15
  //#region src/planmagnet/pages/TasksTaskDetailPagePage.tsx
14
- var C = d`
16
+ var A = v`
15
17
  query GetWorkItemDetail($workItemId: ID!) {
16
18
  planmagnetWorkItem(id: $workItemId) {
17
19
  id
@@ -34,7 +36,7 @@ var C = d`
34
36
  updatedAt
35
37
  }
36
38
  }
37
- `, w = d`
39
+ `, j = v`
38
40
  query GetWorkItemDocs($workItemId: ID!) {
39
41
  planmagnetWorkItemDocs(workItemId: $workItemId) {
40
42
  id
@@ -44,308 +46,350 @@ var C = d`
44
46
  updatedAt
45
47
  }
46
48
  }
47
- `, T = d`
49
+ `, M = v`
48
50
  mutation CreateDocForWorkItem($input: PlanmagnetCreateDocInput!) {
49
51
  planmagnetCreateDoc(input: $input) {
50
52
  id
51
53
  }
52
54
  }
53
- `, E = d`
55
+ `, N = v`
54
56
  mutation LinkDocToWorkItem($docId: ID!, $workItemId: ID!) {
55
57
  planmagnetLinkDocToWorkItem(docId: $docId, workItemId: $workItemId) {
56
58
  id
57
59
  }
58
60
  }
59
- `, D = d`
61
+ `, P = v`
60
62
  mutation UnlinkDocFromWorkItem($docId: ID!, $workItemId: ID!) {
61
63
  planmagnetUnlinkDocFromWorkItem(docId: $docId, workItemId: $workItemId)
62
64
  }
63
- `, O = {
64
- LOW: "bg-gray-100 text-gray-800",
65
- MEDIUM: "bg-blue-100 text-blue-800",
66
- HIGH: "bg-orange-100 text-orange-800",
67
- CRITICAL: "bg-red-100 text-red-800"
68
- }, k = {
69
- BACKLOG: "bg-gray-100 text-gray-800",
70
- TODO: "bg-blue-100 text-blue-800",
71
- IN_PROGRESS: "bg-yellow-100 text-yellow-800",
72
- IN_REVIEW: "bg-purple-100 text-purple-800",
73
- DONE: "bg-green-100 text-green-800",
74
- BLOCKED: "bg-red-100 text-red-800",
75
- TESTING: "bg-teal-100 text-teal-800",
76
- CANCELLED: "bg-gray-100 text-gray-800"
77
- }, A = {
65
+ `, F = {
78
66
  DRAFT: "bg-gray-100 text-gray-800",
79
67
  PUBLISHED: "bg-green-100 text-green-800",
80
68
  ARCHIVED: "bg-gray-100 text-gray-500"
81
69
  };
82
- function j({ workItemId: e }) {
83
- let n = t(), [a, o] = s(!1), [d, g] = s(""), [C, O] = s(""), { data: k, loading: j, error: M, refetch: N } = p(w, {
70
+ function I({ workItemId: e }) {
71
+ let n = t(), [o, s] = p(!1), [c, l] = p(!1), [u, d] = p(""), [f, v] = p(""), [C, A] = p(""), { data: I, loading: L, error: R, refetch: z } = b(j, {
84
72
  variables: { workItemId: e },
85
73
  skip: !e
86
- }), [P, { loading: F }] = f(T), [I] = f(E), [L, { loading: R }] = f(D), [z, B] = s(null), V = k?.planmagnetWorkItemDocs ?? [], H = async () => {
87
- if (!(!d.trim() || !C.trim())) {
88
- B(null);
74
+ }), [B, { loading: V }] = y(M), [H, { loading: U }] = y(N), [W, { loading: G }] = y(P), [K, q] = p(null), J = I?.planmagnetWorkItemDocs ?? [], Y = async () => {
75
+ if (!(!f.trim() || !C.trim())) {
76
+ q(null);
89
77
  try {
90
- let t = (await i(P({ variables: { input: {
91
- title: d.trim(),
78
+ let t = (await r(B({ variables: { input: {
79
+ title: f.trim(),
92
80
  content: C.trim()
93
81
  } } }))).data?.planmagnetCreateDoc?.id;
94
- t && await i(I({ variables: {
82
+ t && await r(H({ variables: {
95
83
  docId: t,
96
84
  workItemId: e
97
85
  } }));
98
86
  } catch (e) {
99
- B(e instanceof Error ? e.message : "The doc could not be saved.");
87
+ q(e instanceof Error ? e.message : "The doc could not be saved.");
100
88
  return;
101
89
  }
102
- g(""), O(""), o(!1), N();
90
+ v(""), A(""), s(!1), z();
103
91
  }
104
- }, U = async (t) => {
105
- B(null);
92
+ }, X = async () => {
93
+ if (u) {
94
+ q(null);
95
+ try {
96
+ await r(H({ variables: {
97
+ docId: u,
98
+ workItemId: e
99
+ } }));
100
+ } catch (e) {
101
+ q(e instanceof Error ? e.message : "The doc could not be linked.");
102
+ return;
103
+ }
104
+ d(""), l(!1), z();
105
+ }
106
+ }, Z = async (t) => {
107
+ q(null);
106
108
  try {
107
- await i(L({ variables: {
109
+ await r(W({ variables: {
108
110
  docId: t,
109
111
  workItemId: e
110
112
  } }));
111
113
  } catch (e) {
112
- B(e instanceof Error ? e.message : "The doc could not be unlinked.");
114
+ q(e instanceof Error ? e.message : "The doc could not be unlinked.");
113
115
  return;
114
116
  }
115
- N();
117
+ z();
116
118
  };
117
- return /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ h(b, {
119
+ return /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ S(D, {
118
120
  className: "flex flex-row items-center justify-between space-y-0",
119
- children: [/* @__PURE__ */ m(x, { children: "Linked Docs" }), !a && /* @__PURE__ */ h(_, {
120
- size: "sm",
121
- variant: "outline",
122
- onClick: () => o(!0),
123
- children: [/* @__PURE__ */ m(l, { className: "h-4 w-4 mr-1" }), "New Doc"]
121
+ children: [/* @__PURE__ */ x(O, { children: "Linked Docs" }), !o && !c && /* @__PURE__ */ S("div", {
122
+ className: "flex gap-2",
123
+ children: [/* @__PURE__ */ S(w, {
124
+ size: "sm",
125
+ variant: "outline",
126
+ onClick: () => l(!0),
127
+ children: [/* @__PURE__ */ x(h, { className: "h-4 w-4 mr-1" }), "Link existing doc"]
128
+ }), /* @__PURE__ */ S(w, {
129
+ size: "sm",
130
+ variant: "outline",
131
+ onClick: () => s(!0),
132
+ children: [/* @__PURE__ */ x(g, { className: "h-4 w-4 mr-1" }), "New Doc"]
133
+ })]
124
134
  })]
125
- }), /* @__PURE__ */ h(y, {
135
+ }), /* @__PURE__ */ S(E, {
126
136
  className: "space-y-4",
127
137
  children: [
128
- a && /* @__PURE__ */ h("div", {
138
+ c && /* @__PURE__ */ S("div", {
139
+ className: "space-y-2 rounded-md border border-input p-3",
140
+ children: [/* @__PURE__ */ x(i, {
141
+ id: "task-link-doc",
142
+ value: u,
143
+ onChange: d,
144
+ exclude: J.map((e) => e.id)
145
+ }), /* @__PURE__ */ S("div", {
146
+ className: "flex gap-2 justify-end",
147
+ children: [/* @__PURE__ */ x(w, {
148
+ size: "sm",
149
+ variant: "ghost",
150
+ onClick: () => {
151
+ l(!1), d("");
152
+ },
153
+ children: "Cancel"
154
+ }), /* @__PURE__ */ x(w, {
155
+ size: "sm",
156
+ disabled: !u || U,
157
+ onClick: X,
158
+ children: U ? "Linking..." : "Link"
159
+ })]
160
+ })]
161
+ }),
162
+ o && /* @__PURE__ */ S("div", {
129
163
  className: "space-y-3 rounded-md border border-input p-3",
130
164
  children: [
131
- /* @__PURE__ */ m(S, {
165
+ /* @__PURE__ */ x(k, {
132
166
  placeholder: "Doc title",
133
- value: d,
134
- onChange: (e) => g(e.target.value)
167
+ value: f,
168
+ onChange: (e) => v(e.target.value)
135
169
  }),
136
- /* @__PURE__ */ m(r, {
170
+ /* @__PURE__ */ x(a, {
137
171
  value: C,
138
- onChange: O,
172
+ onChange: A,
139
173
  placeholder: "Write the spec/doc content...",
140
174
  minHeight: 140
141
175
  }),
142
- /* @__PURE__ */ h("div", {
176
+ /* @__PURE__ */ S("div", {
143
177
  className: "flex gap-2 justify-end",
144
- children: [/* @__PURE__ */ m(_, {
178
+ children: [/* @__PURE__ */ x(w, {
145
179
  size: "sm",
146
180
  variant: "ghost",
147
181
  onClick: () => {
148
- o(!1), g(""), O("");
182
+ s(!1), v(""), A("");
149
183
  },
150
184
  children: "Cancel"
151
- }), /* @__PURE__ */ m(_, {
185
+ }), /* @__PURE__ */ x(w, {
152
186
  size: "sm",
153
- disabled: F || !d.trim() || !C.trim(),
154
- onClick: H,
155
- children: F ? "Creating..." : "Create & Link"
187
+ disabled: V || !f.trim() || !C.trim(),
188
+ onClick: Y,
189
+ children: V ? "Creating..." : "Create & Link"
156
190
  })]
157
191
  })
158
192
  ]
159
193
  }),
160
- j && /* @__PURE__ */ m("p", {
194
+ L && /* @__PURE__ */ x("p", {
161
195
  className: "text-sm text-muted-foreground",
162
196
  children: "Loading docs..."
163
197
  }),
164
- M && /* @__PURE__ */ h("p", {
198
+ R && /* @__PURE__ */ S("p", {
165
199
  className: "text-sm text-red-500",
166
- children: ["Error: ", M.message]
200
+ children: ["Error: ", R.message]
167
201
  }),
168
- z && /* @__PURE__ */ m("p", {
202
+ K && /* @__PURE__ */ x("p", {
169
203
  role: "alert",
170
204
  className: "text-sm text-destructive",
171
- children: z
205
+ children: K
172
206
  }),
173
- !j && !M && V.length === 0 && !a && /* @__PURE__ */ m("p", {
207
+ !L && !R && J.length === 0 && !o && !c && /* @__PURE__ */ x("p", {
174
208
  className: "text-sm text-muted-foreground",
175
209
  children: "No docs linked to this work item yet."
176
210
  }),
177
- V.map((e) => /* @__PURE__ */ h("div", {
211
+ J.map((e) => /* @__PURE__ */ S("div", {
178
212
  className: "flex items-center justify-between gap-3 rounded-md border border-input p-3",
179
- children: [/* @__PURE__ */ h("div", {
213
+ children: [/* @__PURE__ */ S("div", {
180
214
  className: "flex items-center gap-2 min-w-0",
181
- children: [/* @__PURE__ */ m(c, { className: "h-4 w-4 text-muted-foreground shrink-0" }), /* @__PURE__ */ h("div", {
215
+ children: [/* @__PURE__ */ x(m, { className: "h-4 w-4 text-muted-foreground shrink-0" }), /* @__PURE__ */ S("div", {
182
216
  className: "min-w-0",
183
- children: [/* @__PURE__ */ m("button", {
217
+ children: [/* @__PURE__ */ x("button", {
184
218
  type: "button",
185
219
  className: "block max-w-full truncate text-left text-sm font-medium hover:underline",
186
220
  onClick: () => n(`/docs/doc-detail-page?docId=${encodeURIComponent(e.id)}`),
187
221
  children: e.title
188
- }), /* @__PURE__ */ h("p", {
222
+ }), /* @__PURE__ */ S("p", {
189
223
  className: "text-xs text-muted-foreground",
190
224
  children: ["v", e.version]
191
225
  })]
192
226
  })]
193
- }), /* @__PURE__ */ h("div", {
227
+ }), /* @__PURE__ */ S("div", {
194
228
  className: "flex items-center gap-2 shrink-0",
195
- children: [/* @__PURE__ */ m("span", {
196
- className: `text-xs px-2 py-0.5 rounded-full capitalize ${A[e.status] ?? ""}`,
229
+ children: [/* @__PURE__ */ x("span", {
230
+ className: `text-xs px-2 py-0.5 rounded-full capitalize ${F[e.status] ?? ""}`,
197
231
  children: e.status.toLowerCase()
198
- }), /* @__PURE__ */ m(_, {
232
+ }), /* @__PURE__ */ x(w, {
199
233
  size: "icon",
200
234
  variant: "ghost",
201
- disabled: R,
202
- onClick: () => U(e.id),
235
+ disabled: G,
236
+ onClick: () => Z(e.id),
203
237
  "aria-label": `Unlink ${e.title}`,
204
- children: /* @__PURE__ */ m(u, { className: "h-4 w-4" })
238
+ children: /* @__PURE__ */ x(_, { className: "h-4 w-4" })
205
239
  })]
206
240
  })]
207
241
  }, e.id))
208
242
  ]
209
243
  })] });
210
244
  }
211
- function M() {
212
- let { workspaceId: t } = e(), r = new URLSearchParams(window.location.search).get("taskId") ?? "", { data: i, loading: s, error: c } = p(C, {
245
+ function L() {
246
+ let { workspaceId: t } = e(), r = new URLSearchParams(window.location.search).get("taskId") ?? "", { data: i, loading: a, error: p } = b(A, {
213
247
  variables: { workItemId: r },
214
248
  skip: !t || !r
215
249
  });
216
- if (s && !i) return /* @__PURE__ */ m("div", {
250
+ if (a && !i) return /* @__PURE__ */ x("div", {
217
251
  className: "flex items-center justify-center p-12",
218
- children: /* @__PURE__ */ m("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
252
+ children: /* @__PURE__ */ x("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
219
253
  });
220
- if (c) return /* @__PURE__ */ h("div", {
254
+ if (p) return /* @__PURE__ */ S("div", {
221
255
  className: "p-6 text-red-500",
222
- children: ["Error: ", c.message]
256
+ children: ["Error: ", p.message]
223
257
  });
224
- let l = i?.planmagnetWorkItem;
225
- if (!l) return /* @__PURE__ */ m("div", {
226
- className: "p-6 text-muted-foreground",
227
- children: "Task not found."
228
- });
229
- let u = l.status.toLowerCase().replace("_", " ");
230
- return /* @__PURE__ */ h("div", {
258
+ let m = i?.planmagnetWorkItem;
259
+ return m ? /* @__PURE__ */ S("div", {
231
260
  className: "space-y-6 p-6",
232
- children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h1", {
233
- className: "text-2xl font-semibold",
234
- children: l.title
235
- }), /* @__PURE__ */ h("p", {
236
- className: "text-sm text-muted-foreground",
237
- children: [
238
- l.key,
239
- " · ",
240
- l.type.toLowerCase()
241
- ]
242
- })] }), /* @__PURE__ */ h("div", {
261
+ children: [/* @__PURE__ */ S("div", {
262
+ className: "flex items-start justify-between gap-4",
263
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h1", {
264
+ className: "text-2xl font-semibold",
265
+ children: m.title
266
+ }), /* @__PURE__ */ S("p", {
267
+ className: "text-sm text-muted-foreground",
268
+ children: [
269
+ m.key,
270
+ " · ",
271
+ m.type.toLowerCase()
272
+ ]
273
+ })] }), /* @__PURE__ */ x(u, {
274
+ workItemId: m.id,
275
+ title: m.title
276
+ })]
277
+ }), /* @__PURE__ */ S("div", {
243
278
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
244
- children: [/* @__PURE__ */ h("div", {
279
+ children: [/* @__PURE__ */ S("div", {
245
280
  className: "lg:col-span-2 space-y-6",
246
281
  children: [
247
- /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ m(b, { children: /* @__PURE__ */ m(x, { children: "Description" }) }), /* @__PURE__ */ m(y, { children: /* @__PURE__ */ m("p", {
282
+ /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ x(O, { children: "Description" }) }), /* @__PURE__ */ x(E, { children: /* @__PURE__ */ x("p", {
248
283
  className: "text-sm",
249
- children: l.description ?? "No description provided."
284
+ children: m.description ?? "No description provided."
250
285
  }) })] }),
251
- /* @__PURE__ */ m(j, { workItemId: l.id }),
252
- /* @__PURE__ */ m(a, { workItemId: l.id }),
253
- /* @__PURE__ */ m(o, { workItemId: l.id })
286
+ /* @__PURE__ */ x(I, { workItemId: m.id }),
287
+ /* @__PURE__ */ x(d, { workItemId: m.id }),
288
+ /* @__PURE__ */ x(f, { workItemId: m.id })
254
289
  ]
255
- }), /* @__PURE__ */ m("div", {
290
+ }), /* @__PURE__ */ x("div", {
256
291
  className: "space-y-6",
257
- children: /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ m(b, { children: /* @__PURE__ */ m(x, { children: "Details" }) }), /* @__PURE__ */ h(y, {
292
+ children: /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ x(O, { children: "Details" }) }), /* @__PURE__ */ S(E, {
258
293
  className: "space-y-3 text-sm",
259
294
  children: [
260
- /* @__PURE__ */ h("div", {
261
- className: "flex justify-between",
262
- children: [/* @__PURE__ */ m("span", {
295
+ /* @__PURE__ */ S("div", {
296
+ className: "flex items-start justify-between gap-2",
297
+ children: [/* @__PURE__ */ x("span", {
263
298
  className: "text-muted-foreground",
264
299
  children: "Status"
265
- }), /* @__PURE__ */ m("span", {
266
- className: `text-xs px-2 py-0.5 rounded-full capitalize ${k[l.status] ?? ""}`,
267
- children: u
300
+ }), /* @__PURE__ */ x(l, {
301
+ workItemId: m.id,
302
+ field: "status",
303
+ value: m.status,
304
+ options: s,
305
+ label: "Status"
268
306
  })]
269
307
  }),
270
- /* @__PURE__ */ h("div", {
271
- className: "flex justify-between",
272
- children: [/* @__PURE__ */ m("span", {
308
+ /* @__PURE__ */ S("div", {
309
+ className: "flex items-start justify-between gap-2",
310
+ children: [/* @__PURE__ */ x("span", {
273
311
  className: "text-muted-foreground",
274
312
  children: "Priority"
275
- }), /* @__PURE__ */ m("span", {
276
- className: `text-xs px-2 py-0.5 rounded-full capitalize ${O[l.priority] ?? ""}`,
277
- children: l.priority.toLowerCase()
313
+ }), /* @__PURE__ */ x(l, {
314
+ workItemId: m.id,
315
+ field: "priority",
316
+ value: m.priority,
317
+ options: o,
318
+ label: "Priority"
278
319
  })]
279
320
  }),
280
- /* @__PURE__ */ h("div", {
321
+ /* @__PURE__ */ S("div", {
281
322
  className: "flex justify-between",
282
- children: [/* @__PURE__ */ m("span", {
323
+ children: [/* @__PURE__ */ x("span", {
283
324
  className: "text-muted-foreground",
284
325
  children: "Type"
285
- }), /* @__PURE__ */ m(g, {
326
+ }), /* @__PURE__ */ x(C, {
286
327
  variant: "outline",
287
328
  className: "capitalize",
288
- children: l.type.toLowerCase()
329
+ children: m.type.toLowerCase()
289
330
  })]
290
331
  }),
291
- /* @__PURE__ */ h("div", {
332
+ /* @__PURE__ */ S("div", {
292
333
  className: "flex justify-between",
293
- children: [/* @__PURE__ */ m("span", {
334
+ children: [/* @__PURE__ */ x("span", {
294
335
  className: "text-muted-foreground",
295
336
  children: "Story Points"
296
- }), /* @__PURE__ */ m("span", {
337
+ }), /* @__PURE__ */ x("span", {
297
338
  className: "font-medium",
298
- children: l.storyPoints ?? 0
339
+ children: m.storyPoints ?? 0
299
340
  })]
300
341
  }),
301
- /* @__PURE__ */ h("div", {
302
- className: "flex justify-between",
303
- children: [/* @__PURE__ */ m("span", {
342
+ /* @__PURE__ */ S("div", {
343
+ className: "flex items-start justify-between gap-2",
344
+ children: [/* @__PURE__ */ x("span", {
304
345
  className: "text-muted-foreground",
305
346
  children: "Assignee"
306
- }), l.assigneeId ? /* @__PURE__ */ m(n, { id: l.assigneeId }) : /* @__PURE__ */ m("span", { children: "Unassigned" })]
347
+ }), /* @__PURE__ */ x(c, {
348
+ workItemId: m.id,
349
+ assigneeId: m.assigneeId
350
+ })]
307
351
  }),
308
- /* @__PURE__ */ h("div", {
352
+ /* @__PURE__ */ S("div", {
309
353
  className: "flex justify-between",
310
- children: [/* @__PURE__ */ m("span", {
354
+ children: [/* @__PURE__ */ x("span", {
311
355
  className: "text-muted-foreground",
312
356
  children: "Reporter"
313
- }), /* @__PURE__ */ m(n, { id: l.reporterId ?? l.createdBy })]
357
+ }), /* @__PURE__ */ x(n, { id: m.reporterId ?? m.createdBy })]
314
358
  }),
315
- /* @__PURE__ */ h("div", {
359
+ /* @__PURE__ */ S("div", {
316
360
  className: "flex justify-between",
317
- children: [/* @__PURE__ */ m("span", {
361
+ children: [/* @__PURE__ */ x("span", {
318
362
  className: "text-muted-foreground",
319
363
  children: "Key"
320
- }), /* @__PURE__ */ m("span", { children: l.key })]
364
+ }), /* @__PURE__ */ x("span", { children: m.key })]
321
365
  }),
322
- /* @__PURE__ */ h("div", {
366
+ /* @__PURE__ */ S("div", {
323
367
  className: "flex justify-between",
324
- children: [/* @__PURE__ */ m("span", {
368
+ children: [/* @__PURE__ */ x("span", {
325
369
  className: "text-muted-foreground",
326
370
  children: "Due Date"
327
- }), /* @__PURE__ */ m("span", { children: l.dueDate ?? "Not set" })]
371
+ }), /* @__PURE__ */ x("span", { children: m.dueDate ?? "Not set" })]
328
372
  }),
329
- /* @__PURE__ */ h("div", {
373
+ /* @__PURE__ */ S("div", {
330
374
  className: "flex justify-between",
331
- children: [/* @__PURE__ */ m("span", {
375
+ children: [/* @__PURE__ */ x("span", {
332
376
  className: "text-muted-foreground",
333
377
  children: "Created"
334
- }), /* @__PURE__ */ m("span", { children: l.createdAt })]
378
+ }), /* @__PURE__ */ x("span", { children: m.createdAt })]
335
379
  }),
336
- /* @__PURE__ */ h("div", {
380
+ /* @__PURE__ */ S("div", {
337
381
  className: "flex justify-between",
338
- children: [/* @__PURE__ */ m("span", {
382
+ children: [/* @__PURE__ */ x("span", {
339
383
  className: "text-muted-foreground",
340
384
  children: "Updated"
341
- }), /* @__PURE__ */ m("span", { children: l.updatedAt })]
385
+ }), /* @__PURE__ */ x("span", { children: m.updatedAt })]
342
386
  }),
343
- /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("span", {
387
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("span", {
344
388
  className: "text-muted-foreground text-xs",
345
389
  children: "Labels"
346
- }), /* @__PURE__ */ m("div", {
390
+ }), /* @__PURE__ */ x("div", {
347
391
  className: "flex gap-1 mt-1 flex-wrap",
348
- children: (l.labels ?? []).map((e) => /* @__PURE__ */ m("span", {
392
+ children: (m.labels ?? []).map((e) => /* @__PURE__ */ x("span", {
349
393
  className: "text-xs px-2 py-0.5 rounded bg-muted",
350
394
  children: e
351
395
  }, e))
@@ -354,9 +398,12 @@ function M() {
354
398
  })] })
355
399
  })]
356
400
  })]
401
+ }) : /* @__PURE__ */ x("div", {
402
+ className: "p-6 text-muted-foreground",
403
+ children: "Task not found."
357
404
  });
358
405
  }
359
406
  //#endregion
360
- export { M as TasksTaskDetailPagePage };
407
+ export { L as TasksTaskDetailPagePage };
361
408
 
362
409
  //# sourceMappingURL=TasksTaskDetailPagePage.js.map