@burdenoff/microfe-planmagnet 2026.930.24 → 2026.1001.1

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 (318) hide show
  1. package/dist/_virtual/__vite-browser-external.js +9 -0
  2. package/dist/_virtual/__vite-browser-external.js.map +1 -0
  3. package/dist/_virtual/_rolldown/runtime.js +5 -2
  4. package/dist/index.js +3 -1
  5. package/dist/node_modules/fflate/esm/browser.js +554 -0
  6. package/dist/node_modules/fflate/esm/browser.js.map +1 -0
  7. package/dist/node_modules/jszip/dist/jszip.min.js +3038 -0
  8. package/dist/node_modules/jszip/dist/jszip.min.js.map +1 -0
  9. package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js +2151 -0
  10. package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js.map +1 -0
  11. package/dist/node_modules/write-excel-file/browser/index.js +3 -0
  12. package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js +13 -0
  13. package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js.map +1 -0
  14. package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js +21 -0
  15. package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js.map +1 -0
  16. package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js +11 -0
  17. package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js.map +1 -0
  18. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js +23 -0
  19. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js.map +1 -0
  20. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js +22 -0
  21. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js.map +1 -0
  22. package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js +18 -0
  23. package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js.map +1 -0
  24. package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js +131 -0
  25. package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js.map +1 -0
  26. package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js +188 -0
  27. package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js.map +1 -0
  28. package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js +52 -0
  29. package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js.map +1 -0
  30. package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js +18 -0
  31. package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js.map +1 -0
  32. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js +18 -0
  33. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js.map +1 -0
  34. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js +17 -0
  35. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js.map +1 -0
  36. package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js +11 -0
  37. package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js.map +1 -0
  38. package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js +42 -0
  39. package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js.map +1 -0
  40. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js +102 -0
  41. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js.map +1 -0
  42. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js +17 -0
  43. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js.map +1 -0
  44. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js +15 -0
  45. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js.map +1 -0
  46. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js +8 -0
  47. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js.map +1 -0
  48. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js +71 -0
  49. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js.map +1 -0
  50. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js +56 -0
  51. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js.map +1 -0
  52. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js +15 -0
  53. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js.map +1 -0
  54. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js +13 -0
  55. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js.map +1 -0
  56. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js +44 -0
  57. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js.map +1 -0
  58. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js +123 -0
  59. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js.map +1 -0
  60. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js +41 -0
  61. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js.map +1 -0
  62. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js +11 -0
  63. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js.map +1 -0
  64. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js +17 -0
  65. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js.map +1 -0
  66. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js +20 -0
  67. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js.map +1 -0
  68. package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js +77 -0
  69. package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js.map +1 -0
  70. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js +22 -0
  71. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js.map +1 -0
  72. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js +13 -0
  73. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js.map +1 -0
  74. package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js +242 -0
  75. package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js.map +1 -0
  76. package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js +29 -0
  77. package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js.map +1 -0
  78. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js +9 -0
  79. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js.map +1 -0
  80. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js +42 -0
  81. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js.map +1 -0
  82. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js +43 -0
  83. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js.map +1 -0
  84. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js +93 -0
  85. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js.map +1 -0
  86. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js +39 -0
  87. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js.map +1 -0
  88. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js +17 -0
  89. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js.map +1 -0
  90. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js +29 -0
  91. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js.map +1 -0
  92. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js +14 -0
  93. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js.map +1 -0
  94. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js +11 -0
  95. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js.map +1 -0
  96. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js +14 -0
  97. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js.map +1 -0
  98. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js +12 -0
  99. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js.map +1 -0
  100. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js +24 -0
  101. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js.map +1 -0
  102. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js +9 -0
  103. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js.map +1 -0
  104. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js +9 -0
  105. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js.map +1 -0
  106. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js +9 -0
  107. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js.map +1 -0
  108. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js +9 -0
  109. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js.map +1 -0
  110. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js +9 -0
  111. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js.map +1 -0
  112. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js +9 -0
  113. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js.map +1 -0
  114. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js +9 -0
  115. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js.map +1 -0
  116. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js +27 -0
  117. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js.map +1 -0
  118. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js +17 -0
  119. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js.map +1 -0
  120. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js +74 -0
  121. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js.map +1 -0
  122. package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js +138 -0
  123. package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js.map +1 -0
  124. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js +40 -0
  125. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js.map +1 -0
  126. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js +11 -0
  127. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js.map +1 -0
  128. package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js +9 -0
  129. package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js.map +1 -0
  130. package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js +9 -0
  131. package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js.map +1 -0
  132. package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js +12 -0
  133. package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js.map +1 -0
  134. package/dist/node_modules/write-excel-file/modules/xml/findElement.js +12 -0
  135. package/dist/node_modules/write-excel-file/modules/xml/findElement.js.map +1 -0
  136. package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js +12 -0
  137. package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js.map +1 -0
  138. package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js +41 -0
  139. package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js.map +1 -0
  140. package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js +14 -0
  141. package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js.map +1 -0
  142. package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js +42 -0
  143. package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js.map +1 -0
  144. package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js +8 -0
  145. package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js.map +1 -0
  146. package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js +8 -0
  147. package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js.map +1 -0
  148. package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js +9 -0
  149. package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js.map +1 -0
  150. package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js +9 -0
  151. package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js.map +1 -0
  152. package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js +64 -0
  153. package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js.map +1 -0
  154. package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js +9 -0
  155. package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js.map +1 -0
  156. package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js +9 -0
  157. package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js.map +1 -0
  158. package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js +8 -0
  159. package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js.map +1 -0
  160. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js +10 -0
  161. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js.map +1 -0
  162. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js +11 -0
  163. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js.map +1 -0
  164. package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js +11 -0
  165. package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js.map +1 -0
  166. package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js +8 -0
  167. package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js.map +1 -0
  168. package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js +18 -0
  169. package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js.map +1 -0
  170. package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
  171. package/dist/planmagnet/PlanMagnetRoot.js +154 -147
  172. package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
  173. package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
  174. package/dist/planmagnet/PlanMagnetRoutes.js +122 -106
  175. package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
  176. package/dist/planmagnet/comments/CommentThread.d.ts +8 -1
  177. package/dist/planmagnet/comments/CommentThread.d.ts.map +1 -1
  178. package/dist/planmagnet/comments/CommentThread.js +188 -181
  179. package/dist/planmagnet/comments/CommentThread.js.map +1 -1
  180. package/dist/planmagnet/comments/TargetComments.d.ts +10 -2
  181. package/dist/planmagnet/comments/TargetComments.d.ts.map +1 -1
  182. package/dist/planmagnet/comments/TargetComments.js +10 -8
  183. package/dist/planmagnet/comments/TargetComments.js.map +1 -1
  184. package/dist/planmagnet/comments/WorkItemComments.d.ts +7 -1
  185. package/dist/planmagnet/comments/WorkItemComments.d.ts.map +1 -1
  186. package/dist/planmagnet/comments/WorkItemComments.js +5 -4
  187. package/dist/planmagnet/comments/WorkItemComments.js.map +1 -1
  188. package/dist/planmagnet/controls/Pickers.d.ts +10 -0
  189. package/dist/planmagnet/controls/Pickers.d.ts.map +1 -1
  190. package/dist/planmagnet/controls/Pickers.js +75 -27
  191. package/dist/planmagnet/controls/Pickers.js.map +1 -1
  192. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.d.ts +8 -0
  193. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.d.ts.map +1 -0
  194. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.js +217 -0
  195. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.js.map +1 -0
  196. package/dist/planmagnet/docs/DocDiffView.d.ts +26 -0
  197. package/dist/planmagnet/docs/DocDiffView.d.ts.map +1 -0
  198. package/dist/planmagnet/docs/DocDiffView.js +52 -0
  199. package/dist/planmagnet/docs/DocDiffView.js.map +1 -0
  200. package/dist/planmagnet/docs/DocSuggestionsPanel.d.ts +13 -0
  201. package/dist/planmagnet/docs/DocSuggestionsPanel.d.ts.map +1 -0
  202. package/dist/planmagnet/docs/DocSuggestionsPanel.js +308 -0
  203. package/dist/planmagnet/docs/DocSuggestionsPanel.js.map +1 -0
  204. package/dist/planmagnet/docs/DocVersionCompare.d.ts +7 -0
  205. package/dist/planmagnet/docs/DocVersionCompare.d.ts.map +1 -0
  206. package/dist/planmagnet/docs/DocVersionCompare.js +105 -0
  207. package/dist/planmagnet/docs/DocVersionCompare.js.map +1 -0
  208. package/dist/planmagnet/hooks/usePresence.d.ts +39 -0
  209. package/dist/planmagnet/hooks/usePresence.d.ts.map +1 -0
  210. package/dist/planmagnet/hooks/usePresence.js +146 -0
  211. package/dist/planmagnet/hooks/usePresence.js.map +1 -0
  212. package/dist/planmagnet/index.d.ts +2 -0
  213. package/dist/planmagnet/index.d.ts.map +1 -1
  214. package/dist/planmagnet/index.js +2 -0
  215. package/dist/planmagnet/links/CodeLinksPanel.d.ts +22 -0
  216. package/dist/planmagnet/links/CodeLinksPanel.d.ts.map +1 -0
  217. package/dist/planmagnet/links/CodeLinksPanel.js +94 -0
  218. package/dist/planmagnet/links/CodeLinksPanel.js.map +1 -0
  219. package/dist/planmagnet/pages/DocsDocDetailPagePage.d.ts.map +1 -1
  220. package/dist/planmagnet/pages/DocsDocDetailPagePage.js +488 -217
  221. package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +1 -1
  222. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +1 -1
  223. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +136 -130
  224. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +1 -1
  225. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
  226. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +205 -196
  227. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
  228. package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts +6 -0
  229. package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts.map +1 -1
  230. package/dist/planmagnet/pages/ReportsCreateReportPagePage.js +5 -177
  231. package/dist/planmagnet/pages/ReportsCreateReportPagePage.js.map +1 -1
  232. package/dist/planmagnet/pages/ReportsEditReportPagePage.d.ts +3 -0
  233. package/dist/planmagnet/pages/ReportsEditReportPagePage.d.ts.map +1 -0
  234. package/dist/planmagnet/pages/ReportsEditReportPagePage.js +15 -0
  235. package/dist/planmagnet/pages/ReportsEditReportPagePage.js.map +1 -0
  236. package/dist/planmagnet/pages/ReportsReportPagePage.d.ts +7 -0
  237. package/dist/planmagnet/pages/ReportsReportPagePage.d.ts.map +1 -0
  238. package/dist/planmagnet/pages/ReportsReportPagePage.js +226 -0
  239. package/dist/planmagnet/pages/ReportsReportPagePage.js.map +1 -0
  240. package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -1
  241. package/dist/planmagnet/pages/ReportsReportsPagePage.js +224 -496
  242. package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -1
  243. package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
  244. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +194 -160
  245. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
  246. package/dist/planmagnet/presence/PresenceAvatars.d.ts +16 -0
  247. package/dist/planmagnet/presence/PresenceAvatars.d.ts.map +1 -0
  248. package/dist/planmagnet/presence/PresenceAvatars.js +56 -0
  249. package/dist/planmagnet/presence/PresenceAvatars.js.map +1 -0
  250. package/dist/planmagnet/reports/ExportMenu.d.ts +9 -0
  251. package/dist/planmagnet/reports/ExportMenu.d.ts.map +1 -0
  252. package/dist/planmagnet/reports/ExportMenu.js +116 -0
  253. package/dist/planmagnet/reports/ExportMenu.js.map +1 -0
  254. package/dist/planmagnet/reports/PrintReportView.d.ts +24 -0
  255. package/dist/planmagnet/reports/PrintReportView.d.ts.map +1 -0
  256. package/dist/planmagnet/reports/PrintReportView.js +75 -0
  257. package/dist/planmagnet/reports/PrintReportView.js.map +1 -0
  258. package/dist/planmagnet/reports/ReportBuilderCanvas.d.ts +8 -0
  259. package/dist/planmagnet/reports/ReportBuilderCanvas.d.ts.map +1 -0
  260. package/dist/planmagnet/reports/ReportBuilderCanvas.js +261 -0
  261. package/dist/planmagnet/reports/ReportBuilderCanvas.js.map +1 -0
  262. package/dist/planmagnet/reports/ReportBuilderPage.d.ts +5 -0
  263. package/dist/planmagnet/reports/ReportBuilderPage.d.ts.map +1 -0
  264. package/dist/planmagnet/reports/ReportBuilderPage.js +198 -0
  265. package/dist/planmagnet/reports/ReportBuilderPage.js.map +1 -0
  266. package/dist/planmagnet/reports/ReportRunHistory.d.ts +8 -0
  267. package/dist/planmagnet/reports/ReportRunHistory.d.ts.map +1 -0
  268. package/dist/planmagnet/reports/ReportRunHistory.js +63 -0
  269. package/dist/planmagnet/reports/ReportRunHistory.js.map +1 -0
  270. package/dist/planmagnet/reports/ReportWidgetRenderer.d.ts +7 -0
  271. package/dist/planmagnet/reports/ReportWidgetRenderer.d.ts.map +1 -0
  272. package/dist/planmagnet/reports/ReportWidgetRenderer.js +251 -0
  273. package/dist/planmagnet/reports/ReportWidgetRenderer.js.map +1 -0
  274. package/dist/planmagnet/reports/SchedulesPanel.d.ts +4 -0
  275. package/dist/planmagnet/reports/SchedulesPanel.d.ts.map +1 -0
  276. package/dist/planmagnet/reports/SchedulesPanel.js +457 -0
  277. package/dist/planmagnet/reports/SchedulesPanel.js.map +1 -0
  278. package/dist/planmagnet/reports/ShareDialog.d.ts +5 -0
  279. package/dist/planmagnet/reports/ShareDialog.d.ts.map +1 -0
  280. package/dist/planmagnet/reports/ShareDialog.js +234 -0
  281. package/dist/planmagnet/reports/ShareDialog.js.map +1 -0
  282. package/dist/planmagnet/reports/SharedReportPage.d.ts +4 -0
  283. package/dist/planmagnet/reports/SharedReportPage.d.ts.map +1 -0
  284. package/dist/planmagnet/reports/SharedReportPage.js +180 -0
  285. package/dist/planmagnet/reports/SharedReportPage.js.map +1 -0
  286. package/dist/planmagnet/reports/WidgetEditorDialog.d.ts +10 -0
  287. package/dist/planmagnet/reports/WidgetEditorDialog.d.ts.map +1 -0
  288. package/dist/planmagnet/reports/WidgetEditorDialog.js +220 -0
  289. package/dist/planmagnet/reports/WidgetEditorDialog.js.map +1 -0
  290. package/dist/planmagnet/reports/reportExportPptx.d.ts +4 -0
  291. package/dist/planmagnet/reports/reportExportPptx.d.ts.map +1 -0
  292. package/dist/planmagnet/reports/reportExportPptx.js +118 -0
  293. package/dist/planmagnet/reports/reportExportPptx.js.map +1 -0
  294. package/dist/planmagnet/reports/reportExportXlsx.d.ts +4 -0
  295. package/dist/planmagnet/reports/reportExportXlsx.d.ts.map +1 -0
  296. package/dist/planmagnet/reports/reportExportXlsx.js +42 -0
  297. package/dist/planmagnet/reports/reportExportXlsx.js.map +1 -0
  298. package/dist/planmagnet/reports/reportGraphql.d.ts +28 -0
  299. package/dist/planmagnet/reports/reportGraphql.d.ts.map +1 -0
  300. package/dist/planmagnet/reports/reportGraphql.js +360 -0
  301. package/dist/planmagnet/reports/reportGraphql.js.map +1 -0
  302. package/dist/planmagnet/reports/reportModel.d.ts +198 -0
  303. package/dist/planmagnet/reports/reportModel.d.ts.map +1 -0
  304. package/dist/planmagnet/reports/reportModel.js +328 -0
  305. package/dist/planmagnet/reports/reportModel.js.map +1 -0
  306. package/dist/planmagnet/reports/sharedReportRoute.d.ts +14 -0
  307. package/dist/planmagnet/reports/sharedReportRoute.d.ts.map +1 -0
  308. package/dist/planmagnet/reports/sharedReportRoute.js +9 -0
  309. package/dist/planmagnet/reports/sharedReportRoute.js.map +1 -0
  310. package/dist/planmagnet/utils/graphqlErrors.d.ts +6 -0
  311. package/dist/planmagnet/utils/graphqlErrors.d.ts.map +1 -1
  312. package/dist/planmagnet/utils/graphqlErrors.js +5 -2
  313. package/dist/planmagnet/utils/graphqlErrors.js.map +1 -1
  314. package/dist/planmagnet/utils/lineDiff.d.ts +21 -0
  315. package/dist/planmagnet/utils/lineDiff.d.ts.map +1 -0
  316. package/dist/planmagnet/utils/lineDiff.js +36 -0
  317. package/dist/planmagnet/utils/lineDiff.js.map +1 -0
  318. package/package.json +6 -4
