@burdenoff/microfe-planmagnet 2026.928.4 → 2026.928.6

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 (226) hide show
  1. package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
  2. package/dist/planmagnet/PlanMagnetRoot.js +130 -97
  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 +256 -156
  6. package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
  7. package/dist/planmagnet/automation/AutomationExecutionsPanel.d.ts +5 -0
  8. package/dist/planmagnet/automation/AutomationExecutionsPanel.d.ts.map +1 -0
  9. package/dist/planmagnet/automation/AutomationExecutionsPanel.js +107 -0
  10. package/dist/planmagnet/automation/AutomationExecutionsPanel.js.map +1 -0
  11. package/dist/planmagnet/automation/AutomationRuleFields.d.ts +29 -0
  12. package/dist/planmagnet/automation/AutomationRuleFields.d.ts.map +1 -0
  13. package/dist/planmagnet/automation/AutomationRuleFields.js +308 -0
  14. package/dist/planmagnet/automation/AutomationRuleFields.js.map +1 -0
  15. package/dist/planmagnet/automation/automationRuleTypes.d.ts +60 -0
  16. package/dist/planmagnet/automation/automationRuleTypes.d.ts.map +1 -0
  17. package/dist/planmagnet/automation/automationRuleTypes.js +113 -0
  18. package/dist/planmagnet/automation/automationRuleTypes.js.map +1 -0
  19. package/dist/planmagnet/board/BulkActions.d.ts +11 -0
  20. package/dist/planmagnet/board/BulkActions.d.ts.map +1 -0
  21. package/dist/planmagnet/board/BulkActions.js +182 -0
  22. package/dist/planmagnet/board/BulkActions.js.map +1 -0
  23. package/dist/planmagnet/board/ProjectBoard.d.ts.map +1 -1
  24. package/dist/planmagnet/board/ProjectBoard.js +289 -254
  25. package/dist/planmagnet/board/ProjectBoard.js.map +1 -1
  26. package/dist/planmagnet/budgets/BudgetControls.d.ts +30 -0
  27. package/dist/planmagnet/budgets/BudgetControls.d.ts.map +1 -0
  28. package/dist/planmagnet/budgets/BudgetControls.js +470 -0
  29. package/dist/planmagnet/budgets/BudgetControls.js.map +1 -0
  30. package/dist/planmagnet/budgets/ExpenseControls.d.ts +27 -0
  31. package/dist/planmagnet/budgets/ExpenseControls.d.ts.map +1 -0
  32. package/dist/planmagnet/budgets/ExpenseControls.js +366 -0
  33. package/dist/planmagnet/budgets/ExpenseControls.js.map +1 -0
  34. package/dist/planmagnet/budgets/ProjectBudgetsSummary.d.ts +5 -0
  35. package/dist/planmagnet/budgets/ProjectBudgetsSummary.d.ts.map +1 -0
  36. package/dist/planmagnet/budgets/ProjectBudgetsSummary.js +112 -0
  37. package/dist/planmagnet/budgets/ProjectBudgetsSummary.js.map +1 -0
  38. package/dist/planmagnet/budgets/budgetMath.d.ts +26 -0
  39. package/dist/planmagnet/budgets/budgetMath.d.ts.map +1 -0
  40. package/dist/planmagnet/budgets/budgetMath.js +49 -0
  41. package/dist/planmagnet/budgets/budgetMath.js.map +1 -0
  42. package/dist/planmagnet/controls/AutomationRuleControls.d.ts +23 -0
  43. package/dist/planmagnet/controls/AutomationRuleControls.d.ts.map +1 -0
  44. package/dist/planmagnet/controls/AutomationRuleControls.js +172 -0
  45. package/dist/planmagnet/controls/AutomationRuleControls.js.map +1 -0
  46. package/dist/planmagnet/controls/CompetitorControls.js +15 -15
  47. package/dist/planmagnet/controls/CustomFieldControls.d.ts +42 -0
  48. package/dist/planmagnet/controls/CustomFieldControls.d.ts.map +1 -0
  49. package/dist/planmagnet/controls/CustomFieldControls.js +84 -0
  50. package/dist/planmagnet/controls/CustomFieldControls.js.map +1 -0
  51. package/dist/planmagnet/controls/CustomFieldValuesPanel.d.ts +8 -0
  52. package/dist/planmagnet/controls/CustomFieldValuesPanel.d.ts.map +1 -0
  53. package/dist/planmagnet/controls/CustomFieldValuesPanel.js +315 -0
  54. package/dist/planmagnet/controls/CustomFieldValuesPanel.js.map +1 -0
  55. package/dist/planmagnet/controls/FeatureControls.js +54 -54
  56. package/dist/planmagnet/controls/ObjectiveControls.js +15 -15
  57. package/dist/planmagnet/controls/Pickers.d.ts +7 -0
  58. package/dist/planmagnet/controls/Pickers.d.ts.map +1 -1
  59. package/dist/planmagnet/controls/Pickers.js +58 -20
  60. package/dist/planmagnet/controls/Pickers.js.map +1 -1
  61. package/dist/planmagnet/controls/PortfolioControls.js +7 -7
  62. package/dist/planmagnet/controls/ProgramControls.js +19 -19
  63. package/dist/planmagnet/controls/ProjectControls.d.ts.map +1 -1
  64. package/dist/planmagnet/controls/ProjectControls.js +54 -47
  65. package/dist/planmagnet/controls/ProjectControls.js.map +1 -1
  66. package/dist/planmagnet/controls/ReleaseControls.js +7 -7
  67. package/dist/planmagnet/controls/RiskControls.d.ts +27 -0
  68. package/dist/planmagnet/controls/RiskControls.d.ts.map +1 -0
  69. package/dist/planmagnet/controls/RiskControls.js +346 -0
  70. package/dist/planmagnet/controls/RiskControls.js.map +1 -0
  71. package/dist/planmagnet/controls/TemplateControls.d.ts +15 -0
  72. package/dist/planmagnet/controls/TemplateControls.d.ts.map +1 -0
  73. package/dist/planmagnet/controls/TemplateControls.js +55 -0
  74. package/dist/planmagnet/controls/TemplateControls.js.map +1 -0
  75. package/dist/planmagnet/controls/WorkItemControls.d.ts +6 -2
  76. package/dist/planmagnet/controls/WorkItemControls.d.ts.map +1 -1
  77. package/dist/planmagnet/controls/WorkItemControls.js +9 -9
  78. package/dist/planmagnet/controls/WorkItemControls.js.map +1 -1
  79. package/dist/planmagnet/create/CreateDialogs.d.ts +20 -0
  80. package/dist/planmagnet/create/CreateDialogs.d.ts.map +1 -1
  81. package/dist/planmagnet/create/CreateDialogs.js +455 -116
  82. package/dist/planmagnet/create/CreateDialogs.js.map +1 -1
  83. package/dist/planmagnet/dependency/DependencyPanel.d.ts +6 -0
  84. package/dist/planmagnet/dependency/DependencyPanel.d.ts.map +1 -0
  85. package/dist/planmagnet/dependency/DependencyPanel.js +310 -0
  86. package/dist/planmagnet/dependency/DependencyPanel.js.map +1 -0
  87. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.d.ts +2 -0
  88. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.d.ts.map +1 -0
  89. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js +171 -0
  90. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js.map +1 -0
  91. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.d.ts +2 -0
  92. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.d.ts.map +1 -0
  93. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js +232 -0
  94. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js.map +1 -0
  95. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.d.ts +2 -0
  96. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.d.ts.map +1 -0
  97. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js +93 -0
  98. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js.map +1 -0
  99. package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +1 -1
  100. package/dist/planmagnet/pages/DashboardDashboardPagePage.js +11 -3
  101. package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +1 -1
  102. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.js +5 -5
  103. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js +9 -9
  104. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.js +6 -6
  105. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.js +4 -4
  106. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.js +6 -6
  107. package/dist/planmagnet/pages/ProgramsProgramsPagePage.js +5 -5
  108. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.d.ts +2 -0
  109. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.d.ts.map +1 -0
  110. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js +315 -0
  111. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js.map +1 -0
  112. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.d.ts +2 -0
  113. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.d.ts.map +1 -0
  114. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js +186 -0
  115. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js.map +1 -0
  116. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts +2 -0
  117. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts.map +1 -0
  118. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js +164 -0
  119. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js.map +1 -0
  120. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.d.ts +2 -0
  121. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.d.ts.map +1 -0
  122. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js +348 -0
  123. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js.map +1 -0
  124. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +10 -10
  125. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +4 -4
  126. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +1 -1
  127. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +20 -10
  128. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +1 -1
  129. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts.map +1 -1
  130. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +13 -8
  131. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js.map +1 -1
  132. package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts.map +1 -1
  133. package/dist/planmagnet/pages/ProjectsPlanningPagePage.js +76 -56
  134. package/dist/planmagnet/pages/ProjectsPlanningPagePage.js.map +1 -1
  135. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
  136. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +372 -203
  137. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
  138. package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts.map +1 -1
  139. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +81 -72
  140. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +1 -1
  141. package/dist/planmagnet/pages/RisksRiskDetailPagePage.d.ts +2 -0
  142. package/dist/planmagnet/pages/RisksRiskDetailPagePage.d.ts.map +1 -0
  143. package/dist/planmagnet/pages/RisksRiskDetailPagePage.js +278 -0
  144. package/dist/planmagnet/pages/RisksRiskDetailPagePage.js.map +1 -0
  145. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.d.ts +2 -0
  146. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.d.ts.map +1 -0
  147. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js +191 -0
  148. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js.map +1 -0
  149. package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +1 -1
  150. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +168 -122
  151. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +1 -1
  152. package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +5 -5
  153. package/dist/planmagnet/pages/TasksEditTaskPagePage.js +4 -4
  154. package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
  155. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +161 -137
  156. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
  157. package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -1
  158. package/dist/planmagnet/pages/TasksTasksPagePage.js +124 -113
  159. package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -1
  160. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.d.ts +2 -0
  161. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.d.ts.map +1 -0
  162. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js +263 -0
  163. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js.map +1 -0
  164. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.d.ts +2 -0
  165. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.d.ts.map +1 -0
  166. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js +254 -0
  167. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js.map +1 -0
  168. package/dist/planmagnet/pages/TasksTimesheetsPagePage.d.ts +2 -0
  169. package/dist/planmagnet/pages/TasksTimesheetsPagePage.d.ts.map +1 -0
  170. package/dist/planmagnet/pages/TasksTimesheetsPagePage.js +165 -0
  171. package/dist/planmagnet/pages/TasksTimesheetsPagePage.js.map +1 -0
  172. package/dist/planmagnet/pages/TeamCreateTeamPagePage.d.ts.map +1 -1
  173. package/dist/planmagnet/pages/TeamCreateTeamPagePage.js +288 -91
  174. package/dist/planmagnet/pages/TeamCreateTeamPagePage.js.map +1 -1
  175. package/dist/planmagnet/pages/TeamTeamDetailPagePage.d.ts +2 -0
  176. package/dist/planmagnet/pages/TeamTeamDetailPagePage.d.ts.map +1 -0
  177. package/dist/planmagnet/pages/TeamTeamDetailPagePage.js +217 -0
  178. package/dist/planmagnet/pages/TeamTeamDetailPagePage.js.map +1 -0
  179. package/dist/planmagnet/pages/TeamTeamEditPagePage.d.ts +2 -0
  180. package/dist/planmagnet/pages/TeamTeamEditPagePage.d.ts.map +1 -0
  181. package/dist/planmagnet/pages/TeamTeamEditPagePage.js +211 -0
  182. package/dist/planmagnet/pages/TeamTeamEditPagePage.js.map +1 -0
  183. package/dist/planmagnet/pages/TeamTeamsListPagePage.d.ts +2 -0
  184. package/dist/planmagnet/pages/TeamTeamsListPagePage.d.ts.map +1 -0
  185. package/dist/planmagnet/pages/TeamTeamsListPagePage.js +118 -0
  186. package/dist/planmagnet/pages/TeamTeamsListPagePage.js.map +1 -0
  187. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.d.ts +2 -0
  188. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.d.ts.map +1 -0
  189. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js +316 -0
  190. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js.map +1 -0
  191. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts +2 -0
  192. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts.map +1 -0
  193. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js +208 -0
  194. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js.map +1 -0
  195. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts +0 -5
  196. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts.map +1 -1
  197. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js +47 -89
  198. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js.map +1 -1
  199. package/dist/planmagnet/roadmaps/RoadmapControls.js +24 -24
  200. package/dist/planmagnet/sprints/SprintControls.d.ts +15 -3
  201. package/dist/planmagnet/sprints/SprintControls.d.ts.map +1 -1
  202. package/dist/planmagnet/sprints/SprintControls.js +293 -190
  203. package/dist/planmagnet/sprints/SprintControls.js.map +1 -1
  204. package/dist/planmagnet/team/TeamControls.d.ts +31 -0
  205. package/dist/planmagnet/team/TeamControls.d.ts.map +1 -0
  206. package/dist/planmagnet/team/TeamControls.js +407 -0
  207. package/dist/planmagnet/team/TeamControls.js.map +1 -0
  208. package/dist/planmagnet/time/TaskTimePanel.d.ts +7 -0
  209. package/dist/planmagnet/time/TaskTimePanel.d.ts.map +1 -0
  210. package/dist/planmagnet/time/TaskTimePanel.js +104 -0
  211. package/dist/planmagnet/time/TaskTimePanel.js.map +1 -0
  212. package/dist/planmagnet/time/TimeEntryControls.d.ts +37 -0
  213. package/dist/planmagnet/time/TimeEntryControls.d.ts.map +1 -0
  214. package/dist/planmagnet/time/TimeEntryControls.js +338 -0
  215. package/dist/planmagnet/time/TimeEntryControls.js.map +1 -0
  216. package/dist/planmagnet/time/TimesheetControls.d.ts +18 -0
  217. package/dist/planmagnet/time/TimesheetControls.d.ts.map +1 -0
  218. package/dist/planmagnet/time/TimesheetControls.js +244 -0
  219. package/dist/planmagnet/time/TimesheetControls.js.map +1 -0
  220. package/dist/planmagnet/time/timeShared.d.ts +29 -0
  221. package/dist/planmagnet/time/timeShared.d.ts.map +1 -0
  222. package/dist/planmagnet/time/timeShared.js +34 -0
  223. package/dist/planmagnet/time/timeShared.js.map +1 -0
  224. package/dist/planmagnet/utils/rowNavigation.js +5 -2
  225. package/dist/planmagnet/utils/rowNavigation.js.map +1 -1
  226. package/package.json +1 -1
