cortex-react-components 3.2.2 → 4.0.2

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 (543) hide show
  1. package/dist/{chunk-5GFRQ4NR.mjs → chunk-2BKXIIFJ.mjs} +183 -36
  2. package/dist/{chunk-LQPN7L4Z.mjs → chunk-3DWDGYDG.mjs} +1 -1
  3. package/dist/{chunk-PTDP7PZK.mjs → chunk-3G7VLQG5.mjs} +1 -1
  4. package/dist/{chunk-56NFUKPK.mjs → chunk-3K6EVFOW.mjs} +1 -1
  5. package/dist/{chunk-PFA2P52R.mjs → chunk-3RYHYKVQ.mjs} +1 -1
  6. package/dist/{chunk-XDV7AVPQ.mjs → chunk-4JSM5VYZ.mjs} +2 -2
  7. package/dist/{chunk-VMYEV3FG.mjs → chunk-4YRR74Y4.mjs} +1 -1
  8. package/dist/{chunk-I4MTJN23.mjs → chunk-6A7T3O6T.mjs} +6 -5
  9. package/dist/{chunk-G46GZ57S.mjs → chunk-6LF4K7ER.mjs} +5 -5
  10. package/dist/{chunk-2363JAWB.mjs → chunk-6S7EQDLL.mjs} +1 -1
  11. package/dist/{chunk-ZBCZGWDU.mjs → chunk-7HHLKQE4.mjs} +1 -1
  12. package/dist/{chunk-YUBPY7L4.mjs → chunk-7LM2P6N3.mjs} +1 -1
  13. package/dist/{chunk-VMDVXNP5.mjs → chunk-AKMJBGUU.mjs} +16 -16
  14. package/dist/{chunk-V4I6U2SE.mjs → chunk-AVNBD2X5.mjs} +1 -1
  15. package/dist/{chunk-2L6AWG6R.mjs → chunk-AZ5MV7NO.mjs} +2 -2
  16. package/dist/{chunk-YOKF4FEM.mjs → chunk-BMZG77IE.mjs} +1 -1
  17. package/dist/chunk-BXEALHGJ.mjs +142 -0
  18. package/dist/{chunk-V6YEUAIH.mjs → chunk-CV7GOXGO.mjs} +2 -2
  19. package/dist/{chunk-YKX5AGFQ.mjs → chunk-D3AHBPI5.mjs} +1 -1
  20. package/dist/{chunk-2VF2D4DL.mjs → chunk-DGDELNS3.mjs} +1 -1
  21. package/dist/{chunk-RJZMTP7J.mjs → chunk-DHB2L7O2.mjs} +1 -1
  22. package/dist/{chunk-ZED4UNH7.mjs → chunk-DPTILX6A.mjs} +2 -2
  23. package/dist/{chunk-RQGM66Q4.mjs → chunk-DRLNETNN.mjs} +1 -1
  24. package/dist/{chunk-673GELPP.mjs → chunk-DVWMM7AI.mjs} +3 -3
  25. package/dist/{chunk-O633TXQG.mjs → chunk-EEVXIKNB.mjs} +1 -1
  26. package/dist/{chunk-EQYJUXKZ.mjs → chunk-EGCBZZGV.mjs} +1 -1
  27. package/dist/{chunk-HK2DQNBU.mjs → chunk-ETV6EEYB.mjs} +4 -4
  28. package/dist/{chunk-ORWAJNJO.mjs → chunk-F6SQTC6R.mjs} +3 -3
  29. package/dist/{chunk-25EF7VEC.mjs → chunk-F7JPOQIC.mjs} +1 -1
  30. package/dist/{chunk-JQNNFILH.mjs → chunk-FWRVXOCU.mjs} +1 -1
  31. package/dist/{chunk-4YSV633W.mjs → chunk-GAWBCR4S.mjs} +1 -1
  32. package/dist/{chunk-ZWV2O6CK.mjs → chunk-GR45UN4U.mjs} +3 -3
  33. package/dist/chunk-GXN5ZNBZ.mjs +135 -0
  34. package/dist/{chunk-CIFGBEFV.mjs → chunk-HNBHBFLY.mjs} +1 -1
  35. package/dist/{chunk-USEHRJFR.mjs → chunk-HNVHGBNE.mjs} +1 -1
  36. package/dist/{chunk-QPO45D6F.mjs → chunk-I2MVZVXE.mjs} +1 -1
  37. package/dist/chunk-IC4N2KYF.mjs +401 -0
  38. package/dist/{chunk-QOYK2HBL.mjs → chunk-IM5B557Z.mjs} +19 -19
  39. package/dist/{chunk-J5ZETWHG.mjs → chunk-IQ67MHAY.mjs} +2 -2
  40. package/dist/{chunk-UFBLZW2N.mjs → chunk-IWQEM5KO.mjs} +2 -2
  41. package/dist/{chunk-UJI3Y73K.mjs → chunk-J5GM5CJK.mjs} +3 -3
  42. package/dist/chunk-JCSRFM37.mjs +595 -0
  43. package/dist/{chunk-QMFGV3M5.mjs → chunk-JOGVCBYP.mjs} +1 -1
  44. package/dist/{chunk-K6N5K2A7.mjs → chunk-JWMQOARK.mjs} +4 -4
  45. package/dist/{chunk-DSVXGGGV.mjs → chunk-K5ZNBHQO.mjs} +1 -1
  46. package/dist/{chunk-UYUP2DAL.mjs → chunk-KHFPDDTO.mjs} +1 -1
  47. package/dist/{chunk-CVH5TDS6.mjs → chunk-KJVAS4I7.mjs} +27 -12
  48. package/dist/{chunk-4PC77ZEN.mjs → chunk-KMGTUNRZ.mjs} +1 -1
  49. package/dist/{chunk-LVLEZS7Q.mjs → chunk-KYY7BMXI.mjs} +1 -1
  50. package/dist/{chunk-GDMWNNYC.mjs → chunk-LRMDRQRJ.mjs} +2 -2
  51. package/dist/{chunk-CIXAM7LW.mjs → chunk-LRTEGIZ7.mjs} +12 -12
  52. package/dist/{chunk-XGHUG2WQ.mjs → chunk-MDG2I4PB.mjs} +1 -1
  53. package/dist/{chunk-S27KJUKF.mjs → chunk-N5HTSJLI.mjs} +1 -1
  54. package/dist/{chunk-MPFWWJYT.mjs → chunk-N5Q2DYUR.mjs} +2 -2
  55. package/dist/{chunk-3W5H36HK.mjs → chunk-NNH7EC5Z.mjs} +1 -1
  56. package/dist/{chunk-5Z7JRCOM.mjs → chunk-NSYYRG6A.mjs} +1 -1
  57. package/dist/{chunk-JD7SR5V3.mjs → chunk-NUAJQK4H.mjs} +64 -8
  58. package/dist/{chunk-SSF2CAW7.mjs → chunk-OR3XMMEK.mjs} +9 -9
  59. package/dist/{chunk-RC6YHGVV.mjs → chunk-PE7KJR4A.mjs} +1 -1
  60. package/dist/{chunk-V2BZ7RE7.mjs → chunk-PLFX66EX.mjs} +1 -1
  61. package/dist/{chunk-E6M7XAYT.mjs → chunk-Q45EN2QB.mjs} +1 -1
  62. package/dist/{chunk-22E2TZBE.mjs → chunk-QDO6BAAN.mjs} +13 -5
  63. package/dist/{chunk-P4P6J2SW.mjs → chunk-QJGBUBSB.mjs} +2 -2
  64. package/dist/{chunk-TIGSOXUA.mjs → chunk-QJQ66DYZ.mjs} +1 -1
  65. package/dist/{chunk-ZF2DELZ5.mjs → chunk-QXOHY4AT.mjs} +39 -3
  66. package/dist/{chunk-NF4JWFAZ.mjs → chunk-RFMER577.mjs} +1 -1
  67. package/dist/{chunk-PIGOOCU6.mjs → chunk-RNHGLZYP.mjs} +1 -1
  68. package/dist/{chunk-QUGB53Z3.mjs → chunk-RV4VRLGN.mjs} +1 -1
  69. package/dist/{chunk-KCPLIAIF.mjs → chunk-SJI6X5DK.mjs} +2 -2
  70. package/dist/{chunk-B63AROCU.mjs → chunk-SMX6BH2N.mjs} +1 -1
  71. package/dist/{chunk-L3SZS7PC.mjs → chunk-SNUES6JA.mjs} +1 -1
  72. package/dist/{chunk-6R3QP53O.mjs → chunk-TZH6L2OH.mjs} +2 -2
  73. package/dist/{chunk-EJJNYV7C.mjs → chunk-U6ZFUE5O.mjs} +2 -2
  74. package/dist/{chunk-OPJMXB4K.mjs → chunk-UCK4TW63.mjs} +4 -4
  75. package/dist/{chunk-HI6QOZHR.mjs → chunk-V6VAVPKH.mjs} +1 -1
  76. package/dist/{chunk-PRMR24PY.mjs → chunk-WAR2OXXK.mjs} +4 -4
  77. package/dist/{chunk-4PFDNMLD.mjs → chunk-WEIPDZOJ.mjs} +1 -1
  78. package/dist/{chunk-TLCSKAWQ.mjs → chunk-WZBXR7J3.mjs} +5 -5
  79. package/dist/{chunk-FECAR2TE.mjs → chunk-X4GP2O3Y.mjs} +2 -2
  80. package/dist/{chunk-UNEYYMLL.mjs → chunk-XCZCWSOY.mjs} +2 -2
  81. package/dist/{chunk-QE3XE3LW.mjs → chunk-Y4KJTMKO.mjs} +1 -1
  82. package/dist/{chunk-AOSO2JVA.mjs → chunk-YUZYLKBD.mjs} +1 -1
  83. package/dist/{chunk-YFOEG4PP.mjs → chunk-Z6MYLHDW.mjs} +1 -1
  84. package/dist/{chunk-TP5AUT7W.mjs → chunk-ZJB7AFL5.mjs} +2 -2
  85. package/dist/components/AdvancedComponents/AppSidebar.d.ts +1 -1
  86. package/dist/components/AdvancedComponents/AppSidebar.js +480 -301
  87. package/dist/components/AdvancedComponents/AppSidebar.mjs +3 -3
  88. package/dist/components/AdvancedComponents/index.js +480 -301
  89. package/dist/components/AdvancedComponents/index.mjs +3 -3
  90. package/dist/components/AdvancedComponents/user-selection.d.ts +1 -1
  91. package/dist/components/AdvancedComponents/user-selection.js +1 -1
  92. package/dist/components/AdvancedComponents/user-selection.mjs +1 -1
  93. package/dist/components/Blocks/Banner.mjs +3 -3
  94. package/dist/components/Blocks/CallToAction.mjs +3 -3
  95. package/dist/components/Blocks/CollapsibleArea.mjs +4 -4
  96. package/dist/components/Blocks/Content.mjs +4 -4
  97. package/dist/components/Blocks/FeaturesBlock.mjs +3 -3
  98. package/dist/components/Blocks/RelatedPosts.mjs +4 -4
  99. package/dist/components/Blocks/RenderBlocks.mjs +6 -6
  100. package/dist/components/Blocks/ReusableContentBlock.mjs +6 -6
  101. package/dist/components/Blocks/index.mjs +7 -7
  102. package/dist/components/Cards/ContentCard.mjs +3 -3
  103. package/dist/components/Cards/FeatureCard.mjs +3 -3
  104. package/dist/components/Cards/index.mjs +3 -3
  105. package/dist/components/Chat/CopilotInterface.d.ts +1 -1
  106. package/dist/components/Chat/CopilotInterface.js +527 -330
  107. package/dist/components/Chat/CopilotInterface.mjs +5 -5
  108. package/dist/components/Chat/chat-session-sidebar.d.ts +1 -1
  109. package/dist/components/Chat/demo-long-messages.js +527 -330
  110. package/dist/components/Chat/demo-long-messages.mjs +5 -5
  111. package/dist/components/Chat/demo-tests.js +527 -330
  112. package/dist/components/Chat/demo-tests.mjs +5 -5
  113. package/dist/components/Chat/demo.js +527 -330
  114. package/dist/components/Chat/demo.mjs +5 -5
  115. package/dist/components/Chat/example-usage.js +527 -330
  116. package/dist/components/Chat/example-usage.mjs +6 -6
  117. package/dist/components/Chat/example-with-vercel-ai.js +527 -330
  118. package/dist/components/Chat/example-with-vercel-ai.mjs +5 -5
  119. package/dist/components/Chat/index.js +527 -330
  120. package/dist/components/Chat/index.mjs +8 -8
  121. package/dist/components/DeliveryLead/DeliveryLeadSubmissionWithList.mjs +2 -2
  122. package/dist/components/DeliveryLead/index.mjs +4 -4
  123. package/dist/components/DigitalColleagues/Views/TeamsIndexView.d.ts +1 -9
  124. package/dist/components/DigitalColleagues/Views/TeamsIndexView.js +22 -27
  125. package/dist/components/DigitalColleagues/Views/TeamsIndexView.mjs +4 -6
  126. package/dist/components/DigitalColleagues/index.d.ts +0 -18
  127. package/dist/components/DigitalColleagues/index.js +0 -16754
  128. package/dist/components/DigitalColleagues/test-data.d.ts +1 -112
  129. package/dist/components/DigitalColleagues/test-data.js +482 -308
  130. package/dist/components/DigitalColleagues/test-data.mjs +1 -5
  131. package/dist/components/{Foundary → Foundry}/AppSidebarLeft.js +3 -3
  132. package/dist/components/{DigitalColleagues → Foundry}/AppSidebarLeft.mjs +3 -3
  133. package/dist/components/{Foundary → Foundry}/DashboardHeader.js +2 -2
  134. package/dist/components/{Foundary → Foundry}/DashboardHeader.mjs +1 -1
  135. package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.js +2 -2
  136. package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.mjs +4 -4
  137. package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.js +3 -3
  138. package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.mjs +4 -4
  139. package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.js +2 -2
  140. package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.mjs +1 -1
  141. package/dist/components/{Foundary → Foundry}/LandingMenu.js +2 -2
  142. package/dist/components/{Foundary → Foundry}/LandingMenu.mjs +1 -1
  143. package/dist/components/{Foundary → Foundry}/Login.js +2 -2
  144. package/dist/components/{Foundary → Foundry}/Login.mjs +1 -1
  145. package/dist/components/{Foundary → Foundry}/MainPage.js +4 -4
  146. package/dist/components/{DigitalColleagues → Foundry}/MainPage.mjs +9 -9
  147. package/dist/components/{DigitalColleagues → Foundry}/ManagementSidebar.d.ts +2 -2
  148. package/dist/components/{Foundary → Foundry}/ManagementSidebar.js +12 -4
  149. package/dist/components/{DigitalColleagues → Foundry}/ManagementSidebar.mjs +1 -1
  150. package/dist/components/{Foundary → Foundry}/Pages/dashboardpage.js +1860 -2162
  151. package/dist/components/{Foundary → Foundry}/Pages/dashboardpage.mjs +42 -41
  152. package/dist/components/{Foundary → Foundry}/README-document-edit.js +1 -1
  153. package/dist/components/{Foundary → Foundry}/README-document-edit.mjs +1 -1
  154. package/dist/components/{Foundary → Foundry}/README-document-preview.js +1 -1
  155. package/dist/components/{Foundary → Foundry}/README-document-preview.mjs +1 -1
  156. package/dist/components/{Foundary → Foundry}/RichText/Icons/Bold.js +1 -1
  157. package/dist/components/{Foundary → Foundry}/RichText/Icons/Bold.mjs +1 -1
  158. package/dist/components/{Foundary → Foundry}/RichText/Icons/Headings.js +1 -1
  159. package/dist/components/{Foundary → Foundry}/RichText/Icons/Headings.mjs +1 -1
  160. package/dist/components/{Foundary → Foundry}/RichText/Icons/Italic.js +1 -1
  161. package/dist/components/{Foundary → Foundry}/RichText/Icons/Italic.mjs +1 -1
  162. package/dist/components/{Foundary → Foundry}/RichText/Icons/StrikeThrough.js +1 -1
  163. package/dist/components/{Foundary → Foundry}/RichText/Icons/StrikeThrough.mjs +1 -1
  164. package/dist/components/{Foundary → Foundry}/RichText/Icons/Subscript.js +1 -1
  165. package/dist/components/{Foundary → Foundry}/RichText/Icons/Subscript.mjs +1 -1
  166. package/dist/components/{Foundary → Foundry}/RichText/Icons/Superscript.js +1 -1
  167. package/dist/components/{Foundary → Foundry}/RichText/Icons/Superscript.mjs +1 -1
  168. package/dist/components/{Foundary → Foundry}/RichText/Icons/Underline.js +1 -1
  169. package/dist/components/{Foundary → Foundry}/RichText/Icons/Underline.mjs +1 -1
  170. package/dist/components/{Foundary → Foundry}/RichText/components/RawUploadComponent/index.js +2 -2
  171. package/dist/components/{Foundary → Foundry}/RichText/components/RawUploadComponent/index.mjs +1 -1
  172. package/dist/components/{Foundary → Foundry}/RichText/index.js +18 -18
  173. package/dist/components/{Foundary → Foundry}/RichText/index.mjs +12 -12
  174. package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.js +4 -4
  175. package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.mjs +2 -2
  176. package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.js +7 -7
  177. package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.mjs +3 -3
  178. package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.js +16 -16
  179. package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.mjs +11 -11
  180. package/dist/components/{Foundary → Foundry}/SearchableSelect.js +2 -2
  181. package/dist/components/{DigitalColleagues → Foundry}/SearchableSelect.mjs +1 -1
  182. package/dist/components/{Foundary → Foundry}/Views/ColleaguesView.d.ts +4 -2
  183. package/dist/components/{Foundary → Foundry}/Views/ColleaguesView.js +526 -211
  184. package/dist/components/{Foundary → Foundry}/Views/ColleaguesView.mjs +12 -10
  185. package/dist/components/Foundry/Views/KnowledgeView.docs.js +2 -0
  186. package/dist/components/Foundry/Views/KnowledgeView.docs.mjs +7 -0
  187. package/dist/components/{Foundary → Foundry}/Views/KnowledgeView.js +29 -29
  188. package/dist/components/{Foundary → Foundry}/Views/KnowledgeView.mjs +21 -21
  189. package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.js +9 -8
  190. package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.mjs +4 -4
  191. package/dist/components/{Foundary → Foundry}/Views/index.js +2929 -2050
  192. package/dist/components/{Foundary → Foundry}/Views/index.mjs +64 -61
  193. package/dist/components/Foundry/add-colleague-to-team-form.d.ts +10 -0
  194. package/dist/components/{DigitalColleagues/colleague-type-selection.js → Foundry/add-colleague-to-team-form.js} +156 -91
  195. package/dist/components/{DigitalColleagues/colleague-card.mjs → Foundry/add-colleague-to-team-form.mjs} +3 -4
  196. package/dist/components/{.archive → Foundry}/app-card.d.ts +1 -1
  197. package/dist/components/Foundry/app-card.js +2669 -0
  198. package/dist/components/{DigitalColleagues/digital-colleague-options.mjs → Foundry/app-card.mjs} +5 -3
  199. package/dist/components/{Foundary → Foundry}/colleague-card.js +2 -2
  200. package/dist/components/{Foundary → Foundry}/colleague-card.mjs +1 -1
  201. package/dist/components/{Foundary → Foundry}/colleague-form.js +4 -4
  202. package/dist/components/{Foundary → Foundry}/colleague-form.mjs +2 -2
  203. package/dist/components/{Foundary → Foundry}/colleague-type-selection.js +2 -2
  204. package/dist/components/{DigitalColleagues → Foundry}/colleague-type-selection.mjs +1 -1
  205. package/dist/components/Foundry/digital-colleague-selection.d.ts +9 -0
  206. package/dist/components/{DigitalColleagues/digital-colleague-clone.js → Foundry/digital-colleague-selection.js} +59 -100
  207. package/dist/components/{DigitalColleagues/digital-colleague-clone.mjs → Foundry/digital-colleague-selection.mjs} +3 -3
  208. package/dist/components/{Foundary → Foundry}/document-edit.js +20 -20
  209. package/dist/components/{Foundary → Foundry}/document-edit.mjs +13 -13
  210. package/dist/components/{Foundary → Foundry}/document-preview-examples.js +24 -24
  211. package/dist/components/{Foundary → Foundry}/document-preview-examples.mjs +15 -15
  212. package/dist/components/{Foundary → Foundry}/document-preview.js +22 -22
  213. package/dist/components/{Foundary → Foundry}/document-preview.mjs +14 -14
  214. package/dist/components/{Foundary → Foundry}/file-edit.js +20 -20
  215. package/dist/components/{Foundary → Foundry}/file-edit.mjs +16 -16
  216. package/dist/components/{Foundary → Foundry}/foundary-clone.js +3 -3
  217. package/dist/components/{Foundary → Foundry}/foundary-clone.mjs +1 -1
  218. package/dist/components/{Foundary → Foundry}/foundary-layout.d.ts +3 -3
  219. package/dist/components/{Foundary → Foundry}/foundary-layout.js +485 -306
  220. package/dist/components/{Foundary → Foundry}/foundary-layout.mjs +6 -6
  221. package/dist/components/{Foundary → Foundry}/foundary-options.d.ts +2 -1
  222. package/dist/components/{Foundary → Foundry}/foundary-options.js +39 -3
  223. package/dist/components/{Foundary → Foundry}/foundary-options.mjs +1 -1
  224. package/dist/components/{Foundary → Foundry}/index.d.ts +3 -1
  225. package/dist/components/{Foundary → Foundry}/index.js +3465 -3267
  226. package/dist/components/{Foundary → Foundry}/index.mjs +102 -95
  227. package/dist/components/{Foundary → Foundry}/knowledge-browser.js +24 -24
  228. package/dist/components/{Foundary → Foundry}/knowledge-browser.mjs +15 -15
  229. package/dist/components/{Foundary → Foundry}/knowledge-search.js +2 -2
  230. package/dist/components/{DigitalColleagues → Foundry}/knowledge-search.mjs +1 -1
  231. package/dist/components/{Foundary → Foundry}/team-form.js +2 -2
  232. package/dist/components/{Foundary → Foundry}/team-form.mjs +1 -1
  233. package/dist/components/{Foundary → Foundry}/test-data.js +1 -1
  234. package/dist/components/{Foundary → Foundry}/test-data.mjs +1 -1
  235. package/dist/components/{Foundary → Foundry}/types.d.ts +26 -0
  236. package/dist/components/{Foundary → Foundry}/types.js +1 -1
  237. package/dist/components/HeaderFooter/Header.mjs +1 -1
  238. package/dist/components/HeaderFooter/SectionHeading.mjs +4 -4
  239. package/dist/components/HeaderFooter/index.mjs +11 -11
  240. package/dist/components/Heros/DashboardHero/DashboardHero.js +5 -4
  241. package/dist/components/Heros/DashboardHero/DashboardHero.mjs +2 -2
  242. package/dist/components/Heros/DashboardHero/index.js +5 -4
  243. package/dist/components/Heros/DashboardHero/index.mjs +2 -2
  244. package/dist/components/Heros/HighImpact/index.mjs +4 -4
  245. package/dist/components/Heros/LowImpact/index.mjs +4 -4
  246. package/dist/components/Heros/MediumImpact/index.mjs +4 -4
  247. package/dist/components/Heros/PostHero/index.mjs +3 -3
  248. package/dist/components/Heros/RenderHero.mjs +7 -7
  249. package/dist/components/Heros/index.js +5 -4
  250. package/dist/components/Heros/index.mjs +14 -14
  251. package/dist/components/Layouts/OutputHeaderFooter.mjs +4 -4
  252. package/dist/components/Layouts/Print.mjs +8 -8
  253. package/dist/components/Layouts/SlideShow.mjs +9 -9
  254. package/dist/components/Layouts/index.mjs +13 -13
  255. package/dist/components/Menus/SidebarLeft.mjs +3 -3
  256. package/dist/components/Menus/SidebarLeftMulti.mjs +3 -3
  257. package/dist/components/Menus/SidebarRight.mjs +3 -3
  258. package/dist/components/Menus/index.mjs +5 -5
  259. package/dist/components/Payload/RichText/index.mjs +3 -3
  260. package/dist/components/Payload/RichText/serialize.mjs +3 -3
  261. package/dist/components/Payload/index.mjs +3 -3
  262. package/dist/components/Projects/AddEpicModal.d.ts +1 -1
  263. package/dist/components/Projects/AddSprintModal.d.ts +1 -1
  264. package/dist/components/Projects/AddTaskModal.d.ts +1 -1
  265. package/dist/components/Projects/EpicFilter.d.ts +6 -2
  266. package/dist/components/Projects/EpicFilter.js +6 -6
  267. package/dist/components/Projects/EpicFilter.mjs +6 -6
  268. package/dist/components/Projects/EpicsView.d.ts +12 -2
  269. package/dist/components/Projects/EpicsView.js +3980 -736
  270. package/dist/components/Projects/EpicsView.mjs +46 -4
  271. package/dist/components/Projects/FileView.d.ts +1 -1
  272. package/dist/components/Projects/FileView.js +24 -23
  273. package/dist/components/Projects/FileView.mjs +20 -20
  274. package/dist/components/Projects/GanttView.d.ts +13 -0
  275. package/dist/components/{DigitalColleagues/colleague-card.js → Projects/GanttView.js} +559 -260
  276. package/dist/components/Projects/GanttView.mjs +20 -0
  277. package/dist/components/Projects/KanbanBoardView.d.ts +1 -1
  278. package/dist/components/Projects/KanbanBoardView.js +25 -24
  279. package/dist/components/Projects/KanbanBoardView.mjs +26 -26
  280. package/dist/components/Projects/KanbanColumn.d.ts +1 -1
  281. package/dist/components/Projects/PlanningView.d.ts +1 -1
  282. package/dist/components/Projects/PlanningView.js +5 -4
  283. package/dist/components/Projects/PlanningView.mjs +3 -3
  284. package/dist/components/Projects/ProjectPage.d.ts +3 -3
  285. package/dist/components/Projects/ProjectPage.js +1744 -983
  286. package/dist/components/Projects/ProjectPage.mjs +39 -38
  287. package/dist/components/Projects/ProjectView.d.ts +2 -2
  288. package/dist/components/Projects/ProjectView.js +1227 -662
  289. package/dist/components/Projects/ProjectView.mjs +34 -33
  290. package/dist/components/Projects/ProjectsIndexView.d.ts +1 -1
  291. package/dist/components/Projects/ProjectsIndexView.js +5 -4
  292. package/dist/components/Projects/ProjectsIndexView.mjs +4 -4
  293. package/dist/components/Projects/SprintBoardView.d.ts +4 -1
  294. package/dist/components/Projects/SprintBoardView.js +271 -129
  295. package/dist/components/Projects/SprintBoardView.mjs +26 -26
  296. package/dist/components/Projects/TaskCard.d.ts +1 -1
  297. package/dist/components/Projects/TaskDetailsModal.d.ts +1 -1
  298. package/dist/components/Projects/TaskDetailsModal.js +20 -20
  299. package/dist/components/Projects/TaskDetailsModal.mjs +20 -20
  300. package/dist/components/Projects/TaskSidebar.d.ts +1 -1
  301. package/dist/components/Projects/TaskSidebar.js +2 -2
  302. package/dist/components/Projects/TaskSidebar.mjs +2 -2
  303. package/dist/components/Projects/TasksView.d.ts +1 -1
  304. package/dist/components/Projects/TasksView.js +5 -4
  305. package/dist/components/Projects/TasksView.mjs +3 -3
  306. package/dist/components/Projects/business-unit-switcher.d.ts +1 -1
  307. package/dist/components/Projects/business-units.d.ts +1 -1
  308. package/dist/components/Projects/file-list.d.ts +1 -1
  309. package/dist/components/Projects/file-list.js +19 -19
  310. package/dist/components/Projects/file-list.mjs +17 -17
  311. package/dist/components/Projects/index.js +557 -250
  312. package/dist/components/Projects/index.mjs +35 -35
  313. package/dist/components/Projects/project-card.d.ts +1 -1
  314. package/dist/components/Projects/project-form.d.ts +1 -1
  315. package/dist/components/Projects/team-card.d.ts +1 -1
  316. package/dist/components/Projects/team-switcher-bar.d.ts +1 -1
  317. package/dist/components/Projects/test-data.d.ts +448 -29
  318. package/dist/components/dc-temp/dashboard-integration-example.js +497 -325
  319. package/dist/components/dc-temp/dashboard-integration-example.mjs +6 -6
  320. package/dist/components/dc-temp/index.d.ts +3 -3
  321. package/dist/components/dc-temp/index.js +3773 -3007
  322. package/dist/components/dc-temp/index.mjs +35 -33
  323. package/dist/components/dc-temp/mock-data.d.ts +2 -2
  324. package/dist/components/index.d.ts +1 -1
  325. package/dist/components/index.js +3337 -3100
  326. package/dist/components/index.mjs +163 -157
  327. package/dist/components/ui/index.mjs +9 -9
  328. package/dist/components/ui/sidebar.mjs +2 -2
  329. package/dist/decorators/Intranet.css +54 -14
  330. package/dist/decorators/Intranet.mjs +99 -99
  331. package/dist/globals.css +54 -14
  332. package/dist/hooks/use-local-storage.d.ts +2 -1
  333. package/dist/hooks/use-local-storage.js +5 -4
  334. package/dist/hooks/use-local-storage.mjs +1 -1
  335. package/dist/index.js +3345 -3108
  336. package/dist/index.mjs +174 -168
  337. package/dist/metafile-cjs.json +1 -1
  338. package/dist/metafile-esm.json +1 -1
  339. package/dist/pages/Blog.mjs +12 -12
  340. package/dist/pages/Documentation.mjs +9 -9
  341. package/dist/pages/IndexPage.mjs +17 -17
  342. package/dist/pages/Intranet.mjs +3 -3
  343. package/dist/pages/LandingPage.mjs +111 -111
  344. package/dist/pages/Page.mjs +16 -16
  345. package/dist/pages/Publish.mjs +100 -100
  346. package/dist/pages/Website.mjs +19 -19
  347. package/dist/sections/AboutSection.mjs +5 -5
  348. package/dist/sections/BlogDetail.mjs +4 -4
  349. package/dist/sections/BlogList.mjs +5 -5
  350. package/dist/sections/BlogListSection.mjs +5 -5
  351. package/dist/sections/ContactSection.mjs +5 -5
  352. package/dist/sections/PageSections.mjs +109 -109
  353. package/dist/sections/PricingSection.mjs +5 -5
  354. package/dist/sections/ServiceDetail.mjs +4 -4
  355. package/dist/sections/ServiceDetailSection.mjs +4 -4
  356. package/dist/sections/ServiceSection.mjs +100 -100
  357. package/dist/sections/form/index.mjs +2 -2
  358. package/dist/sections/index.mjs +109 -109
  359. package/package.json +5 -2
  360. package/dist/chunk-5MMSWFVA.mjs +0 -364
  361. package/dist/chunk-7TDXZ32Q.mjs +0 -197
  362. package/dist/chunk-APXXTGT4.mjs +0 -424
  363. package/dist/chunk-BZENEU5C.mjs +0 -160
  364. package/dist/chunk-CNQTT5P3.mjs +0 -276
  365. package/dist/chunk-CQKCEXF2.mjs +0 -82
  366. package/dist/chunk-EKQB7NJA.mjs +0 -194
  367. package/dist/chunk-G4WW3ZTX.mjs +0 -1063
  368. package/dist/chunk-G7SFQSC7.mjs +0 -306
  369. package/dist/chunk-IWG2URAU.mjs +0 -74
  370. package/dist/chunk-IWSATDRG.mjs +0 -118
  371. package/dist/chunk-JRNDRMIC.mjs +0 -73
  372. package/dist/chunk-K2C4VMGF.mjs +0 -121
  373. package/dist/chunk-M6ELOAGS.mjs +0 -136
  374. package/dist/chunk-NAUBZM7P.mjs +0 -183
  375. package/dist/chunk-NHDPHK6D.mjs +0 -72
  376. package/dist/chunk-R5MJWISX.mjs +0 -194
  377. package/dist/chunk-RKYMAFRJ.mjs +0 -92
  378. package/dist/chunk-SZBUXY6L.mjs +0 -121
  379. package/dist/chunk-UHOCECJY.mjs +0 -365
  380. package/dist/chunk-VY6L37RQ.mjs +0 -103
  381. package/dist/chunk-X6UI73UN.mjs +0 -262
  382. package/dist/components/DigitalColleagues/AppSidebarLeft.js +0 -3407
  383. package/dist/components/DigitalColleagues/DashboardHeader.js +0 -2756
  384. package/dist/components/DigitalColleagues/DashboardHeader.mjs +0 -15
  385. package/dist/components/DigitalColleagues/DigitalColleageusLayout.d.ts +0 -28
  386. package/dist/components/DigitalColleagues/DigitalColleageusLayout.js +0 -4417
  387. package/dist/components/DigitalColleagues/DigitalColleageusLayout.mjs +0 -31
  388. package/dist/components/DigitalColleagues/MainPage.js +0 -4080
  389. package/dist/components/DigitalColleagues/ManagementSidebar.js +0 -99
  390. package/dist/components/DigitalColleagues/Pages/dashboardpage.d.ts +0 -18
  391. package/dist/components/DigitalColleagues/Pages/dashboardpage.js +0 -8514
  392. package/dist/components/DigitalColleagues/Pages/dashboardpage.mjs +0 -78
  393. package/dist/components/DigitalColleagues/README-document-edit.js +0 -2
  394. package/dist/components/DigitalColleagues/README-document-edit.mjs +0 -7
  395. package/dist/components/DigitalColleagues/README-document-preview.js +0 -2
  396. package/dist/components/DigitalColleagues/README-document-preview.mjs +0 -7
  397. package/dist/components/DigitalColleagues/SearchableSelect.js +0 -2745
  398. package/dist/components/DigitalColleagues/Views/ColleaguesView.d.ts +0 -14
  399. package/dist/components/DigitalColleagues/Views/ColleaguesView.js +0 -3795
  400. package/dist/components/DigitalColleagues/Views/ColleaguesView.mjs +0 -28
  401. package/dist/components/DigitalColleagues/Views/KnowledgeView.d.ts +0 -11
  402. package/dist/components/DigitalColleagues/Views/KnowledgeView.docs.js +0 -2
  403. package/dist/components/DigitalColleagues/Views/KnowledgeView.docs.mjs +0 -7
  404. package/dist/components/DigitalColleagues/Views/KnowledgeView.js +0 -3935
  405. package/dist/components/DigitalColleagues/Views/KnowledgeView.mjs +0 -26
  406. package/dist/components/DigitalColleagues/Views/index.js +0 -12284
  407. package/dist/components/DigitalColleagues/Views/index.mjs +0 -114
  408. package/dist/components/DigitalColleagues/colleague-form.d.ts +0 -14
  409. package/dist/components/DigitalColleagues/colleague-form.js +0 -3086
  410. package/dist/components/DigitalColleagues/colleague-form.mjs +0 -22
  411. package/dist/components/DigitalColleagues/digital-colleague-clone.d.ts +0 -9
  412. package/dist/components/DigitalColleagues/digital-colleague-options.d.ts +0 -7
  413. package/dist/components/DigitalColleagues/digital-colleague-options.js +0 -2697
  414. package/dist/components/DigitalColleagues/document-edit.d.ts +0 -10
  415. package/dist/components/DigitalColleagues/document-edit.js +0 -3112
  416. package/dist/components/DigitalColleagues/document-edit.mjs +0 -20
  417. package/dist/components/DigitalColleagues/document-preview-examples.js +0 -3433
  418. package/dist/components/DigitalColleagues/document-preview-examples.mjs +0 -151
  419. package/dist/components/DigitalColleagues/document-preview.d.ts +0 -18
  420. package/dist/components/DigitalColleagues/document-preview.js +0 -3296
  421. package/dist/components/DigitalColleagues/document-preview.mjs +0 -21
  422. package/dist/components/DigitalColleagues/index.mjs +0 -200
  423. package/dist/components/DigitalColleagues/knowledge-browser.d.ts +0 -13
  424. package/dist/components/DigitalColleagues/knowledge-browser.js +0 -3581
  425. package/dist/components/DigitalColleagues/knowledge-browser.mjs +0 -23
  426. package/dist/components/DigitalColleagues/knowledge-search.d.ts +0 -12
  427. package/dist/components/DigitalColleagues/knowledge-search.js +0 -2819
  428. package/dist/components/DigitalColleagues/team-form.d.ts +0 -24
  429. package/dist/components/DigitalColleagues/team-form.js +0 -2836
  430. package/dist/components/DigitalColleagues/team-form.mjs +0 -20
  431. package/dist/components/DigitalColleagues/types.d.ts +0 -289
  432. package/dist/components/DigitalColleagues/types.js +0 -18
  433. package/dist/components/Foundary/AppSidebarLeft.css +0 -917
  434. package/dist/components/Foundary/AppSidebarLeft.d.ts +0 -47
  435. package/dist/components/Foundary/AppSidebarLeft.mjs +0 -23
  436. package/dist/components/Foundary/DashboardHeader.css +0 -917
  437. package/dist/components/Foundary/DashboardHeader.d.ts +0 -8
  438. package/dist/components/Foundary/MainPage.css +0 -917
  439. package/dist/components/Foundary/MainPage.d.ts +0 -3
  440. package/dist/components/Foundary/MainPage.mjs +0 -46
  441. package/dist/components/Foundary/ManagementSidebar.d.ts +0 -8
  442. package/dist/components/Foundary/ManagementSidebar.mjs +0 -9
  443. package/dist/components/Foundary/Pages/dashboardpage.css +0 -917
  444. package/dist/components/Foundary/SearchableSelect.css +0 -917
  445. package/dist/components/Foundary/SearchableSelect.d.ts +0 -16
  446. package/dist/components/Foundary/SearchableSelect.mjs +0 -16
  447. package/dist/components/Foundary/Views/ColleaguesView.css +0 -917
  448. package/dist/components/Foundary/Views/KnowledgeView.css +0 -917
  449. package/dist/components/Foundary/Views/KnowledgeView.docs.js +0 -2
  450. package/dist/components/Foundary/Views/KnowledgeView.docs.mjs +0 -7
  451. package/dist/components/Foundary/Views/index.css +0 -917
  452. package/dist/components/Foundary/Views/index.d.ts +0 -7
  453. package/dist/components/Foundary/colleague-card.d.ts +0 -12
  454. package/dist/components/Foundary/colleague-form.css +0 -917
  455. package/dist/components/Foundary/colleague-type-selection.css +0 -917
  456. package/dist/components/Foundary/colleague-type-selection.d.ts +0 -7
  457. package/dist/components/Foundary/colleague-type-selection.mjs +0 -16
  458. package/dist/components/Foundary/document-edit.css +0 -917
  459. package/dist/components/Foundary/document-preview-examples.css +0 -917
  460. package/dist/components/Foundary/document-preview-examples.d.ts +0 -12
  461. package/dist/components/Foundary/document-preview.css +0 -917
  462. package/dist/components/Foundary/index.css +0 -917
  463. package/dist/components/Foundary/knowledge-browser.css +0 -917
  464. package/dist/components/Foundary/knowledge-search.css +0 -917
  465. package/dist/components/Foundary/knowledge-search.mjs +0 -20
  466. package/dist/components/Foundary/team-form.css +0 -917
  467. package/dist/{chunk-AEFGMCK3.mjs → chunk-D5KV6INF.mjs} +3 -3
  468. package/dist/{chunk-SNG6OKEL.mjs → chunk-FTVOJKVA.mjs} +3 -3
  469. package/dist/{chunk-OT2SSFKS.mjs → chunk-GSG52WU5.mjs} +3 -3
  470. /package/dist/components/{DigitalColleagues → Foundry}/AppSidebarLeft.css +0 -0
  471. /package/dist/components/{DigitalColleagues → Foundry}/AppSidebarLeft.d.ts +0 -0
  472. /package/dist/components/{DigitalColleagues → Foundry}/DashboardHeader.css +0 -0
  473. /package/dist/components/{DigitalColleagues → Foundry}/DashboardHeader.d.ts +0 -0
  474. /package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.css +0 -0
  475. /package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.d.ts +0 -0
  476. /package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.css +0 -0
  477. /package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.d.ts +0 -0
  478. /package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.css +0 -0
  479. /package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.d.ts +0 -0
  480. /package/dist/components/{Foundary → Foundry}/LandingMenu.css +0 -0
  481. /package/dist/components/{Foundary → Foundry}/LandingMenu.d.ts +0 -0
  482. /package/dist/components/{Foundary → Foundry}/Login.css +0 -0
  483. /package/dist/components/{Foundary → Foundry}/Login.d.ts +0 -0
  484. /package/dist/components/{DigitalColleagues → Foundry}/MainPage.css +0 -0
  485. /package/dist/components/{DigitalColleagues → Foundry}/MainPage.d.ts +0 -0
  486. /package/dist/components/{DigitalColleagues → Foundry}/Pages/dashboardpage.css +0 -0
  487. /package/dist/components/{Foundary → Foundry}/Pages/dashboardpage.d.ts +0 -0
  488. /package/dist/components/{Foundary → Foundry}/RichText/Icons/Bold.d.ts +0 -0
  489. /package/dist/components/{Foundary → Foundry}/RichText/Icons/Headings.d.ts +0 -0
  490. /package/dist/components/{Foundary → Foundry}/RichText/Icons/Italic.d.ts +0 -0
  491. /package/dist/components/{Foundary → Foundry}/RichText/Icons/StrikeThrough.d.ts +0 -0
  492. /package/dist/components/{Foundary → Foundry}/RichText/Icons/Subscript.d.ts +0 -0
  493. /package/dist/components/{Foundary → Foundry}/RichText/Icons/Superscript.d.ts +0 -0
  494. /package/dist/components/{Foundary → Foundry}/RichText/Icons/Underline.d.ts +0 -0
  495. /package/dist/components/{DigitalColleagues/Views → Foundry/RichText/components/RawUploadComponent}/index.css +0 -0
  496. /package/dist/components/{Foundary → Foundry}/RichText/components/RawUploadComponent/index.d.ts +0 -0
  497. /package/dist/components/{DigitalColleagues → Foundry/RichText}/index.css +0 -0
  498. /package/dist/components/{Foundary → Foundry}/RichText/index.d.ts +0 -0
  499. /package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.css +0 -0
  500. /package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.d.ts +0 -0
  501. /package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.css +0 -0
  502. /package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.d.ts +0 -0
  503. /package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.css +0 -0
  504. /package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.d.ts +0 -0
  505. /package/dist/components/{DigitalColleagues → Foundry}/SearchableSelect.css +0 -0
  506. /package/dist/components/{DigitalColleagues → Foundry}/SearchableSelect.d.ts +0 -0
  507. /package/dist/components/{DigitalColleagues → Foundry}/Views/ColleaguesView.css +0 -0
  508. /package/dist/components/{DigitalColleagues → Foundry}/Views/KnowledgeView.css +0 -0
  509. /package/dist/components/{Foundary → Foundry}/Views/KnowledgeView.d.ts +0 -0
  510. /package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.css +0 -0
  511. /package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.d.ts +0 -0
  512. /package/dist/components/{Foundary/RichText/components/RawUploadComponent → Foundry/Views}/index.css +0 -0
  513. /package/dist/components/{DigitalColleagues → Foundry}/Views/index.d.ts +0 -0
  514. /package/dist/components/{DigitalColleagues/DigitalColleageusLayout.css → Foundry/add-colleague-to-team-form.css} +0 -0
  515. /package/dist/components/{DigitalColleagues/colleague-card.css → Foundry/app-card.css} +0 -0
  516. /package/dist/components/{Foundary → Foundry}/colleague-card.css +0 -0
  517. /package/dist/components/{DigitalColleagues → Foundry}/colleague-card.d.ts +0 -0
  518. /package/dist/components/{DigitalColleagues → Foundry}/colleague-form.css +0 -0
  519. /package/dist/components/{Foundary → Foundry}/colleague-form.d.ts +0 -0
  520. /package/dist/components/{DigitalColleagues → Foundry}/colleague-type-selection.css +0 -0
  521. /package/dist/components/{DigitalColleagues → Foundry}/colleague-type-selection.d.ts +0 -0
  522. /package/dist/components/{DigitalColleagues/digital-colleague-clone.css → Foundry/digital-colleague-selection.css} +0 -0
  523. /package/dist/components/{DigitalColleagues → Foundry}/document-edit.css +0 -0
  524. /package/dist/components/{Foundary → Foundry}/document-edit.d.ts +0 -0
  525. /package/dist/components/{DigitalColleagues → Foundry}/document-preview-examples.css +0 -0
  526. /package/dist/components/{DigitalColleagues → Foundry}/document-preview-examples.d.ts +0 -0
  527. /package/dist/components/{DigitalColleagues → Foundry}/document-preview.css +0 -0
  528. /package/dist/components/{Foundary → Foundry}/document-preview.d.ts +0 -0
  529. /package/dist/components/{Foundary → Foundry}/file-edit.css +0 -0
  530. /package/dist/components/{Foundary → Foundry}/file-edit.d.ts +0 -0
  531. /package/dist/components/{Foundary → Foundry}/foundary-clone.css +0 -0
  532. /package/dist/components/{Foundary → Foundry}/foundary-clone.d.ts +0 -0
  533. /package/dist/components/{Foundary → Foundry}/foundary-layout.css +0 -0
  534. /package/dist/components/{Foundary → Foundry}/foundary-options.css +0 -0
  535. /package/dist/components/{Foundary/RichText → Foundry}/index.css +0 -0
  536. /package/dist/components/{DigitalColleagues → Foundry}/knowledge-browser.css +0 -0
  537. /package/dist/components/{Foundary → Foundry}/knowledge-browser.d.ts +0 -0
  538. /package/dist/components/{DigitalColleagues → Foundry}/knowledge-search.css +0 -0
  539. /package/dist/components/{Foundary → Foundry}/knowledge-search.d.ts +0 -0
  540. /package/dist/components/{DigitalColleagues → Foundry}/team-form.css +0 -0
  541. /package/dist/components/{Foundary → Foundry}/team-form.d.ts +0 -0
  542. /package/dist/components/{Foundary → Foundry}/test-data.d.ts +0 -0
  543. /package/dist/components/{DigitalColleagues/digital-colleague-options.css → Projects/GanttView.css} +0 -0