@@ -1,22 +1,24 @@
1
1
  import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
2
2
  import { PersonName as n } from "../people/People.js";
3
- import { workProgress as r } from "../hooks/useCounts.js";
4
- import { enumLabel as i } from "../controls/WorkItemControls.js";
5
- import { ROW_LINK_CLASS as a, detailPath as o, rowLinkProps as s } from "../utils/rowNavigation.js";
6
- import { useEntityId as ee } from "../hooks/useEntityId.js";
7
- import { combineLiveRefreshModes as te, useLiveRefresh as c } from "../hooks/useLiveRefresh.js";
8
- import { LiveStatus as ne } from "../controls/LiveStatus.js";
9
- import { ProjectComments as re } from "../comments/TargetComments.js";
10
- import { NewRiskDialog as l, NewTemplateFromProjectDialog as u } from "../create/CreateDialogs.js";
11
- import { ProjectHeaderActions as d } from "../controls/ProjectControls.js";
12
- import { ProjectBudgetsSummary as ie } from "../budgets/ProjectBudgetsSummary.js";
13
- import { Bot as ae, Calendar as f, CheckSquare as p, FolderKanban as m, LayoutTemplate as oe, Route as se, ShieldAlert as h, ShieldCheck as g, Users as _, Zap as v } from "lucide-react";
14
- import { gql as y } from "@apollo/client";
15
- import { useQuery as b } from "@apollo/client/react";
16
- import { jsx as x, jsxs as S } from "react/jsx-runtime";
17
- import { Badge as C, Button as w, Card as T, CardContent as E, CardHeader as D, CardTitle as O } from "@burdenoff/fe-libs/ui";
3
+ import { workProgress as ee } from "../hooks/useCounts.js";
4
+ import { enumLabel as r } from "../controls/WorkItemControls.js";
5
+ import { ROW_LINK_CLASS as i, detailPath as a, rowLinkProps as o } from "../utils/rowNavigation.js";
6
+ import { useEntityId as te } from "../hooks/useEntityId.js";
7
+ import { combineLiveRefreshModes as ne, useLiveRefresh as s } from "../hooks/useLiveRefresh.js";
8
+ import { LiveStatus as c } from "../controls/LiveStatus.js";
9
+ import { PresenceAvatars as l } from "../presence/PresenceAvatars.js";
10
+ import { ProjectComments as u } from "../comments/TargetComments.js";
11
+ import { usePresence as re } from "../hooks/usePresence.js";
12
+ import { NewRiskDialog as ie, NewTemplateFromProjectDialog as ae } from "../create/CreateDialogs.js";
13
+ import { ProjectHeaderActions as oe } from "../controls/ProjectControls.js";
14
+ import { ProjectBudgetsSummary as se } from "../budgets/ProjectBudgetsSummary.js";
15
+ import { Bot as d, Calendar as f, CheckSquare as p, FolderKanban as m, LayoutTemplate as h, Route as ce, ShieldAlert as le, ShieldCheck as ue, Users as g, Zap as _ } from "lucide-react";
16
+ import { gql as v } from "@apollo/client";
17
+ import { useQuery as y } from "@apollo/client/react";
18
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
19
+ import { Badge as S, Button as C, Card as w, CardContent as T, CardHeader as E, CardTitle as D } from "@burdenoff/fe-libs/ui";
18
20
  //#region src/planmagnet/pages/ProjectsProjectDetailPagePage.tsx