@@ -1,13 +1,15 @@
1
1
  import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
2
2
  import { throwOnError as n } from "../utils/mutationResult.js";
3
- import { useState as r } from "react";
4
- import { Plus as i } from "lucide-react";
5
- import { gql as a } from "@apollo/client";
6
- import { useMutation as o, useQuery as s } from "@apollo/client/react";
7
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
8
- import { Button as u, Input as d, ResponsiveDialog as f, ResponsiveDialogContent as p, ResponsiveDialogDescription as m, ResponsiveDialogFooter as h, ResponsiveDialogHeader as g, ResponsiveDialogTitle as _, ResponsiveDialogTrigger as v } from "@burdenoff/fe-libs/ui";
3
+ import { AssigneeSelect as r, enumLabel as i } from "../controls/WorkItemControls.js";
4
+ import { RISK_SEVERITIES as a } from "../controls/RiskControls.js";
5
+ import { useState as o } from "react";
6
+ import { Plus as s } from "lucide-react";
7
+ import { gql as c } from "@apollo/client";
8
+ import { useMutation as l, useQuery as u } from "@apollo/client/react";
9
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
10
+ import { Button as p, Input as m, ResponsiveDialog as h, ResponsiveDialogContent as g, ResponsiveDialogDescription as _, ResponsiveDialogFooter as v, ResponsiveDialogHeader as y, ResponsiveDialogTitle as b, ResponsiveDialogTrigger as x } from "@burdenoff/fe-libs/ui";
9
11
  //#region src/planmagnet/create/CreateDialogs.tsx