@@ -3649,7 +3649,7 @@ var TaskSelect = ({
3649
3649
  ] });
3650
3650
  };
3651
3651
 
3652
- // src/components/Foundary/SearchableSelect.tsx
3652
+ // src/components/Foundry/SearchableSelect.tsx
3653
3653
  var import_react6 = require("react");
3654
3654
  var import_jsx_runtime20 = require("react/jsx-runtime");
3655
3655
  var SearchableSelect = ({
@@ -4060,12 +4060,12 @@ var import_react14 = require("motion/react");
4060
4060
  var import_lucide_react12 = require("lucide-react");
4061
4061
  var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"));
4062
4062
 
4063
- // src/components/Foundary/file-edit.tsx
4063
+ // src/components/Foundry/file-edit.tsx
4064
4064
  var import_react12 = require("motion/react");
4065
4065
  var import_lucide_react11 = require("lucide-react");
4066
4066
  var import_react13 = require("react");
4067
4067
 
4068
- // src/components/Foundary/RichText/index.tsx
4068
+ // src/components/Foundry/RichText/index.tsx
4069
4069
  var import_LexicalAutoFocusPlugin = require("@payloadcms/richtext-lexical/lexical/react/LexicalAutoFocusPlugin");
4070
4070
  var import_LexicalComposer = require("@payloadcms/richtext-lexical/lexical/react/LexicalComposer");
4071
4071
  var import_LexicalContentEditable = require("@payloadcms/richtext-lexical/lexical/react/LexicalContentEditable");
@@ -4078,7 +4078,7 @@ var import_rich_text2 = require("@payloadcms/richtext-lexical/lexical/rich-text"
4078
4078
  var import_LexicalOnChangePlugin = require("@payloadcms/richtext-lexical/lexical/react/LexicalOnChangePlugin");
4079
4079
  var import_react11 = require("react");
4080
4080
 
4081
- // src/components/Foundary/RichText/plugins/toolbar-plugin.tsx
4081
+ // src/components/Foundry/RichText/plugins/toolbar-plugin.tsx
4082
4082
  var import_LexicalComposerContext3 = require("@payloadcms/richtext-lexical/lexical/react/LexicalComposerContext");
4083
4083
  var import_utils16 = require("@payloadcms/richtext-lexical/lexical/utils");
4084
4084
  var import_lexical3 = require("@payloadcms/richtext-lexical/lexical");
@@ -4088,7 +4088,7 @@ var import_lucide_react10 = require("lucide-react");
4088
4088
  var import_react10 = require("react");
4089
4089
  var import_rich_text = require("@payloadcms/richtext-lexical/lexical/rich-text");
4090
4090
 
4091
- // src/components/Foundary/RichText/plugins/image-plugin.tsx
4091
+ // src/components/Foundry/RichText/plugins/image-plugin.tsx
4092
4092
  var import_LexicalComposerContext2 = require("@payloadcms/richtext-lexical/lexical/react/LexicalComposerContext");
4093
4093
  var import_utils14 = require("@payloadcms/richtext-lexical/lexical/utils");
4094
4094
  var import_lexical2 = require("@payloadcms/richtext-lexical/lexical");
@@ -4096,11 +4096,11 @@ var import_react9 = require("react");
4096
4096
  var import_react_dialog = require("@radix-ui/react-dialog");
4097
4097
  var import_client2 = require("@payloadcms/richtext-lexical/client");
4098
4098
 
4099
- // src/components/Foundary/RichText/nodes/image-node.tsx
4099
+ // src/components/Foundry/RichText/nodes/image-node.tsx
4100
4100
  var import_client = require("@payloadcms/richtext-lexical/client");
4101
4101
  var import_bson_objectid = __toESM(require("bson-objectid"));
4102
4102
 
4103
- // src/components/Foundary/RichText/components/RawUploadComponent/index.tsx
4103
+ // src/components/Foundry/RichText/components/RawUploadComponent/index.tsx
4104
4104
  var import_ui = require("@payloadcms/ui");
4105
4105
  var import_react8 = require("react");
4106
4106
  var import_LexicalComposerContext = require("@payloadcms/richtext-lexical/lexical/react/LexicalComposerContext");
@@ -4128,7 +4128,7 @@ var TooltipContent = React18.forwardRef(({ className, sideOffset = 4, ...props }
4128
4128
  ) }));
4129
4129
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4130
4130
 
4131
- // src/components/Foundary/RichText/components/RawUploadComponent/index.tsx
4131
+ // src/components/Foundry/RichText/components/RawUploadComponent/index.tsx
4132
4132
  var import_jsx_runtime23 = require("react/jsx-runtime");
4133
4133
  var Component = (props) => {
4134
4134
  const {
@@ -4224,7 +4224,7 @@ var Component = (props) => {
4224
4224
  };
4225
4225
  var RawUploadComponent_default = Component;
4226
4226
 
4227
- // src/components/Foundary/RichText/nodes/image-node.tsx
4227
+ // src/components/Foundry/RichText/nodes/image-node.tsx
4228
4228
  var import_jsx_runtime24 = require("react/jsx-runtime");
4229
4229
  function $convertUploadElement(domNode) {
4230
4230
  if (domNode.hasAttribute("data-lexical-upload-relation-to") && domNode.hasAttribute("data-lexical-upload-id")) {
@@ -4272,7 +4272,7 @@ function $createMyUploadNode(data) {
4272
4272
  return new UploadNode({ data });
4273
4273
  }
4274
4274
 
4275
- // src/components/Foundary/RichText/plugins/image-plugin.tsx
4275
+ // src/components/Foundry/RichText/plugins/image-plugin.tsx
4276
4276
  var import_jsx_runtime25 = require("react/jsx-runtime");
4277
4277
  var CAN_USE_DOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
4278
4278
  var getDOMSelection = (targetWindow) => CAN_USE_DOM ? (targetWindow || window).getSelection() : null;
@@ -4505,7 +4505,7 @@ function getDragSelection(event) {
4505
4505
  return range;
4506
4506
  }
4507
4507
 
4508
- // src/components/Foundary/RichText/Icons/Bold.tsx
4508
+ // src/components/Foundry/RichText/Icons/Bold.tsx
4509
4509
  var import_jsx_runtime26 = require("react/jsx-runtime");
4510
4510
  var Bold = () => {
4511
4511
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
@@ -4531,7 +4531,7 @@ var Bold = () => {
4531
4531
  };
4532
4532
  var Bold_default = Bold;
4533
4533
 
4534
- // src/components/Foundary/RichText/Icons/Italic.tsx
4534
+ // src/components/Foundry/RichText/Icons/Italic.tsx
4535
4535
  var import_jsx_runtime27 = require("react/jsx-runtime");
4536
4536
  var Italic = () => {
4537
4537
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
@@ -4557,7 +4557,7 @@ var Italic = () => {
4557
4557
  };
4558
4558
  var Italic_default = Italic;
4559
4559
 
4560
- // src/components/Foundary/RichText/Icons/Underline.tsx
4560
+ // src/components/Foundry/RichText/Icons/Underline.tsx
4561
4561
  var import_jsx_runtime28 = require("react/jsx-runtime");
4562
4562
  var Underline = () => {
4563
4563
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
@@ -4586,7 +4586,7 @@ var Underline = () => {
4586
4586
  };
4587
4587
  var Underline_default = Underline;
4588
4588
 
4589
- // src/components/Foundary/RichText/Icons/StrikeThrough.tsx
4589
+ // src/components/Foundry/RichText/Icons/StrikeThrough.tsx
4590
4590
  var import_jsx_runtime29 = require("react/jsx-runtime");
4591
4591
  var Strikethrough = () => {
4592
4592
  return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
@@ -4615,7 +4615,7 @@ var Strikethrough = () => {
4615
4615
  };
4616
4616
  var StrikeThrough_default = Strikethrough;
4617
4617
 
4618
- // src/components/Foundary/RichText/Icons/Subscript.tsx
4618
+ // src/components/Foundry/RichText/Icons/Subscript.tsx
4619
4619
  var import_jsx_runtime30 = require("react/jsx-runtime");
4620
4620
  var Subscript = () => {
4621
4621
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
@@ -4641,7 +4641,7 @@ var Subscript = () => {
4641
4641
  };
4642
4642
  var Subscript_default = Subscript;
4643
4643
 
4644
- // src/components/Foundary/RichText/Icons/Superscript.tsx
4644
+ // src/components/Foundry/RichText/Icons/Superscript.tsx
4645
4645
  var import_jsx_runtime31 = require("react/jsx-runtime");
4646
4646
  var Superscript = () => {
4647
4647
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
@@ -4667,7 +4667,7 @@ var Superscript = () => {
4667
4667
  };
4668
4668
  var Superscript_default = Superscript;
4669
4669
 
4670
- // src/components/Foundary/RichText/Icons/Headings.tsx
4670
+ // src/components/Foundry/RichText/Icons/Headings.tsx
4671
4671
  var import_jsx_runtime32 = require("react/jsx-runtime");
4672
4672
  var TextIcon = () => {
4673
4673
  return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
@@ -4899,7 +4899,7 @@ var DropdownMenuShortcut = ({ className, ...props }) => {
4899
4899
  };
4900
4900
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
4901
4901
 
4902
- // src/components/Foundary/RichText/plugins/toolbar-plugin.tsx
4902
+ // src/components/Foundry/RichText/plugins/toolbar-plugin.tsx
4903
4903
  var import_jsx_runtime34 = require("react/jsx-runtime");
4904
4904
  var LowPriority = 1;
4905
4905
  function Divider() {
@@ -5289,7 +5289,7 @@ function ToolbarPlugin() {
5289
5289
  ] }) });
5290
5290
  }
5291
5291
 
5292
- // src/components/Foundary/RichText/index.tsx
5292
+ // src/components/Foundry/RichText/index.tsx
5293
5293
  var import_LexicalComposerContext4 = require("@payloadcms/richtext-lexical/lexical/react/LexicalComposerContext");
5294
5294
  var import_jsx_runtime35 = require("react/jsx-runtime");
5295
5295
  var RichTextContent = ({ setValue, value, name, editable = true }) => {
@@ -5476,7 +5476,7 @@ function Calendar3({ className, classNames, showOutsideDays = true, ...props })
5476
5476
  }
5477
5477
  Calendar3.displayName = "Calendar";
5478
5478
 
5479
- // src/components/Foundary/file-edit.tsx
5479
+ // src/components/Foundry/file-edit.tsx
5480
5480
  var import_jsx_runtime38 = require("react/jsx-runtime");
5481
5481
  var isFileType = (doc) => {
5482
5482
  return "mimeType" in doc && "url" in doc && !("format" in doc);
@@ -6893,15 +6893,16 @@ function useLocalStorage(key, initialValue) {
6893
6893
  return initialValue;
6894
6894
  }
6895
6895
  });
6896
- const setValue = (value) => {
6896
+ const setValue = (0, import_react19.useCallback)((value) => {
6897
6897
  try {
6898
- setStoredValue(value);
6898
+ const valueToStore = value instanceof Function ? value(storedValue) : value;
6899
+ setStoredValue(valueToStore);
6899
6900
  if (typeof window !== "undefined") {
6900
- window.localStorage.setItem(key, JSON.stringify(value));
6901
+ window.localStorage.setItem(key, JSON.stringify(valueToStore));
6901
6902
  }
6902
6903
  } catch (error) {
6903
6904
  }
6904
- };
6905
+ }, [key, storedValue]);
6905
6906
  (0, import_react19.useEffect)(() => {
6906
6907
  setValue(storedValue);
6907
6908
  }, []);
@@ -8317,6 +8318,7 @@ var import_react25 = __toESM(require("react"));
8317
8318
  var import_lucide_react18 = require("lucide-react");
8318
8319
  var import_jsx_runtime47 = require("react/jsx-runtime");
8319
8320
  var SprintBoardView = ({
8321
+ projectId,
8320
8322
  initialTasks = [],
8321
8323
  initialEpics = [],
8322
8324
  initialSprints = [],
@@ -8332,6 +8334,8 @@ var SprintBoardView = ({
8332
8334
  onAddEpic,
8333
8335
  // Sprint handlers
8334
8336
  onAddSprint,
8337
+ onUpdateSprint,
8338
+ onDeleteSprint,
8335
8339
  onAddComment,
8336
8340
  onUploadFile,
8337
8341
  onDeleteFile,
@@ -8343,9 +8347,16 @@ var SprintBoardView = ({
8343
8347
  const [colleagues, setColleagues] = (0, import_react25.useState)([]);
8344
8348
  const [users, setUsers] = (0, import_react25.useState)([]);
8345
8349
  const [selectedSprintIds, setSelectedSprintIds] = useLocalStorage(
8346
- "sprintBoardView_selectedSprints",
8350
+ `sprintBoardView_selectedSprints${projectId ? `_${projectId}` : ""}`,
8347
8351
  []
8348
8352
  );
8353
+ const [editingSprintId, setEditingSprintId] = (0, import_react25.useState)(null);
8354
+ const [sprintEditForm, setSprintEditForm] = (0, import_react25.useState)({
8355
+ name: "",
8356
+ description: "",
8357
+ startDate: "",
8358
+ endDate: ""
8359
+ });
8349
8360
  const [isAddTaskModalOpen, setIsAddTaskModalOpen] = (0, import_react25.useState)(false);
8350
8361
  const [isAddEpicModalOpen, setIsAddEpicModalOpen] = (0, import_react25.useState)(false);
8351
8362
  const [isAddSprintModalOpen, setIsAddSprintModalOpen] = (0, import_react25.useState)(false);
@@ -8392,6 +8403,8 @@ var SprintBoardView = ({
8392
8403
  const next = getHash(initialSprints);
8393
8404
  if (next !== prevSprintHash.current) {
8394
8405
  setSprints(initialSprints);
8406
+ const validIds = new Set(initialSprints.map((s) => s.id.toString()));
8407
+ setSelectedSprintIds(selectedSprintIds.filter((id) => validIds.has(id)));
8395
8408
  prevSprintHash.current = next;
8396
8409
  }
8397
8410
  }, [initialSprints]);
@@ -8536,6 +8549,34 @@ var SprintBoardView = ({
8536
8549
  onAddSprint?.(sprintData);
8537
8550
  setIsAddSprintModalOpen(false);
8538
8551
  };
8552
+ const handleSprintEditStart = (sprint) => {
8553
+ setEditingSprintId(sprint.id.toString());
8554
+ setSprintEditForm({
8555
+ name: sprint.name,
8556
+ description: sprint.description || "",
8557
+ startDate: sprint.startDate ? new Date(sprint.startDate).toISOString().split("T")[0] : "",
8558
+ endDate: sprint.endDate ? new Date(sprint.endDate).toISOString().split("T")[0] : ""
8559
+ });
8560
+ };
8561
+ const handleSprintEditSave = () => {
8562
+ if (!editingSprintId) return;
8563
+ onUpdateSprint?.(editingSprintId, sprintEditForm);
8564
+ setSprints(
8565
+ (prev) => prev.map(
8566
+ (s) => s.id.toString() === editingSprintId ? { ...s, ...sprintEditForm } : s
8567
+ )
8568
+ );
8569
+ setEditingSprintId(null);
8570
+ };
8571
+ const handleSprintEditCancel = () => {
8572
+ setEditingSprintId(null);
8573
+ setSprintEditForm({ name: "", description: "", startDate: "", endDate: "" });
8574
+ };
8575
+ const handleDeleteSprint = (sprintId) => {
8576
+ onDeleteSprint?.(sprintId);
8577
+ setSprints((prev) => prev.filter((s) => s.id.toString() !== sprintId));
8578
+ setSelectedSprintIds(selectedSprintIds.filter((id) => id !== sprintId));
8579
+ };
8539
8580
  const handleTaskClick = (task) => {
8540
8581
  setSelectedTask(task);
8541
8582
  onTaskClick?.(task);
@@ -8666,37 +8707,138 @@ var SprintBoardView = ({
8666
8707
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8667
8708
  "div",
8668
8709
  {
8669
- className: `p-3 rounded-lg border cursor-pointer transition-all ${isSelected ? "bg-primary/10 border-primary/30 ring-1 ring-primary/20" : canSelect ? "bg-card border-border hover:border-primary/50 hover:bg-muted/50" : "bg-muted/30 border-border/30 opacity-60"}`,
8670
- onClick: () => {
8671
- if (canSelect) {
8672
- toggleSprintView(sprint.id.toString());
8673
- } else if (isSelected) {
8674
- toggleSprintView(sprint.id.toString());
8675
- }
8676
- },
8677
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-start justify-between", children: [
8678
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex-1 min-w-0", children: [
8679
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "font-medium text-sm text-foreground truncate", children: sprint.name }),
8680
- sprint.description && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "text-xs text-muted-foreground line-clamp-2 mt-1", children: sprint.description }),
8681
- sprint.startDate && sprint.endDate && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-1 mt-2 text-xs text-muted-foreground", children: [
8682
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react18.Calendar, { className: "h-3 w-3" }),
8683
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { children: [
8684
- new Date(sprint.startDate).toLocaleDateString(),
8685
- " -",
8686
- " ",
8687
- new Date(sprint.endDate).toLocaleDateString()
8688
- ] })
8710
+ className: `p-3 rounded-lg border transition-all ${isSelected ? "bg-primary/10 border-primary/30 ring-1 ring-primary/20" : canSelect ? "bg-card border-border" : "bg-muted/30 border-border/30 opacity-60"}`,
8711
+ children: editingSprintId === sprint.id.toString() ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "space-y-3", children: [
8712
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8713
+ Input,
8714
+ {
8715
+ value: sprintEditForm.name,
8716
+ onChange: (e) => setSprintEditForm((prev) => ({ ...prev, name: e.target.value })),
8717
+ className: "text-sm",
8718
+ placeholder: "Sprint name"
8719
+ }
8720
+ ),
8721
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8722
+ Textarea,
8723
+ {
8724
+ value: sprintEditForm.description,
8725
+ onChange: (e) => setSprintEditForm((prev) => ({
8726
+ ...prev,
8727
+ description: e.target.value
8728
+ })),
8729
+ className: "text-sm min-h-[60px]",
8730
+ placeholder: "Sprint description"
8731
+ }
8732
+ ),
8733
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "grid grid-cols-2 gap-2", children: [
8734
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { children: [
8735
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("label", { className: "text-xs text-muted-foreground block mb-1", children: "Start Date" }),
8736
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8737
+ Input,
8738
+ {
8739
+ type: "date",
8740
+ value: sprintEditForm.startDate,
8741
+ onChange: (e) => setSprintEditForm((prev) => ({
8742
+ ...prev,
8743
+ startDate: e.target.value
8744
+ })),
8745
+ className: "text-sm"
8746
+ }
8747
+ )
8748
+ ] }),
8749
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { children: [
8750
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("label", { className: "text-xs text-muted-foreground block mb-1", children: "End Date" }),
8751
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8752
+ Input,
8753
+ {
8754
+ type: "date",
8755
+ value: sprintEditForm.endDate,
8756
+ onChange: (e) => setSprintEditForm((prev) => ({
8757
+ ...prev,
8758
+ endDate: e.target.value
8759
+ })),
8760
+ className: "text-sm"
8761
+ }
8762
+ )
8689
8763
  ] })
8690
8764
  ] }),
8691
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "ml-2 flex items-center gap-2", children: [
8692
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Badge, { variant: "secondary", className: "text-xs", children: taskCount }),
8693
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8694
- "div",
8765
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex gap-2", children: [
8766
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
8767
+ Button,
8768
+ {
8769
+ size: "sm",
8770
+ onClick: handleSprintEditSave,
8771
+ className: "flex-1",
8772
+ children: [
8773
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react18.Check, { className: "h-3 w-3 mr-1" }),
8774
+ "Save"
8775
+ ]
8776
+ }
8777
+ ),
8778
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
8779
+ Button,
8695
8780
  {
8696
- className: `h-4 w-4 rounded border-2 transition-all ${isSelected ? "bg-primary border-primary" : "border-muted-foreground hover:border-foreground"}`
8781
+ size: "sm",
8782
+ variant: "outline",
8783
+ onClick: handleSprintEditCancel,
8784
+ className: "flex-1",
8785
+ children: [
8786
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react18.X, { className: "h-3 w-3 mr-1" }),
8787
+ "Cancel"
8788
+ ]
8697
8789
  }
8698
8790
  )
8699
8791
  ] })
