@burdenoff/microfe-planmagnet 2026.1001.1 → 2026.1001.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 (122) hide show
  1. package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
  2. package/dist/planmagnet/PlanMagnetRoot.js +163 -150
  3. package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
  4. package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
  5. package/dist/planmagnet/PlanMagnetRoutes.js +124 -108
  6. package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
  7. package/dist/planmagnet/comments/CommentThread.js +36 -36
  8. package/dist/planmagnet/comments/RoadmapComments.js +21 -21
  9. package/dist/planmagnet/controls/AutomationRuleControls.js +24 -24
  10. package/dist/planmagnet/controls/FeatureControls.js +60 -60
  11. package/dist/planmagnet/controls/MilestoneControls.d.ts +2 -0
  12. package/dist/planmagnet/controls/MilestoneControls.d.ts.map +1 -1
  13. package/dist/planmagnet/controls/MilestoneControls.js +89 -72
  14. package/dist/planmagnet/controls/MilestoneControls.js.map +1 -1
  15. package/dist/planmagnet/controls/SyncControls.js +59 -59
  16. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.js +15 -15
  17. package/dist/planmagnet/docs/DocSuggestionsPanel.js +12 -12
  18. package/dist/planmagnet/docs/DocVersionCompare.js +3 -3
  19. package/dist/planmagnet/forecast/DeliveryForecastCard.d.ts +12 -0
  20. package/dist/planmagnet/forecast/DeliveryForecastCard.d.ts.map +1 -0
  21. package/dist/planmagnet/forecast/DeliveryForecastCard.js +208 -0
  22. package/dist/planmagnet/forecast/DeliveryForecastCard.js.map +1 -0
  23. package/dist/planmagnet/forecast/ProjectOutlookCard.d.ts +5 -0
  24. package/dist/planmagnet/forecast/ProjectOutlookCard.d.ts.map +1 -0
  25. package/dist/planmagnet/forecast/ProjectOutlookCard.js +190 -0
  26. package/dist/planmagnet/forecast/ProjectOutlookCard.js.map +1 -0
  27. package/dist/planmagnet/forecast/ProjectRiskSummaryCard.d.ts +5 -0
  28. package/dist/planmagnet/forecast/ProjectRiskSummaryCard.d.ts.map +1 -0
  29. package/dist/planmagnet/forecast/ProjectRiskSummaryCard.js +99 -0
  30. package/dist/planmagnet/forecast/ProjectRiskSummaryCard.js.map +1 -0
  31. package/dist/planmagnet/forecast/ResourceForecastCard.d.ts +8 -0
  32. package/dist/planmagnet/forecast/ResourceForecastCard.d.ts.map +1 -0
  33. package/dist/planmagnet/forecast/ResourceForecastCard.js +185 -0
  34. package/dist/planmagnet/forecast/ResourceForecastCard.js.map +1 -0
  35. package/dist/planmagnet/forecast/riskFlags.d.ts +35 -0
  36. package/dist/planmagnet/forecast/riskFlags.d.ts.map +1 -0
  37. package/dist/planmagnet/forecast/riskFlags.js +37 -0
  38. package/dist/planmagnet/forecast/riskFlags.js.map +1 -0
  39. package/dist/planmagnet/meetings/MeetingActionItemsPanel.d.ts +17 -0
  40. package/dist/planmagnet/meetings/MeetingActionItemsPanel.d.ts.map +1 -0
  41. package/dist/planmagnet/meetings/MeetingActionItemsPanel.js +218 -0
  42. package/dist/planmagnet/meetings/MeetingActionItemsPanel.js.map +1 -0
  43. package/dist/planmagnet/meetings/MeetingsCard.d.ts +7 -0
  44. package/dist/planmagnet/meetings/MeetingsCard.d.ts.map +1 -0
  45. package/dist/planmagnet/meetings/MeetingsCard.js +108 -0
  46. package/dist/planmagnet/meetings/MeetingsCard.js.map +1 -0
  47. package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.d.ts +9 -0
  48. package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.d.ts.map +1 -0
  49. package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.js +232 -0
  50. package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.js.map +1 -0
  51. package/dist/planmagnet/meetings/ScheduleMeetingDialog.d.ts +19 -0
  52. package/dist/planmagnet/meetings/ScheduleMeetingDialog.d.ts.map +1 -0
  53. package/dist/planmagnet/meetings/ScheduleMeetingDialog.js +226 -0
  54. package/dist/planmagnet/meetings/ScheduleMeetingDialog.js.map +1 -0
  55. package/dist/planmagnet/meetings/UnlinkMeetingDialog.d.ts +14 -0
  56. package/dist/planmagnet/meetings/UnlinkMeetingDialog.d.ts.map +1 -0
  57. package/dist/planmagnet/meetings/UnlinkMeetingDialog.js +81 -0
  58. package/dist/planmagnet/meetings/UnlinkMeetingDialog.js.map +1 -0
  59. package/dist/planmagnet/meetings/meetingActions.d.ts +57 -0
  60. package/dist/planmagnet/meetings/meetingActions.d.ts.map +1 -0
  61. package/dist/planmagnet/meetings/meetingActions.js +51 -0
  62. package/dist/planmagnet/meetings/meetingActions.js.map +1 -0
  63. package/dist/planmagnet/meetings/meetingGraphql.d.ts +29 -0
  64. package/dist/planmagnet/meetings/meetingGraphql.d.ts.map +1 -0
  65. package/dist/planmagnet/meetings/meetingGraphql.js +166 -0
  66. package/dist/planmagnet/meetings/meetingGraphql.js.map +1 -0
  67. package/dist/planmagnet/meetings/meetingModel.d.ts +74 -0
  68. package/dist/planmagnet/meetings/meetingModel.d.ts.map +1 -0
  69. package/dist/planmagnet/meetings/meetingModel.js +88 -0
  70. package/dist/planmagnet/meetings/meetingModel.js.map +1 -0
  71. package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -1
  72. package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js +216 -182
  73. package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  74. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js +11 -11
  75. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js +4 -4
  76. package/dist/planmagnet/pages/DocsDocDetailPagePage.js +163 -163
  77. package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +1 -1
  78. package/dist/planmagnet/pages/IntegrationsNewSyncPagePage.js +165 -165
  79. package/dist/planmagnet/pages/IntegrationsNewSyncPagePage.js.map +1 -1
  80. package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.d.ts +2 -0
  81. package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.d.ts.map +1 -0
  82. package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.js +197 -0
  83. package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.js.map +1 -0
  84. package/dist/planmagnet/pages/MeetingsMeetingsPagePage.d.ts +2 -0
  85. package/dist/planmagnet/pages/MeetingsMeetingsPagePage.d.ts.map +1 -0
  86. package/dist/planmagnet/pages/MeetingsMeetingsPagePage.js +173 -0
  87. package/dist/planmagnet/pages/MeetingsMeetingsPagePage.js.map +1 -0
  88. package/dist/planmagnet/pages/ProjectsAtRiskPagePage.d.ts +2 -0
  89. package/dist/planmagnet/pages/ProjectsAtRiskPagePage.d.ts.map +1 -0
  90. package/dist/planmagnet/pages/ProjectsAtRiskPagePage.js +234 -0
  91. package/dist/planmagnet/pages/ProjectsAtRiskPagePage.js.map +1 -0
  92. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts.map +1 -1
  93. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js +73 -52
  94. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js.map +1 -1
  95. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
  96. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +205 -190
  97. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
  98. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
  99. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +211 -182
  100. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
  101. package/dist/planmagnet/pages/ReportsReportPagePage.js +22 -22
  102. package/dist/planmagnet/pages/ReportsReportPagePage.js.map +1 -1
  103. package/dist/planmagnet/pages/ReportsReportsPagePage.js +21 -21
  104. package/dist/planmagnet/pages/TeamTeamDetailPagePage.d.ts.map +1 -1
  105. package/dist/planmagnet/pages/TeamTeamDetailPagePage.js +88 -83
  106. package/dist/planmagnet/pages/TeamTeamDetailPagePage.js.map +1 -1
  107. package/dist/planmagnet/pages/analytics/SprintDeliveryCards.d.ts.map +1 -1
  108. package/dist/planmagnet/pages/analytics/SprintDeliveryCards.js +139 -112
  109. package/dist/planmagnet/pages/analytics/SprintDeliveryCards.js.map +1 -1
  110. package/dist/planmagnet/pages/analytics/StatusFlowCard.js +21 -21
  111. package/dist/planmagnet/product/ProductControls.js +91 -91
  112. package/dist/planmagnet/reports/SchedulesPanel.js +33 -33
  113. package/dist/planmagnet/reports/ShareDialog.js +76 -76
  114. package/dist/planmagnet/reports/ShareDialog.js.map +1 -1
  115. package/dist/planmagnet/reports/sharedReportRoute.d.ts +3 -2
  116. package/dist/planmagnet/reports/sharedReportRoute.d.ts.map +1 -1
  117. package/dist/planmagnet/reports/sharedReportRoute.js.map +1 -1
  118. package/dist/planmagnet/roadmaps/RoadmapControls.js +60 -60
  119. package/dist/planmagnet/roadmaps/RoadmapNowNextLater.js +30 -30
  120. package/dist/planmagnet/roadmaps/RoadmapReviewPanel.js +21 -21
  121. package/dist/planmagnet/roadmaps/RoadmapVersionsPanel.js +22 -22
  122. package/package.json +1 -1