10
- var y = a`
12
+ var S = c`
11
13
  query CreateDialogProjects($workspaceId: ID!) {
12
14
  planmagnetProjects(workspaceId: $workspaceId, pagination: { first: 100 }) {
13
15
  items {
@@ -16,16 +18,16 @@ var y = a`
16
18
  }
17
19
  }
18
20
  }
19
- `, b = "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm";
20
- function x({ message: e }) {
21
- return /* @__PURE__ */ c("p", {
21
+ `, C = "mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm";
22
+ function w({ message: e }) {
23
+ return /* @__PURE__ */ d("p", {
22
24
  role: "alert",
23
25
  className: "text-sm text-destructive",
24
26
  children: e
25
27
  });
26
28
  }
27
- function S(t) {
28
- let { workspaceId: n } = e(), { data: r, loading: i, error: a, refetch: o } = s(y, {
29
+ function T(t) {
30
+ let { workspaceId: n } = e(), { data: r, loading: i, error: a, refetch: o } = u(S, {
29
31
  variables: { workspaceId: n ?? "" },
30
32
  skip: !t || !n
31
33
  });
@@ -36,42 +38,42 @@ function S(t) {
36
38
  retry: () => void o()
37
39
  };
38
40
  }
39
- function C({ id: e, value: n, onChange: r, state: i }) {
40
- let a = t(), { projects: o, loading: s, error: d, retry: f } = i, p = !s && !d && o.length === 0;
41
- return /* @__PURE__ */ l("div", { children: [
42
- /* @__PURE__ */ c("label", {
41
+ function E({ id: e, value: n, onChange: r, state: i }) {
42
+ let a = t(), { projects: o, loading: s, error: c, retry: l } = i, u = !s && !c && o.length === 0;
43
+ return /* @__PURE__ */ f("div", { children: [
44
+ /* @__PURE__ */ d("label", {
43
45
  htmlFor: e,
44
46
  className: "text-sm font-medium",
45
47
  children: "Project"
46
48
  }),
47
- /* @__PURE__ */ l("select", {
49
+ /* @__PURE__ */ f("select", {
48
50
  id: e,
49
- className: b,
51
+ className: C,
50
52
  value: n,
51
53
  onChange: (e) => r(e.target.value),
52
- children: [o.length === 0 && /* @__PURE__ */ c("option", {
54
+ children: [o.length === 0 && /* @__PURE__ */ d("option", {
53
55
  value: "",
54
- children: s ? "Loading projects…" : d ? "Projects could not be loaded" : "No projects yet"
55
- }), o.map((e) => /* @__PURE__ */ c("option", {
56
+ children: s ? "Loading projects…" : c ? "Projects could not be loaded" : "No projects yet"
57
+ }), o.map((e) => /* @__PURE__ */ d("option", {
56
58
  value: e.id,
57
59
  children: e.name
58
60
  }, e.id))]
59
61
  }),
60
- d && /* @__PURE__ */ l("p", {
62
+ c && /* @__PURE__ */ f("p", {
61
63
  role: "alert",
62
64
  className: "mt-1 flex items-center gap-2 text-xs text-destructive",
63
- children: [d, /* @__PURE__ */ c(u, {
65
+ children: [c, /* @__PURE__ */ d(p, {
64
66
  type: "button",
65
67
  size: "sm",
66
68
  variant: "ghost",
67
69
  className: "h-6 px-2 text-xs",
68
- onClick: f,
70
+ onClick: l,
69
71
  children: "Retry"
70
72
  })]
71
73
  }),
72
- p && /* @__PURE__ */ c("p", {
74
+ u && /* @__PURE__ */ d("p", {
73
75
  className: "mt-1 text-xs text-muted-foreground",
74
- children: /* @__PURE__ */ c("button", {
76
+ children: /* @__PURE__ */ d("button", {
75
77
  type: "button",
76
78
  className: "underline",
77
79
  onClick: () => a("/projects/create-project-page"),
@@ -80,12 +82,12 @@ function C({ id: e, value: n, onChange: r, state: i }) {
80
82
  })
81
83
  ] });
82
84
  }
83
- function w({ id: e, label: t, value: n, onChange: r, type: i = "text", placeholder: a }) {
84
- return /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("label", {
85
+ function D({ id: e, label: t, value: n, onChange: r, type: i = "text", placeholder: a }) {
86
+ return /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
85
87
  htmlFor: e,
86
88
  className: "text-sm font-medium",
87
89
  children: t
88
- }), /* @__PURE__ */ c(d, {
90
+ }), /* @__PURE__ */ d(m, {
89
91
  id: e,
90
92
  type: i,
91
93
  className: "mt-1",
@@ -94,106 +96,106 @@ function w({ id: e, label: t, value: n, onChange: r, type: i = "text", placehold
94
96
  onChange: (e) => r(e.target.value)
95
97
  })] });
96
98
  }
97
- var T = (e, t) => e instanceof Error ? e.message : t, E = a`
99
+ var O = (e, t) => e instanceof Error ? e.message : t, k = c`
98
100
  mutation CreateDialogRelease($input: PlanmagnetCreateReleaseInput!) {
99
101
  planmagnetCreateRelease(input: $input) {
100
102
  id
101
103
  }
102
104
  }
103
- `, D = {
105
+ `, A = {
104
106
  name: "",
105
107
  version: "",
106
108
  projectId: "",
107
109
  plannedDate: "",
108
110
  description: ""
109
111
  };
110
- function O({ onCreated: e }) {
111
- let [t, a] = r(!1), [s, d] = r(D), [y, b] = r(null), O = S(t), { projects: k } = O, A = s.projectId || k[0]?.id || "", [j, { loading: M }] = o(E, {
112
+ function j({ onCreated: e }) {
113
+ let [t, r] = o(!1), [i, a] = o(A), [c, u] = o(null), m = T(t), { projects: S } = m, C = i.projectId || S[0]?.id || "", [j, { loading: M }] = l(k, {
112
114
  refetchQueries: ["ListReleases"],
113
115
  awaitRefetchQueries: !0
114
- }), N = s.name.trim() !== "" && s.version.trim() !== "" && A !== "" && !M;
115
- return /* @__PURE__ */ l(f, {
116
+ }), N = i.name.trim() !== "" && i.version.trim() !== "" && C !== "" && !M;
117
+ return /* @__PURE__ */ f(h, {
116
118
  open: t,
117
119
  onOpenChange: (e) => {
118
- a(e), e || b(null);
120
+ r(e), e || u(null);
119
121
  },
120
- children: [/* @__PURE__ */ c(v, {
122
+ children: [/* @__PURE__ */ d(x, {
121
123
  asChild: !0,
122
- children: /* @__PURE__ */ l(u, {
124
+ children: /* @__PURE__ */ f(p, {
123
125
  size: "sm",
124
- children: [/* @__PURE__ */ c(i, { className: "mr-1 h-4 w-4" }), "New Release"]
126
+ children: [/* @__PURE__ */ d(s, { className: "mr-1 h-4 w-4" }), "New Release"]
125
127
  })
126
- }), /* @__PURE__ */ l(p, {
128
+ }), /* @__PURE__ */ f(g, {
127
129
  className: "max-w-lg",
128
130
  children: [
129
- /* @__PURE__ */ l(g, { children: [/* @__PURE__ */ c(_, { children: "New release" }), /* @__PURE__ */ c(m, { children: "The release starts in Planning." })] }),
130
- /* @__PURE__ */ l("div", {
131
+ /* @__PURE__ */ f(y, { children: [/* @__PURE__ */ d(b, { children: "New release" }), /* @__PURE__ */ d(_, { children: "The release starts in Planning." })] }),
132
+ /* @__PURE__ */ f("div", {
131
133
  className: "space-y-3",
132
134
  children: [
133
- /* @__PURE__ */ c(w, {
135
+ /* @__PURE__ */ d(D, {
134
136
  id: "new-release-name",
135
137
  label: "Name",
136
- value: s.name,
137
- onChange: (e) => d({
138
- ...s,
138
+ value: i.name,
139
+ onChange: (e) => a({
140
+ ...i,
139
141
  name: e
140
142
  })
141
143
  }),
142
- /* @__PURE__ */ c(w, {
144
+ /* @__PURE__ */ d(D, {
143
145
  id: "new-release-version",
144
146
  label: "Version",
145
147
  placeholder: "e.g. 1.4.0",
146
- value: s.version,
147
- onChange: (e) => d({
148
- ...s,
148
+ value: i.version,
149
+ onChange: (e) => a({
150
+ ...i,
149
151
  version: e
150
152
  })
151
153
  }),
152
- /* @__PURE__ */ c(C, {
154
+ /* @__PURE__ */ d(E, {
153
155
  id: "new-release-project",
154
- value: A,
155
- onChange: (e) => d({
156
- ...s,
156
+ value: C,
157
+ onChange: (e) => a({
158
+ ...i,
157
159
  projectId: e
158
160
  }),
159
- state: O
161
+ state: m
160
162
  }),
161
- /* @__PURE__ */ c(w, {
163
+ /* @__PURE__ */ d(D, {
162
164
  id: "new-release-date",
163
165
  label: "Planned date",
164
166
  type: "date",
165
- value: s.plannedDate,
166
- onChange: (e) => d({
167
- ...s,
167
+ value: i.plannedDate,
168
+ onChange: (e) => a({
169
+ ...i,
168
170
  plannedDate: e
169
171
  })
170
172
  }),
171
- /* @__PURE__ */ c(w, {
173
+ /* @__PURE__ */ d(D, {
172
174
  id: "new-release-description",
173
175
  label: "Description",
174
- value: s.description,
175
- onChange: (e) => d({
176
- ...s,
176
+ value: i.description,
177
+ onChange: (e) => a({
178
+ ...i,
177
179
  description: e
178
180
  })
179
181
  })
180
182
  ]
181
183
  }),
182
- y && /* @__PURE__ */ c(x, { message: y }),
183
- /* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(u, {
184
+ c && /* @__PURE__ */ d(w, { message: c }),
185
+ /* @__PURE__ */ d(v, { children: /* @__PURE__ */ d(p, {
184
186
  onClick: async () => {
185
- b(null);
187
+ u(null);
186
188
  try {
187
189
  let t = (await n(j({ variables: { input: {
188
- name: s.name.trim(),
189
- version: s.version.trim(),
190
- projectId: A,
191
- plannedDate: s.plannedDate || void 0,
192
- description: s.description.trim() || void 0
190
+ name: i.name.trim(),
191
+ version: i.version.trim(),
192
+ projectId: C,
193
+ plannedDate: i.plannedDate || void 0,
194
+ description: i.description.trim() || void 0
193
195
  } } }))).data?.planmagnetCreateRelease.id;
194
- d(D), a(!1), t && e(t);
196
+ a(A), r(!1), t && e(t);
195
197
  } catch (e) {
196
- b(T(e, "The release could not be created."));
198
+ u(O(e, "The release could not be created."));
197
199
  }
198
200
  },
199
201
  disabled: !N,
@@ -204,105 +206,442 @@ function O({ onCreated: e }) {
204
206
  })]
205
207
  });
206
208
  }
207
- var k = a`
209
+ var M = c`
208
210
  mutation CreateDialogMilestone($input: PlanmagnetCreateMilestoneInput!) {
209
211
  planmagnetCreateMilestone(input: $input) {
210
212
  id
211
213
  }
212
214
  }
213
- `, A = {
215
+ `, N = {
214
216
  name: "",
215
217
  projectId: "",
216
218
  dueDate: "",
217
219
  description: ""
218
220
  };
219
- function j({ onCreated: e }) {
220
- let [t, a] = r(!1), [s, d] = r(A), [y, b] = r(null), E = S(t), { projects: D } = E, O = s.projectId || D[0]?.id || "", [j, { loading: M }] = o(k, {
221
+ function P({ onCreated: e }) {
222
+ let [t, r] = o(!1), [i, a] = o(N), [c, u] = o(null), m = T(t), { projects: S } = m, C = i.projectId || S[0]?.id || "", [k, { loading: A }] = l(M, {
221
223
  refetchQueries: ["GetMilestones"],
222
224
  awaitRefetchQueries: !0
223
- }), N = s.name.trim() !== "" && O !== "" && !M;
224
- return /* @__PURE__ */ l(f, {
225
+ }), j = i.name.trim() !== "" && C !== "" && !A;
226
+ return /* @__PURE__ */ f(h, {
225
227
  open: t,
226
228
  onOpenChange: (e) => {
227
- a(e), e || b(null);
229
+ r(e), e || u(null);
228
230
  },
229
- children: [/* @__PURE__ */ c(v, {
231
+ children: [/* @__PURE__ */ d(x, {
230
232
  asChild: !0,
231
- children: /* @__PURE__ */ l(u, {
233
+ children: /* @__PURE__ */ f(p, {
232
234
  size: "sm",
233
- children: [/* @__PURE__ */ c(i, { className: "mr-1 h-4 w-4" }), "New Milestone"]
235
+ children: [/* @__PURE__ */ d(s, { className: "mr-1 h-4 w-4" }), "New Milestone"]
234
236
  })
235
- }), /* @__PURE__ */ l(p, {
237
+ }), /* @__PURE__ */ f(g, {
236
238
  className: "max-w-lg",
237
239
  children: [
238
- /* @__PURE__ */ l(g, { children: [/* @__PURE__ */ c(_, { children: "New milestone" }), /* @__PURE__ */ c(m, { children: "The milestone starts as Pending." })] }),
239
- /* @__PURE__ */ l("div", {
240
+ /* @__PURE__ */ f(y, { children: [/* @__PURE__ */ d(b, { children: "New milestone" }), /* @__PURE__ */ d(_, { children: "The milestone starts as Pending." })] }),
241
+ /* @__PURE__ */ f("div", {
240
242
  className: "space-y-3",
241
243
  children: [
242
- /* @__PURE__ */ c(w, {
244
+ /* @__PURE__ */ d(D, {
243
245
  id: "new-milestone-name",
244
246
  label: "Name",
245
- value: s.name,
246
- onChange: (e) => d({
247
- ...s,
247
+ value: i.name,
248
+ onChange: (e) => a({
249
+ ...i,
248
250
  name: e
249
251
  })
250
252
  }),
251
- /* @__PURE__ */ c(C, {
253
+ /* @__PURE__ */ d(E, {
252
254
  id: "new-milestone-project",
253
- value: O,
254
- onChange: (e) => d({
255
- ...s,
255
+ value: C,
256
+ onChange: (e) => a({
257
+ ...i,
256
258
  projectId: e
257
259
  }),
258
- state: E
260
+ state: m
259
261
  }),
260
- /* @__PURE__ */ c(w, {
262
+ /* @__PURE__ */ d(D, {
261
263
  id: "new-milestone-due",
262
264
  label: "Due date",
263
265
  type: "date",
264
- value: s.dueDate,
265
- onChange: (e) => d({
266
- ...s,
266
+ value: i.dueDate,
267
+ onChange: (e) => a({
268
+ ...i,
267
269
  dueDate: e
268
270
  })
269
271
  }),
270
- /* @__PURE__ */ c(w, {
272
+ /* @__PURE__ */ d(D, {
271
273
  id: "new-milestone-description",
272
274
  label: "Description",
273
- value: s.description,
274
- onChange: (e) => d({
275
- ...s,
275
+ value: i.description,
276
+ onChange: (e) => a({
277
+ ...i,
276
278
  description: e
277
279
  })
278
280
  })
279
281
  ]
280
282
  }),
281
- y && /* @__PURE__ */ c(x, { message: y }),
282
- /* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(u, {
283
+ c && /* @__PURE__ */ d(w, { message: c }),
284
+ /* @__PURE__ */ d(v, { children: /* @__PURE__ */ d(p, {
283
285
  onClick: async () => {
284
- b(null);
286
+ u(null);
285
287
  try {
286
- let t = (await n(j({ variables: { input: {
287
- name: s.name.trim(),
288
- projectId: O,
289
- dueDate: s.dueDate || void 0,
290
- description: s.description.trim() || void 0
288
+ let t = (await n(k({ variables: { input: {
289
+ name: i.name.trim(),
290
+ projectId: C,
291
+ dueDate: i.dueDate || void 0,
292
+ description: i.description.trim() || void 0
291
293
  } } }))).data?.planmagnetCreateMilestone.id;
292
- d(A), a(!1), t && e(t);
294
+ a(N), r(!1), t && e(t);
293
295
  } catch (e) {
294
- b(T(e, "The milestone could not be created."));
296
+ u(O(e, "The milestone could not be created."));
295
297
  }
296
298
  },
297
- disabled: !N,
299
+ disabled: !j,
298
300
  "data-testid": "new-milestone-submit",
299
- children: M ? "Creating…" : "Create milestone"
301
+ children: A ? "Creating…" : "Create milestone"
302
+ }) })
303
+ ]
304
+ })]
305
+ });
306
+ }
307
+ var F = c`
308
+ mutation CreateDialogTemplateFromProject($projectId: ID!, $name: String!, $description: String) {
309
+ planmagnetCreateTemplateFromProject(
310
+ projectId: $projectId
311
+ name: $name
312
+ description: $description
313
+ ) {
314
+ id
315
+ }
316
+ }
317
+ `;
318
+ function I({ projectId: e, projectName: t, onCreated: r, trigger: i }) {
319
+ let [a, c] = o(!1), [u, m] = o(t ? `${t} template` : ""), [S, C] = o(""), [k, A] = o(e ?? ""), [j, M] = o(null), N = T(a && !e), { projects: P } = N, I = e ?? (k || P[0]?.id || ""), [L, { loading: R }] = l(F, {
320
+ refetchQueries: ["TemplatesList"],
321
+ awaitRefetchQueries: !0
322
+ }), z = u.trim() !== "" && I !== "" && !R;
323
+ return /* @__PURE__ */ f(h, {
324
+ open: a,
325
+ onOpenChange: (e) => {
326
+ c(e), e || M(null);
327
+ },
328
+ children: [/* @__PURE__ */ d(x, {
329
+ asChild: !0,
330
+ children: i ?? /* @__PURE__ */ f(p, {
331
+ size: "sm",
332
+ "data-testid": "new-template-trigger",
333
+ children: [/* @__PURE__ */ d(s, { className: "mr-1 h-4 w-4" }), "New template"]
334
+ })
335
+ }), /* @__PURE__ */ f(g, {
336
+ className: "max-w-lg",
337
+ children: [
338
+ /* @__PURE__ */ f(y, { children: [/* @__PURE__ */ d(b, { children: "New template from project" }), /* @__PURE__ */ d(_, { children: "Captures this project's methodology and status as a reusable template. The project itself is unchanged." })] }),
339
+ /* @__PURE__ */ f("div", {
340
+ className: "space-y-3",
341
+ children: [
342
+ /* @__PURE__ */ d(D, {
343
+ id: "new-template-name",
344
+ label: "Template name",
345
+ value: u,
346
+ onChange: m
347
+ }),
348
+ !e && /* @__PURE__ */ d(E, {
349
+ id: "new-template-project",
350
+ value: I,
351
+ onChange: A,
352
+ state: N
353
+ }),
354
+ /* @__PURE__ */ d(D, {
355
+ id: "new-template-description",
356
+ label: "Description",
357
+ value: S,
358
+ onChange: C
359
+ })
360
+ ]
361
+ }),
362
+ j && /* @__PURE__ */ d(w, { message: j }),
363
+ /* @__PURE__ */ d(v, { children: /* @__PURE__ */ d(p, {
364
+ onClick: async () => {
365
+ M(null);
366
+ try {
367
+ let e = (await n(L({ variables: {
368
+ projectId: I,
369
+ name: u.trim(),
370
+ description: S.trim() || void 0
371
+ } }))).data?.planmagnetCreateTemplateFromProject.id;
372
+ m(""), C(""), c(!1), e && r(e);
373
+ } catch (e) {
374
+ M(O(e, "The template could not be created."));
375
+ }
376
+ },
377
+ disabled: !z,
378
+ "data-testid": "new-template-submit",
379
+ children: R ? "Creating…" : "Create template"
380
+ }) })
381
+ ]
382
+ })]
383
+ });
384
+ }
385
+ var L = c`
386
+ mutation CreateDialogApplyTemplate($input: PlanmagnetApplyTemplateInput!) {
387
+ planmagnetApplyTemplate(input: $input) {
388
+ id
389
+ name
390
+ }
391
+ }
392
+ `;
393
+ function R({ templateId: t, templateName: i, onApplied: a }) {
394
+ let { currentUser: c } = e(), [u, m] = o(!1), [S, C] = o(""), [T, E] = o(""), [k, A] = o(""), [j, M] = o(null), [N, { loading: P }] = l(L, {
395
+ refetchQueries: [
396
+ "GetProjects",
397
+ "GetActiveProjects",
398
+ "GetDashboardData"
399
+ ],
400
+ awaitRefetchQueries: !0
401
+ }), F = k || c?.id || "", I = S.trim() !== "" && F !== "" && !P;
402
+ return /* @__PURE__ */ f(h, {
403
+ open: u,
404
+ onOpenChange: (e) => {
405
+ m(e), e ? A(c?.id ?? "") : M(null);
406
+ },
407
+ children: [/* @__PURE__ */ d(x, {
408
+ asChild: !0,
409
+ children: /* @__PURE__ */ f(p, {
410
+ size: "sm",
411
+ variant: "outline",
412
+ "data-testid": "apply-template-trigger",
413
+ children: [/* @__PURE__ */ d(s, { className: "mr-1 h-4 w-4" }), "Use template"]
414
+ })
415
+ }), /* @__PURE__ */ f(g, {
416
+ className: "max-w-lg",
417
+ children: [
418
+ /* @__PURE__ */ f(y, { children: [/* @__PURE__ */ f(b, { children: [
419
+ "New project from \"",
420
+ i,
421
+ "\""
422
+ ] }), /* @__PURE__ */ d(_, { children: "Creates a project using this template's methodology and status. It counts toward the workspace's project quota like any other project." })] }),
423
+ /* @__PURE__ */ f("div", {
424
+ className: "space-y-3",
425
+ children: [
426
+ /* @__PURE__ */ d(D, {
427
+ id: "apply-template-name",
428
+ label: "Project name",
429
+ value: S,
430
+ onChange: C
431
+ }),
432
+ /* @__PURE__ */ d(D, {
433
+ id: "apply-template-description",
434
+ label: "Description",
435
+ value: T,
436
+ onChange: E
437
+ }),
438
+ /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
439
+ htmlFor: "apply-template-owner",
440
+ className: "text-sm font-medium",
441
+ children: "Owner"
442
+ }), /* @__PURE__ */ d("div", {
443
+ className: "mt-1",
444
+ children: /* @__PURE__ */ d(r, {
445
+ id: "apply-template-owner",
446
+ value: F,
447
+ onChange: A
448
+ })
449
+ })] })
450
+ ]
451
+ }),
452
+ j && /* @__PURE__ */ d(w, { message: j }),
453
+ /* @__PURE__ */ d(v, { children: /* @__PURE__ */ d(p, {
454
+ onClick: async () => {
455
+ M(null);
456
+ try {
457
+ let e = (await n(N({ variables: { input: {
458
+ templateId: t,
459
+ projectName: S.trim(),
460
+ projectDescription: T.trim() || void 0,
461
+ ownerId: F
462
+ } } }))).data?.planmagnetApplyTemplate.id;
463
+ C(""), E(""), m(!1), e && a(e);
464
+ } catch (e) {
465
+ M(O(e, "The project could not be created from this template."));
466
+ }
467
+ },
468
+ disabled: !I,
469
+ "data-testid": "apply-template-submit",
470
+ children: P ? "Creating…" : "Create project"
471
+ }) })
472
+ ]
473
+ })]
474
+ });
475
+ }
476
+ var z = c`
477
+ mutation CreateDialogRisk($input: PlanmagnetCreateRiskInput!) {
478
+ planmagnetCreateRisk(input: $input) {
479
+ id
480
+ }
481
+ }
482
+ `, B = [
483
+ 1,
484
+ 2,
485
+ 3,
486
+ 4,
487
+ 5
488
+ ];
489
+ function V({ id: e, label: t, value: n, onChange: r }) {
490
+ return /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
491
+ htmlFor: e,
492
+ className: "text-sm font-medium",
493
+ children: t
494
+ }), /* @__PURE__ */ d("select", {
495
+ id: e,
496
+ className: C,
497
+ value: n,
498
+ onChange: (e) => r(Number(e.target.value)),
499
+ children: B.map((e) => /* @__PURE__ */ d("option", {
500
+ value: e,
501
+ children: e
502
+ }, e))
503
+ })] });
504
+ }
505
+ function H({ projectId: e, onCreated: t }) {
506
+ let r = {
507
+ title: "",
508
+ projectId: e ?? "",
509
+ severity: "MEDIUM",
510
+ likelihood: 3,
511
+ impact: 3,
512
+ category: "",
513
+ description: ""
514
+ }, [c, u] = o(!1), [m, S] = o(r), [k, A] = o(null), j = T(c && !e), { projects: M } = j, N = e || m.projectId || M[0]?.id || "", [P, { loading: F }] = l(z, {
515
+ refetchQueries: [
516
+ "GetRisks",
517
+ "GetRiskMatrix",
518
+ "GetProjectDetail"
519
+ ],
520
+ awaitRefetchQueries: !0
521
+ }), I = m.title.trim() !== "" && N !== "" && !F;
522
+ return /* @__PURE__ */ f(h, {
523
+ open: c,
524
+ onOpenChange: (e) => {
525
+ u(e), e ? S(r) : A(null);
526
+ },
527
+ children: [/* @__PURE__ */ d(x, {
528
+ asChild: !0,
529
+ children: /* @__PURE__ */ f(p, {
530
+ size: "sm",
531
+ "data-testid": "new-risk-trigger",
532
+ children: [/* @__PURE__ */ d(s, { className: "mr-1 h-4 w-4" }), "New Risk"]
533
+ })
534
+ }), /* @__PURE__ */ f(g, {
535
+ className: "max-w-lg",
536
+ children: [
537
+ /* @__PURE__ */ f(y, { children: [/* @__PURE__ */ d(b, { children: "New risk" }), /* @__PURE__ */ d(_, { children: "The risk starts as Identified. Likelihood and impact are each scored 1 (rare/minor) to 5 (near-certain/severe)." })] }),
538
+ /* @__PURE__ */ f("div", {
539
+ className: "space-y-3",
540
+ children: [
541
+ /* @__PURE__ */ d(D, {
542
+ id: "new-risk-title",
543
+ label: "Title",
544
+ value: m.title,
545
+ onChange: (e) => S({
546
+ ...m,
547
+ title: e
548
+ })
549
+ }),
550
+ !e && /* @__PURE__ */ d(E, {
551
+ id: "new-risk-project",
552
+ value: N,
553
+ onChange: (e) => S({
554
+ ...m,
555
+ projectId: e
556
+ }),
557
+ state: j
558
+ }),
559
+ /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
560
+ htmlFor: "new-risk-severity",
561
+ className: "text-sm font-medium",
562
+ children: "Severity"
563
+ }), /* @__PURE__ */ d("select", {
564
+ id: "new-risk-severity",
565
+ className: C,
566
+ value: m.severity,
567
+ onChange: (e) => S({
568
+ ...m,
569
+ severity: e.target.value
570
+ }),
571
+ children: a.map((e) => /* @__PURE__ */ d("option", {
572
+ value: e,
573
+ children: i(e)
574
+ }, e))
575
+ })] }),
576
+ /* @__PURE__ */ f("div", {
577
+ className: "grid grid-cols-2 gap-3",
578
+ children: [/* @__PURE__ */ d(V, {
579
+ id: "new-risk-likelihood",
580
+ label: "Likelihood",
581
+ value: m.likelihood,
582
+ onChange: (e) => S({
583
+ ...m,
584
+ likelihood: e
585
+ })
586
+ }), /* @__PURE__ */ d(V, {
587
+ id: "new-risk-impact",
588
+ label: "Impact",
589
+ value: m.impact,
590
+ onChange: (e) => S({
591
+ ...m,
592
+ impact: e
593
+ })
594
+ })]
595
+ }),
596
+ /* @__PURE__ */ d(D, {
597
+ id: "new-risk-category",
598
+ label: "Category",
599
+ placeholder: "e.g. schedule, budget, technical",
600
+ value: m.category,
601
+ onChange: (e) => S({
602
+ ...m,
603
+ category: e
604
+ })
605
+ }),
606
+ /* @__PURE__ */ d(D, {
607
+ id: "new-risk-description",
608
+ label: "Description",
609
+ value: m.description,
610
+ onChange: (e) => S({
611
+ ...m,
612
+ description: e
613
+ })
614
+ })
615
+ ]
616
+ }),
617
+ k && /* @__PURE__ */ d(w, { message: k }),
618
+ /* @__PURE__ */ d(v, { children: /* @__PURE__ */ d(p, {
619
+ onClick: async () => {
620
+ A(null);
621
+ try {
622
+ let e = (await n(P({ variables: { input: {
623
+ title: m.title.trim(),
624
+ projectId: N,
625
+ severity: m.severity,
626
+ likelihood: m.likelihood,
627
+ impact: m.impact,
628
+ category: m.category.trim() || void 0,
629
+ description: m.description.trim() || void 0
630
+ } } }))).data?.planmagnetCreateRisk.id;
631
+ S(r), u(!1), e && t(e);
632
+ } catch (e) {
633
+ A(O(e, "The risk could not be created."));
634
+ }
635
+ },
636
+ disabled: !I,
637
+ "data-testid": "new-risk-submit",
638
+ children: F ? "Creating…" : "Create risk"
300
639
  }) })
301
640
  ]
302
641
  })]
303
642
  });
304
643
  }
305
644
  //#endregion
306
- export { j as NewMilestoneDialog, O as NewReleaseDialog };
645
+ export { R as ApplyTemplateDialog, P as NewMilestoneDialog, j as NewReleaseDialog, H as NewRiskDialog, I as NewTemplateFromProjectDialog };
307
646
 
308
647
  //# sourceMappingURL=CreateDialogs.js.map