8792
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { children: [
8793
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-start justify-between", children: [
8794
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex-1 min-w-0", children: [
8795
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "font-medium text-sm text-foreground truncate", children: sprint.name }),
8796
+ sprint.description && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "text-xs text-muted-foreground line-clamp-2 mt-1", children: sprint.description }),
8797
+ sprint.startDate && sprint.endDate && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-1 mt-2 text-xs text-muted-foreground", children: [
8798
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react18.Calendar, { className: "h-3 w-3" }),
8799
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { children: [
8800
+ new Date(sprint.startDate).toLocaleDateString(),
8801
+ " -",
8802
+ " ",
8803
+ new Date(sprint.endDate).toLocaleDateString()
8804
+ ] })
8805
+ ] })
8806
+ ] }),
8807
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "ml-2 flex items-center gap-1", children: [
8808
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Badge, { variant: "secondary", className: "text-xs", children: taskCount }),
8809
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8810
+ Button,
8811
+ {
8812
+ size: "sm",
8813
+ variant: "ghost",
8814
+ onClick: () => handleSprintEditStart(sprint),
8815
+ className: "h-6 w-6 p-0",
8816
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react18.Edit2, { className: "h-3 w-3" })
8817
+ }
8818
+ ),
8819
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8820
+ Button,
8821
+ {
8822
+ size: "sm",
8823
+ variant: "ghost",
8824
+ onClick: () => handleDeleteSprint(sprint.id.toString()),
8825
+ className: "h-6 w-6 p-0 text-destructive hover:text-destructive",
8826
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react18.Trash2, { className: "h-3 w-3" })
8827
+ }
8828
+ )
8829
+ ] })
8830
+ ] }),
8831
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8832
+ Button,
8833
+ {
8834
+ variant: isSelected ? "default" : "outline",
8835
+ size: "sm",
8836
+ className: "w-full mt-2 text-xs h-7",
8837
+ onClick: () => toggleSprintView(sprint.id.toString()),
8838
+ disabled: !isSelected && selectedSprintIds.length >= 3,
8839
+ children: isSelected ? "Deselect" : selectedSprintIds.length >= 3 ? "Limit reached" : "Select"
8840
+ }
8841
+ )
8700
8842
  ] })
