@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,8 +1,8 @@
1
1
  import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
2
- import { LEAVES_PAGE_CONTEXT as n, throwOnError as r } from "../utils/mutationResult.js";
3
- import { ConfirmButton as i, ErrorLine as a } from "../controls/ConfirmButton.js";
4
- import { enumLabel as o } from "../controls/WorkItemControls.js";
5
- import { mutationErrorMessage as s } from "../utils/graphqlErrors.js";
2
+ import { mutationErrorMessage as n } from "../utils/graphqlErrors.js";
3
+ import { LEAVES_PAGE_CONTEXT as r, throwOnError as i } from "../utils/mutationResult.js";
4
+ import { ConfirmButton as a, ErrorLine as o } from "../controls/ConfirmButton.js";
5
+ import { enumLabel as s } from "../controls/WorkItemControls.js";
6
6
  import { detailPath as c } from "../utils/rowNavigation.js";
7
7
  import { CompetitorSearchSelect as l } from "../controls/Pickers.js";
8
8
  import { useState as u } from "react";
@@ -35,10 +35,10 @@ var F = [
35
35
  }
36
36
  }
37
37
  `;
38
- function L({ productId: e, name: o, archivedAt: s }) {
38
+ function L({ productId: e, name: n, archivedAt: s }) {
39
39
  let c = t(), [l, p] = v(re, {
40
40
  refetchQueries: F,
41
- context: n
41
+ context: r
42
42
  }), [m, g] = v(ie, {
43
43
  refetchQueries: F,
44
44
  awaitRefetchQueries: !0
@@ -48,14 +48,14 @@ function L({ productId: e, name: o, archivedAt: s }) {
48
48
  }), [b, C] = u(null), T = async () => {
49
49
  C(null);
50
50
  try {
51
- await r(l({ variables: { id: e } })), c("/products/products-page");
51
+ await i(l({ variables: { id: e } })), c("/products/products-page");
52
52
  } catch (e) {
53
53
  C(e instanceof Error ? e.message : "The product could not be deleted.");
54
54
  }
55
55
  }, E = async () => {
56
56
  C(null);
57
57
  try {
58
- s ? await r(_({ variables: { id: e } })) : await r(m({ variables: { id: e } }));
58
+ s ? await i(_({ variables: { id: e } })) : await i(m({ variables: { id: e } }));
59
59
  } catch (e) {
60
60
  C(e instanceof Error ? e.message : "The product could not be updated.");
61
61
  }
@@ -71,18 +71,18 @@ function L({ productId: e, name: o, archivedAt: s }) {
71
71
  disabled: g.loading || y.loading,
72
72
  onClick: () => void E(),
73
73
  children: [x(s ? f : d, { className: "mr-1 h-4 w-4" }), s ? "Unarchive" : "Archive"]
74
- }), /* @__PURE__ */ x(i, {
74
+ }), /* @__PURE__ */ x(a, {
75
75
  label: "Delete",
76
76
  variant: "outline",
77
77
  icon: /* @__PURE__ */ x(h, { className: "mr-1 h-4 w-4" }),
78
- title: `Delete ${o}?`,
78
+ title: `Delete ${n}?`,
79
79
  description: "Every linked roadmap, release and feature request stays intact — only its link to this product is cleared. This cannot be undone here.",
80
80
  confirmLabel: "Delete product",
81
81
  destructive: !0,
82
82
  disabled: p.loading,
83
83
  onConfirm: () => void T()
84
84
  })]
85
- }), b && /* @__PURE__ */ x(a, { message: b })]
85
+ }), b && /* @__PURE__ */ x(o, { message: b })]
86
86
  });
87
87
  }
88
88
  var R = _`
@@ -109,13 +109,13 @@ var R = _`
109
109
  }
110
110
  `;