19
- var k = ["GetProjectDetail"], A = y`
21
+ var O = ["GetProjectDetail"], k = v`
20
22
  query GetProjectDetail($id: ID!) {
21
23
  planmagnetProject(id: $id) {
22
24
  id
@@ -89,64 +91,64 @@ var k = ["GetProjectDetail"], A = y`
89
91
  }
90
92
  }
91
93
  }
92
- `, j = {
94
+ `, A = {
93
95
  ACTIVE: "bg-green-100 text-green-800",
94
96
  ON_HOLD: "bg-orange-100 text-orange-800",
95
97
  CANCELLED: "bg-red-100 text-red-800",
96
98
  COMPLETED: "bg-blue-100 text-blue-800",
97
99
  PLANNING: "bg-gray-100 text-gray-800",
98
100
  ARCHIVED: "bg-gray-100 text-gray-800"
99
- }, M = {
101
+ }, j = {
100
102
  CRITICAL: "bg-red-100 text-red-800",
101
103
  HIGH: "bg-orange-100 text-orange-800",
102
104
  MEDIUM: "bg-yellow-100 text-yellow-800",
103
105
  LOW: "bg-blue-100 text-blue-800",
104
106
  NEGLIGIBLE: "bg-gray-100 text-gray-800"
105
- }, N = new Set([
107
+ }, M = new Set([
106
108
  "IDENTIFIED",
107
109
  "ANALYZING",
108
110
  "MITIGATING",
109
111
  "ACCEPTED"
110
112
  ]);
111
- function P() {
112
- let y = ee("projectId"), P = t(), { workspaceId: F } = e(), { data: I, loading: L, error: R } = b(A, {
113
- variables: { id: y },
114
- skip: !y
115
- }), z = c({
113
+ function N() {
114
+ let v = te("projectId"), N = t(), { workspaceId: P } = e(), { data: F, loading: I, error: L } = y(k, {
115
+ variables: { id: v },
116
+ skip: !v
117
+ }), R = s({
116
118
  kind: "project",
117
- projectId: y,
118
- queries: k
119
- }), B = c({
119
+ projectId: v,
120
+ queries: O
121
+ }), z = s({
120
122
  kind: "sprint",
121
- projectId: y,
122
- enabled: !!y,
123
- queries: k
124
- }), V = c({
123
+ projectId: v,
124
+ enabled: !!v,
125
+ queries: O
126
+ }), B = s({
125
127
  kind: "workItem",
126
- projectId: y,
127
- queries: k
128
- }), H = te(z.mode, B.mode, V.mode);
129
- if (!y) return /* @__PURE__ */ x("div", {
128
+ projectId: v,
129
+ queries: O
130
+ }), V = ne(R.mode, z.mode, B.mode), H = re("PROJECT", v);
131
+ if (!v) return /* @__PURE__ */ b("div", {
130
132
  className: "p-6 text-muted-foreground",
131
133
  children: "No project selected. Open one from the list."
132
134
  });
133
- if (L && !I) return /* @__PURE__ */ x("div", {
135
+ if (I && !F) return /* @__PURE__ */ b("div", {
134
136
  className: "flex items-center justify-center p-12",
135
- children: /* @__PURE__ */ x("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
137
+ children: /* @__PURE__ */ b("div", { className: "animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full" })
136
138
  });
137
- if (R) return /* @__PURE__ */ S("div", {
139
+ if (L) return /* @__PURE__ */ x("div", {
138
140
  className: "p-6 text-red-500",
139
- children: ["Error loading project: ", R.message]
141
+ children: ["Error loading project: ", L.message]
140
142
  });
141
- let U = I?.planmagnetProject;
142
- if (!U) return /* @__PURE__ */ x("div", {
143
+ let U = F?.planmagnetProject;
144
+ if (!U) return /* @__PURE__ */ b("div", {
143
145
  className: "p-6 text-muted-foreground",
144
146
  children: "Project not found."
145
147
  });
146
- let W = U.workItems ?? [], G = U.sprints ?? [], K = U.milestones ?? [], q = U.risks ?? [], J = q.filter((e) => N.has(e.status)), ce = [...J].sort((e, t) => t.riskScore - e.riskScore).slice(0, 3), Y = G.find((e) => e.status === "ACTIVE"), X = G.filter((e) => e.status === "COMPLETED" && e.velocity != null).sort((e, t) => (t.endDate ?? "").localeCompare(e.endDate ?? ""))[0], Z = r(W.map((e) => ({
148
+ let W = U.workItems ?? [], G = U.sprints ?? [], K = U.milestones ?? [], q = U.risks ?? [], J = q.filter((e) => M.has(e.status)), de = [...J].sort((e, t) => t.riskScore - e.riskScore).slice(0, 3), Y = G.find((e) => e.status === "ACTIVE"), X = G.filter((e) => e.status === "COMPLETED" && e.velocity != null).sort((e, t) => (t.endDate ?? "").localeCompare(e.endDate ?? ""))[0], Z = ee(W.map((e) => ({
147
149
  status: e.status,
148
150
  storyPoints: e.storyPoints
149
- }))), Q = W.filter((e) => e.status !== "CANCELLED"), le = Q.filter((e) => e.status === "DONE").length, ue = [...W].sort((e, t) => t.createdAt.localeCompare(e.createdAt)).slice(0, 5), $ = Object.values(W.reduce((e, t) => {
151
+ }))), Q = W.filter((e) => e.status !== "CANCELLED"), fe = Q.filter((e) => e.status === "DONE").length, pe = [...W].sort((e, t) => t.createdAt.localeCompare(e.createdAt)).slice(0, 5), $ = Object.values(W.reduce((e, t) => {
150
152
  if (!t.sprint?.team) return e;
151
153
  let n = e[t.sprint.id] ?? {
152
154
  sprint: {
@@ -161,203 +163,207 @@ function P() {
161
163
  title: t.title
162
164
  }), e[t.sprint.id] = n, e;
163
165
  }, {}));
164
- return /* @__PURE__ */ S("div", {
166
+ return /* @__PURE__ */ x("div", {
165
167
  className: "space-y-6 p-6",
166
168
  children: [
167
- /* @__PURE__ */ S("div", {
169
+ /* @__PURE__ */ x("div", {
168
170
  className: "flex items-center justify-between",
169
- children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("div", {
170
- className: "flex items-center gap-2",
171
- children: [
172
- /* @__PURE__ */ x(m, { className: "h-5 w-5 text-primary" }),
173
- /* @__PURE__ */ x("h1", {
174
- className: "text-2xl font-semibold",
175
- children: U.name
176
- }),
177
- /* @__PURE__ */ x("span", {
178
- className: `text-xs px-2 py-0.5 rounded-full capitalize ${j[U.status] ?? "bg-gray-100"}`,
179
- children: U.status.toLowerCase().replace("_", " ")
180
- }),
181
- /* @__PURE__ */ x(ne, { mode: H })
182
- ]
183
- }), /* @__PURE__ */ x("p", {
184
- className: "text-sm text-muted-foreground mt-1",
185
- children: U.description ?? "No description"
186
- })] }), /* @__PURE__ */ S("div", {
171
+ children: [/* @__PURE__ */ x("div", { children: [
172
+ /* @__PURE__ */ x("div", {
173
+ className: "flex items-center gap-2",
174
+ children: [
175
+ /* @__PURE__ */ b(m, { className: "h-5 w-5 text-primary" }),
176
+ /* @__PURE__ */ b("h1", {
177
+ className: "text-2xl font-semibold",
178
+ children: U.name
179
+ }),
180
+ /* @__PURE__ */ b("span", {
181
+ className: `text-xs px-2 py-0.5 rounded-full capitalize ${A[U.status] ?? "bg-gray-100"}`,
182
+ children: U.status.toLowerCase().replace("_", " ")
183
+ }),
184
+ /* @__PURE__ */ b(c, { mode: V })
185
+ ]
186
+ }),
187
+ /* @__PURE__ */ b("p", {
188
+ className: "text-sm text-muted-foreground mt-1",
189
+ children: U.description ?? "No description"
190
+ }),
191
+ /* @__PURE__ */ b(l, { others: H.others })
192
+ ] }), /* @__PURE__ */ x("div", {
187
193
  className: "flex flex-col items-end gap-2",
188
194
  children: [
189
- /* @__PURE__ */ x(d, {
195
+ /* @__PURE__ */ b(oe, {
190
196
  projectId: U.id,
191
197
  name: U.name,
192
198
  status: U.status
193
199
  }),
194
- /* @__PURE__ */ S("div", {
200
+ /* @__PURE__ */ x("div", {
195
201
  className: "flex items-center gap-2",
196
202
  children: [
197
- /* @__PURE__ */ S(w, {
203
+ /* @__PURE__ */ x(C, {
198
204
  size: "sm",
199
205
  variant: "outline",
200
- onClick: () => P("/automation/automation-rules-page"),
206
+ onClick: () => N("/automation/automation-rules-page"),
201
207
  "data-testid": "project-automation-rules",
202
- children: [/* @__PURE__ */ x(ae, { className: "mr-1 h-4 w-4" }), "Automation rules"]
208
+ children: [/* @__PURE__ */ b(d, { className: "mr-1 h-4 w-4" }), "Automation rules"]
203
209
  }),
204
- /* @__PURE__ */ S(w, {
210
+ /* @__PURE__ */ x(C, {
205
211
  size: "sm",
206
212
  variant: "outline",
207
- onClick: () => P(`/projects/quality-gates-page?projectId=${encodeURIComponent(U.id)}`),
213
+ onClick: () => N(`/projects/quality-gates-page?projectId=${encodeURIComponent(U.id)}`),
208
214
  "data-testid": "project-quality-gates",
209
- children: [/* @__PURE__ */ x(g, { className: "mr-1 h-4 w-4" }), "Quality gates"]
215
+ children: [/* @__PURE__ */ b(ue, { className: "mr-1 h-4 w-4" }), "Quality gates"]
210
216
  }),
211
- /* @__PURE__ */ x(u, {
217
+ /* @__PURE__ */ b(ae, {
212
218
  projectId: U.id,
213
219
  projectName: U.name,
214
- onCreated: (e) => P(o("/templates/edit-template-page", e)),
215
- trigger: /* @__PURE__ */ S(w, {
220
+ onCreated: (e) => N(a("/templates/edit-template-page", e)),
221
+ trigger: /* @__PURE__ */ x(C, {
216
222
  size: "sm",
217
223
  variant: "outline",
218
224
  "data-testid": "project-save-as-template",
219
- children: [/* @__PURE__ */ x(oe, { className: "mr-1 h-4 w-4" }), "Save as template"]
225
+ children: [/* @__PURE__ */ b(h, { className: "mr-1 h-4 w-4" }), "Save as template"]
220
226
  })
221
227
  })
222
228
  ]
223
229
  }),
224
- /* @__PURE__ */ x(C, {
230
+ /* @__PURE__ */ b(S, {
225
231
  variant: "outline",
226
232
  className: "capitalize",
227
233
  children: U.methodology.toLowerCase()
228
234
  }),
229
- /* @__PURE__ */ S(w, {
235
+ /* @__PURE__ */ x(C, {
230
236
  size: "sm",
231
237
  variant: "outline",
232
- onClick: () => P(o("/projects/critical-path-page", U.id)),
233
- children: [/* @__PURE__ */ x(se, { className: "mr-1 h-4 w-4" }), "Critical path"]
238
+ onClick: () => N(a("/projects/critical-path-page", U.id)),
239
+ children: [/* @__PURE__ */ b(ce, { className: "mr-1 h-4 w-4" }), "Critical path"]
234
240
  })
235
241
  ]
236
242
  })]
237
243
  }),
238
- /* @__PURE__ */ S("div", {
244
+ /* @__PURE__ */ x("div", {
239
245
  className: "grid grid-cols-2 md:grid-cols-4 gap-4",
240
246
  children: [
241
- /* @__PURE__ */ x(T, { children: /* @__PURE__ */ S(E, {
247
+ /* @__PURE__ */ b(w, { children: /* @__PURE__ */ x(T, {
242
248
  className: "pt-4",
243
- children: [/* @__PURE__ */ S("div", {
249
+ children: [/* @__PURE__ */ x("div", {
244
250
  className: "flex items-center gap-2 text-muted-foreground text-xs",
245
- children: [/* @__PURE__ */ x(p, { className: "h-4 w-4" }), "Work Items"]
246
- }), /* @__PURE__ */ S("p", {
251
+ children: [/* @__PURE__ */ b(p, { className: "h-4 w-4" }), "Work Items"]
252
+ }), /* @__PURE__ */ x("p", {
247
253
  className: "text-xl font-bold mt-1",
248
254
  children: [
249
- le,
255
+ fe,
250
256
  "/",
251
257
  Q.length
252
258
  ]
253
259
  })]
254
260
  }) }),
255
- /* @__PURE__ */ x(T, { children: /* @__PURE__ */ S(E, {
261
+ /* @__PURE__ */ b(w, { children: /* @__PURE__ */ x(T, {
256
262
  className: "pt-4",
257
- children: [/* @__PURE__ */ S("div", {
263
+ children: [/* @__PURE__ */ x("div", {
258
264
  className: "flex items-center gap-2 text-muted-foreground text-xs",
259
- children: [/* @__PURE__ */ x(v, { className: "h-4 w-4" }), "Sprints"]
260
- }), /* @__PURE__ */ x("p", {
265
+ children: [/* @__PURE__ */ b(_, { className: "h-4 w-4" }), "Sprints"]
266
+ }), /* @__PURE__ */ b("p", {
261
267
  className: "text-xl font-bold mt-1",
262
268
  children: G.length
263
269
  })]
264
270
  }) }),
265
- /* @__PURE__ */ x(T, { children: /* @__PURE__ */ S(E, {
271
+ /* @__PURE__ */ b(w, { children: /* @__PURE__ */ x(T, {
266
272
  className: "pt-4",
267
- children: [/* @__PURE__ */ S("div", {
273
+ children: [/* @__PURE__ */ x("div", {
268
274
  className: "flex items-center gap-2 text-muted-foreground text-xs",
269
- children: [/* @__PURE__ */ x(f, { className: "h-4 w-4" }), "Milestones"]
270
- }), /* @__PURE__ */ x("p", {
275
+ children: [/* @__PURE__ */ b(f, { className: "h-4 w-4" }), "Milestones"]
276
+ }), /* @__PURE__ */ b("p", {
271
277
  className: "text-xl font-bold mt-1",
272
278
  children: K.length
273
279
  })]
274
280
  }) }),
275
- /* @__PURE__ */ x(T, { children: /* @__PURE__ */ S(E, {
281
+ /* @__PURE__ */ b(w, { children: /* @__PURE__ */ x(T, {
276
282
  className: "pt-4",
277
- children: [/* @__PURE__ */ S("div", {
283
+ children: [/* @__PURE__ */ x("div", {
278
284
  className: "flex items-center gap-2 text-muted-foreground text-xs",
279
- children: [/* @__PURE__ */ x(_, { className: "h-4 w-4" }), "Owner"]
280
- }), /* @__PURE__ */ x("p", {
285
+ children: [/* @__PURE__ */ b(g, { className: "h-4 w-4" }), "Owner"]
286
+ }), /* @__PURE__ */ b("p", {
281
287
  className: "text-sm font-bold mt-1 truncate",
282
- children: /* @__PURE__ */ x(n, { id: U.ownerId })
288
+ children: /* @__PURE__ */ b(n, { id: U.ownerId })
283
289
  })]
284
290
  }) })
285
291
  ]
286
292
  }),
287
- /* @__PURE__ */ S("div", {
293
+ /* @__PURE__ */ x("div", {
288
294
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
289
- children: [/* @__PURE__ */ S("div", {
295
+ children: [/* @__PURE__ */ x("div", {
290
296
  className: "lg:col-span-2 space-y-6",
291
297
  children: [
292
- /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ x(O, { children: "Timeline" }) }), /* @__PURE__ */ S(E, { children: [
293
- /* @__PURE__ */ S("div", {
298
+ /* @__PURE__ */ x(w, { children: [/* @__PURE__ */ b(E, { children: /* @__PURE__ */ b(D, { children: "Timeline" }) }), /* @__PURE__ */ x(T, { children: [
299
+ /* @__PURE__ */ x("div", {
294
300
  className: "flex justify-between text-sm mb-2",
295
- children: [/* @__PURE__ */ x("span", {
301
+ children: [/* @__PURE__ */ b("span", {
296
302
  className: "text-muted-foreground",
297
303
  children: "Tasks done"
298
- }), /* @__PURE__ */ x("span", {
304
+ }), /* @__PURE__ */ b("span", {
299
305
  className: "font-medium",
300
306
  children: Z === null ? "No open tasks" : `${Z}%`
301
307
  })]
302
308
  }),
303
- /* @__PURE__ */ x("div", {
309
+ /* @__PURE__ */ b("div", {
304
310
  className: "w-full h-4 rounded-full bg-muted overflow-hidden",
305
- children: /* @__PURE__ */ x("div", {
311
+ children: /* @__PURE__ */ b("div", {
306
312
  className: "h-full bg-primary rounded-full",
307
313
  style: { width: `${Z ?? 0}%` }
308
314
  })
309
315
  }),
310
- /* @__PURE__ */ S("div", {
316
+ /* @__PURE__ */ x("div", {
311
317
  className: "flex justify-between text-xs text-muted-foreground mt-2",
312
- children: [/* @__PURE__ */ x("span", { children: U.startDate ? new Date(U.startDate).toLocaleDateString() : "Not set" }), /* @__PURE__ */ x("span", { children: U.endDate ? new Date(U.endDate).toLocaleDateString() : "Not set" })]
318
+ children: [/* @__PURE__ */ b("span", { children: U.startDate ? new Date(U.startDate).toLocaleDateString() : "Not set" }), /* @__PURE__ */ b("span", { children: U.endDate ? new Date(U.endDate).toLocaleDateString() : "Not set" })]
313
319
  })
314
320
  ] })] }),
315
- Y && /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ S(O, {
321
+ Y && /* @__PURE__ */ x(w, { children: [/* @__PURE__ */ b(E, { children: /* @__PURE__ */ x(D, {
316
322
  className: "flex items-center gap-2",
317
- children: [/* @__PURE__ */ x(v, { className: "h-4 w-4 text-primary" }), "Active Sprint"]
318
- }) }), /* @__PURE__ */ S(E, {
323
+ children: [/* @__PURE__ */ b(_, { className: "h-4 w-4 text-primary" }), "Active Sprint"]
324
+ }) }), /* @__PURE__ */ x(T, {
319
325
  className: "space-y-3",
320
326
  children: [
321
- /* @__PURE__ */ S("div", {
327
+ /* @__PURE__ */ x("div", {
322
328
  className: "flex justify-between",
323
- children: [/* @__PURE__ */ x("span", {
329
+ children: [/* @__PURE__ */ b("span", {
324
330
  className: "font-medium",
325
331
  children: Y.name
326
- }), /* @__PURE__ */ x(C, { children: "Active" })]
332
+ }), /* @__PURE__ */ b(S, { children: "Active" })]
327
333
  }),
328
- Y.goal && /* @__PURE__ */ x("p", {
334
+ Y.goal && /* @__PURE__ */ b("p", {
329
335
  className: "text-sm text-muted-foreground",
330
336
  children: Y.goal
331
337
  }),
332
- /* @__PURE__ */ S("div", {
338
+ /* @__PURE__ */ x("div", {
333
339
  className: "grid grid-cols-3 gap-4 text-center",
334
340
  children: [
335
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("p", {
341
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("p", {
336
342
  className: "text-lg font-semibold",
337
343
  children: [
338
344
  Y.workItems?.filter((e) => e.status === "DONE").reduce((e, t) => e + (t.storyPoints ?? 0), 0),
339
345
  "/",
340
346
  Y.workItems?.reduce((e, t) => e + (t.storyPoints ?? 0), 0) ?? 0
341
347
  ]
342
- }), /* @__PURE__ */ x("p", {
348
+ }), /* @__PURE__ */ b("p", {
343
349
  className: "text-xs text-muted-foreground",
344
350
  children: "Points"
345
351
  })] }),
346
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("p", {
352
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("p", {
347
353
  className: "text-lg font-semibold",
348
354
  children: [
349
355
  Y.workItems?.filter((e) => e.status === "DONE").length ?? 0,
350
356
  "/",
351
357
  Y.workItems?.length ?? 0
352
358
  ]
353
- }), /* @__PURE__ */ x("p", {
359
+ }), /* @__PURE__ */ b("p", {
354
360
  className: "text-xs text-muted-foreground",
355
361
  children: "Tasks"
356
362
  })] }),
357
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
363
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
358
364
  className: "text-lg font-semibold",
359
365
  children: X ? `${X.velocity} pts` : "—"
360
- }), /* @__PURE__ */ x("p", {
366
+ }), /* @__PURE__ */ b("p", {
361
367
  className: "text-xs text-muted-foreground",
362
368
  children: "Velocity of the last sprint"
363
369
  })] })
@@ -365,102 +371,105 @@ function P() {
365
371
  })
366
372
  ]
367
373
  })] }),
368
- /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ S(O, { children: [
374
+ /* @__PURE__ */ x(w, { children: [/* @__PURE__ */ b(E, { children: /* @__PURE__ */ x(D, { children: [
369
375
  "Work items (",
370
376
  W.length,
371
377
  ")",
372
378
  W.length > 5 ? " · latest 5" : ""
373
- ] }) }), /* @__PURE__ */ S(E, {
379
+ ] }) }), /* @__PURE__ */ x(T, {
374
380
  className: "space-y-2",
375
- children: [ue.map((e) => /* @__PURE__ */ S("div", {
376
- ...s(() => P(`/tasks/task-detail-page?taskId=${encodeURIComponent(e.id)}`), e.key),
377
- className: `flex items-center justify-between border rounded-md p-2.5 ${a}`,
378
- children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("p", {
381
+ children: [pe.map((e) => /* @__PURE__ */ x("div", {
382
+ ...o(() => N(`/tasks/task-detail-page?taskId=${encodeURIComponent(e.id)}`), e.key),
383
+ className: `flex items-center justify-between border rounded-md p-2.5 ${i}`,
384
+ children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("p", {
379
385
  className: "text-sm font-medium",
380
386
  children: [
381
387
  e.key,
382
388
  " ",
383
- /* @__PURE__ */ x("span", {
389
+ /* @__PURE__ */ b("span", {
384
390
  className: "font-normal",
385
391
  children: e.title
386
392
  })
387
393
  ]
388
- }), /* @__PURE__ */ x("div", {
394
+ }), /* @__PURE__ */ b("div", {
389
395
  className: "flex gap-1 mt-1",
390
- children: e.labels.map((e) => /* @__PURE__ */ x("span", {
396
+ children: e.labels.map((e) => /* @__PURE__ */ b("span", {
391
397
  className: "text-[10px] px-1.5 py-0.5 rounded bg-muted",
392
398
  children: e
393
399
  }, e))
394
- })] }), /* @__PURE__ */ S("div", {
400
+ })] }), /* @__PURE__ */ x("div", {
395
401
  className: "flex items-center gap-2",
396
- children: [/* @__PURE__ */ S("span", {
402
+ children: [/* @__PURE__ */ x("span", {
397
403
  className: "text-xs text-muted-foreground",
398
404
  children: [e.storyPoints ?? 0, " pts"]
399
- }), /* @__PURE__ */ x(C, {
405
+ }), /* @__PURE__ */ b(S, {
400
406
  variant: "secondary",
401
407
  className: "capitalize text-xs",
402
408
  children: e.status.toLowerCase().replace("_", " ")
403
409
  })]
404
410
  })]
405
- }, e.id)), W.length === 0 && /* @__PURE__ */ x("p", {
411
+ }, e.id)), W.length === 0 && /* @__PURE__ */ b("p", {
406
412
  className: "text-sm text-muted-foreground text-center py-4",
407
413
  children: "No work items yet."
408
414
  })]
409
415
  })] }),
410
- /* @__PURE__ */ x(re, { projectId: U.id })
416
+ /* @__PURE__ */ b(u, {
417
+ projectId: U.id,
418
+ presence: H
419
+ })
411
420
  ]
412
- }), /* @__PURE__ */ S("div", {
421
+ }), /* @__PURE__ */ x("div", {
413
422
  className: "space-y-6",
414
423
  children: [
415
- /* @__PURE__ */ x(ie, {
416
- workspaceId: F,
424
+ /* @__PURE__ */ b(se, {
425
+ workspaceId: P,
417
426
  projectId: U.id
418
427
  }),
419
- /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ S(O, { children: [
428
+ /* @__PURE__ */ x(w, { children: [/* @__PURE__ */ b(E, { children: /* @__PURE__ */ x(D, { children: [
420
429
  "Milestones (",
421
430
  K.length,
422
431
  ")"
423
- ] }) }), /* @__PURE__ */ S(E, {
432
+ ] }) }), /* @__PURE__ */ x(T, {
424
433
  className: "space-y-3",
425
- children: [K.map((e) => /* @__PURE__ */ S("div", {
434
+ children: [K.map((e) => /* @__PURE__ */ x("div", {
426
435
  className: "border-b pb-2 last:border-0",
427
- children: [/* @__PURE__ */ S("div", {
436
+ children: [/* @__PURE__ */ x("div", {
428
437
  className: "flex justify-between",
429
- children: [/* @__PURE__ */ x("span", {
438
+ children: [/* @__PURE__ */ b("span", {
430
439
  className: "text-sm font-medium",
431
440
  children: e.name
432
- }), /* @__PURE__ */ x(C, {
441
+ }), /* @__PURE__ */ b(S, {
433
442
  variant: "outline",
434
443
  className: "text-xs capitalize",
435
444
  children: e.status.toLowerCase().replace("_", " ")
436
445
  })]
437
- }), /* @__PURE__ */ S("div", {
446
+ }), /* @__PURE__ */ x("div", {
438
447
  className: "flex items-center gap-1 text-xs text-muted-foreground mt-1",
439
- children: [/* @__PURE__ */ x(f, { className: "h-3 w-3" }), e.dueDate ? new Date(e.dueDate).toLocaleDateString() : "No due date"]
448
+ children: [/* @__PURE__ */ b(f, { className: "h-3 w-3" }), e.dueDate ? new Date(e.dueDate).toLocaleDateString() : "No due date"]
440
449
  })]
441
- }, e.id)), K.length === 0 && /* @__PURE__ */ x("p", {
450
+ }, e.id)), K.length === 0 && /* @__PURE__ */ b("p", {
442
451
  className: "text-sm text-muted-foreground text-center py-2",
443
452
  children: "No milestones."
444
453
  })]
445
454
  })] }),
446
- $.length > 0 && /* @__PURE__ */ S(T, {
455
+ $.length > 0 && /* @__PURE__ */ x(w, {
447
456
  "data-testid": "team-sprint-work",
448
- children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ S(O, {
457
+ children: [/* @__PURE__ */ b(E, { children: /* @__PURE__ */ x(D, {
449
458
  className: "flex items-center gap-2",
450
- children: [/* @__PURE__ */ x(_, { className: "h-4 w-4" }), "Team sprint work"]
451
- }) }), /* @__PURE__ */ x(E, {
459
+ children: [/* @__PURE__ */ b(g, { className: "h-4 w-4" }), "Team sprint work"]
460
+ }) }), /* @__PURE__ */ b(T, {
452
461
  className: "space-y-3",
453
- children: $.map((e) => /* @__PURE__ */ S("div", {
462
+ children: $.map((e) => /* @__PURE__ */ x("div", {
454
463
  className: "border-b pb-2 last:border-0",
455
- children: [/* @__PURE__ */ x("button", {
464
+ children: [/* @__PURE__ */ b("button", {
456
465
  type: "button",
457
466
  className: "text-sm font-medium hover:underline text-left",
458
- onClick: () => P(o("/projects/planning-detail-page", e.sprint.id)),
467
+ onClick: () => N(a("/projects/planning-detail-page", e.sprint.id)),
459
468
  children: e.sprint.name
460
- }), /* @__PURE__ */ S("button", {
469
+ }), /* @__PURE__ */ x("button", {
461
470
  type: "button",
462
471
  className: "block text-xs text-muted-foreground hover:underline",
463
- onClick: () => P(o("/team/team-detail-page", e.sprint.team.id)),
472
+ onClick: () => N(a("/team/team-detail-page", e.sprint.team.id)),
464
473
  children: [
465
474
  e.items.length,
466
475
  " item",
@@ -473,53 +482,53 @@ function P() {
473
482
  }, e.sprint.id))
474
483
  })]
475
484
  }),
476
- /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ S(D, {
485
+ /* @__PURE__ */ x(w, { children: [/* @__PURE__ */ x(E, {
477
486
  className: "flex flex-row items-center justify-between space-y-0",
478
- children: [/* @__PURE__ */ S(O, {
487
+ children: [/* @__PURE__ */ x(D, {
479
488
  className: "flex items-center gap-2",
480
489
  children: [
481
- /* @__PURE__ */ x(h, { className: "h-4 w-4 text-primary" }),
490
+ /* @__PURE__ */ b(le, { className: "h-4 w-4 text-primary" }),
482
491
  "Risks (",
483
492
  J.length,
484
493
  " open)"
485
494
  ]
486
- }), /* @__PURE__ */ x(l, {
495
+ }), /* @__PURE__ */ b(ie, {
487
496
  projectId: U.id,
488
- onCreated: (e) => P(o("/risks/risk-detail-page", e))
497
+ onCreated: (e) => N(a("/risks/risk-detail-page", e))
489
498
  })]
490
- }), /* @__PURE__ */ S(E, {
499
+ }), /* @__PURE__ */ x(T, {
491
500
  className: "space-y-3",
492
501
  children: [
493
- ce.map((e) => /* @__PURE__ */ S("div", {
494
- ...s(() => P(o("/risks/risk-detail-page", e.id)), e.title),
495
- className: `border-b pb-2 last:border-0 ${a}`,
496
- children: [/* @__PURE__ */ S("div", {
502
+ de.map((e) => /* @__PURE__ */ x("div", {
503
+ ...o(() => N(a("/risks/risk-detail-page", e.id)), e.title),
504
+ className: `border-b pb-2 last:border-0 ${i}`,
505
+ children: [/* @__PURE__ */ x("div", {
497
506
  className: "flex justify-between gap-2",
498
- children: [/* @__PURE__ */ x("span", {
507
+ children: [/* @__PURE__ */ b("span", {
499
508
  className: "text-sm font-medium truncate",
500
509
  children: e.title
501
- }), /* @__PURE__ */ x("span", {
502
- className: `text-xs px-2 py-0.5 rounded-full shrink-0 ${M[e.severity] ?? "bg-gray-100"}`,
503
- children: i(e.severity)
510
+ }), /* @__PURE__ */ b("span", {
511
+ className: `text-xs px-2 py-0.5 rounded-full shrink-0 ${j[e.severity] ?? "bg-gray-100"}`,
512
+ children: r(e.severity)
504
513
  })]
505
- }), /* @__PURE__ */ S("div", {
514
+ }), /* @__PURE__ */ x("div", {
506
515
  className: "text-xs text-muted-foreground mt-1",
507
516
  children: [
508
517
  "Score ",
509
518
  e.riskScore,
510
519
  " · ",
511
- i(e.status)
520
+ r(e.status)
512
521
  ]
513
522
  })]
514
523
  }, e.id)),
515
- J.length === 0 && /* @__PURE__ */ x("p", {
524
+ J.length === 0 && /* @__PURE__ */ b("p", {
516
525
  className: "text-sm text-muted-foreground text-center py-2",
517
526
  children: "No open risks."
518
527
  }),
519
- /* @__PURE__ */ S("button", {
528
+ /* @__PURE__ */ x("button", {
520
529
  type: "button",
521
530
  className: "text-xs text-primary hover:underline",
522
- onClick: () => P(`/risks/risk-register-page?projectId=${encodeURIComponent(U.id)}`),
531
+ onClick: () => N(`/risks/risk-register-page?projectId=${encodeURIComponent(U.id)}`),
523
532
  children: [
524
533
  "View risk register (",
525
534
  q.length,
@@ -528,59 +537,59 @@ function P() {
528
537
  })
529
538
  ]
530
539
  })] }),
531
- /* @__PURE__ */ S(T, { children: [/* @__PURE__ */ x(D, { children: /* @__PURE__ */ x(O, { children: "Details" }) }), /* @__PURE__ */ S(E, {
540
+ /* @__PURE__ */ x(w, { children: [/* @__PURE__ */ b(E, { children: /* @__PURE__ */ b(D, { children: "Details" }) }), /* @__PURE__ */ x(T, {
532
541
  className: "space-y-2 text-sm",
533
542
  children: [
534
- /* @__PURE__ */ S("div", {
543
+ /* @__PURE__ */ x("div", {
535
544
  className: "flex justify-between",
536
- children: [/* @__PURE__ */ x("span", {
545
+ children: [/* @__PURE__ */ b("span", {
537
546
  className: "text-muted-foreground",
538
547
  children: "Owner"
539
- }), /* @__PURE__ */ x("span", { children: /* @__PURE__ */ x(n, { id: U.ownerId }) })]
548
+ }), /* @__PURE__ */ b("span", { children: /* @__PURE__ */ b(n, { id: U.ownerId }) })]
540
549
  }),
541
- /* @__PURE__ */ S("div", {
550
+ /* @__PURE__ */ x("div", {
542
551
  className: "flex justify-between",
543
- children: [/* @__PURE__ */ x("span", {
552
+ children: [/* @__PURE__ */ b("span", {
544
553
  className: "text-muted-foreground",
545
554
  children: "Key"
546
- }), /* @__PURE__ */ x("span", {
555
+ }), /* @__PURE__ */ b("span", {
547
556
  className: "font-mono",
548
557
  children: U.key
549
558
  })]
550
559
  }),
551
- /* @__PURE__ */ S("div", {
560
+ /* @__PURE__ */ x("div", {
552
561
  className: "flex justify-between",
553
- children: [/* @__PURE__ */ x("span", {
562
+ children: [/* @__PURE__ */ b("span", {
554
563
  className: "text-muted-foreground",
555
564
  children: "Methodology"
556
- }), /* @__PURE__ */ x("span", {
565
+ }), /* @__PURE__ */ b("span", {
557
566
  className: "capitalize",
558
567
  children: U.methodology.toLowerCase()
559
568
  })]
560
569
  }),
561
- /* @__PURE__ */ S("div", {
570
+ /* @__PURE__ */ x("div", {
562
571
  className: "flex justify-between",
563
- children: [/* @__PURE__ */ x("span", {
572
+ children: [/* @__PURE__ */ b("span", {
564
573
  className: "text-muted-foreground",
565
574
  children: "Program"
566
- }), U.program ? /* @__PURE__ */ x("button", {
575
+ }), U.program ? /* @__PURE__ */ b("button", {
567
576
  type: "button",
568
577
  className: "text-primary hover:underline underline-offset-2",
569
- onClick: () => P(o("/products/program-detail-page", U.program.id)),
578
+ onClick: () => N(a("/products/program-detail-page", U.program.id)),
570
579
  children: U.program.name
571
- }) : /* @__PURE__ */ x("span", {
580
+ }) : /* @__PURE__ */ b("span", {
572
581
  className: "text-muted-foreground",
573
582
  children: "No program"
574
583
  })]
575
584
  }),
576
- U.tags.length > 0 && /* @__PURE__ */ S("div", {
585
+ U.tags.length > 0 && /* @__PURE__ */ x("div", {
577
586
  className: "flex justify-between items-start",
578
- children: [/* @__PURE__ */ x("span", {
587
+ children: [/* @__PURE__ */ b("span", {
579
588
  className: "text-muted-foreground",
580
589
  children: "Tags"
581
- }), /* @__PURE__ */ x("div", {
590
+ }), /* @__PURE__ */ b("div", {
582
591
  className: "flex gap-1 flex-wrap justify-end",
583
- children: U.tags.map((e) => /* @__PURE__ */ x(C, {
592
+ children: U.tags.map((e) => /* @__PURE__ */ b(S, {
584
593
  variant: "outline",
585
594
  className: "text-xs",
586
595
  children: e
@@ -596,6 +605,6 @@ function P() {
596
605
  });
597
606
  }
598
607
  //#endregion
599
- export { P as ProjectsProjectDetailPagePage };
608
+ export { N as ProjectsProjectDetailPagePage };
600
609
 
601
610
  //# sourceMappingURL=ProjectsProjectDetailPagePage.js.map