8701
8843
  },
8702
8844
  sprint.id
@@ -9612,17 +9754,25 @@ var import_react27 = require("react");
9612
9754
  var import_lucide_react20 = require("lucide-react");
9613
9755
  var import_jsx_runtime49 = require("react/jsx-runtime");
9614
9756
  var EpicsView = ({
9757
+ projectId,
9615
9758
  tasks,
9616
9759
  epics,
9617
9760
  sprints,
9761
+ colleagues = [],
9618
9762
  onUpdateTask,
9619
9763
  onTaskClick,
9620
9764
  onAddTaskToEpic,
9621
9765
  onAddEpic,
9622
9766
  onUpdateEpic,
9623
- onDeleteEpic
9767
+ onDeleteEpic,
9768
+ onDeleteTask,
9769
+ onAddComment,
9770
+ onUploadFile,
9771
+ onDeleteFile,
9772
+ onFileUpdate
9624
9773
  }) => {
9625
9774
  const [availableEpics, setAvailableEpics] = (0, import_react27.useState)(epics);
9775
+ const [availableTasks, setAvailableTasks] = (0, import_react27.useState)(tasks);
9626
9776
  const [draggedTask, setDraggedTask] = (0, import_react27.useState)(null);
9627
9777
  const [editingEpic, setEditingEpic] = (0, import_react27.useState)(null);
9628
9778
  const [editForm, setEditForm] = (0, import_react27.useState)({});
@@ -9630,16 +9780,29 @@ var EpicsView = ({
9630
9780
  const [isAddEpicModalOpen, setIsAddEpicModalOpen] = (0, import_react27.useState)(false);
9631
9781
  const [isAddTaskModalOpen, setIsAddTaskModalOpen] = (0, import_react27.useState)(false);
9632
9782
  const [addTaskEpic, setAddTaskEpic] = (0, import_react27.useState)(null);
9783
+ const [selectedTask, setSelectedTask] = (0, import_react27.useState)(null);
9784
+ const [selectedEpicIds, setSelectedEpicIds] = useLocalStorage(
9785
+ `epicsView_selectedEpics${projectId ? `_${projectId}` : ""}`,
9786
+ []
9787
+ );
9788
+ const [isEpicSelectorOpen, setIsEpicSelectorOpen] = (0, import_react27.useState)(false);
9633
9789
  const heroRef = (0, import_react27.useRef)(null);
9634
9790
  const containerRef = (0, import_react27.useRef)(null);
9635
9791
  (0, import_react27.useEffect)(() => {
9636
9792
  setAvailableEpics(epics);
9793
+ const validIds = new Set(epics.map((e) => e.id.toString()));
9794
+ setSelectedEpicIds((prev) => prev.filter((id) => validIds.has(id)));
9637
9795
  }, [epics]);
9796
+ (0, import_react27.useEffect)(() => {
9797
+ setAvailableTasks(tasks);
9798
+ if (selectedTask) {
9799
+ setSelectedTask(tasks.find((t) => t.id === selectedTask.id) || null);
9800
+ }
9801
+ }, [tasks]);
9638
9802
  (0, import_react27.useEffect)(() => {
9639
9803
  const measureHeroHeight = () => {
9640
9804
  if (heroRef.current) {
9641
- const height = heroRef.current.offsetHeight;
9642
- setHeroHeight(height);
9805
+ setHeroHeight(heroRef.current.offsetHeight);
9643
9806
  }
9644
9807
  };
9645
9808
  measureHeroHeight();
@@ -9664,6 +9827,12 @@ var EpicsView = ({
9664
9827
  }, 300);
9665
9828
  return () => clearTimeout(timer);
9666
9829
  }, [editingEpic]);
9830
+ const visibleEpics = selectedEpicIds.length === 0 ? availableEpics : availableEpics.filter((e) => selectedEpicIds.includes(e.id.toString()));
9831
+ const toggleEpicView = (epicId) => {
9832
+ setSelectedEpicIds(
9833
+ (prev) => prev.includes(epicId) ? prev.filter((id) => id !== epicId) : [...prev, epicId]
9834
+ );
9835
+ };
9667
9836
  const handleDragStart = (task) => {
9668
9837
  setDraggedTask(task);
9669
9838
  };
@@ -9673,14 +9842,41 @@ var EpicsView = ({
9673
9842
  const handleDrop = (e, epicId) => {
9674
9843
  e.preventDefault();
9675
9844
  if (draggedTask && extractId(draggedTask.epic).toString() !== epicId) {
9676
- onUpdateTask(draggedTask.id.toString(), {
9677
- epic: Number(epicId)
9678
- });
9845
+ onUpdateTask(draggedTask.id.toString(), { epic: Number(epicId) });
9846
+ setAvailableTasks(
9847
+ (prev) => prev.map((t) => t.id === draggedTask.id ? { ...t, epic: Number(epicId) } : t)
9848
+ );
9679
9849
  setDraggedTask(null);
9680
9850
  }
9681
9851
  };
9682
9852
  const getTasksByEpic = (epicId) => {
9683
- return tasks.filter((task) => extractId(task.epic).toString() === epicId);
9853
+ return availableTasks.filter((task) => extractId(task.epic).toString() === epicId);
9854
+ };
9855
+ const handleTaskClick = (task) => {
9856
+ setSelectedTask(task);
9857
+ onTaskClick?.(task);
9858
+ };
9859
+ const handleUpdateTask = async (taskId, updates) => {
9860
+ setAvailableTasks(
9861
+ (prev) => prev.map((t) => t.id === Number(taskId) ? { ...t, ...updates } : t)
9862
+ );
9863
+ if (selectedTask?.id === Number(taskId)) {
9864
+ setSelectedTask((prev) => prev ? { ...prev, ...updates } : null);
9865
+ }
9866
+ await onUpdateTask(taskId, updates);
9867
+ };
9868
+ const handleDeleteTask = async (taskId) => {
9869
+ setAvailableTasks((prev) => prev.filter((t) => t.id !== Number(taskId)));
9870
+ if (selectedTask?.id === Number(taskId)) {
9871
+ setSelectedTask(null);
9872
+ }
9873
+ await onDeleteTask?.(taskId);
9874
+ };
9875
+ const handleRemoveFromEpic = (task) => {
9876
+ onUpdateTask(task.id.toString(), { epic: null });
9877
+ setAvailableTasks(
9878
+ (prev) => prev.map((t) => t.id === task.id ? { ...t, epic: null } : t)
9879
+ );
9684
9880
  };
9685
9881
  const handleEditEpic = (epic) => {
9686
9882
  setEditingEpic(epic.id.toString());
@@ -9689,19 +9885,15 @@ var EpicsView = ({
9689
9885
  description: epic.description,
9690
9886
  confidence: epic.confidence,
9691
9887
  phase: epic.phase
9692
- // progress: epic.progress || 0, // This is a number, not a string
9693
9888
  });
9694
9889
  };
9695
9890
  const handleSaveEdit = async () => {
9696
9891
  if (editingEpic && editForm.name) {
9697
9892
  await onUpdateEpic(editingEpic.toString(), editForm);
9698
9893
  setAvailableEpics(
9699
- (prev) => prev.map((epic) => {
9700
- if (epic.id.toString() === editingEpic) {
9701
- return { ...epic, ...editForm };
9702
- }
9703
- return epic;
9704
- })
9894
+ (prev) => prev.map(
9895
+ (epic) => epic.id.toString() === editingEpic ? { ...epic, ...editForm } : epic
9896
+ )
9705
9897
  );
9706
9898
  setEditingEpic(null);
9707
9899
  setEditForm({});
@@ -9717,6 +9909,7 @@ var EpicsView = ({
9717
9909
  )) {
9718
9910
  await onDeleteEpic(epicId);
9719
9911
  setAvailableEpics((prev) => prev.filter((epic) => epic.id.toString() !== epicId));
9912
+ setSelectedEpicIds((prev) => prev.filter((id) => id !== epicId));
9720
9913
  }
9721
9914
  };
9722
9915
  const getPhaseLabel = (phase) => {
@@ -9759,218 +9952,315 @@ var EpicsView = ({
9759
9952
  }
9760
9953
  }
9761
9954
  ) }),
9762
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex-1 min-h-0 mt-8", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9955
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex-1 min-h-0 mt-8", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9763
9956
  "div",
9764
9957
  {
9765
- className: "h-full overflow-y-auto",
9958
+ className: "h-full overflow-y-auto no-scrollbar",
9766
9959
  style: {
9767
9960
  height: heroHeight > 0 ? `calc(100vh - ${heroHeight + 120}px)` : "calc(100vh - 12rem)"
9768
9961
  },
9769
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6 auto-rows-max", children: availableEpics.map((epic) => {
9770
- const epicTasks = getTasksByEpic(epic.id.toString());
9771
- const totalPoints = epicTasks.reduce(
9772
- (sum, task) => sum + (task.storyPoints || 0),
9773
- 0
9774
- );
9775
- const availableHeight = heroHeight > 0 ? `calc(100vh - ${heroHeight + 200}px)` : "calc(100vh - 14rem)";
9776
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9777
- Card,
9778
- {
9779
- className: `flex flex-col ${editingEpic === epic.id.toString() ? "h-auto" : ""} bg-card shadow-sm`,
9780
- style: {
9781
- height: editingEpic === epic.id.toString() ? "auto" : availableHeight,
9782
- minHeight: "400px"
9783
- },
9784
- onDragOver: handleDragOver,
9785
- onDrop: (e) => handleDrop(e, epic.id.toString()),
9786
- children: [
9787
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "p-4 border-b border-border", children: editingEpic === epic.id.toString() ? (
9788
- /* Edit Mode */
9789
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-4", children: [
9790
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-between", children: [
9791
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9792
- Input,
9793
- {
9794
- value: editForm.name || "",
9795
- onChange: (e) => setEditForm({ ...editForm, name: e.target.value }),
9796
- placeholder: "Epic name",
9797
- className: "font-semibold"
9798
- }
9799
- ),
9800
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex gap-2 ml-2", children: [
9801
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9802
- Button,
9803
- {
9804
- size: "sm",
9805
- variant: "ghost",
9806
- onClick: handleSaveEdit,
9807
- className: "p-1 h-8 w-8",
9808
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Check, { className: "h-4 w-4" })
9809
- }
9810
- ),
9962
+ children: [
9963
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "mb-4", children: [
9964
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Card, { className: "p-3 bg-card shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-between", children: [
9965
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-3", children: [
9966
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
9967
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h3", { className: "font-semibold text-foreground text-sm", children: "Epics" }),
9968
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "text-xs text-muted-foreground", children: selectedEpicIds.length === 0 ? "All showing" : `${selectedEpicIds.length}/${availableEpics.length} selected` })
9969
+ ] }),
9970
+ selectedEpicIds.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2", children: [
9971
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-xs text-muted-foreground", children: "Viewing:" }),
9972
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex flex-wrap gap-1", children: visibleEpics.map((epic) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9973
+ "div",
9974
+ {
9975
+ className: "flex items-center gap-1 bg-primary/10 text-primary px-2 py-0.5 rounded text-xs",
9976
+ children: [
9977
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: `w-2 h-2 rounded-full ${epic.color}` }),
9978
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "max-w-[80px] truncate", children: epic.name }),
9811
9979
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9812
- Button,
9980
+ "button",
9813
9981
  {
9814
- size: "sm",
9815
- variant: "ghost",
9816
- onClick: handleCancelEdit,
9817
- className: "p-1 h-8 w-8",
9982
+ onClick: () => toggleEpicView(epic.id.toString()),
9983
+ className: "ml-0.5 hover:bg-primary/20 h-8 rounded p-0.5",
9818
9984
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.X, { className: "h-4 w-4" })
9819
9985
  }
9820
9986
  )