@@ -1,26 +1,26 @@
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 { LEAVES_PAGE_CONTEXT as ee, throwOnError as r } from "../utils/mutationResult.js";
4
- import { isForbidden as i, mutationErrorMessage as a } from "../utils/graphqlErrors.js";
5
- import { WorkItemSearchSelect as o } from "../controls/Pickers.js";
6
- import { MarkdownEditor as s } from "../../components/MarkdownEditor.js";
7
- import { DOC_STATUSES as te, DocStatusBadge as ne } from "../docs/DocStatusBadge.js";
8
- import { PresenceAvatars as re } from "../presence/PresenceAvatars.js";
9
- import { DocComments as ie } from "../comments/TargetComments.js";
10
- import { usePresence as ae } from "../hooks/usePresence.js";
11
- import { DocSuggestionsPanel as oe } from "../docs/DocSuggestionsPanel.js";
12
- import { DocVersionCompare as se } from "../docs/DocVersionCompare.js";
13
- import { useEffect as c, useRef as ce, useState as l } from "react";
14
- import { ArrowLeft as le, History as ue, Link2 as de, Lock as u, X as fe } from "lucide-react";
15
- import { useSearchParams as pe } from "react-router";
16
- import { gql as d } from "@apollo/client";
17
- import { useApolloClient as me, useMutation as f, useQuery as he, useSubscription as ge } from "@apollo/client/react";
18
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
19
- import { AlertDialog as _e, AlertDialogAction as h, AlertDialogCancel as g, AlertDialogContent as _, AlertDialogDescription as ve, AlertDialogFooter as ye, AlertDialogHeader as be, AlertDialogTitle as xe, AlertDialogTrigger as Se, Button as v, Card as y, CardContent as b, CardHeader as x, CardTitle as S, Input as C } from "@burdenoff/fe-libs/ui";
20
- import { clearGraphqlFetchResponseCache as w } from "@burdenoff/fe-libs/shared/graphql";
3
+ import { isForbidden as r, mutationErrorMessage as i } from "../utils/graphqlErrors.js";
4
+ import { LEAVES_PAGE_CONTEXT as a, throwOnError as o } from "../utils/mutationResult.js";
5
+ import { WorkItemSearchSelect as s } from "../controls/Pickers.js";
6
+ import { MarkdownEditor as c } from "../../components/MarkdownEditor.js";
7
+ import { DOC_STATUSES as ee, DocStatusBadge as te } from "../docs/DocStatusBadge.js";
8
+ import { PresenceAvatars as ne } from "../presence/PresenceAvatars.js";
9
+ import { DocComments as re } from "../comments/TargetComments.js";
10
+ import { usePresence as ie } from "../hooks/usePresence.js";
11
+ import { DocSuggestionsPanel as ae } from "../docs/DocSuggestionsPanel.js";
12
+ import { DocVersionCompare as oe } from "../docs/DocVersionCompare.js";
13
+ import { useEffect as l, useRef as se, useState as u } from "react";
14
+ import { ArrowLeft as ce, History as le, Link2 as ue, Lock as d, X as de } from "lucide-react";
15
+ import { useSearchParams as fe } from "react-router";
16
+ import { gql as f } from "@apollo/client";
17
+ import { useApolloClient as pe, useMutation as p, useQuery as me, useSubscription as he } from "@apollo/client/react";
18
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
19
+ import { AlertDialog as ge, AlertDialogAction as g, AlertDialogCancel as _, AlertDialogContent as v, AlertDialogDescription as _e, AlertDialogFooter as ve, AlertDialogHeader as ye, AlertDialogTitle as be, AlertDialogTrigger as xe, Button as y, Card as b, CardContent as x, CardHeader as S, CardTitle as C, Input as w } from "@burdenoff/fe-libs/ui";
20
+ import { clearGraphqlFetchResponseCache as Se } from "@burdenoff/fe-libs/shared/graphql";
21
21
  import { Markdown as T } from "@burdenoff/fe-libs/shared/components";
