@burdenoff/microfe-planmagnet 2026.928.3 → 2026.928.5

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 (245) hide show
  1. package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
  2. package/dist/planmagnet/PlanMagnetRoot.js +126 -84
  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 +192 -64
  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.d.ts +20 -0
  47. package/dist/planmagnet/controls/CompetitorControls.d.ts.map +1 -0
  48. package/dist/planmagnet/controls/CompetitorControls.js +172 -0
  49. package/dist/planmagnet/controls/CompetitorControls.js.map +1 -0
  50. package/dist/planmagnet/controls/CustomFieldControls.d.ts +42 -0
  51. package/dist/planmagnet/controls/CustomFieldControls.d.ts.map +1 -0
  52. package/dist/planmagnet/controls/CustomFieldControls.js +84 -0
  53. package/dist/planmagnet/controls/CustomFieldControls.js.map +1 -0
  54. package/dist/planmagnet/controls/CustomFieldValuesPanel.d.ts +8 -0
  55. package/dist/planmagnet/controls/CustomFieldValuesPanel.d.ts.map +1 -0
  56. package/dist/planmagnet/controls/CustomFieldValuesPanel.js +315 -0
  57. package/dist/planmagnet/controls/CustomFieldValuesPanel.js.map +1 -0
  58. package/dist/planmagnet/controls/FeatureControls.js +53 -53
  59. package/dist/planmagnet/controls/FeatureTriage.js +11 -11
  60. package/dist/planmagnet/controls/ObjectiveControls.js +37 -37
  61. package/dist/planmagnet/controls/Pickers.d.ts +17 -2
  62. package/dist/planmagnet/controls/Pickers.d.ts.map +1 -1
  63. package/dist/planmagnet/controls/Pickers.js +100 -9
  64. package/dist/planmagnet/controls/Pickers.js.map +1 -1
  65. package/dist/planmagnet/controls/PortfolioControls.d.ts +13 -0
  66. package/dist/planmagnet/controls/PortfolioControls.d.ts.map +1 -0
  67. package/dist/planmagnet/controls/PortfolioControls.js +114 -0
  68. package/dist/planmagnet/controls/PortfolioControls.js.map +1 -0
  69. package/dist/planmagnet/controls/ProgramControls.d.ts +25 -0
  70. package/dist/planmagnet/controls/ProgramControls.d.ts.map +1 -0
  71. package/dist/planmagnet/controls/ProgramControls.js +187 -0
  72. package/dist/planmagnet/controls/ProgramControls.js.map +1 -0
  73. package/dist/planmagnet/controls/ProjectControls.d.ts.map +1 -1
  74. package/dist/planmagnet/controls/ProjectControls.js +54 -47
  75. package/dist/planmagnet/controls/ProjectControls.js.map +1 -1
  76. package/dist/planmagnet/controls/ReleaseControls.js +7 -7
  77. package/dist/planmagnet/controls/RiskControls.d.ts +27 -0
  78. package/dist/planmagnet/controls/RiskControls.d.ts.map +1 -0
  79. package/dist/planmagnet/controls/RiskControls.js +346 -0
  80. package/dist/planmagnet/controls/RiskControls.js.map +1 -0
  81. package/dist/planmagnet/controls/TemplateControls.d.ts +15 -0
  82. package/dist/planmagnet/controls/TemplateControls.d.ts.map +1 -0
  83. package/dist/planmagnet/controls/TemplateControls.js +55 -0
  84. package/dist/planmagnet/controls/TemplateControls.js.map +1 -0
  85. package/dist/planmagnet/controls/WorkItemControls.js +1 -1
  86. package/dist/planmagnet/create/CreateDialogs.d.ts +20 -0
  87. package/dist/planmagnet/create/CreateDialogs.d.ts.map +1 -1
  88. package/dist/planmagnet/create/CreateDialogs.js +455 -116
  89. package/dist/planmagnet/create/CreateDialogs.js.map +1 -1
  90. package/dist/planmagnet/dependency/DependencyPanel.d.ts +6 -0
  91. package/dist/planmagnet/dependency/DependencyPanel.d.ts.map +1 -0
  92. package/dist/planmagnet/dependency/DependencyPanel.js +310 -0
  93. package/dist/planmagnet/dependency/DependencyPanel.js.map +1 -0
  94. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.d.ts +2 -0
  95. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.d.ts.map +1 -0
  96. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js +171 -0
  97. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js.map +1 -0
  98. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.d.ts +2 -0
  99. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.d.ts.map +1 -0
  100. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js +232 -0
  101. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js.map +1 -0
  102. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.d.ts +2 -0
  103. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.d.ts.map +1 -0
  104. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js +93 -0
  105. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js.map +1 -0
  106. package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.d.ts +2 -0
  107. package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.d.ts.map +1 -0
  108. package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.js +127 -0
  109. package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.js.map +1 -0
  110. package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.d.ts +2 -0
  111. package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.d.ts.map +1 -0
  112. package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.js +129 -0
  113. package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.js.map +1 -0
  114. package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.d.ts +2 -0
  115. package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.d.ts.map +1 -0
  116. package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.js +132 -0
  117. package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.js.map +1 -0
  118. package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.d.ts +2 -0
  119. package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.d.ts.map +1 -0
  120. package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.js +181 -0
  121. package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.js.map +1 -0
  122. package/dist/planmagnet/pages/PortfoliosCreatePortfolioPagePage.d.ts +2 -0
  123. package/dist/planmagnet/pages/PortfoliosCreatePortfolioPagePage.d.ts.map +1 -0
  124. package/dist/planmagnet/pages/PortfoliosCreatePortfolioPagePage.js +242 -0
  125. package/dist/planmagnet/pages/PortfoliosCreatePortfolioPagePage.js.map +1 -0
  126. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.d.ts +2 -0
  127. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.d.ts.map +1 -0
  128. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.js +302 -0
  129. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.js.map +1 -0
  130. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.d.ts +2 -0
  131. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.d.ts.map +1 -0
  132. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js +335 -0
  133. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js.map +1 -0
  134. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.d.ts +2 -0
  135. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.d.ts.map +1 -0
  136. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.js +154 -0
  137. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.js.map +1 -0
  138. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +1 -1
  139. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +124 -138
  140. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +1 -1
  141. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.d.ts +2 -0
  142. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.d.ts.map +1 -0
  143. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.js +221 -0
  144. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.js.map +1 -0
  145. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.d.ts +2 -0
  146. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.d.ts.map +1 -0
  147. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.js +279 -0
  148. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.js.map +1 -0
  149. package/dist/planmagnet/pages/ProgramsProgramDetailPagePage.d.ts +2 -0
  150. package/dist/planmagnet/pages/ProgramsProgramDetailPagePage.d.ts.map +1 -0
  151. package/dist/planmagnet/pages/ProgramsProgramDetailPagePage.js +178 -0
  152. package/dist/planmagnet/pages/ProgramsProgramDetailPagePage.js.map +1 -0
  153. package/dist/planmagnet/pages/ProgramsProgramsPagePage.d.ts +2 -0
  154. package/dist/planmagnet/pages/ProgramsProgramsPagePage.d.ts.map +1 -0
  155. package/dist/planmagnet/pages/ProgramsProgramsPagePage.js +157 -0
  156. package/dist/planmagnet/pages/ProgramsProgramsPagePage.js.map +1 -0
  157. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.d.ts +2 -0
  158. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.d.ts.map +1 -0
  159. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js +315 -0
  160. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js.map +1 -0
  161. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.d.ts +2 -0
  162. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.d.ts.map +1 -0
  163. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js +186 -0
  164. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js.map +1 -0
  165. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts +2 -0
  166. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts.map +1 -0
  167. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js +164 -0
  168. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js.map +1 -0
  169. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.d.ts +2 -0
  170. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.d.ts.map +1 -0
  171. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js +348 -0
  172. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js.map +1 -0
  173. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts.map +1 -1
  174. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +130 -103
  175. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js.map +1 -1
  176. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +4 -4
  177. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +4 -4
  178. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +6 -6
  179. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
  180. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +325 -189
  181. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
  182. package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts.map +1 -1
  183. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +81 -72
  184. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +1 -1
  185. package/dist/planmagnet/pages/RisksRiskDetailPagePage.d.ts +2 -0
  186. package/dist/planmagnet/pages/RisksRiskDetailPagePage.d.ts.map +1 -0
  187. package/dist/planmagnet/pages/RisksRiskDetailPagePage.js +278 -0
  188. package/dist/planmagnet/pages/RisksRiskDetailPagePage.js.map +1 -0
  189. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.d.ts +2 -0
  190. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.d.ts.map +1 -0
  191. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js +191 -0
  192. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js.map +1 -0
  193. package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +5 -5
  194. package/dist/planmagnet/pages/TasksEditTaskPagePage.js +4 -4
  195. package/dist/planmagnet/pages/TasksImportPagePage.js +5 -5
  196. package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
  197. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +161 -137
  198. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
  199. package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +1 -1
  200. package/dist/planmagnet/pages/TasksTasksPagePage.js +124 -113
  201. package/dist/planmagnet/pages/TasksTasksPagePage.js.map +1 -1
  202. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.d.ts +2 -0
  203. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.d.ts.map +1 -0
  204. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js +263 -0
  205. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js.map +1 -0
  206. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.d.ts +2 -0
  207. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.d.ts.map +1 -0
  208. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js +254 -0
  209. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js.map +1 -0
  210. package/dist/planmagnet/pages/TasksTimesheetsPagePage.d.ts +2 -0
  211. package/dist/planmagnet/pages/TasksTimesheetsPagePage.d.ts.map +1 -0
  212. package/dist/planmagnet/pages/TasksTimesheetsPagePage.js +165 -0
  213. package/dist/planmagnet/pages/TasksTimesheetsPagePage.js.map +1 -0
  214. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.d.ts +2 -0
  215. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.d.ts.map +1 -0
  216. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js +316 -0
  217. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js.map +1 -0
  218. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts +2 -0
  219. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts.map +1 -0
  220. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js +208 -0
  221. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js.map +1 -0
  222. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts +0 -5
  223. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts.map +1 -1
  224. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js +47 -89
  225. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js.map +1 -1
  226. package/dist/planmagnet/roadmaps/RoadmapControls.js +24 -24
  227. package/dist/planmagnet/time/TaskTimePanel.d.ts +7 -0
  228. package/dist/planmagnet/time/TaskTimePanel.d.ts.map +1 -0
  229. package/dist/planmagnet/time/TaskTimePanel.js +104 -0
  230. package/dist/planmagnet/time/TaskTimePanel.js.map +1 -0
  231. package/dist/planmagnet/time/TimeEntryControls.d.ts +37 -0
  232. package/dist/planmagnet/time/TimeEntryControls.d.ts.map +1 -0
  233. package/dist/planmagnet/time/TimeEntryControls.js +338 -0
  234. package/dist/planmagnet/time/TimeEntryControls.js.map +1 -0
  235. package/dist/planmagnet/time/TimesheetControls.d.ts +18 -0
  236. package/dist/planmagnet/time/TimesheetControls.d.ts.map +1 -0
  237. package/dist/planmagnet/time/TimesheetControls.js +244 -0
  238. package/dist/planmagnet/time/TimesheetControls.js.map +1 -0
  239. package/dist/planmagnet/time/timeShared.d.ts +29 -0
  240. package/dist/planmagnet/time/timeShared.d.ts.map +1 -0
  241. package/dist/planmagnet/time/timeShared.js +34 -0
  242. package/dist/planmagnet/time/timeShared.js.map +1 -0
  243. package/dist/planmagnet/utils/rowNavigation.js +5 -2
  244. package/dist/planmagnet/utils/rowNavigation.js.map +1 -1
  245. 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