9821
- ] })
9987
+ ]
9988
+ },
9989
+ epic.id
9990
+ )) })
9991
+ ] })
9992
+ ] }),
9993
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9994
+ Button,
9995
+ {
9996
+ onClick: () => setIsEpicSelectorOpen(!isEpicSelectorOpen),
9997
+ variant: "outline",
9998
+ size: "sm",
9999
+ className: "gap-1",
10000
+ children: [
10001
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Layers, { className: "h-3 w-3" }),
10002
+ isEpicSelectorOpen ? "Close" : "Select"
10003
+ ]
10004
+ }
10005
+ )
10006
+ ] }) }),
10007
+ isEpicSelectorOpen && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10008
+ "div",
10009
+ {
10010
+ className: "fixed inset-0 bg-black/20 z-[5]",
10011
+ onClick: () => setIsEpicSelectorOpen(false)
10012
+ }
10013
+ ),
10014
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10015
+ "div",
10016
+ {
10017
+ className: `fixed top-0 right-0 h-full w-80 bg-background border-l shadow-xl z-10 transition-all duration-300 ease-in-out ${isEpicSelectorOpen ? "translate-x-0 opacity-100 visible" : "translate-x-full opacity-0 invisible"}`,
10018
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Card, { className: "h-full rounded-none border-0 flex flex-col", children: [
10019
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "p-4 border-b bg-muted/30 flex-shrink-0", children: [
10020
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-between", children: [
10021
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h3", { className: "font-semibold text-foreground text-base", children: "Select Epics" }),
10022
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10023
+ Button,
10024
+ {
10025
+ variant: "ghost",
10026
+ size: "sm",
10027
+ onClick: () => setIsEpicSelectorOpen(false),
10028
+ className: "h-8 w-8 p-0",
10029
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.X, { className: "h-4 w-4" })
10030
+ }
10031
+ )
9822
10032
  ] }),