111
111
  function V({ productId: e, roadmaps: n }) {
112
- let i = t(), [o, s] = v(z, {
112
+ let r = t(), [a, s] = v(z, {
113
113
  refetchQueries: F,
114
114
  awaitRefetchQueries: !0
115
115
  }), [l, d] = u(null), [f, p] = u(null), m = async (t) => {
116
116
  d(null), p(t);
117
117
  try {
118
- await r(o({ variables: {
118
+ await i(a({ variables: {
119
119
  productId: e,
120
120
  roadmapId: t
121
121
  } }));
@@ -143,7 +143,7 @@ function V({ productId: e, roadmaps: n }) {
143
143
  existingIds: n.map((e) => e.id)
144
144
  })]
145
145
  }),
146
- l && /* @__PURE__ */ x(a, { message: l }),
146
+ l && /* @__PURE__ */ x(o, { message: l }),
147
147
  n.length === 0 ? /* @__PURE__ */ x("p", {
148
148
  className: "text-sm text-muted-foreground text-center py-4",
149
149
  children: "No roadmaps linked to this product yet."
@@ -154,7 +154,7 @@ function V({ productId: e, roadmaps: n }) {
154
154
  children: [/* @__PURE__ */ x("button", {
155
155
  type: "button",
156
156
  className: "min-w-0 truncate text-left hover:underline",
157
- onClick: () => i(c("/products/roadmap-detail-page", e.id)),
157
+ onClick: () => r(c("/products/roadmap-detail-page", e.id)),
158
158
  children: e.name
159
159
  }), /* @__PURE__ */ x(w, {
160
160
  size: "sm",
@@ -170,9 +170,9 @@ function V({ productId: e, roadmaps: n }) {
170
170
  });
171
171
  }
172
172
  function H({ productId: t, existingIds: n }) {
173
- let { workspaceId: i } = e(), [o, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(B, {
174
- variables: { workspaceId: i ?? "" },
175
- skip: !o || !i
173
+ let { workspaceId: r } = e(), [a, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(B, {
174
+ variables: { workspaceId: r ?? "" },
175
+ skip: !a || !r
176
176
  }), g = (p?.planmagnetRoadmaps.items ?? []).filter((e) => !n.includes(e.id)), [_, b] = v(R, {
177
177
  refetchQueries: F,
178
178
  awaitRefetchQueries: !0
@@ -184,7 +184,7 @@ function H({ productId: t, existingIds: n }) {
184
184
  }, E = async () => {
185
185
  f(null);
186
186
  try {
187
- await Promise.all([...c].map((e) => r(_({ variables: {
187
+ await Promise.all([...c].map((e) => i(_({ variables: {
188
188
  productId: t,
189
189
  roadmapId: e
190
190
  } })))), T(), s(!1);
@@ -193,7 +193,7 @@ function H({ productId: t, existingIds: n }) {
193
193
  }
194
194
  };
195
195
  return /* @__PURE__ */ S(O, {
196
- open: o,
196
+ open: a,
197
197
  onOpenChange: (e) => {
198
198
  s(e), e || T();
199
199
  },
@@ -238,7 +238,7 @@ function H({ productId: t, existingIds: n }) {
238
238
  })
239
239
  ]
240
240
  }),
241
- d && /* @__PURE__ */ x(a, { message: d }),
241
+ d && /* @__PURE__ */ x(o, { message: d }),
242
242
  /* @__PURE__ */ x(j, { children: /* @__PURE__ */ x(w, {
243
243
  onClick: () => void E(),
244
244
  disabled: c.size === 0 || b.loading,
@@ -275,13 +275,13 @@ var U = _`
275
275
  }
276
276
  `;
277
277
  function K({ productId: e, releases: n }) {
278
- let i = t(), [s, l] = v(W, {
278
+ let r = t(), [a, l] = v(W, {
279
279
  refetchQueries: F,
280
280
  awaitRefetchQueries: !0
281
281
  }), [d, f] = u(null), [p, m] = u(null), h = async (t) => {
282
282
  f(null), m(t);
283
283
  try {
284
- await r(s({ variables: {
284
+ await i(a({ variables: {
285
285
  productId: e,
286
286
  releaseId: t
287
287
  } }));
@@ -309,7 +309,7 @@ function K({ productId: e, releases: n }) {
309
309
  existingIds: n.map((e) => e.id)
310
310
  })]
311
311
  }),
312
- d && /* @__PURE__ */ x(a, { message: d }),
312
+ d && /* @__PURE__ */ x(o, { message: d }),
313
313
  n.length === 0 ? /* @__PURE__ */ x("p", {
314
314
  className: "text-sm text-muted-foreground text-center py-4",
315
315
  children: "No releases linked to this product yet."
@@ -320,7 +320,7 @@ function K({ productId: e, releases: n }) {
320
320
  children: [/* @__PURE__ */ S("button", {
321
321
  type: "button",
322
322
  className: "min-w-0 truncate text-left hover:underline",
323
- onClick: () => i(c("/products/release-detail-page", e.id)),
323
+ onClick: () => r(c("/products/release-detail-page", e.id)),
324
324
  children: [/* @__PURE__ */ x("span", {
325
325
  className: "text-muted-foreground mr-2",
326
326
  children: e.version
@@ -330,7 +330,7 @@ function K({ productId: e, releases: n }) {
330
330
  children: [/* @__PURE__ */ x(C, {
331
331
  variant: "outline",
332
332
  className: "text-xs capitalize",
333
- children: o(e.status)
333
+ children: s(e.status)
334
334
  }), /* @__PURE__ */ x(w, {
335
335
  size: "sm",
336
336
  variant: "ghost",
@@ -346,9 +346,9 @@ function K({ productId: e, releases: n }) {
346
346
  });
347
347
  }
348
348
  function q({ productId: t, existingIds: n }) {
349
- let { workspaceId: i } = e(), [o, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(G, {
350
- variables: { workspaceId: i ?? "" },
351
- skip: !o || !i
349
+ let { workspaceId: r } = e(), [a, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(G, {
350
+ variables: { workspaceId: r ?? "" },
351
+ skip: !a || !r
352
352
  }), g = (p?.planmagnetReleases.items ?? []).filter((e) => !n.includes(e.id)), [_, b] = v(U, {
353
353
  refetchQueries: F,
354
354
  awaitRefetchQueries: !0
@@ -360,7 +360,7 @@ function q({ productId: t, existingIds: n }) {
360
360
  }, E = async () => {
361
361
  f(null);
362
362
  try {
363
- await Promise.all([...c].map((e) => r(_({ variables: {
363
+ await Promise.all([...c].map((e) => i(_({ variables: {
364
364
  productId: t,
365
365
  releaseId: e
366
366
  } })))), T(), s(!1);
@@ -369,7 +369,7 @@ function q({ productId: t, existingIds: n }) {
369
369
  }
370
370
  };
371
371
  return /* @__PURE__ */ S(O, {
372
- open: o,
372
+ open: a,
373
373
  onOpenChange: (e) => {
374
374
  s(e), e || T();
375
375
  },
@@ -417,7 +417,7 @@ function q({ productId: t, existingIds: n }) {
417
417
  })
418
418
  ]
419
419
  }),
420
- d && /* @__PURE__ */ x(a, { message: d }),
420
+ d && /* @__PURE__ */ x(o, { message: d }),
421
421
  /* @__PURE__ */ x(j, { children: /* @__PURE__ */ x(w, {
422
422
  onClick: () => void E(),
423
423
  disabled: c.size === 0 || b.loading,
@@ -459,13 +459,13 @@ var J = _`
459
459
  }
460
460
  `;
461
461
  function se({ productId: e, featureRequests: n }) {
462
- let i = t(), [s, l] = v(ae, {
462
+ let r = t(), [a, l] = v(ae, {
463
463
  refetchQueries: F,
464
464
  awaitRefetchQueries: !0
465
465
  }), [d, f] = u(null), [p, m] = u(null), h = async (t) => {
466
466
  f(null), m(t);
467
467
  try {
468
- await r(s({ variables: {
468
+ await i(a({ variables: {
469
469
  productId: e,
470
470
  featureRequestId: t
471
471
  } }));
@@ -493,7 +493,7 @@ function se({ productId: e, featureRequests: n }) {
493
493
  existingIds: n.map((e) => e.id)
494
494
  })]
495
495
  }),
496
- d && /* @__PURE__ */ x(a, { message: d }),
496
+ d && /* @__PURE__ */ x(o, { message: d }),
497
497
  n.length === 0 ? /* @__PURE__ */ x("p", {
498
498
  className: "text-sm text-muted-foreground text-center py-4",
499
499
  children: "No feature requests linked to this product yet."
@@ -504,14 +504,14 @@ function se({ productId: e, featureRequests: n }) {
504
504
  children: [/* @__PURE__ */ x("button", {
505
505
  type: "button",
506
506
  className: "min-w-0 truncate text-left hover:underline",
507
- onClick: () => i(c("/products/feature-detail-page", e.id)),
507
+ onClick: () => r(c("/products/feature-detail-page", e.id)),
508
508
  children: e.title
509
509
  }), /* @__PURE__ */ S("div", {
510
510
  className: "flex items-center gap-2 shrink-0",
511
511
  children: [/* @__PURE__ */ x(C, {
512
512
  variant: "secondary",
513
513
  className: "text-xs capitalize",
514
- children: o(e.status)
514
+ children: s(e.status)
515
515
  }), /* @__PURE__ */ x(w, {
516
516
  size: "sm",
517
517
  variant: "ghost",
@@ -527,9 +527,9 @@ function se({ productId: e, featureRequests: n }) {
527
527
  });
528
528
  }
529
529
  function ce({ productId: t, existingIds: n }) {
530
- let { workspaceId: i } = e(), [o, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(oe, {
531
- variables: { workspaceId: i ?? "" },
532
- skip: !o || !i
530
+ let { workspaceId: r } = e(), [a, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(oe, {
531
+ variables: { workspaceId: r ?? "" },
532
+ skip: !a || !r
533
533
  }), g = (p?.planmagnetFeatureRequests.items ?? []).filter((e) => !n.includes(e.id)), [_, b] = v(J, {
534
534
  refetchQueries: F,
535
535
  awaitRefetchQueries: !0
@@ -541,7 +541,7 @@ function ce({ productId: t, existingIds: n }) {
541
541
  }, E = async () => {
542
542
  f(null);
543
543
  try {
544
- await Promise.all([...c].map((e) => r(_({ variables: {
544
+ await Promise.all([...c].map((e) => i(_({ variables: {
545
545
  productId: t,
546
546
  featureRequestId: e
547
547
  } })))), T(), s(!1);
@@ -550,7 +550,7 @@ function ce({ productId: t, existingIds: n }) {
550
550
  }
551
551
  };
552
552
  return /* @__PURE__ */ S(O, {
553
- open: o,
553
+ open: a,
554
554
  onOpenChange: (e) => {
555
555
  s(e), e || T();
556
556
  },
@@ -595,7 +595,7 @@ function ce({ productId: t, existingIds: n }) {
595
595
  })
596
596
  ]
597
597
  }),
598
- d && /* @__PURE__ */ x(a, { message: d }),
598
+ d && /* @__PURE__ */ x(o, { message: d }),
599
599
  /* @__PURE__ */ x(j, { children: /* @__PURE__ */ x(w, {
600
600
  onClick: () => void E(),
601
601
  disabled: c.size === 0 || b.loading,
@@ -629,13 +629,13 @@ var le = _`
629
629
  }
630
630
  `;
631
631
  function fe({ productId: e, objectives: n }) {
632
- let i = t(), [s, c] = v(ue, {
632
+ let r = t(), [a, c] = v(ue, {
633
633
  refetchQueries: F,
634
634
  awaitRefetchQueries: !0
635
635
  }), [l, d] = u(null), [f, p] = u(null), m = async (t) => {
636
636
  d(null), p(t);
637
637
  try {
638
- await r(s({ variables: {
638
+ await i(a({ variables: {
639
639
  productId: e,
640
640
  objectiveId: t
641
641
  } }));
@@ -663,7 +663,7 @@ function fe({ productId: e, objectives: n }) {
663
663
  existingIds: n.map((e) => e.id)
664
664
  })]
665
665
  }),
666
- l && /* @__PURE__ */ x(a, { message: l }),
666
+ l && /* @__PURE__ */ x(o, { message: l }),
667
667
  n.length === 0 ? /* @__PURE__ */ x("p", {
668
668
  className: "text-sm text-muted-foreground text-center py-4",
669
669
  children: "No OKR objectives linked to this product yet."
@@ -674,14 +674,14 @@ function fe({ productId: e, objectives: n }) {
674
674
  children: [/* @__PURE__ */ x("button", {
675
675
  type: "button",
676
676
  className: "min-w-0 truncate text-left hover:underline",
677
- onClick: () => i(`/goals/objective-detail-page?objectiveId=${e.id}`),
677
+ onClick: () => r(`/goals/objective-detail-page?objectiveId=${e.id}`),
678
678
  children: e.title
679
679
  }), /* @__PURE__ */ S("div", {
680
680
  className: "flex items-center gap-2 shrink-0",
681
681
  children: [/* @__PURE__ */ x(C, {
682
682
  variant: "secondary",
683
683
  className: "text-xs capitalize",
684
- children: o(e.status)
684
+ children: s(e.status)
685
685
  }), /* @__PURE__ */ x(w, {
686
686
  size: "sm",
687
687
  variant: "ghost",
@@ -697,9 +697,9 @@ function fe({ productId: e, objectives: n }) {
697
697
  });
698
698
  }
699
699
  function pe({ productId: t, existingIds: n }) {
700
- let { workspaceId: i } = e(), [o, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(de, {
701
- variables: { workspaceId: i ?? "" },
702
- skip: !o || !i
700
+ let { workspaceId: r } = e(), [a, s] = u(!1), [c, l] = u(/* @__PURE__ */ new Set()), [d, f] = u(null), { data: p, loading: h } = y(de, {
701
+ variables: { workspaceId: r ?? "" },
702
+ skip: !a || !r
703
703
  }), g = (p?.planmagnetObjectives.items ?? []).filter((e) => !n.includes(e.id)), [_, b] = v(le, {
704
704
  refetchQueries: F,
705
705
  awaitRefetchQueries: !0
@@ -711,7 +711,7 @@ function pe({ productId: t, existingIds: n }) {
711
711
  }, E = async () => {
712
712
  f(null);
713
713
  try {
714
- await Promise.all([...c].map((e) => r(_({ variables: {
714
+ await Promise.all([...c].map((e) => i(_({ variables: {
715
715
  productId: t,
716
716
  objectiveId: e
717
717
  } })))), T(), s(!1);
@@ -720,7 +720,7 @@ function pe({ productId: t, existingIds: n }) {
720
720
  }
721
721
  };
722
722
  return /* @__PURE__ */ S(O, {
723
- open: o,
723
+ open: a,
724
724
  onOpenChange: (e) => {
725
725
  s(e), e || T();
726
726
  },
@@ -765,7 +765,7 @@ function pe({ productId: t, existingIds: n }) {
765
765
  })
766
766
  ]
767
767
  }),
768
- d && /* @__PURE__ */ x(a, { message: d }),
768
+ d && /* @__PURE__ */ x(o, { message: d }),
769
769
  /* @__PURE__ */ x(j, { children: /* @__PURE__ */ x(w, {
770
770
  onClick: () => void E(),
771
771
  disabled: c.size === 0 || b.loading,
@@ -854,37 +854,37 @@ function he({ product: e }) {
854
854
  valueProposition: e.valueProposition ?? "",
855
855
  businessModel: e.businessModel ?? "",
856
856
  targetSegments: e.targetSegments
857
- }, [n, i] = u(!1), [o, c] = u(t), [l, d] = u(null), [f, m] = v(me, {
857
+ }, [r, a] = u(!1), [s, c] = u(t), [l, d] = u(null), [f, m] = v(me, {
858
858
  refetchQueries: F,
859
859
  awaitRefetchQueries: !0
860
860
  }), h = () => {
861
- c(t), d(null), i(!0);
861
+ c(t), d(null), a(!0);
862
862
  }, g = [
863
- o.mission,
864
- o.valueProposition,
865
- o.businessModel
866
- ].some((e) => e.length > Y), _ = o.targetSegments.length <= X && o.targetSegments.every((e) => e.length <= Z), y = !g && _ && !m.loading, C = async () => {
863
+ s.mission,
864
+ s.valueProposition,
865
+ s.businessModel
866
+ ].some((e) => e.length > Y), _ = s.targetSegments.length <= X && s.targetSegments.every((e) => e.length <= Z), y = !g && _ && !m.loading, C = async () => {
867
867
  d(null);
868
868
  let t = (e) => e.trim() ? e.trim() : null;
869
869
  try {
870
- await r(f({ variables: {
870
+ await i(f({ variables: {
871
871
  id: e.id,
872
872
  input: {
873
- mission: t(o.mission),
874
- valueProposition: t(o.valueProposition),
875
- businessModel: t(o.businessModel),
876
- targetSegments: o.targetSegments
873
+ mission: t(s.mission),
874
+ valueProposition: t(s.valueProposition),
875
+ businessModel: t(s.businessModel),
876
+ targetSegments: s.targetSegments
877
877
  }
878
- } })), i(!1);
878
+ } })), a(!1);
879
879
  } catch (e) {
880
- d(s(e, "The product information could not be saved."));
880
+ d(n(e, "The product information could not be saved."));
881
881
  }
882
882
  }, D = "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[72px]";
883
883
  return /* @__PURE__ */ S(T, {
884
884
  "data-testid": "product-info",
885
885
  children: [/* @__PURE__ */ S(ee, {
886
886
  className: "flex flex-row items-center justify-between gap-2",
887
- children: [/* @__PURE__ */ x(te, { children: "About this product" }), !n && /* @__PURE__ */ S(w, {
887
+ children: [/* @__PURE__ */ x(te, { children: "About this product" }), !r && /* @__PURE__ */ S(w, {
888
888
  size: "sm",
889
889
  variant: "outline",
890
890
  "data-testid": "product-info-edit",
@@ -893,7 +893,7 @@ function he({ product: e }) {
893
893
  })]
894
894
  }), /* @__PURE__ */ x(E, {
895
895
  className: "space-y-4",
896
- children: n ? /* @__PURE__ */ S(b, { children: [
896
+ children: r ? /* @__PURE__ */ S(b, { children: [
897
897
  /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("label", {
898
898
  htmlFor: "product-info-mission",
899
899
  className: "text-sm font-medium",
@@ -902,9 +902,9 @@ function he({ product: e }) {
902
902
  id: "product-info-mission",
903
903
  className: D,
904
904
  maxLength: Y,
905
- value: o.mission,
905
+ value: s.mission,
906
906
  onChange: (e) => c({
907
- ...o,
907
+ ...s,
908
908
  mission: e.target.value
909
909
  })
910
910
  })] }),
@@ -916,9 +916,9 @@ function he({ product: e }) {
916
916
  id: "product-info-value-proposition",
917
917
  className: D,
918
918
  maxLength: Y,
919
- value: o.valueProposition,
919
+ value: s.valueProposition,
920
920
  onChange: (e) => c({
921
- ...o,
921
+ ...s,
922
922
  valueProposition: e.target.value
923
923
  })
924
924
  })] }),
@@ -930,9 +930,9 @@ function he({ product: e }) {
930
930
  id: "product-info-business-model",
931
931
  className: D,
932
932
  maxLength: Y,
933
- value: o.businessModel,
933
+ value: s.businessModel,
934
934
  onChange: (e) => c({
935
- ...o,
935
+ ...s,
936
936
  businessModel: e.target.value
937
937
  })
938
938
  })] }),
@@ -942,20 +942,20 @@ function he({ product: e }) {
942
942
  }), /* @__PURE__ */ x("div", {
943
943
  className: "mt-1",
944
944
  children: /* @__PURE__ */ x(Q, {
945
- value: o.targetSegments,
945
+ value: s.targetSegments,
946
946
  onChange: (e) => c({
947
- ...o,
947
+ ...s,
948
948
  targetSegments: e
949
949
  })
950
950
  })
951
951
  })] }),
952
- l && /* @__PURE__ */ x(a, { message: l }),
952
+ l && /* @__PURE__ */ x(o, { message: l }),
953
953
  /* @__PURE__ */ S("div", {
954
954
  className: "flex justify-end gap-2",
955
955
  children: [/* @__PURE__ */ x(w, {
956
956
  size: "sm",
957
957
  variant: "outline",
958
- onClick: () => i(!1),
958
+ onClick: () => a(!1),
959
959
  children: "Cancel"
960
960
  }), /* @__PURE__ */ x(w, {
961
961
  size: "sm",
@@ -1013,8 +1013,8 @@ var ge = _`
1013
1013
  planmagnetUnlinkProductCompetitor(productId: $productId, competitorId: $competitorId)
1014
1014
  }
1015
1015
  `;
1016
- function _e({ productId: e, competitors: n }) {
1017
- let o = t(), [d, f] = u(""), [p, h] = v(ge, {
1016
+ function _e({ productId: e, competitors: r }) {
1017
+ let s = t(), [d, f] = u(""), [p, h] = v(ge, {
1018
1018
  refetchQueries: F,
1019
1019
  awaitRefetchQueries: !0
1020
1020
  }), [_, y] = v($, {
@@ -1024,45 +1024,45 @@ function _e({ productId: e, competitors: n }) {
1024
1024
  if (d) {
1025
1025
  C(null);
1026
1026
  try {
1027
- await r(p({ variables: {
1027
+ await i(p({ variables: {
1028
1028
  productId: e,
1029
1029
  competitorId: d
1030
1030
  } })), f("");
1031
1031
  } catch (e) {
1032
- C(s(e, "The competitor could not be linked."));
1032
+ C(n(e, "The competitor could not be linked."));
1033
1033
  }
1034
1034
  }
1035
1035
  }, E = async (t) => {
1036
1036
  C(null);
1037
1037
  try {
1038
- await r(_({ variables: {
1038
+ await i(_({ variables: {
1039
1039
  productId: e,
1040
1040
  competitorId: t
1041
1041
  } }));
1042
1042
  } catch (e) {
1043
- C(s(e, "The competitor could not be unlinked."));
1043
+ C(n(e, "The competitor could not be unlinked."));
1044
1044
  }
1045
1045
  };
1046
1046
  return /* @__PURE__ */ S("div", {
1047
1047
  className: "space-y-3",
1048
1048
  "data-testid": "product-competitors",
1049
1049
  children: [
1050
- n.length === 0 ? /* @__PURE__ */ x("p", {
1050
+ r.length === 0 ? /* @__PURE__ */ x("p", {
1051
1051
  className: "text-sm text-muted-foreground text-center py-4",
1052
1052
  children: "No competitors linked to this product yet."
1053
1053
  }) : /* @__PURE__ */ x("ul", {
1054
1054
  className: "space-y-1",
1055
- children: n.map((e) => /* @__PURE__ */ S("li", {
1055
+ children: r.map((e) => /* @__PURE__ */ S("li", {
1056
1056
  className: "flex items-center justify-between gap-2 border rounded-md p-2 text-sm",
1057
1057
  children: [/* @__PURE__ */ S("button", {
1058
1058
  type: "button",
1059
1059
  className: "min-w-0 flex-1 text-left truncate hover:underline",
1060
- onClick: () => o(c("/products/competitor-detail-page", e.id)),
1060
+ onClick: () => s(c("/products/competitor-detail-page", e.id)),
1061
1061
  children: [e.name, e.website && /* @__PURE__ */ x("span", {
1062
1062
  className: "ml-2 text-xs text-primary",
1063
1063
  children: e.website
1064
1064
  })]
1065
- }), /* @__PURE__ */ x(i, {
1065
+ }), /* @__PURE__ */ x(a, {
1066
1066
  label: "",
1067
1067
  ariaLabel: `Unlink ${e.name} from this product`,
1068
1068
  testId: "product-competitor-unlink",
@@ -1085,7 +1085,7 @@ function _e({ productId: e, competitors: n }) {
1085
1085
  id: "product-add-competitor",
1086
1086
  value: d,
1087
1087
  onChange: f,
1088
- exclude: n.map((e) => e.id)
1088
+ exclude: r.map((e) => e.id)
1089
1089
  })
1090
1090
  }), /* @__PURE__ */ S(w, {
1091
1091
  size: "sm",
@@ -1095,7 +1095,7 @@ function _e({ productId: e, competitors: n }) {
1095
1095
  children: [/* @__PURE__ */ x(m, { className: "mr-1 h-4 w-4" }), "Add"]
1096
1096
  })]
1097
1097
  }),
1098
- b && /* @__PURE__ */ x(a, { message: b })
1098
+ b && /* @__PURE__ */ x(o, { message: b })
1099
1099
  ]
1100
1100
  });
1101
1101
  }