22
22
  //#region src/planmagnet/pages/DocsDocDetailPagePage.tsx
23
- var E = d`
23
+ var E = f`
24
24
  query DocDetail($id: ID!) {
25
25
  planmagnetDoc(id: $id) {
26
26
  id
@@ -53,7 +53,7 @@ var E = d`
53
53
  }
54
54
  }
55
55
  }
56
- `, Ce = d`
56
+ `, Ce = f`
57
57
  mutation DocUpdate($id: ID!, $input: PlanmagnetUpdateDocInput!) {
58
58
  planmagnetUpdateDoc(id: $id, input: $input) {
59
59
  id
@@ -61,28 +61,28 @@ var E = d`
61
61
  status
62
62
  }
63
63
  }
64
- `, we = d`
64
+ `, we = f`
65
65
  mutation DocRevert($id: ID!, $toVersion: Int!, $expectedVersion: Int) {
66
66
  planmagnetRevertDoc(id: $id, toVersion: $toVersion, expectedVersion: $expectedVersion) {
67
67
  id
68
68
  version
69
69
  }
70
70
  }
71
- `, Te = d`
71
+ `, Te = f`
72
72
  mutation DocDelete($id: ID!) {
73
73
  planmagnetDeleteDoc(id: $id)
74
74
  }
75
- `, Ee = d`
75
+ `, Ee = f`
76
76
  mutation DocLinkWorkItem($docId: ID!, $workItemId: ID!) {
77
77
  planmagnetLinkDocToWorkItem(docId: $docId, workItemId: $workItemId) {
78
78
  id
79
79
  }
80
80
  }
81
- `, De = d`
81
+ `, De = f`
82
82
  mutation DocUnlinkWorkItem($docId: ID!, $workItemId: ID!) {
83
83
  planmagnetUnlinkDocFromWorkItem(docId: $docId, workItemId: $workItemId)
84
84
  }
85
- `, Oe = d`
85
+ `, Oe = f`
86
86
  mutation DocCheckout($docId: ID!) {
87
87
  planmagnetCheckoutDoc(docId: $docId) {
88
88
  id
@@ -93,7 +93,7 @@ var E = d`
93
93
  }
94
94
  }
95
95
  }
96
- `, D = d`
96
+ `, D = f`
97
97
  mutation DocReleaseLock($docId: ID!) {
98
98
  planmagnetReleaseDoc(docId: $docId) {
99
99
  id
@@ -104,7 +104,7 @@ var E = d`
104
104
  }
105
105
  }
106
106
  }
107
- `, ke = d`
107
+ `, ke = f`
108
108
  mutation DocBreakLock($docId: ID!) {
109
109
  planmagnetBreakDocLock(docId: $docId) {
110
110
  id
@@ -115,14 +115,14 @@ var E = d`
115
115
  }
116
116
  }
117
117
  }
118
- `, Ae = d`
118
+ `, Ae = f`
119
119
  mutation DocSuggestEdit($input: PlanmagnetSuggestDocEditInput!) {
120
120
  planmagnetSuggestDocEdit(input: $input) {
121
121
  id
122
122
  status
123
123
  }
124
124
  }
125
- `, je = d`
125
+ `, je = f`
126
126
  subscription PlanmagnetOnDocUpdatedFeed($docId: ID!, $workspaceId: ID!) {
127
127
  planmagnetOnDocUpdated(docId: $docId, workspaceId: $workspaceId) {
128
128
  id
@@ -133,97 +133,97 @@ var E = d`
133
133
  }
134
134
  }