9823
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9824
- Textarea,
10033
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "text-sm text-muted-foreground mt-1", children: "Filter which epics to display. Select none to show all." })
10034
+ ] }),
10035
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex flex-col flex-1 p-4 min-h-0", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "space-y-2 flex-1 overflow-y-auto no-scrollbar", children: availableEpics.length > 0 ? availableEpics.map((epic) => {
10036
+ const isSelected = selectedEpicIds.includes(epic.id.toString());
10037
+ const taskCount = availableTasks.filter(
10038
+ (t) => extractId(t.epic) === epic.id
10039
+ ).length;
10040
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10041
+ "div",
9825
10042
  {
9826
- value: editForm.description || "",
9827
- onChange: (e) => setEditForm({ ...editForm, description: e.target.value }),
9828
- placeholder: "Epic description",
9829
- className: "text-sm min-h-[60px]"
9830
- }
9831
- ),
9832
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "grid grid-cols-2 gap-2", children: [
9833
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
9834
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("label", { className: "text-xs text-muted-foreground", children: "Confidence" }),
9835
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9836
- "select",
9837
- {
9838
- value: editForm.confidence || epic.confidence,
9839
- onChange: (e) => setEditForm({
9840
- ...editForm,
9841
- confidence: e.target.value
9842
- }),
9843
- className: "flex h-8 w-full rounded-md border border-input bg-background px-3 py-2 text-xs ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
9844
- children: [
9845
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("option", { value: "low", children: "Low" }),
9846
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("option", { value: "medium", children: "Medium" }),
9847
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("option", { value: "high", children: "High" })
9848
- ]
9849
- }
9850
- )
9851
- ] }),
9852
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
9853
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("label", { className: "text-xs text-muted-foreground", children: "Phase" }),
9854
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9855
- "select",
9856
- {
9857
- value: editForm.phase?.toString() || epic.phase.toString(),
9858
- onChange: (e) => setEditForm({ ...editForm, phase: parseInt(e.target.value) }),
9859
- className: "flex h-8 w-full rounded-md border border-input bg-background px-3 py-2 text-xs ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
9860
- children: [1, 2, 3, 4, 5, 6, 7, 8, 9].map((phase) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("option", { value: phase.toString(), children: [
9861
- "Phase ",
9862
- phase
9863
- ] }, phase))
9864
- }
9865
- )
9866
- ] })
9867
- ] })
9868
- ] })
9869
- ) : (
9870
- /* Display Mode */
9871
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
9872
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
9873
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: `w-4 h-4 rounded-full ${epic.color}` }),
9874
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h3", { className: "font-semibold text-foreground select-none flex-1", children: epic.name }),
9875
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex gap-1", children: [
10043
+ className: `p-3 rounded-lg border transition-all ${isSelected ? "bg-primary/10 border-primary/30 ring-1 ring-primary/20" : "bg-card border-border"}`,
10044
+ children: [
10045
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-between", children: [
10046
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2 flex-1 min-w-0", children: [
10047
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: `w-3 h-3 rounded-full flex-shrink-0 ${epic.color}` }),
10048
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "font-medium text-sm text-foreground truncate", children: epic.name })
10049
+ ] }),
10050
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "ml-2 flex items-center gap-1", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Badge, { variant: "secondary", className: "text-xs", children: taskCount }) })
10051
+ ] }),
10052
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10053
+ Button,
10054
+ {
10055
+ variant: isSelected ? "default" : "outline",
10056
+ size: "sm",
10057
+ className: "w-full mt-2 text-xs h-7",
10058
+ onClick: () => toggleEpicView(epic.id.toString()),
10059
+ children: isSelected ? "Deselect" : "Select"
10060
+ }
10061
+ )
10062
+ ]
10063
+ },
10064
+ epic.id
10065
+ );
10066
+ }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "text-sm text-muted-foreground text-center py-8", children: "No epics yet. Add one to get started." }) }) })
10067
+ ] })
10068
+ }
10069
+ )
10070
+ ] }),
10071
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 gap-3 auto-rows-max", children: visibleEpics.map((epic) => {
10072
+ const epicTasks = getTasksByEpic(epic.id.toString());
10073
+ const totalPoints = epicTasks.reduce(
10074
+ (sum, task) => sum + (task.storyPoints || 0),
10075
+ 0
10076
+ );
10077
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10078
+ Card,
10079
+ {
10080
+ className: "flex flex-col bg-card shadow-sm",
10081
+ style: { maxHeight: "420px" },
10082
+ onDragOver: handleDragOver,
10083
+ onDrop: (e) => handleDrop(e, epic.id.toString()),
10084
+ children: [
10085
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "p-3 border-b border-border flex-shrink-0", children: editingEpic === epic.id.toString() ? (
10086
+ /* Edit Mode */
10087
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-3", children: [
10088
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-between", children: [
9876
10089
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9877
- Button,
10090
+ Input,
9878
10091
  {
9879
- size: "sm",
9880
- variant: "ghost",
9881
- onClick: () => handleEditEpic(epic),
9882
- className: "p-1 h-8 w-8",
9883
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Edit2, { className: "h-3 w-3" })
10092
+ value: editForm.name || "",
10093
+ onChange: (e) => setEditForm({ ...editForm, name: e.target.value }),
10094
+ placeholder: "Epic name",
10095
+ className: "font-semibold text-sm"
9884
10096
  }
9885
10097
  ),
9886
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9887
- Button,
9888
- {
9889
- size: "sm",
9890
- variant: "ghost",
9891
- onClick: () => handleDeleteEpic(epic.id.toString()),
9892
- className: "p-1 h-8 w-8 hover:bg-destructive/10 hover:text-destructive",
9893
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Trash2, { className: "h-3 w-3" })
9894
- }
9895
- )
9896
- ] })
9897
- ] }),
9898
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-wrap gap-2 mb-3", children: [
9899
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Badge, { className: `text-xs ${getConfidenceColor(epic.confidence)}`, children: [
9900
- epic.confidence,
9901
- " confidence"
9902
- ] }),
9903
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Badge, { variant: "outline", className: "text-xs", children: [
9904
- "Phase ",
9905
- epic.phase
10098
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex gap-1 ml-2", children: [
10099
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10100
+ Button,
10101
+ {
10102
+ size: "sm",
10103
+ variant: "ghost",
10104
+ onClick: handleSaveEdit,
10105
+ className: "p-1 h-7 w-7",
10106
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Check, { className: "h-3 w-3" })
10107
+ }
10108
+ ),
10109
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10110
+ Button,
10111
+ {
10112
+ size: "sm",
10113
+ variant: "ghost",
10114
+ onClick: handleCancelEdit,
10115
+ className: "p-1 h-7 w-7",
10116
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.X, { className: "h-3 w-3" })
10117
+ }
10118
+ )
10119
+ ] })
9906
10120
  ] }),
9907
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9908
- Badge,
10121
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10122
+ Textarea,
9909
10123
  {
9910
- variant: "secondary",
9911
- className: "text-xs bg-muted text-muted-foreground",
9912
- children: [
9913
- epicTasks.length,
9914
- " tasks"
9915
- ]
10124
+ value: editForm.description || "",
10125
+ onChange: (e) => setEditForm({ ...editForm, description: e.target.value }),
10126
+ placeholder: "Epic description",
10127
+ className: "text-xs min-h-[50px]"
9916
10128
  }
9917
10129
  ),
10130
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "grid grid-cols-2 gap-2", children: [
10131
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10132
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("label", { className: "text-xs text-muted-foreground", children: "Confidence" }),
10133
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10134
+ "select",
10135
+ {
10136
+ value: editForm.confidence || epic.confidence,
10137
+ onChange: (e) => setEditForm({
10138
+ ...editForm,
10139
+ confidence: e.target.value
10140
+ }),
10141
+ className: "flex h-7 w-full rounded-md border border-input bg-background px-2 py-1 text-xs ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
10142
+ children: [
10143
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("option", { value: "low", children: "Low" }),
10144
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("option", { value: "medium", children: "Medium" }),
10145
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("option", { value: "high", children: "High" })
10146
+ ]
10147
+ }
10148
+ )
10149
+ ] }),
10150
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
10151
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("label", { className: "text-xs text-muted-foreground", children: "Phase" }),
10152
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10153
+ "select",
10154
+ {
10155
+ value: editForm.phase?.toString() || epic.phase.toString(),
10156
+ onChange: (e) => setEditForm({ ...editForm, phase: parseInt(e.target.value) }),
10157
+ className: "flex h-7 w-full rounded-md border border-input bg-background px-2 py-1 text-xs ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
10158
+ children: [1, 2, 3, 4, 5, 6, 7, 8, 9].map((phase) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("option", { value: phase.toString(), children: [
10159
+ "Phase ",
10160
+ phase
10161
+ ] }, phase))
10162
+ }
10163
+ )
10164
+ ] })
10165
+ ] })
10166
+ ] })
10167
+ ) : (
10168
+ /* Display Mode */
10169
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
10170
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
10171
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: `w-3 h-3 rounded-full flex-shrink-0 ${epic.color}` }),
10172
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h3", { className: "font-semibold text-foreground text-sm select-none flex-1 truncate", children: epic.name }),
10173
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex gap-0.5", children: [
10174
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10175
+ Button,
10176
+ {
10177
+ size: "sm",
10178
+ variant: "ghost",
10179
+ onClick: () => handleEditEpic(epic),
10180
+ className: "p-1 h-6 w-6",
10181
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Edit2, { className: "h-3 w-3" })
10182
+ }
10183
+ ),
10184
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10185
+ Button,
10186
+ {
10187
+ size: "sm",
10188
+ variant: "ghost",
10189
+ onClick: () => handleDeleteEpic(epic.id.toString()),
10190
+ className: "p-1 h-6 w-6 hover:bg-destructive/10 hover:text-destructive",
10191
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Trash2, { className: "h-3 w-3" })
10192
+ }
10193
+ )
10194
+ ] })
10195
+ ] }),
10196
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-wrap gap-1 mb-2", children: [
10197
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Badge, { className: `text-xs px-1.5 py-0 ${getConfidenceColor(epic.confidence)}`, children: epic.confidence }),
10198
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Badge, { variant: "outline", className: "text-xs px-1.5 py-0", children: getPhaseLabel(epic.phase) }),
10199
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Badge, { variant: "secondary", className: "text-xs px-1.5 py-0 bg-muted text-muted-foreground", children: [
10200
+ epicTasks.length,
10201
+ "t \xB7 ",
10202
+ totalPoints,
10203
+ "pt"
10204
+ ] })
10205
+ ] }),
10206
+ epic.description && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "text-xs text-muted-foreground mb-2 select-none line-clamp-2", children: epic.description }),
9918
10207
  /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9919