135
135
  `, Me = (e, t) => e instanceof Error ? e.message : t, O = (e) => new Date(e).toLocaleString();
136
- function Ne({ lock: e, currentUserId: t, now: ee, onBreakLock: r, breaking: i }) {
137
- let a = e.holderId === t, o = Math.max(0, Math.round((new Date(e.expiresAt).getTime() - ee) / 6e4)), s = new Date(e.expiresAt).toLocaleTimeString([], {
136
+ function Ne({ lock: e, currentUserId: t, now: r, onBreakLock: i, breaking: a }) {
137
+ let o = e.holderId === t, s = Math.max(0, Math.round((new Date(e.expiresAt).getTime() - r) / 6e4)), c = new Date(e.expiresAt).toLocaleTimeString([], {
138
138
  hour: "2-digit",
139
139
  minute: "2-digit"
140
140
  });
141
- return a ? /* @__PURE__ */ m("p", {
141
+ return o ? /* @__PURE__ */ h("p", {
142
142
  role: "status",
143
143
  "data-testid": "doc-lock-status",
144
144
  className: "flex items-center gap-1.5 text-sm text-status-warning-text",
145
145
  children: [
146
- /* @__PURE__ */ p(u, {
146
+ /* @__PURE__ */ m(d, {
147
147
  className: "h-3.5 w-3.5",
148
148
  "aria-hidden": "true"
149
149
  }),
150
150
  "You are editing — lock expires in ",
151
- o,
151
+ s,
152
152
  " min."
153
153
  ]
154
- }) : /* @__PURE__ */ m("div", {
154
+ }) : /* @__PURE__ */ h("div", {
155
155
  "data-testid": "doc-lock-status",
156
156
  className: "flex flex-wrap items-center justify-between gap-2 rounded-md border border-status-warning-border bg-status-warning-subtle p-2",
157
- children: [/* @__PURE__ */ m("p", {
157
+ children: [/* @__PURE__ */ h("p", {
158
158
  className: "flex items-center gap-1.5 text-sm text-status-warning-text",
159
159
  children: [
160
- /* @__PURE__ */ p(u, {
160
+ /* @__PURE__ */ m(d, {
161
161
  className: "h-3.5 w-3.5",
162
162
  "aria-hidden": "true"
163
163
  }),
164
164
  "Being edited by ",
165
- /* @__PURE__ */ p(n, { id: e.holderId }),
165
+ /* @__PURE__ */ m(n, { id: e.holderId }),
166
166
  " until ",
167
- s,
167
+ c,
168
168
  "."
169
169
  ]
170
- }), /* @__PURE__ */ p(v, {
170
+ }), /* @__PURE__ */ m(y, {
171
171
  size: "sm",
172
172
  variant: "outline",
173
- disabled: i,
174
- onClick: r,
173
+ disabled: a,
174
+ onClick: i,
175
175
  "data-testid": "doc-break-lock",
176
- children: i ? "Breaking…" : "Break lock"
176
+ children: a ? "Breaking…" : "Break lock"
177
177
  })]
178
178
  });
179
179
  }
180
180
  function k() {
181
- let [u] = pe(), d = u.get("docId") ?? "", k = t(), { workspaceId: A, currentUser: j } = e(), [M, N] = l("view"), [P, Pe] = l(""), [Fe, Ie] = l(""), [F, Le] = l(""), [Re, I] = l(null), [L, ze] = l(null), [R, Be] = l(null), [z, Ve] = l(""), [B, He] = l(""), [V, Ue] = l(""), [We, H] = l(null), [Ge, Ke] = l(null), [qe, Je] = l(""), U = ae("DOC", d || null), { data: Ye, loading: Xe, error: Ze } = he(E, {
182
- variables: { id: d },
183
- skip: !d,
181
+ let [d] = fe(), f = d.get("docId") ?? "", k = t(), { workspaceId: A, currentUser: j } = e(), [M, N] = u("view"), [P, Pe] = u(""), [Fe, Ie] = u(""), [F, Le] = u(""), [Re, I] = u(null), [L, ze] = u(null), [R, Be] = u(null), [z, Ve] = u(""), [B, He] = u(""), [V, Ue] = u(""), [We, H] = u(null), [Ge, Ke] = u(null), [qe, Je] = u(""), U = ie("DOC", f || null), { data: Ye, loading: Xe, error: Ze } = me(E, {
182
+ variables: { id: f },
183
+ skip: !f,
184
184
  fetchPolicy: "cache-and-network"
185
- }), W = me(), G = {
185
+ }), W = pe(), G = {
186
186
  refetchQueries: ["DocDetail"],
187
187
  awaitRefetchQueries: !0
188
- }, [Qe, K] = f(Ce, G), [$e, et] = f(we, G), [tt, nt] = f(Te, {
188
+ }, [Qe, K] = p(Ce, G), [$e, et] = p(we, G), [tt, nt] = p(Te, {
189
189
  refetchQueries: ["DocsList"],
190
- context: ee
191
- }), [rt, it] = f(De, G), [at, ot] = f(Ee, {
190
+ context: a
191
+ }), [rt, it] = p(De, G), [at, ot] = p(Ee, {
192
192
  ...G,
193
193
  refetchQueries: ["DocDetail", "GetWorkItemDocs"]
194
- }), [q, st] = l(""), [ct, lt] = f(Oe, G), [ut] = f(D, G), [dt, ft] = f(ke, G), [pt, J] = f(Ae, {
194
+ }), [q, st] = u(""), [ct, lt] = p(Oe, G), [ut] = p(D, G), [dt, ft] = p(ke, G), [pt, J] = p(Ae, {
195
195
  refetchQueries: ["DocDetail", "DocSuggestionsPanel"],
196
196
  awaitRefetchQueries: !0
197
- }), Y = Ye?.planmagnetDoc, X = K.loading || et.loading || nt.loading, [mt, ht] = l(() => Date.now());
198
- c(() => {
197
+ }), Y = Ye?.planmagnetDoc, X = K.loading || et.loading || nt.loading, [mt, ht] = u(() => Date.now());
198
+ l(() => {
199
199
  if (M !== "edit") return;
200
200
  let e = setInterval(() => ht(Date.now()), 3e4);
201
201
  return () => clearInterval(e);
202
- }, [M]), c(() => {
203
- if (M !== "edit" || !d) return;
202
+ }, [M]), l(() => {
203
+ if (M !== "edit" || !f) return;
204
204
  let e = setInterval(() => {
205
- ct({ variables: { docId: d } }).catch(() => void 0);
205
+ ct({ variables: { docId: f } }).catch(() => void 0);
206
206
  }, 5 * 6e4);
207
207
  return () => clearInterval(e);
208
- }, [M, d]);
209
- let gt = ce(!1);
210
- c(() => {
208
+ }, [M, f]);
209
+ let gt = se(!1);
210
+ l(() => {
211
211
  gt.current = M === "edit";
212
- }, [M]), c(() => () => {
213
- gt.current && d && W.mutate({
212
+ }, [M]), l(() => () => {
213
+ gt.current && f && W.mutate({
214
214
  mutation: D,
215
- variables: { docId: d }
215
+ variables: { docId: f }
216
216
  }).catch(() => void 0);
217
- }, []), ge(je, {
217
+ }, []), he(je, {
218
218
  variables: {
219
- docId: d,
219
+ docId: f,
220
220
  workspaceId: A ?? ""
221
221
  },
222
- skip: !d || !A,
222
+ skip: !f || !A,
223
223
  onData: () => {
224
- w(), W.query({
224
+ Se(), W.query({
225
225
  query: E,
226
- variables: { id: d },
226
+ variables: { id: f },
227
227
  fetchPolicy: "network-only"
228
228
  }).catch(() => void 0);
229
229
  },
@@ -234,34 +234,34 @@ function k() {
234
234
  let Z = async (e, t) => {
235
235
  I(null);
236
236
  try {
237
- return await r(e()), !0;
237
+ return await o(e()), !0;
238
238
  } catch (e) {
239
- return I(Me(e, t)), w(), await W.query({
239
+ return I(Me(e, t)), Se(), await W.query({
240
240
  query: E,
241
- variables: { id: d },
241
+ variables: { id: f },
242
242
  fetchPolicy: "network-only"
243
243
  }).catch(() => void 0), !1;
244
244
  }
245
245
  };
246
- if (!d) return /* @__PURE__ */ p("div", {
246
+ if (!f) return /* @__PURE__ */ m("div", {
247
247
  className: "p-6 text-sm text-muted-foreground",
248
248
  children: "No doc selected."
249
249
  });
250
- if (Xe && !Ye) return /* @__PURE__ */ p("div", {
250
+ if (Xe && !Ye) return /* @__PURE__ */ m("div", {
251
251
  className: "p-6 text-sm text-muted-foreground",
252
252
  children: "Loading doc…"
253
253
  });
254
- if (Ze && !Y) return /* @__PURE__ */ m("p", {
254
+ if (Ze && !Y) return /* @__PURE__ */ h("p", {
255
255
  role: "alert",
256
256
  className: "p-6 text-sm text-destructive",
257
257
  children: ["The doc could not be loaded: ", Ze.message]
258
258
  });
259
- if (!Y) return /* @__PURE__ */ m("div", {
259
+ if (!Y) return /* @__PURE__ */ h("div", {
260
260
  className: "space-y-3 p-6",
261
- children: [/* @__PURE__ */ p("p", {
261
+ children: [/* @__PURE__ */ m("p", {
262
262
  className: "text-sm text-muted-foreground",
263
263
  children: "This doc does not exist in this workspace, or it was deleted."
264
- }), /* @__PURE__ */ p(v, {
264
+ }), /* @__PURE__ */ m(y, {
265
265
  size: "sm",
266
266
  variant: "outline",
267
267
  onClick: () => k("/docs/docs-page"),
@@ -271,9 +271,9 @@ function k() {
271
271
  let _t = async () => {
272
272
  I(null);
273
273
  try {
274
- await r(ct({ variables: { docId: Y.id } }));
274
+ await o(ct({ variables: { docId: Y.id } }));
275
275
  } catch (e) {
276
- I(i(e) ? "Your role cannot edit this doc." : a(e, "The doc could not be checked out for editing."));
276
+ I(r(e) ? "Your role cannot edit this doc." : i(e, "The doc could not be checked out for editing."));
277
277
  return;
278
278
  }
279
279
  Pe(Y.title), Ie(Y.content), Le(""), Be(Y.version), N("edit");
@@ -292,9 +292,9 @@ function k() {
292
292
  }, bt = async () => {
293
293
  I(null);
294
294
  try {
295
- await r(dt({ variables: { docId: Y.id } }));
295
+ await o(dt({ variables: { docId: Y.id } }));
296
296
  } catch (e) {
297
- I(i(e) ? "Your role cannot force-release this lock." : a(e, "The lock could not be broken."));
297
+ I(r(e) ? "Your role cannot force-release this lock." : i(e, "The lock could not be broken."));
298
298
  }
299
299
  }, xt = () => {
300
300
  Ve(Y.title), He(Y.content), Ue(""), H(null), Ke(Y.version), Je(Y.title), N("suggest");
@@ -303,7 +303,7 @@ function k() {
303
303
  }, Ct = async () => {
304
304
  H(null);
305
305
  try {
306
- await r(pt({ variables: { input: {
306
+ await o(pt({ variables: { input: {
307
307
  docId: Y.id,
308
308
  baseVersion: Ge ?? Y.version,
309
309
  proposedContent: B,
@@ -311,48 +311,48 @@ function k() {
311
311
  ...V.trim() ? { note: V.trim() } : {}
312
312
  } } })), N("view");
313
313
  } catch (e) {
314
- H(i(e) ? "Your role cannot suggest edits on this doc." : a(e, "The suggestion could not be submitted."));
314
+ H(r(e) ? "Your role cannot suggest edits on this doc." : i(e, "The suggestion could not be submitted."));
315
315
  }
316
316
  }, wt = !!Y.lock && Y.lock.holderId !== j?.id, Q = [...Y.revisions].sort((e, t) => t.version - e.version), $ = L === null ? null : Q.find((e) => e.version === L);
317
- return /* @__PURE__ */ m("div", {
317
+ return /* @__PURE__ */ h("div", {
318
318
  className: "space-y-6 p-6",
319
319
  "data-testid": "doc-detail",
320
320
  children: [
321
- /* @__PURE__ */ m(v, {
321
+ /* @__PURE__ */ h(y, {
322
322
  size: "sm",
323
323
  variant: "ghost",
324
324
  onClick: () => k("/docs/docs-page"),
325
- children: [/* @__PURE__ */ p(le, { className: "mr-1 h-4 w-4" }), "All docs"]
325
+ children: [/* @__PURE__ */ m(ce, { className: "mr-1 h-4 w-4" }), "All docs"]
326
326
  }),
327
- /* @__PURE__ */ m("div", {
327
+ /* @__PURE__ */ h("div", {
328
328
  className: "flex flex-wrap items-start justify-between gap-3",
329
- children: [/* @__PURE__ */ m("div", {
329
+ children: [/* @__PURE__ */ h("div", {
330
330
  className: "min-w-0 space-y-1",
331
331
  children: [
332
- /* @__PURE__ */ p("h1", {
332
+ /* @__PURE__ */ m("h1", {
333
333
  className: "text-2xl font-semibold break-words",
334
334
  "data-testid": "doc-title",
335
335
  children: Y.title
336
336
  }),
337
- /* @__PURE__ */ m("p", {
337
+ /* @__PURE__ */ h("p", {
338
338
  className: "text-xs text-muted-foreground",
339
339
  children: [
340
- /* @__PURE__ */ p(ne, { status: Y.status }),
340
+ /* @__PURE__ */ m(te, { status: Y.status }),
341
341
  " · version ",
342
342
  Y.version,
343
343
  " · updated",
344
344
  " ",
345
345
  O(Y.updatedAt),
346
346
  " by ",
347
- /* @__PURE__ */ p(n, { id: Y.updatedBy ?? Y.createdBy })
347
+ /* @__PURE__ */ m(n, { id: Y.updatedBy ?? Y.createdBy })
348
348
  ]
349
349
  }),
350
- /* @__PURE__ */ p(re, { others: U.others })
350
+ /* @__PURE__ */ m(ne, { others: U.others })
351
351
  ]
352
- }), M === "view" && /* @__PURE__ */ m("div", {
352
+ }), M === "view" && /* @__PURE__ */ h("div", {
353
353
  className: "flex flex-wrap gap-2",
354
354
  children: [
355
- te.filter((e) => e !== Y.status).map((e) => /* @__PURE__ */ p(v, {
355
+ ee.filter((e) => e !== Y.status).map((e) => /* @__PURE__ */ m(y, {
356
356
  size: "sm",
357
357
  variant: "outline",
358
358
  disabled: X,
@@ -365,7 +365,7 @@ function k() {
365
365
  } }), "The status could not be changed."),
366
366
  children: e === "PUBLISHED" ? "Publish" : e === "ARCHIVED" ? "Archive" : "Back to draft"
367
367
  }, e)),
368
- /* @__PURE__ */ p(v, {
368
+ /* @__PURE__ */ m(y, {
369
369
  size: "sm",
370
370
  variant: "outline",
371
371
  onClick: xt,
@@ -373,33 +373,33 @@ function k() {
373
373
  "data-testid": "doc-suggest",
374
374
  children: "Suggest an edit"
375
375
  }),
376
- /* @__PURE__ */ p(v, {
376
+ /* @__PURE__ */ m(y, {
377
377
  size: "sm",
378
378
  onClick: () => void _t(),
379
379
  disabled: wt || lt.loading,
380
380
  "data-testid": "doc-edit",
381
381
  children: lt.loading ? "Checking out…" : "Edit"
382
382
  }),
383
- /* @__PURE__ */ m(_e, { children: [/* @__PURE__ */ p(Se, {
383
+ /* @__PURE__ */ h(ge, { children: [/* @__PURE__ */ m(xe, {
384
384
  asChild: !0,
385
- children: /* @__PURE__ */ p(v, {
385
+ children: /* @__PURE__ */ m(y, {
386
386
  size: "sm",
387
387
  variant: "outline",
388
388
  disabled: X,
389
389
  children: "Delete"
390
390
  })
391
- }), /* @__PURE__ */ m(_, { children: [/* @__PURE__ */ m(be, { children: [/* @__PURE__ */ m(xe, { children: [
391
+ }), /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ h(ye, { children: [/* @__PURE__ */ h(be, { children: [
392
392
  "Delete “",
393
393
  Y.title,
394
394
  "”?"
395
- ] }), /* @__PURE__ */ m(ve, { children: [
395
+ ] }), /* @__PURE__ */ h(_e, { children: [
396
396
  "The doc and its history are removed for everyone, and it is unlinked from",
397
397
  " ",
398
398
  Y.linkedWorkItems.length,
399
399
  " work item",
400
400
  Y.linkedWorkItems.length === 1 ? "" : "s",
401
401
  "."
402
- ] })] }), /* @__PURE__ */ m(ye, { children: [/* @__PURE__ */ p(g, { children: "Keep it" }), /* @__PURE__ */ p(h, {
402
+ ] })] }), /* @__PURE__ */ h(ve, { children: [/* @__PURE__ */ m(_, { children: "Keep it" }), /* @__PURE__ */ m(g, {
403
403
  className: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
404
404
  onClick: async () => {
405
405
  await Z(() => tt({ variables: { id: Y.id } }), "The doc could not be deleted.") && k("/docs/docs-page");
@@ -409,20 +409,20 @@ function k() {
409
409
  ]
410
410
  })]
411
411
  }),
412
- Y.lock && /* @__PURE__ */ p(Ne, {
412
+ Y.lock && /* @__PURE__ */ m(Ne, {
413
413
  lock: Y.lock,
414
414
  currentUserId: j?.id,
415
415
  now: mt,
416
416
  onBreakLock: () => void bt(),
417
417
  breaking: ft.loading
418
418
  }),
419
- Re && /* @__PURE__ */ p("p", {
419
+ Re && /* @__PURE__ */ m("p", {
420
420
  role: "alert",
421
421
  className: "text-sm text-destructive",
422
422
  "data-testid": "doc-error",
423
423
  children: Re
424
424
  }),
425
- M === "edit" && R !== Y.version && /* @__PURE__ */ m("p", {
425
+ M === "edit" && R !== Y.version && /* @__PURE__ */ h("p", {
426
426
  className: "text-sm text-status-warning-text",
427
427
  "data-testid": "doc-moved-on",
428
428
  children: [
@@ -433,33 +433,33 @@ function k() {
433
433
  ". Your text is kept below; copy what you need, then discard and edit the latest."
434
434
  ]
435
435
  }),
436
- M === "edit" && /* @__PURE__ */ p(y, { children: /* @__PURE__ */ m(b, {
436
+ M === "edit" && /* @__PURE__ */ m(b, { children: /* @__PURE__ */ h(x, {
437
437
  className: "space-y-3 pt-6",
438
438
  children: [
439
- /* @__PURE__ */ p(C, {
439
+ /* @__PURE__ */ m(w, {
440
440
  "aria-label": "Doc title",
441
441
  value: P,
442
442
  onChange: (e) => Pe(e.target.value)
443
443
  }),
444
- /* @__PURE__ */ p(s, {
444
+ /* @__PURE__ */ m(c, {
445
445
  value: Fe,
446
446
  onChange: Ie,
447
447
  minHeight: 240
448
448
  }),
449
- /* @__PURE__ */ p(C, {
449
+ /* @__PURE__ */ m(w, {
450
450
  "aria-label": "Change note",
451
451
  placeholder: "What changed? (optional, shown in the history)",
452
452
  value: F,
453
453
  onChange: (e) => Le(e.target.value)
454
454
  }),
455
- /* @__PURE__ */ m("div", {
455
+ /* @__PURE__ */ h("div", {
456
456
  className: "flex justify-end gap-2",
457
- children: [/* @__PURE__ */ p(v, {
457
+ children: [/* @__PURE__ */ m(y, {
458
458
  size: "sm",
459
459
  variant: "ghost",
460
460
  onClick: vt,
461
461
  children: R === Y.version ? "Cancel" : "Discard my edits"
462
- }), /* @__PURE__ */ p(v, {
462
+ }), /* @__PURE__ */ m(y, {
463
463
  size: "sm",
464
464
  onClick: yt,
465
465
  disabled: K.loading || R !== Y.version,
@@ -469,15 +469,15 @@ function k() {
469
469
  })
470
470
  ]
471
471
  }) }),
472
- M === "suggest" && /* @__PURE__ */ m(y, {
472
+ M === "suggest" && /* @__PURE__ */ h(b, {
473
473
  "data-testid": "doc-suggest-form",
474
- children: [/* @__PURE__ */ p(x, { children: /* @__PURE__ */ p(S, {
474
+ children: [/* @__PURE__ */ m(S, { children: /* @__PURE__ */ m(C, {
475
475
  className: "text-base",
476
476
  children: "Suggest an edit"
477
- }) }), /* @__PURE__ */ m(b, {
477
+ }) }), /* @__PURE__ */ h(x, {
478
478
  className: "space-y-3",
479
479
  children: [
480
- /* @__PURE__ */ m("p", {
480
+ /* @__PURE__ */ h("p", {
481
481
  className: "text-xs text-muted-foreground",
482
482
  children: [
483
483
  "Proposed against version ",
@@ -485,35 +485,35 @@ function k() {
485
485
  ". It does not change the doc — someone with edit rights accepts or rejects it below."
486
486
  ]
487
487
  }),
488
- /* @__PURE__ */ p(C, {
488
+ /* @__PURE__ */ m(w, {
489
489
  "aria-label": "Suggested title",
490
490
  value: z,
491
491
  onChange: (e) => Ve(e.target.value)
492
492
  }),
493
- /* @__PURE__ */ p(s, {
493
+ /* @__PURE__ */ m(c, {
494
494
  value: B,
495
495
  onChange: He,
496
496
  minHeight: 240
497
497
  }),
498
- /* @__PURE__ */ p(C, {
498
+ /* @__PURE__ */ m(w, {
499
499
  "aria-label": "Note (optional)",
500
500
  placeholder: "Why this change? (optional)",
501
501
  value: V,
502
502
  onChange: (e) => Ue(e.target.value)
503
503
  }),
504
- We && /* @__PURE__ */ p("p", {
504
+ We && /* @__PURE__ */ m("p", {
505
505
  role: "alert",
506
506
  className: "text-sm text-destructive",
507
507
  children: We
508
508
  }),
509
- /* @__PURE__ */ m("div", {
509
+ /* @__PURE__ */ h("div", {
510
510
  className: "flex justify-end gap-2",
511
- children: [/* @__PURE__ */ p(v, {
511
+ children: [/* @__PURE__ */ m(y, {
512
512
  size: "sm",
513
513
  variant: "ghost",
514
514
  onClick: St,
515
515
  children: "Cancel"
516
- }), /* @__PURE__ */ p(v, {
516
+ }), /* @__PURE__ */ m(y, {
517
517
  size: "sm",
518
518
  onClick: () => void Ct(),
519
519
  disabled: J.loading || !B.trim() || !z.trim(),
@@ -524,56 +524,56 @@ function k() {
524
524
  ]
525
525
  })]
526
526
  }),
527
- M === "view" && /* @__PURE__ */ p(y, { children: /* @__PURE__ */ p(b, {
527
+ M === "view" && /* @__PURE__ */ m(b, { children: /* @__PURE__ */ m(x, {
528
528
  className: "prose prose-sm max-w-none pt-6 dark:prose-invert",
529
- children: Y.content.trim() ? /* @__PURE__ */ p(T, { children: Y.content }) : /* @__PURE__ */ p("p", {
529
+ children: Y.content.trim() ? /* @__PURE__ */ m(T, { children: Y.content }) : /* @__PURE__ */ m("p", {
530
530
  className: "text-sm text-muted-foreground",
531
531
  children: "This doc is empty."
532
532
  })
533
533
  }) }),
534
- /* @__PURE__ */ m("div", {
534
+ /* @__PURE__ */ h("div", {
535
535
  className: "grid grid-cols-1 gap-6 lg:grid-cols-2",
536
- children: [/* @__PURE__ */ m(y, {
536
+ children: [/* @__PURE__ */ h(b, {
537
537
  "data-testid": "doc-history",
538
- children: [/* @__PURE__ */ p(x, { children: /* @__PURE__ */ m(S, {
538
+ children: [/* @__PURE__ */ m(S, { children: /* @__PURE__ */ h(C, {
539
539
  className: "flex items-center gap-2",
540
540
  children: [
541
- /* @__PURE__ */ p(ue, { className: "h-4 w-4" }),
541
+ /* @__PURE__ */ m(le, { className: "h-4 w-4" }),
542
542
  " History (",
543
543
  Q.length,
544
544
  ")"
545
545
  ]
546
- }) }), /* @__PURE__ */ m(b, {
546
+ }) }), /* @__PURE__ */ h(x, {
547
547
  className: "space-y-2",
548
548
  children: [
549
- /* @__PURE__ */ p("ol", {
549
+ /* @__PURE__ */ m("ol", {
550
550
  className: "space-y-2",
551
551
  children: Q.map((e) => {
552
552
  let t = e.version === Y.version;
553
- return /* @__PURE__ */ m("li", {
553
+ return /* @__PURE__ */ h("li", {
554
554
  className: "space-y-1 rounded-md border p-2",
555
555
  "data-testid": "doc-revision",
556
- children: [/* @__PURE__ */ m("div", {
556
+ children: [/* @__PURE__ */ h("div", {
557
557
  className: "flex flex-wrap items-center justify-between gap-2",
558
- children: [/* @__PURE__ */ m("span", {
558
+ children: [/* @__PURE__ */ h("span", {
559
559
  className: "text-sm font-medium",
560
560
  children: [
561
561
  "Version ",
562
562
  e.version,
563
563
  t ? " (current)" : ""
564
564
  ]
565
- }), /* @__PURE__ */ m("span", {
565
+ }), /* @__PURE__ */ h("span", {
566
566
  className: "flex gap-1",
567
- children: [/* @__PURE__ */ p(v, {
567
+ children: [/* @__PURE__ */ m(y, {
568
568
  size: "sm",
569
569
  variant: "ghost",
570
570
  className: "h-7 text-xs",
571
571
  "aria-expanded": L === e.version,
572
572
  onClick: () => ze(L === e.version ? null : e.version),
573
573
  children: L === e.version ? "Hide" : "View"
574
- }), !t && M === "view" && /* @__PURE__ */ m(_e, { children: [/* @__PURE__ */ p(Se, {
574
+ }), !t && M === "view" && /* @__PURE__ */ h(ge, { children: [/* @__PURE__ */ m(xe, {
575
575
  asChild: !0,
576
- children: /* @__PURE__ */ p(v, {
576
+ children: /* @__PURE__ */ m(y, {
577
577
  size: "sm",
578
578
  variant: "outline",
579
579
  className: "h-7 text-xs",
@@ -581,17 +581,17 @@ function k() {
581
581
  "data-testid": "doc-restore",
582
582
  children: "Restore"
583
583
  })
584
- }), /* @__PURE__ */ m(_, { children: [/* @__PURE__ */ m(be, { children: [/* @__PURE__ */ m(xe, { children: [
584
+ }), /* @__PURE__ */ h(v, { children: [/* @__PURE__ */ h(ye, { children: [/* @__PURE__ */ h(be, { children: [
585
585
  "Restore version ",
586
586
  e.version,
587
587
  "?"
588
- ] }), /* @__PURE__ */ m(ve, { children: [
588
+ ] }), /* @__PURE__ */ h(_e, { children: [
589
589
  "Its title and text become version ",
590
590
  Y.version + 1,
591
591
  ". Nothing is deleted: version ",
592
592
  Y.version,
593
593
  " stays in the history."
594
- ] })] }), /* @__PURE__ */ m(ye, { children: [/* @__PURE__ */ p(g, { children: "Cancel" }), /* @__PURE__ */ p(h, {
594
+ ] })] }), /* @__PURE__ */ h(ve, { children: [/* @__PURE__ */ m(_, { children: "Cancel" }), /* @__PURE__ */ m(g, {
595
595
  onClick: () => Z(() => $e({ variables: {
596
596
  id: Y.id,
597
597
  toVersion: e.version,
@@ -600,22 +600,22 @@ function k() {
600
600
  children: "Restore"
601
601
  })] })] })] })]
602
602
  })]
603
- }), /* @__PURE__ */ m("p", {
603
+ }), /* @__PURE__ */ h("p", {
604
604
  className: "text-xs text-muted-foreground",
605
605
  children: [
606
606
  O(e.createdAt),
607
607
  " · ",
608
- /* @__PURE__ */ p(n, { id: e.createdBy }),
608
+ /* @__PURE__ */ m(n, { id: e.createdBy }),
609
609
  e.changeNote ? ` · ${e.changeNote}` : ""
610
610
  ]
611
611
  })]
612
612
  }, e.id);
613
613
  })
614
614
  }),
615
- $ && /* @__PURE__ */ m("div", {
615
+ $ && /* @__PURE__ */ h("div", {
616
616
  className: "space-y-1 rounded-md border bg-muted/40 p-3",
617
617
  "data-testid": "doc-revision-view",
618
- children: [/* @__PURE__ */ m("p", {
618
+ children: [/* @__PURE__ */ h("p", {
619
619
  className: "text-sm font-medium",
620
620
  children: [
621
621
  "Version ",
@@ -623,49 +623,49 @@ function k() {
623
623
  ": ",
624
624
  $.title
625
625
  ]
626
- }), /* @__PURE__ */ p("div", {
626
+ }), /* @__PURE__ */ m("div", {
627
627
  className: "prose prose-sm max-w-none dark:prose-invert",
628
- children: /* @__PURE__ */ p(T, { children: $.content })
628
+ children: /* @__PURE__ */ m(T, { children: $.content })
629
629
  })]
630
630
  }),
631
- /* @__PURE__ */ p(se, {
631
+ /* @__PURE__ */ m(oe, {
632
632
  docId: Y.id,
633
633
  versions: Q
634
634
  })
635
635
  ]
636
636
  })]
637
- }), /* @__PURE__ */ m(y, {
637
+ }), /* @__PURE__ */ h(b, {
638
638
  "data-testid": "doc-linked-items",
639
- children: [/* @__PURE__ */ p(x, { children: /* @__PURE__ */ m(S, {
639
+ children: [/* @__PURE__ */ m(S, { children: /* @__PURE__ */ h(C, {
640
640
  className: "flex items-center gap-2",
641
641
  children: [
642
- /* @__PURE__ */ p(de, { className: "h-4 w-4" }),
642
+ /* @__PURE__ */ m(ue, { className: "h-4 w-4" }),
643
643
  " Linked work items (",
644
644
  Y.linkedWorkItems.length,
645
645
  ")"
646
646
  ]
647
- }) }), /* @__PURE__ */ m(b, {
647
+ }) }), /* @__PURE__ */ h(x, {
648
648
  className: "space-y-2",
649
649
  children: [
650
- Y.linkedWorkItems.length === 0 && /* @__PURE__ */ p("p", {
650
+ Y.linkedWorkItems.length === 0 && /* @__PURE__ */ m("p", {
651
651
  className: "text-sm text-muted-foreground",
652
652
  children: "Not linked to any work item yet. Pick one below, or use “Link existing doc” on the task."
653
653
  }),
654
- Y.linkedWorkItems.map((e) => /* @__PURE__ */ m("div", {
654
+ Y.linkedWorkItems.map((e) => /* @__PURE__ */ h("div", {
655
655
  className: "flex items-center justify-between gap-2 rounded-md border p-2",
656
- children: [/* @__PURE__ */ m("button", {
656
+ children: [/* @__PURE__ */ h("button", {
657
657
  type: "button",
658
658
  className: "min-w-0 truncate text-left text-sm hover:underline",
659
659
  onClick: () => k(`/tasks/task-detail-page?taskId=${encodeURIComponent(e.id)}`),
660
660
  children: [
661
- /* @__PURE__ */ p("span", {
661
+ /* @__PURE__ */ m("span", {
662
662
  className: "text-muted-foreground",
663
663
  children: e.key
664
664
  }),
665
665
  " ",
666
666
  e.title
667
667
  ]
668
- }), /* @__PURE__ */ p(v, {
668
+ }), /* @__PURE__ */ m(y, {
669
669
  size: "icon",
670
670
  variant: "ghost",
671
671
  disabled: it.loading,
@@ -674,18 +674,18 @@ function k() {
674
674
  docId: Y.id,
675
675
  workItemId: e.id
676
676
  } }), "The work item could not be unlinked."),
677
- children: /* @__PURE__ */ p(fe, { className: "h-4 w-4" })
677
+ children: /* @__PURE__ */ m(de, { className: "h-4 w-4" })
678
678
  })]
679
679
  }, e.id)),
680
- /* @__PURE__ */ m("div", {
680
+ /* @__PURE__ */ h("div", {
681
681
  className: "space-y-2 pt-2",
682
682
  "data-testid": "doc-link-work-item",
683
- children: [/* @__PURE__ */ p(o, {
683
+ children: [/* @__PURE__ */ m(s, {
684
684
  id: "doc-link-work-item-select",
685
685
  value: q,
686
686
  onChange: st,
687
687
  exclude: Y.linkedWorkItems.map((e) => e.id)
688
- }), /* @__PURE__ */ m(v, {
688
+ }), /* @__PURE__ */ h(y, {
689
689
  size: "sm",
690
690
  variant: "outline",
691
691
  disabled: !q || ot.loading,
@@ -695,21 +695,21 @@ function k() {
695
695
  workItemId: q
696
696
  } }), "The work item could not be linked.") && st("");
697
697
  },
698
- children: [/* @__PURE__ */ p(de, { className: "mr-1 h-4 w-4" }), "Link work item"]
698
+ children: [/* @__PURE__ */ m(ue, { className: "mr-1 h-4 w-4" }), "Link work item"]
699
699
  })]
700
700
  })
701
701
  ]
702
702
  })]
703
703
  })]
704
704
  }),
705
- /* @__PURE__ */ p(oe, {
705
+ /* @__PURE__ */ m(ae, {
706
706
  docId: Y.id,
707
707
  docTitle: Y.title,
708
708
  docContent: Y.content,
709
709
  revisions: Q,
710
710
  currentUserId: j?.id
711
711
  }),
712
- /* @__PURE__ */ p(ie, {
712
+ /* @__PURE__ */ m(re, {
713
713
  docId: Y.id,
714
714
  presence: {
715
715
  typingActorIds: U.typingActorIds,