- Badge,
10208
+ Button,
9920
10209
  {
9921
- variant: "secondary",
9922
- className: "text-xs bg-muted text-muted-foreground",
10210
+ onClick: () => {
10211
+ setIsAddTaskModalOpen(true);
10212
+ setAddTaskEpic(epic);
10213
+ },
10214
+ variant: "outline",
10215
+ size: "sm",
10216
+ className: "w-full gap-1 h-7 text-xs",
9923
10217
  children: [
9924
- totalPoints,
9925
- " pts"
10218
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Plus, { className: "h-3 w-3" }),
10219
+ "Add Task"
9926
10220
  ]
9927
10221
  }
9928
10222
  )
9929
- ] }),
9930
- epic.description && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "text-sm text-muted-foreground mb-3 select-none", children: epic.description }),
9931
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9932
- Button,
9933
- {
9934
- onClick: () => {
9935
- setIsAddTaskModalOpen(true);
9936
- setAddTaskEpic(epic);
9937
- },
9938
- variant: "outline",
9939
- size: "sm",
9940
- className: "w-full gap-2",
9941
- children: [
9942
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Plus, { className: "h-4 w-4" }),
9943
- "Add Task"
9944
- ]
9945
- }
9946
- )
9947
- ] })
9948
- ) }),
9949
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex-1 p-4 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9950
- "div",
9951
- {
9952
- className: `space-y-3 min-h-[200px] border-2 border-dashed rounded p-3 transition-colors ${draggedTask ? "border-primary bg-primary/10" : "border-border"}`,
9953
- children: epicTasks.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-col items-center justify-center h-32 text-muted-foreground border-2 border-dashed border-border rounded-lg", children: [
9954
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Move, { className: "h-8 w-8 mb-2" }),
9955
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-sm select-none", children: "Drop tasks here" })
9956
- ] }) : epicTasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9957
- TaskCard,
9958
- {
9959
- task,
9960
- epic,
9961
- onDragStart: handleDragStart,
9962
- onTaskClick,
9963
- isCompact: true
9964
- },
9965
- task.id
9966
- ))
9967
- }
9968
- ) })
9969
- ]
9970
- },
9971
- epic.id
9972
- );
9973
- }) })
10223
+ ] })
10224
+ ) }),
10225
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex-1 p-2 overflow-y-auto no-scrollbar min-h-0", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10226
+ "div",
10227
+ {
10228
+ className: `space-y-2 min-h-[80px] border-2 border-dashed rounded p-2 transition-colors ${draggedTask ? "border-primary bg-primary/10" : "border-border"}`,
10229
+ children: epicTasks.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-col items-center justify-center h-16 text-muted-foreground", children: [
10230
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Move, { className: "h-5 w-5 mb-1" }),
10231
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-xs select-none", children: "Drop tasks here" })
10232
+ ] }) : epicTasks.map((task) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "relative group", children: [
10233
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10234
+ TaskCard,
10235
+ {
10236
+ task,
10237
+ epic,
10238
+ onDragStart: handleDragStart,
10239
+ onTaskClick: handleTaskClick,
10240
+ isCompact: true
10241
+ }
10242
+ ),
10243
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10244
+ "button",
10245
+ {
10246
+ onClick: (e) => {
10247
+ e.stopPropagation();
10248
+ handleRemoveFromEpic(task);
10249
+ },
10250
+ title: "Remove from epic",
10251
+ className: "absolute top-1 right-1 opacity-0 group-hover:opacity-100 transition-opacity bg-background/80 hover:bg-destructive/10 hover:text-destructive rounded p-0.5",
10252
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.X, { className: "h-3 w-3" })
10253
+ }
10254
+ )
10255
+ ] }, task.id))
10256
+ }
10257
+ ) })
10258
+ ]
10259
+ },
10260
+ epic.id
10261
+ );
10262
+ }) })
10263
+ ]
9974
10264
  }
9975
10265
  ) })
9976
10266
  ] }),
@@ -9993,6 +10283,23 @@ var EpicsView = ({
9993
10283
  defaultEpicId: addTaskEpic?.id.toString() || "",
9994
10284
  sprints
9995
10285
  }
10286
+ ),
10287
+ selectedTask && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10288
+ TaskDetailsModal,
10289
+ {
10290
+ isOpen: !!selectedTask,
10291
+ onClose: () => setSelectedTask(null),
10292
+ initialTask: selectedTask,
10293
+ epics: availableEpics,
10294
+ sprints,
10295
+ onUpdateTask: handleUpdateTask,
10296
+ onDeleteTask: handleDeleteTask,
10297
+ onAddComment,
10298
+ colleagues,
10299
+ onUploadFile,
10300
+ onDeleteFile,
10301
+ onFileUpdate
10302
+ }
9996
10303
  )
9997
10304
  ] });
9998
10305
  };