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.
- package/dist/{chunk-5GFRQ4NR.mjs → chunk-2BKXIIFJ.mjs} +183 -36
- package/dist/{chunk-LQPN7L4Z.mjs → chunk-3DWDGYDG.mjs} +1 -1
- package/dist/{chunk-PTDP7PZK.mjs → chunk-3G7VLQG5.mjs} +1 -1
- package/dist/{chunk-56NFUKPK.mjs → chunk-3K6EVFOW.mjs} +1 -1
- package/dist/{chunk-PFA2P52R.mjs → chunk-3RYHYKVQ.mjs} +1 -1
- package/dist/{chunk-XDV7AVPQ.mjs → chunk-4JSM5VYZ.mjs} +2 -2
- package/dist/{chunk-VMYEV3FG.mjs → chunk-4YRR74Y4.mjs} +1 -1
- package/dist/{chunk-I4MTJN23.mjs → chunk-6A7T3O6T.mjs} +6 -5
- package/dist/{chunk-G46GZ57S.mjs → chunk-6LF4K7ER.mjs} +5 -5
- package/dist/{chunk-2363JAWB.mjs → chunk-6S7EQDLL.mjs} +1 -1
- package/dist/{chunk-ZBCZGWDU.mjs → chunk-7HHLKQE4.mjs} +1 -1
- package/dist/{chunk-YUBPY7L4.mjs → chunk-7LM2P6N3.mjs} +1 -1
- package/dist/{chunk-VMDVXNP5.mjs → chunk-AKMJBGUU.mjs} +16 -16
- package/dist/{chunk-V4I6U2SE.mjs → chunk-AVNBD2X5.mjs} +1 -1
- package/dist/{chunk-2L6AWG6R.mjs → chunk-AZ5MV7NO.mjs} +2 -2
- package/dist/{chunk-YOKF4FEM.mjs → chunk-BMZG77IE.mjs} +1 -1
- package/dist/chunk-BXEALHGJ.mjs +142 -0
- package/dist/{chunk-V6YEUAIH.mjs → chunk-CV7GOXGO.mjs} +2 -2
- package/dist/{chunk-YKX5AGFQ.mjs → chunk-D3AHBPI5.mjs} +1 -1
- package/dist/{chunk-2VF2D4DL.mjs → chunk-DGDELNS3.mjs} +1 -1
- package/dist/{chunk-RJZMTP7J.mjs → chunk-DHB2L7O2.mjs} +1 -1
- package/dist/{chunk-ZED4UNH7.mjs → chunk-DPTILX6A.mjs} +2 -2
- package/dist/{chunk-RQGM66Q4.mjs → chunk-DRLNETNN.mjs} +1 -1
- package/dist/{chunk-673GELPP.mjs → chunk-DVWMM7AI.mjs} +3 -3
- package/dist/{chunk-O633TXQG.mjs → chunk-EEVXIKNB.mjs} +1 -1
- package/dist/{chunk-EQYJUXKZ.mjs → chunk-EGCBZZGV.mjs} +1 -1
- package/dist/{chunk-HK2DQNBU.mjs → chunk-ETV6EEYB.mjs} +4 -4
- package/dist/{chunk-ORWAJNJO.mjs → chunk-F6SQTC6R.mjs} +3 -3
- package/dist/{chunk-25EF7VEC.mjs → chunk-F7JPOQIC.mjs} +1 -1
- package/dist/{chunk-JQNNFILH.mjs → chunk-FWRVXOCU.mjs} +1 -1
- package/dist/{chunk-4YSV633W.mjs → chunk-GAWBCR4S.mjs} +1 -1
- package/dist/{chunk-ZWV2O6CK.mjs → chunk-GR45UN4U.mjs} +3 -3
- package/dist/chunk-GXN5ZNBZ.mjs +135 -0
- package/dist/{chunk-CIFGBEFV.mjs → chunk-HNBHBFLY.mjs} +1 -1
- package/dist/{chunk-USEHRJFR.mjs → chunk-HNVHGBNE.mjs} +1 -1
- package/dist/{chunk-QPO45D6F.mjs → chunk-I2MVZVXE.mjs} +1 -1
- package/dist/chunk-IC4N2KYF.mjs +401 -0
- package/dist/{chunk-QOYK2HBL.mjs → chunk-IM5B557Z.mjs} +19 -19
- package/dist/{chunk-J5ZETWHG.mjs → chunk-IQ67MHAY.mjs} +2 -2
- package/dist/{chunk-UFBLZW2N.mjs → chunk-IWQEM5KO.mjs} +2 -2
- package/dist/{chunk-UJI3Y73K.mjs → chunk-J5GM5CJK.mjs} +3 -3
- package/dist/chunk-JCSRFM37.mjs +595 -0
- package/dist/{chunk-QMFGV3M5.mjs → chunk-JOGVCBYP.mjs} +1 -1
- package/dist/{chunk-K6N5K2A7.mjs → chunk-JWMQOARK.mjs} +4 -4
- package/dist/{chunk-DSVXGGGV.mjs → chunk-K5ZNBHQO.mjs} +1 -1
- package/dist/{chunk-UYUP2DAL.mjs → chunk-KHFPDDTO.mjs} +1 -1
- package/dist/{chunk-CVH5TDS6.mjs → chunk-KJVAS4I7.mjs} +27 -12
- package/dist/{chunk-4PC77ZEN.mjs → chunk-KMGTUNRZ.mjs} +1 -1
- package/dist/{chunk-LVLEZS7Q.mjs → chunk-KYY7BMXI.mjs} +1 -1
- package/dist/{chunk-GDMWNNYC.mjs → chunk-LRMDRQRJ.mjs} +2 -2
- package/dist/{chunk-CIXAM7LW.mjs → chunk-LRTEGIZ7.mjs} +12 -12
- package/dist/{chunk-XGHUG2WQ.mjs → chunk-MDG2I4PB.mjs} +1 -1
- package/dist/{chunk-S27KJUKF.mjs → chunk-N5HTSJLI.mjs} +1 -1
- package/dist/{chunk-MPFWWJYT.mjs → chunk-N5Q2DYUR.mjs} +2 -2
- package/dist/{chunk-3W5H36HK.mjs → chunk-NNH7EC5Z.mjs} +1 -1
- package/dist/{chunk-5Z7JRCOM.mjs → chunk-NSYYRG6A.mjs} +1 -1
- package/dist/{chunk-JD7SR5V3.mjs → chunk-NUAJQK4H.mjs} +64 -8
- package/dist/{chunk-SSF2CAW7.mjs → chunk-OR3XMMEK.mjs} +9 -9
- package/dist/{chunk-RC6YHGVV.mjs → chunk-PE7KJR4A.mjs} +1 -1
- package/dist/{chunk-V2BZ7RE7.mjs → chunk-PLFX66EX.mjs} +1 -1
- package/dist/{chunk-E6M7XAYT.mjs → chunk-Q45EN2QB.mjs} +1 -1
- package/dist/{chunk-22E2TZBE.mjs → chunk-QDO6BAAN.mjs} +13 -5
- package/dist/{chunk-P4P6J2SW.mjs → chunk-QJGBUBSB.mjs} +2 -2
- package/dist/{chunk-TIGSOXUA.mjs → chunk-QJQ66DYZ.mjs} +1 -1
- package/dist/{chunk-ZF2DELZ5.mjs → chunk-QXOHY4AT.mjs} +39 -3
- package/dist/{chunk-NF4JWFAZ.mjs → chunk-RFMER577.mjs} +1 -1
- package/dist/{chunk-PIGOOCU6.mjs → chunk-RNHGLZYP.mjs} +1 -1
- package/dist/{chunk-QUGB53Z3.mjs → chunk-RV4VRLGN.mjs} +1 -1
- package/dist/{chunk-KCPLIAIF.mjs → chunk-SJI6X5DK.mjs} +2 -2
- package/dist/{chunk-B63AROCU.mjs → chunk-SMX6BH2N.mjs} +1 -1
- package/dist/{chunk-L3SZS7PC.mjs → chunk-SNUES6JA.mjs} +1 -1
- package/dist/{chunk-6R3QP53O.mjs → chunk-TZH6L2OH.mjs} +2 -2
- package/dist/{chunk-EJJNYV7C.mjs → chunk-U6ZFUE5O.mjs} +2 -2
- package/dist/{chunk-OPJMXB4K.mjs → chunk-UCK4TW63.mjs} +4 -4
- package/dist/{chunk-HI6QOZHR.mjs → chunk-V6VAVPKH.mjs} +1 -1
- package/dist/{chunk-PRMR24PY.mjs → chunk-WAR2OXXK.mjs} +4 -4
- package/dist/{chunk-4PFDNMLD.mjs → chunk-WEIPDZOJ.mjs} +1 -1
- package/dist/{chunk-TLCSKAWQ.mjs → chunk-WZBXR7J3.mjs} +5 -5
- package/dist/{chunk-FECAR2TE.mjs → chunk-X4GP2O3Y.mjs} +2 -2
- package/dist/{chunk-UNEYYMLL.mjs → chunk-XCZCWSOY.mjs} +2 -2
- package/dist/{chunk-QE3XE3LW.mjs → chunk-Y4KJTMKO.mjs} +1 -1
- package/dist/{chunk-AOSO2JVA.mjs → chunk-YUZYLKBD.mjs} +1 -1
- package/dist/{chunk-YFOEG4PP.mjs → chunk-Z6MYLHDW.mjs} +1 -1
- package/dist/{chunk-TP5AUT7W.mjs → chunk-ZJB7AFL5.mjs} +2 -2
- package/dist/components/AdvancedComponents/AppSidebar.d.ts +1 -1
- package/dist/components/AdvancedComponents/AppSidebar.js +480 -301
- package/dist/components/AdvancedComponents/AppSidebar.mjs +3 -3
- package/dist/components/AdvancedComponents/index.js +480 -301
- package/dist/components/AdvancedComponents/index.mjs +3 -3
- package/dist/components/AdvancedComponents/user-selection.d.ts +1 -1
- package/dist/components/AdvancedComponents/user-selection.js +1 -1
- package/dist/components/AdvancedComponents/user-selection.mjs +1 -1
- package/dist/components/Blocks/Banner.mjs +3 -3
- package/dist/components/Blocks/CallToAction.mjs +3 -3
- package/dist/components/Blocks/CollapsibleArea.mjs +4 -4
- package/dist/components/Blocks/Content.mjs +4 -4
- package/dist/components/Blocks/FeaturesBlock.mjs +3 -3
- package/dist/components/Blocks/RelatedPosts.mjs +4 -4
- package/dist/components/Blocks/RenderBlocks.mjs +6 -6
- package/dist/components/Blocks/ReusableContentBlock.mjs +6 -6
- package/dist/components/Blocks/index.mjs +7 -7
- package/dist/components/Cards/ContentCard.mjs +3 -3
- package/dist/components/Cards/FeatureCard.mjs +3 -3
- package/dist/components/Cards/index.mjs +3 -3
- package/dist/components/Chat/CopilotInterface.d.ts +1 -1
- package/dist/components/Chat/CopilotInterface.js +527 -330
- package/dist/components/Chat/CopilotInterface.mjs +5 -5
- package/dist/components/Chat/chat-session-sidebar.d.ts +1 -1
- package/dist/components/Chat/demo-long-messages.js +527 -330
- package/dist/components/Chat/demo-long-messages.mjs +5 -5
- package/dist/components/Chat/demo-tests.js +527 -330
- package/dist/components/Chat/demo-tests.mjs +5 -5
- package/dist/components/Chat/demo.js +527 -330
- package/dist/components/Chat/demo.mjs +5 -5
- package/dist/components/Chat/example-usage.js +527 -330
- package/dist/components/Chat/example-usage.mjs +6 -6
- package/dist/components/Chat/example-with-vercel-ai.js +527 -330
- package/dist/components/Chat/example-with-vercel-ai.mjs +5 -5
- package/dist/components/Chat/index.js +527 -330
- package/dist/components/Chat/index.mjs +8 -8
- package/dist/components/DeliveryLead/DeliveryLeadSubmissionWithList.mjs +2 -2
- package/dist/components/DeliveryLead/index.mjs +4 -4
- package/dist/components/DigitalColleagues/Views/TeamsIndexView.d.ts +1 -9
- package/dist/components/DigitalColleagues/Views/TeamsIndexView.js +22 -27
- package/dist/components/DigitalColleagues/Views/TeamsIndexView.mjs +4 -6
- package/dist/components/DigitalColleagues/index.d.ts +0 -18
- package/dist/components/DigitalColleagues/index.js +0 -16754
- package/dist/components/DigitalColleagues/test-data.d.ts +1 -112
- package/dist/components/DigitalColleagues/test-data.js +482 -308
- package/dist/components/DigitalColleagues/test-data.mjs +1 -5
- package/dist/components/{Foundary → Foundry}/AppSidebarLeft.js +3 -3
- package/dist/components/{DigitalColleagues → Foundry}/AppSidebarLeft.mjs +3 -3
- package/dist/components/{Foundary → Foundry}/DashboardHeader.js +2 -2
- package/dist/components/{Foundary → Foundry}/DashboardHeader.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.js +2 -2
- package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.mjs +4 -4
- package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.js +3 -3
- package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.mjs +4 -4
- package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.js +2 -2
- package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/LandingMenu.js +2 -2
- package/dist/components/{Foundary → Foundry}/LandingMenu.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/Login.js +2 -2
- package/dist/components/{Foundary → Foundry}/Login.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/MainPage.js +4 -4
- package/dist/components/{DigitalColleagues → Foundry}/MainPage.mjs +9 -9
- package/dist/components/{DigitalColleagues → Foundry}/ManagementSidebar.d.ts +2 -2
- package/dist/components/{Foundary → Foundry}/ManagementSidebar.js +12 -4
- package/dist/components/{DigitalColleagues → Foundry}/ManagementSidebar.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/Pages/dashboardpage.js +1860 -2162
- package/dist/components/{Foundary → Foundry}/Pages/dashboardpage.mjs +42 -41
- package/dist/components/{Foundary → Foundry}/README-document-edit.js +1 -1
- package/dist/components/{Foundary → Foundry}/README-document-edit.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/README-document-preview.js +1 -1
- package/dist/components/{Foundary → Foundry}/README-document-preview.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Bold.js +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Bold.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Headings.js +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Headings.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Italic.js +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Italic.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/StrikeThrough.js +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/StrikeThrough.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Subscript.js +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Subscript.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Superscript.js +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Superscript.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Underline.js +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/Icons/Underline.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/components/RawUploadComponent/index.js +2 -2
- package/dist/components/{Foundary → Foundry}/RichText/components/RawUploadComponent/index.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/RichText/index.js +18 -18
- package/dist/components/{Foundary → Foundry}/RichText/index.mjs +12 -12
- package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.js +4 -4
- package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.mjs +2 -2
- package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.js +7 -7
- package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.mjs +3 -3
- package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.js +16 -16
- package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.mjs +11 -11
- package/dist/components/{Foundary → Foundry}/SearchableSelect.js +2 -2
- package/dist/components/{DigitalColleagues → Foundry}/SearchableSelect.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/Views/ColleaguesView.d.ts +4 -2
- package/dist/components/{Foundary → Foundry}/Views/ColleaguesView.js +526 -211
- package/dist/components/{Foundary → Foundry}/Views/ColleaguesView.mjs +12 -10
- package/dist/components/Foundry/Views/KnowledgeView.docs.js +2 -0
- package/dist/components/Foundry/Views/KnowledgeView.docs.mjs +7 -0
- package/dist/components/{Foundary → Foundry}/Views/KnowledgeView.js +29 -29
- package/dist/components/{Foundary → Foundry}/Views/KnowledgeView.mjs +21 -21
- package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.js +9 -8
- package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.mjs +4 -4
- package/dist/components/{Foundary → Foundry}/Views/index.js +2929 -2050
- package/dist/components/{Foundary → Foundry}/Views/index.mjs +64 -61
- package/dist/components/Foundry/add-colleague-to-team-form.d.ts +10 -0
- package/dist/components/{DigitalColleagues/colleague-type-selection.js → Foundry/add-colleague-to-team-form.js} +156 -91
- package/dist/components/{DigitalColleagues/colleague-card.mjs → Foundry/add-colleague-to-team-form.mjs} +3 -4
- package/dist/components/{.archive → Foundry}/app-card.d.ts +1 -1
- package/dist/components/Foundry/app-card.js +2669 -0
- package/dist/components/{DigitalColleagues/digital-colleague-options.mjs → Foundry/app-card.mjs} +5 -3
- package/dist/components/{Foundary → Foundry}/colleague-card.js +2 -2
- package/dist/components/{Foundary → Foundry}/colleague-card.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/colleague-form.js +4 -4
- package/dist/components/{Foundary → Foundry}/colleague-form.mjs +2 -2
- package/dist/components/{Foundary → Foundry}/colleague-type-selection.js +2 -2
- package/dist/components/{DigitalColleagues → Foundry}/colleague-type-selection.mjs +1 -1
- package/dist/components/Foundry/digital-colleague-selection.d.ts +9 -0
- package/dist/components/{DigitalColleagues/digital-colleague-clone.js → Foundry/digital-colleague-selection.js} +59 -100
- package/dist/components/{DigitalColleagues/digital-colleague-clone.mjs → Foundry/digital-colleague-selection.mjs} +3 -3
- package/dist/components/{Foundary → Foundry}/document-edit.js +20 -20
- package/dist/components/{Foundary → Foundry}/document-edit.mjs +13 -13
- package/dist/components/{Foundary → Foundry}/document-preview-examples.js +24 -24
- package/dist/components/{Foundary → Foundry}/document-preview-examples.mjs +15 -15
- package/dist/components/{Foundary → Foundry}/document-preview.js +22 -22
- package/dist/components/{Foundary → Foundry}/document-preview.mjs +14 -14
- package/dist/components/{Foundary → Foundry}/file-edit.js +20 -20
- package/dist/components/{Foundary → Foundry}/file-edit.mjs +16 -16
- package/dist/components/{Foundary → Foundry}/foundary-clone.js +3 -3
- package/dist/components/{Foundary → Foundry}/foundary-clone.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/foundary-layout.d.ts +3 -3
- package/dist/components/{Foundary → Foundry}/foundary-layout.js +485 -306
- package/dist/components/{Foundary → Foundry}/foundary-layout.mjs +6 -6
- package/dist/components/{Foundary → Foundry}/foundary-options.d.ts +2 -1
- package/dist/components/{Foundary → Foundry}/foundary-options.js +39 -3
- package/dist/components/{Foundary → Foundry}/foundary-options.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/index.d.ts +3 -1
- package/dist/components/{Foundary → Foundry}/index.js +3465 -3267
- package/dist/components/{Foundary → Foundry}/index.mjs +102 -95
- package/dist/components/{Foundary → Foundry}/knowledge-browser.js +24 -24
- package/dist/components/{Foundary → Foundry}/knowledge-browser.mjs +15 -15
- package/dist/components/{Foundary → Foundry}/knowledge-search.js +2 -2
- package/dist/components/{DigitalColleagues → Foundry}/knowledge-search.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/team-form.js +2 -2
- package/dist/components/{Foundary → Foundry}/team-form.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/test-data.js +1 -1
- package/dist/components/{Foundary → Foundry}/test-data.mjs +1 -1
- package/dist/components/{Foundary → Foundry}/types.d.ts +26 -0
- package/dist/components/{Foundary → Foundry}/types.js +1 -1
- package/dist/components/HeaderFooter/Header.mjs +1 -1
- package/dist/components/HeaderFooter/SectionHeading.mjs +4 -4
- package/dist/components/HeaderFooter/index.mjs +11 -11
- package/dist/components/Heros/DashboardHero/DashboardHero.js +5 -4
- package/dist/components/Heros/DashboardHero/DashboardHero.mjs +2 -2
- package/dist/components/Heros/DashboardHero/index.js +5 -4
- package/dist/components/Heros/DashboardHero/index.mjs +2 -2
- package/dist/components/Heros/HighImpact/index.mjs +4 -4
- package/dist/components/Heros/LowImpact/index.mjs +4 -4
- package/dist/components/Heros/MediumImpact/index.mjs +4 -4
- package/dist/components/Heros/PostHero/index.mjs +3 -3
- package/dist/components/Heros/RenderHero.mjs +7 -7
- package/dist/components/Heros/index.js +5 -4
- package/dist/components/Heros/index.mjs +14 -14
- package/dist/components/Layouts/OutputHeaderFooter.mjs +4 -4
- package/dist/components/Layouts/Print.mjs +8 -8
- package/dist/components/Layouts/SlideShow.mjs +9 -9
- package/dist/components/Layouts/index.mjs +13 -13
- package/dist/components/Menus/SidebarLeft.mjs +3 -3
- package/dist/components/Menus/SidebarLeftMulti.mjs +3 -3
- package/dist/components/Menus/SidebarRight.mjs +3 -3
- package/dist/components/Menus/index.mjs +5 -5
- package/dist/components/Payload/RichText/index.mjs +3 -3
- package/dist/components/Payload/RichText/serialize.mjs +3 -3
- package/dist/components/Payload/index.mjs +3 -3
- package/dist/components/Projects/AddEpicModal.d.ts +1 -1
- package/dist/components/Projects/AddSprintModal.d.ts +1 -1
- package/dist/components/Projects/AddTaskModal.d.ts +1 -1
- package/dist/components/Projects/EpicFilter.d.ts +6 -2
- package/dist/components/Projects/EpicFilter.js +6 -6
- package/dist/components/Projects/EpicFilter.mjs +6 -6
- package/dist/components/Projects/EpicsView.d.ts +12 -2
- package/dist/components/Projects/EpicsView.js +3980 -736
- package/dist/components/Projects/EpicsView.mjs +46 -4
- package/dist/components/Projects/FileView.d.ts +1 -1
- package/dist/components/Projects/FileView.js +24 -23
- package/dist/components/Projects/FileView.mjs +20 -20
- package/dist/components/Projects/GanttView.d.ts +13 -0
- package/dist/components/{DigitalColleagues/colleague-card.js → Projects/GanttView.js} +559 -260
- package/dist/components/Projects/GanttView.mjs +20 -0
- package/dist/components/Projects/KanbanBoardView.d.ts +1 -1
- package/dist/components/Projects/KanbanBoardView.js +25 -24
- package/dist/components/Projects/KanbanBoardView.mjs +26 -26
- package/dist/components/Projects/KanbanColumn.d.ts +1 -1
- package/dist/components/Projects/PlanningView.d.ts +1 -1
- package/dist/components/Projects/PlanningView.js +5 -4
- package/dist/components/Projects/PlanningView.mjs +3 -3
- package/dist/components/Projects/ProjectPage.d.ts +3 -3
- package/dist/components/Projects/ProjectPage.js +1744 -983
- package/dist/components/Projects/ProjectPage.mjs +39 -38
- package/dist/components/Projects/ProjectView.d.ts +2 -2
- package/dist/components/Projects/ProjectView.js +1227 -662
- package/dist/components/Projects/ProjectView.mjs +34 -33
- package/dist/components/Projects/ProjectsIndexView.d.ts +1 -1
- package/dist/components/Projects/ProjectsIndexView.js +5 -4
- package/dist/components/Projects/ProjectsIndexView.mjs +4 -4
- package/dist/components/Projects/SprintBoardView.d.ts +4 -1
- package/dist/components/Projects/SprintBoardView.js +271 -129
- package/dist/components/Projects/SprintBoardView.mjs +26 -26
- package/dist/components/Projects/TaskCard.d.ts +1 -1
- package/dist/components/Projects/TaskDetailsModal.d.ts +1 -1
- package/dist/components/Projects/TaskDetailsModal.js +20 -20
- package/dist/components/Projects/TaskDetailsModal.mjs +20 -20
- package/dist/components/Projects/TaskSidebar.d.ts +1 -1
- package/dist/components/Projects/TaskSidebar.js +2 -2
- package/dist/components/Projects/TaskSidebar.mjs +2 -2
- package/dist/components/Projects/TasksView.d.ts +1 -1
- package/dist/components/Projects/TasksView.js +5 -4
- package/dist/components/Projects/TasksView.mjs +3 -3
- package/dist/components/Projects/business-unit-switcher.d.ts +1 -1
- package/dist/components/Projects/business-units.d.ts +1 -1
- package/dist/components/Projects/file-list.d.ts +1 -1
- package/dist/components/Projects/file-list.js +19 -19
- package/dist/components/Projects/file-list.mjs +17 -17
- package/dist/components/Projects/index.js +557 -250
- package/dist/components/Projects/index.mjs +35 -35
- package/dist/components/Projects/project-card.d.ts +1 -1
- package/dist/components/Projects/project-form.d.ts +1 -1
- package/dist/components/Projects/team-card.d.ts +1 -1
- package/dist/components/Projects/team-switcher-bar.d.ts +1 -1
- package/dist/components/Projects/test-data.d.ts +448 -29
- package/dist/components/dc-temp/dashboard-integration-example.js +497 -325
- package/dist/components/dc-temp/dashboard-integration-example.mjs +6 -6
- package/dist/components/dc-temp/index.d.ts +3 -3
- package/dist/components/dc-temp/index.js +3773 -3007
- package/dist/components/dc-temp/index.mjs +35 -33
- package/dist/components/dc-temp/mock-data.d.ts +2 -2
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +3337 -3100
- package/dist/components/index.mjs +163 -157
- package/dist/components/ui/index.mjs +9 -9
- package/dist/components/ui/sidebar.mjs +2 -2
- package/dist/decorators/Intranet.css +54 -14
- package/dist/decorators/Intranet.mjs +99 -99
- package/dist/globals.css +54 -14
- package/dist/hooks/use-local-storage.d.ts +2 -1
- package/dist/hooks/use-local-storage.js +5 -4
- package/dist/hooks/use-local-storage.mjs +1 -1
- package/dist/index.js +3345 -3108
- package/dist/index.mjs +174 -168
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/pages/Blog.mjs +12 -12
- package/dist/pages/Documentation.mjs +9 -9
- package/dist/pages/IndexPage.mjs +17 -17
- package/dist/pages/Intranet.mjs +3 -3
- package/dist/pages/LandingPage.mjs +111 -111
- package/dist/pages/Page.mjs +16 -16
- package/dist/pages/Publish.mjs +100 -100
- package/dist/pages/Website.mjs +19 -19
- package/dist/sections/AboutSection.mjs +5 -5
- package/dist/sections/BlogDetail.mjs +4 -4
- package/dist/sections/BlogList.mjs +5 -5
- package/dist/sections/BlogListSection.mjs +5 -5
- package/dist/sections/ContactSection.mjs +5 -5
- package/dist/sections/PageSections.mjs +109 -109
- package/dist/sections/PricingSection.mjs +5 -5
- package/dist/sections/ServiceDetail.mjs +4 -4
- package/dist/sections/ServiceDetailSection.mjs +4 -4
- package/dist/sections/ServiceSection.mjs +100 -100
- package/dist/sections/form/index.mjs +2 -2
- package/dist/sections/index.mjs +109 -109
- package/package.json +5 -2
- package/dist/chunk-5MMSWFVA.mjs +0 -364
- package/dist/chunk-7TDXZ32Q.mjs +0 -197
- package/dist/chunk-APXXTGT4.mjs +0 -424
- package/dist/chunk-BZENEU5C.mjs +0 -160
- package/dist/chunk-CNQTT5P3.mjs +0 -276
- package/dist/chunk-CQKCEXF2.mjs +0 -82
- package/dist/chunk-EKQB7NJA.mjs +0 -194
- package/dist/chunk-G4WW3ZTX.mjs +0 -1063
- package/dist/chunk-G7SFQSC7.mjs +0 -306
- package/dist/chunk-IWG2URAU.mjs +0 -74
- package/dist/chunk-IWSATDRG.mjs +0 -118
- package/dist/chunk-JRNDRMIC.mjs +0 -73
- package/dist/chunk-K2C4VMGF.mjs +0 -121
- package/dist/chunk-M6ELOAGS.mjs +0 -136
- package/dist/chunk-NAUBZM7P.mjs +0 -183
- package/dist/chunk-NHDPHK6D.mjs +0 -72
- package/dist/chunk-R5MJWISX.mjs +0 -194
- package/dist/chunk-RKYMAFRJ.mjs +0 -92
- package/dist/chunk-SZBUXY6L.mjs +0 -121
- package/dist/chunk-UHOCECJY.mjs +0 -365
- package/dist/chunk-VY6L37RQ.mjs +0 -103
- package/dist/chunk-X6UI73UN.mjs +0 -262
- package/dist/components/DigitalColleagues/AppSidebarLeft.js +0 -3407
- package/dist/components/DigitalColleagues/DashboardHeader.js +0 -2756
- package/dist/components/DigitalColleagues/DashboardHeader.mjs +0 -15
- package/dist/components/DigitalColleagues/DigitalColleageusLayout.d.ts +0 -28
- package/dist/components/DigitalColleagues/DigitalColleageusLayout.js +0 -4417
- package/dist/components/DigitalColleagues/DigitalColleageusLayout.mjs +0 -31
- package/dist/components/DigitalColleagues/MainPage.js +0 -4080
- package/dist/components/DigitalColleagues/ManagementSidebar.js +0 -99
- package/dist/components/DigitalColleagues/Pages/dashboardpage.d.ts +0 -18
- package/dist/components/DigitalColleagues/Pages/dashboardpage.js +0 -8514
- package/dist/components/DigitalColleagues/Pages/dashboardpage.mjs +0 -78
- package/dist/components/DigitalColleagues/README-document-edit.js +0 -2
- package/dist/components/DigitalColleagues/README-document-edit.mjs +0 -7
- package/dist/components/DigitalColleagues/README-document-preview.js +0 -2
- package/dist/components/DigitalColleagues/README-document-preview.mjs +0 -7
- package/dist/components/DigitalColleagues/SearchableSelect.js +0 -2745
- package/dist/components/DigitalColleagues/Views/ColleaguesView.d.ts +0 -14
- package/dist/components/DigitalColleagues/Views/ColleaguesView.js +0 -3795
- package/dist/components/DigitalColleagues/Views/ColleaguesView.mjs +0 -28
- package/dist/components/DigitalColleagues/Views/KnowledgeView.d.ts +0 -11
- package/dist/components/DigitalColleagues/Views/KnowledgeView.docs.js +0 -2
- package/dist/components/DigitalColleagues/Views/KnowledgeView.docs.mjs +0 -7
- package/dist/components/DigitalColleagues/Views/KnowledgeView.js +0 -3935
- package/dist/components/DigitalColleagues/Views/KnowledgeView.mjs +0 -26
- package/dist/components/DigitalColleagues/Views/index.js +0 -12284
- package/dist/components/DigitalColleagues/Views/index.mjs +0 -114
- package/dist/components/DigitalColleagues/colleague-form.d.ts +0 -14
- package/dist/components/DigitalColleagues/colleague-form.js +0 -3086
- package/dist/components/DigitalColleagues/colleague-form.mjs +0 -22
- package/dist/components/DigitalColleagues/digital-colleague-clone.d.ts +0 -9
- package/dist/components/DigitalColleagues/digital-colleague-options.d.ts +0 -7
- package/dist/components/DigitalColleagues/digital-colleague-options.js +0 -2697
- package/dist/components/DigitalColleagues/document-edit.d.ts +0 -10
- package/dist/components/DigitalColleagues/document-edit.js +0 -3112
- package/dist/components/DigitalColleagues/document-edit.mjs +0 -20
- package/dist/components/DigitalColleagues/document-preview-examples.js +0 -3433
- package/dist/components/DigitalColleagues/document-preview-examples.mjs +0 -151
- package/dist/components/DigitalColleagues/document-preview.d.ts +0 -18
- package/dist/components/DigitalColleagues/document-preview.js +0 -3296
- package/dist/components/DigitalColleagues/document-preview.mjs +0 -21
- package/dist/components/DigitalColleagues/index.mjs +0 -200
- package/dist/components/DigitalColleagues/knowledge-browser.d.ts +0 -13
- package/dist/components/DigitalColleagues/knowledge-browser.js +0 -3581
- package/dist/components/DigitalColleagues/knowledge-browser.mjs +0 -23
- package/dist/components/DigitalColleagues/knowledge-search.d.ts +0 -12
- package/dist/components/DigitalColleagues/knowledge-search.js +0 -2819
- package/dist/components/DigitalColleagues/team-form.d.ts +0 -24
- package/dist/components/DigitalColleagues/team-form.js +0 -2836
- package/dist/components/DigitalColleagues/team-form.mjs +0 -20
- package/dist/components/DigitalColleagues/types.d.ts +0 -289
- package/dist/components/DigitalColleagues/types.js +0 -18
- package/dist/components/Foundary/AppSidebarLeft.css +0 -917
- package/dist/components/Foundary/AppSidebarLeft.d.ts +0 -47
- package/dist/components/Foundary/AppSidebarLeft.mjs +0 -23
- package/dist/components/Foundary/DashboardHeader.css +0 -917
- package/dist/components/Foundary/DashboardHeader.d.ts +0 -8
- package/dist/components/Foundary/MainPage.css +0 -917
- package/dist/components/Foundary/MainPage.d.ts +0 -3
- package/dist/components/Foundary/MainPage.mjs +0 -46
- package/dist/components/Foundary/ManagementSidebar.d.ts +0 -8
- package/dist/components/Foundary/ManagementSidebar.mjs +0 -9
- package/dist/components/Foundary/Pages/dashboardpage.css +0 -917
- package/dist/components/Foundary/SearchableSelect.css +0 -917
- package/dist/components/Foundary/SearchableSelect.d.ts +0 -16
- package/dist/components/Foundary/SearchableSelect.mjs +0 -16
- package/dist/components/Foundary/Views/ColleaguesView.css +0 -917
- package/dist/components/Foundary/Views/KnowledgeView.css +0 -917
- package/dist/components/Foundary/Views/KnowledgeView.docs.js +0 -2
- package/dist/components/Foundary/Views/KnowledgeView.docs.mjs +0 -7
- package/dist/components/Foundary/Views/index.css +0 -917
- package/dist/components/Foundary/Views/index.d.ts +0 -7
- package/dist/components/Foundary/colleague-card.d.ts +0 -12
- package/dist/components/Foundary/colleague-form.css +0 -917
- package/dist/components/Foundary/colleague-type-selection.css +0 -917
- package/dist/components/Foundary/colleague-type-selection.d.ts +0 -7
- package/dist/components/Foundary/colleague-type-selection.mjs +0 -16
- package/dist/components/Foundary/document-edit.css +0 -917
- package/dist/components/Foundary/document-preview-examples.css +0 -917
- package/dist/components/Foundary/document-preview-examples.d.ts +0 -12
- package/dist/components/Foundary/document-preview.css +0 -917
- package/dist/components/Foundary/index.css +0 -917
- package/dist/components/Foundary/knowledge-browser.css +0 -917
- package/dist/components/Foundary/knowledge-search.css +0 -917
- package/dist/components/Foundary/knowledge-search.mjs +0 -20
- package/dist/components/Foundary/team-form.css +0 -917
- package/dist/{chunk-AEFGMCK3.mjs → chunk-D5KV6INF.mjs} +3 -3
- package/dist/{chunk-SNG6OKEL.mjs → chunk-FTVOJKVA.mjs} +3 -3
- package/dist/{chunk-OT2SSFKS.mjs → chunk-GSG52WU5.mjs} +3 -3
- /package/dist/components/{DigitalColleagues → Foundry}/AppSidebarLeft.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/AppSidebarLeft.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/DashboardHeader.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/DashboardHeader.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.css +0 -0
- /package/dist/components/{Foundary → Foundry}/Knowledge/add-knowledge-modal.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.css +0 -0
- /package/dist/components/{Foundary → Foundry}/Knowledge/add-team-context.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.css +0 -0
- /package/dist/components/{Foundary → Foundry}/Knowledge/manage-team-context.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/LandingMenu.css +0 -0
- /package/dist/components/{Foundary → Foundry}/LandingMenu.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/Login.css +0 -0
- /package/dist/components/{Foundary → Foundry}/Login.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/MainPage.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/MainPage.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/Pages/dashboardpage.css +0 -0
- /package/dist/components/{Foundary → Foundry}/Pages/dashboardpage.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/Icons/Bold.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/Icons/Headings.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/Icons/Italic.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/Icons/StrikeThrough.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/Icons/Subscript.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/Icons/Superscript.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/Icons/Underline.d.ts +0 -0
- /package/dist/components/{DigitalColleagues/Views → Foundry/RichText/components/RawUploadComponent}/index.css +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/components/RawUploadComponent/index.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry/RichText}/index.css +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/index.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.css +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/nodes/image-node.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.css +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/plugins/image-plugin.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.css +0 -0
- /package/dist/components/{Foundary → Foundry}/RichText/plugins/toolbar-plugin.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/SearchableSelect.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/SearchableSelect.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/Views/ColleaguesView.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/Views/KnowledgeView.css +0 -0
- /package/dist/components/{Foundary → Foundry}/Views/KnowledgeView.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.css +0 -0
- /package/dist/components/{Foundary → Foundry}/Views/TeamsIndexView.d.ts +0 -0
- /package/dist/components/{Foundary/RichText/components/RawUploadComponent → Foundry/Views}/index.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/Views/index.d.ts +0 -0
- /package/dist/components/{DigitalColleagues/DigitalColleageusLayout.css → Foundry/add-colleague-to-team-form.css} +0 -0
- /package/dist/components/{DigitalColleagues/colleague-card.css → Foundry/app-card.css} +0 -0
- /package/dist/components/{Foundary → Foundry}/colleague-card.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/colleague-card.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/colleague-form.css +0 -0
- /package/dist/components/{Foundary → Foundry}/colleague-form.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/colleague-type-selection.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/colleague-type-selection.d.ts +0 -0
- /package/dist/components/{DigitalColleagues/digital-colleague-clone.css → Foundry/digital-colleague-selection.css} +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/document-edit.css +0 -0
- /package/dist/components/{Foundary → Foundry}/document-edit.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/document-preview-examples.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/document-preview-examples.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/document-preview.css +0 -0
- /package/dist/components/{Foundary → Foundry}/document-preview.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/file-edit.css +0 -0
- /package/dist/components/{Foundary → Foundry}/file-edit.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/foundary-clone.css +0 -0
- /package/dist/components/{Foundary → Foundry}/foundary-clone.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/foundary-layout.css +0 -0
- /package/dist/components/{Foundary → Foundry}/foundary-options.css +0 -0
- /package/dist/components/{Foundary/RichText → Foundry}/index.css +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/knowledge-browser.css +0 -0
- /package/dist/components/{Foundary → Foundry}/knowledge-browser.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/knowledge-search.css +0 -0
- /package/dist/components/{Foundary → Foundry}/knowledge-search.d.ts +0 -0
- /package/dist/components/{DigitalColleagues → Foundry}/team-form.css +0 -0
- /package/dist/components/{Foundary → Foundry}/team-form.d.ts +0 -0
- /package/dist/components/{Foundary → Foundry}/test-data.d.ts +0 -0
- /package/dist/components/{DigitalColleagues/digital-colleague-options.css → Projects/GanttView.css} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use strict";
|
|
3
|
+
"use client"
|
|
3
4
|
|
|
4
5
|
"use strict";
|
|
5
6
|
"use client";
|
|
@@ -31,18 +32,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
31
32
|
));
|
|
32
33
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
33
34
|
|
|
34
|
-
// src/components/
|
|
35
|
-
var
|
|
36
|
-
__export(
|
|
37
|
-
|
|
35
|
+
// src/components/Projects/GanttView.tsx
|
|
36
|
+
var GanttView_exports = {};
|
|
37
|
+
__export(GanttView_exports, {
|
|
38
|
+
GanttView: () => GanttView
|
|
38
39
|
});
|
|
39
|
-
module.exports = __toCommonJS(
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
// src/components/ui/avatar.tsx
|
|
44
|
-
var React = __toESM(require("react"));
|
|
45
|
-
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
|
|
40
|
+
module.exports = __toCommonJS(GanttView_exports);
|
|
41
|
+
var import_react4 = require("react");
|
|
42
|
+
var import_date_fns = require("date-fns");
|
|
43
|
+
var import_lucide_react2 = require("lucide-react");
|
|
46
44
|
|
|
47
45
|
// src/utils/cn.ts
|
|
48
46
|
var import_clsx = require("clsx");
|
|
@@ -2512,68 +2510,12 @@ function cn(...inputs) {
|
|
|
2512
2510
|
return twMerge((0, import_clsx.clsx)(inputs));
|
|
2513
2511
|
}
|
|
2514
2512
|
|
|
2515
|
-
// src/components/ui/avatar.tsx
|
|
2516
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
2517
|
-
var Avatar = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
2518
|
-
AvatarPrimitive.Root,
|
|
2519
|
-
{
|
|
2520
|
-
ref,
|
|
2521
|
-
className: cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className),
|
|
2522
|
-
...props
|
|
2523
|
-
}
|
|
2524
|
-
));
|
|
2525
|
-
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
2526
|
-
var AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
2527
|
-
AvatarPrimitive.Image,
|
|
2528
|
-
{
|
|
2529
|
-
ref,
|
|
2530
|
-
className: cn("aspect-square h-full w-full", className),
|
|
2531
|
-
...props
|
|
2532
|
-
}
|
|
2533
|
-
));
|
|
2534
|
-
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
2535
|
-
var AvatarFallback = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
2536
|
-
AvatarPrimitive.Fallback,
|
|
2537
|
-
{
|
|
2538
|
-
ref,
|
|
2539
|
-
className: cn(
|
|
2540
|
-
"flex h-full w-full items-center justify-center rounded-full bg-muted",
|
|
2541
|
-
className
|
|
2542
|
-
),
|
|
2543
|
-
...props
|
|
2544
|
-
}
|
|
2545
|
-
));
|
|
2546
|
-
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
2547
|
-
|
|
2548
|
-
// src/components/ui/badge.tsx
|
|
2549
|
-
var import_class_variance_authority = require("class-variance-authority");
|
|
2550
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
2551
|
-
var badgeVariants = (0, import_class_variance_authority.cva)(
|
|
2552
|
-
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
2553
|
-
{
|
|
2554
|
-
variants: {
|
|
2555
|
-
variant: {
|
|
2556
|
-
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
|
|
2557
|
-
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
2558
|
-
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
|
|
2559
|
-
outline: "text-foreground"
|
|
2560
|
-
}
|
|
2561
|
-
},
|
|
2562
|
-
defaultVariants: {
|
|
2563
|
-
variant: "default"
|
|
2564
|
-
}
|
|
2565
|
-
}
|
|
2566
|
-
);
|
|
2567
|
-
function Badge({ className, variant, ...props }) {
|
|
2568
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
2569
|
-
}
|
|
2570
|
-
|
|
2571
2513
|
// src/components/ui/button.tsx
|
|
2572
2514
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
2573
|
-
var
|
|
2574
|
-
var
|
|
2575
|
-
var
|
|
2576
|
-
var buttonVariants = (0,
|
|
2515
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
2516
|
+
var React = __toESM(require("react"));
|
|
2517
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
2518
|
+
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
2577
2519
|
"inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
2578
2520
|
{
|
|
2579
2521
|
defaultVariants: {
|
|
@@ -2599,64 +2541,81 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
2599
2541
|
}
|
|
2600
2542
|
}
|
|
2601
2543
|
);
|
|
2602
|
-
var Button =
|
|
2544
|
+
var Button = React.forwardRef(
|
|
2603
2545
|
({ asChild = false, className, size, variant, ...props }, ref) => {
|
|
2604
2546
|
const Comp = asChild ? import_react_slot.Slot : "button";
|
|
2605
|
-
return /* @__PURE__ */ (0,
|
|
2547
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { className: cn(buttonVariants({ className, size, variant })), ref, ...props });
|
|
2606
2548
|
}
|
|
2607
2549
|
);
|
|
2608
2550
|
Button.displayName = "Button";
|
|
2609
2551
|
|
|
2610
|
-
// src/components/
|
|
2611
|
-
var
|
|
2612
|
-
var
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2552
|
+
// src/components/Heros/DashboardHero/DashboardHero.tsx
|
|
2553
|
+
var import_react2 = require("react");
|
|
2554
|
+
var import_react3 = require("motion/react");
|
|
2555
|
+
|
|
2556
|
+
// src/components/ui/badge.tsx
|
|
2557
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
2558
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
2559
|
+
var badgeVariants = (0, import_class_variance_authority2.cva)(
|
|
2560
|
+
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
2561
|
+
{
|
|
2562
|
+
variants: {
|
|
2563
|
+
variant: {
|
|
2564
|
+
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
|
|
2565
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
2566
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
|
|
2567
|
+
outline: "text-foreground"
|
|
2568
|
+
}
|
|
2569
|
+
},
|
|
2570
|
+
defaultVariants: {
|
|
2571
|
+
variant: "default"
|
|
2620
2572
|
}
|
|
2621
|
-
|
|
2622
|
-
);
|
|
2623
|
-
Card.displayName = "Card";
|
|
2624
|
-
var CardHeader = React3.forwardRef(
|
|
2625
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
2573
|
+
}
|
|
2626
2574
|
);
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2575
|
+
function Badge({ className, variant, ...props }) {
|
|
2576
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
2577
|
+
}
|
|
2578
|
+
|
|
2579
|
+
// src/hooks/use-local-storage.ts
|
|
2580
|
+
var import_react = require("react");
|
|
2581
|
+
function useLocalStorage(key, initialValue) {
|
|
2582
|
+
const [storedValue, setStoredValue] = (0, import_react.useState)(() => {
|
|
2583
|
+
if (typeof window === "undefined") return initialValue;
|
|
2584
|
+
try {
|
|
2585
|
+
const item = window.localStorage.getItem(key);
|
|
2586
|
+
return item ? JSON.parse(item) : initialValue;
|
|
2587
|
+
} catch (error) {
|
|
2588
|
+
return initialValue;
|
|
2635
2589
|
}
|
|
2636
|
-
)
|
|
2637
|
-
)
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
)
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
);
|
|
2650
|
-
|
|
2590
|
+
});
|
|
2591
|
+
const setValue = (0, import_react.useCallback)((value) => {
|
|
2592
|
+
try {
|
|
2593
|
+
const valueToStore = value instanceof Function ? value(storedValue) : value;
|
|
2594
|
+
setStoredValue(valueToStore);
|
|
2595
|
+
if (typeof window !== "undefined") {
|
|
2596
|
+
window.localStorage.setItem(key, JSON.stringify(valueToStore));
|
|
2597
|
+
}
|
|
2598
|
+
} catch (error) {
|
|
2599
|
+
}
|
|
2600
|
+
}, [key, storedValue]);
|
|
2601
|
+
(0, import_react.useEffect)(() => {
|
|
2602
|
+
setValue(storedValue);
|
|
2603
|
+
}, []);
|
|
2604
|
+
return [storedValue, setValue];
|
|
2605
|
+
}
|
|
2606
|
+
|
|
2607
|
+
// src/components/Heros/DashboardHero/DashboardHero.tsx
|
|
2608
|
+
var import_fa = require("react-icons/fa");
|
|
2609
|
+
var import_lucide_react = require("lucide-react");
|
|
2651
2610
|
|
|
2652
2611
|
// src/components/ui/dropdown-menu.tsx
|
|
2653
|
-
var
|
|
2612
|
+
var React2 = __toESM(require("react"));
|
|
2654
2613
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
2655
2614
|
var import_react_icons = require("@radix-ui/react-icons");
|
|
2656
|
-
var
|
|
2615
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
2657
2616
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
2658
2617
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
2659
|
-
var DropdownMenuSubTrigger =
|
|
2618
|
+
var DropdownMenuSubTrigger = React2.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
2660
2619
|
DropdownMenuPrimitive.SubTrigger,
|
|
2661
2620
|
{
|
|
2662
2621
|
ref,
|
|
@@ -2668,12 +2627,12 @@ var DropdownMenuSubTrigger = React4.forwardRef(({ className, inset, children, ..
|
|
|
2668
2627
|
...props,
|
|
2669
2628
|
children: [
|
|
2670
2629
|
children,
|
|
2671
|
-
/* @__PURE__ */ (0,
|
|
2630
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_icons.ChevronRightIcon, { className: "ml-auto" })
|
|
2672
2631
|
]
|
|
2673
2632
|
}
|
|
2674
2633
|
));
|
|
2675
2634
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
2676
|
-
var DropdownMenuSubContent =
|
|
2635
|
+
var DropdownMenuSubContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
2677
2636
|
DropdownMenuPrimitive.SubContent,
|
|
2678
2637
|
{
|
|
2679
2638
|
ref,
|
|
@@ -2685,7 +2644,7 @@ var DropdownMenuSubContent = React4.forwardRef(({ className, ...props }, ref) =>
|
|
|
2685
2644
|
}
|
|
2686
2645
|
));
|
|
2687
2646
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
2688
|
-
var DropdownMenuContent =
|
|
2647
|
+
var DropdownMenuContent = React2.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
2689
2648
|
DropdownMenuPrimitive.Content,
|
|
2690
2649
|
{
|
|
2691
2650
|
ref,
|
|
@@ -2699,7 +2658,7 @@ var DropdownMenuContent = React4.forwardRef(({ className, sideOffset = 4, ...pro
|
|
|
2699
2658
|
}
|
|
2700
2659
|
) }));
|
|
2701
2660
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
2702
|
-
var DropdownMenuItem =
|
|
2661
|
+
var DropdownMenuItem = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
2703
2662
|
DropdownMenuPrimitive.Item,
|
|
2704
2663
|
{
|
|
2705
2664
|
ref,
|
|
@@ -2712,7 +2671,7 @@ var DropdownMenuItem = React4.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
2712
2671
|
}
|
|
2713
2672
|
));
|
|
2714
2673
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
2715
|
-
var DropdownMenuCheckboxItem =
|
|
2674
|
+
var DropdownMenuCheckboxItem = React2.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
2716
2675
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2717
2676
|
{
|
|
2718
2677
|
ref,
|
|
@@ -2723,13 +2682,13 @@ var DropdownMenuCheckboxItem = React4.forwardRef(({ className, children, checked
|
|
|
2723
2682
|
checked,
|
|
2724
2683
|
...props,
|
|
2725
2684
|
children: [
|
|
2726
|
-
/* @__PURE__ */ (0,
|
|
2685
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_icons.CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
2727
2686
|
children
|
|
2728
2687
|
]
|
|
2729
2688
|
}
|
|
2730
2689
|
));
|
|
2731
2690
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
2732
|
-
var DropdownMenuRadioItem =
|
|
2691
|
+
var DropdownMenuRadioItem = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
2733
2692
|
DropdownMenuPrimitive.RadioItem,
|
|
2734
2693
|
{
|
|
2735
2694
|
ref,
|
|
@@ -2739,13 +2698,13 @@ var DropdownMenuRadioItem = React4.forwardRef(({ className, children, ...props }
|
|
|
2739
2698
|
),
|
|
2740
2699
|
...props,
|
|
2741
2700
|
children: [
|
|
2742
|
-
/* @__PURE__ */ (0,
|
|
2701
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_icons.DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
2743
2702
|
children
|
|
2744
2703
|
]
|
|
2745
2704
|
}
|
|
2746
2705
|
));
|
|
2747
2706
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2748
|
-
var DropdownMenuLabel =
|
|
2707
|
+
var DropdownMenuLabel = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
2749
2708
|
DropdownMenuPrimitive.Label,
|
|
2750
2709
|
{
|
|
2751
2710
|
ref,
|
|
@@ -2754,7 +2713,7 @@ var DropdownMenuLabel = React4.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2754
2713
|
}
|
|
2755
2714
|
));
|
|
2756
2715
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2757
|
-
var DropdownMenuSeparator =
|
|
2716
|
+
var DropdownMenuSeparator = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
2758
2717
|
DropdownMenuPrimitive.Separator,
|
|
2759
2718
|
{
|
|
2760
2719
|
ref,
|
|
@@ -2764,162 +2723,502 @@ var DropdownMenuSeparator = React4.forwardRef(({ className, ...props }, ref) =>
|
|
|
2764
2723
|
));
|
|
2765
2724
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
2766
2725
|
var DropdownMenuShortcut = ({ className, ...props }) => {
|
|
2767
|
-
return /* @__PURE__ */ (0,
|
|
2726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
2768
2727
|
};
|
|
2769
2728
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
2770
2729
|
|
|
2771
|
-
// src/components/
|
|
2772
|
-
var
|
|
2773
|
-
function
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2730
|
+
// src/components/Heros/DashboardHero/DashboardHero.tsx
|
|
2731
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
2732
|
+
function DashboardHero({
|
|
2733
|
+
title,
|
|
2734
|
+
description,
|
|
2735
|
+
badge,
|
|
2736
|
+
primaryAction,
|
|
2737
|
+
secondaryAction,
|
|
2738
|
+
tertiaryAction,
|
|
2739
|
+
gradient,
|
|
2740
|
+
children,
|
|
2780
2741
|
className
|
|
2781
2742
|
}) {
|
|
2782
|
-
const [
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
return "Unknown";
|
|
2801
|
-
}
|
|
2802
|
-
};
|
|
2803
|
-
const formatLastActive = (date) => {
|
|
2804
|
-
if (!date) return "Never";
|
|
2805
|
-
const now = /* @__PURE__ */ new Date();
|
|
2806
|
-
const diffInMinutes = Math.floor((now.getTime() - date.getTime()) / (1e3 * 60));
|
|
2807
|
-
if (diffInMinutes < 1) return "Just now";
|
|
2808
|
-
if (diffInMinutes < 60) return `${diffInMinutes}m ago`;
|
|
2809
|
-
if (diffInMinutes < 1440) return `${Math.floor(diffInMinutes / 60)}h ago`;
|
|
2810
|
-
return `${Math.floor(diffInMinutes / 1440)}d ago`;
|
|
2811
|
-
};
|
|
2812
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Card, { className: cn("hover:shadow-md transition-shadow", compact && "p-2", className), children: [
|
|
2813
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CardHeader, { className: cn("pb-3", compact && "pb-2"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-start justify-between", children: [
|
|
2814
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
2815
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "relative", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Avatar, { className: cn("h-12 w-12", compact && "h-8 w-8"), children: [
|
|
2816
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AvatarImage, { src: "/placeholder.svg", alt: colleague.name }),
|
|
2817
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(AvatarFallback, { children: colleague.name.split(" ").map((n) => n[0]).join("") })
|
|
2818
|
-
] }) }),
|
|
2819
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
2820
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
2821
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { className: cn("font-semibold text-sm truncate", compact && "text-xs"), children: colleague.name }),
|
|
2822
|
-
colleague.type === "digital" ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react.Bot, { className: cn("h-4 w-4 text-blue-500", compact && "h-3 w-3") }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react.User, { className: cn("h-4 w-4 text-green-500", compact && "h-3 w-3") })
|
|
2743
|
+
const [minimized, setMinimized] = useLocalStorage(
|
|
2744
|
+
`hero-section-minimized-${title.replace(/\s+/g, "-").toLowerCase()}`,
|
|
2745
|
+
!secondaryAction && !description ? true : false
|
|
2746
|
+
);
|
|
2747
|
+
const [actionsMenuOpen, setActionsMenuOpen] = (0, import_react2.useState)(false);
|
|
2748
|
+
const shouldBeMinimized = !secondaryAction && !description || minimized;
|
|
2749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
2750
|
+
import_react3.motion.div,
|
|
2751
|
+
{
|
|
2752
|
+
initial: { opacity: 0, y: 20 },
|
|
2753
|
+
animate: { opacity: 1, y: 0 },
|
|
2754
|
+
transition: { duration: 0.5 },
|
|
2755
|
+
className: `overflow-hidden rounded-3xl ${gradient} p-8 text-white ${className || ""}`,
|
|
2756
|
+
children: [
|
|
2757
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [
|
|
2758
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
2759
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Badge, { className: "bg-white/20 text-white hover:bg-white/30 rounded-xl", children: badge }),
|
|
2760
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { className: "text-3xl font-bold m-0", children: title })
|
|
2823
2761
|
] }),
|
|
2824
|
-
/* @__PURE__ */ (0,
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2762
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
2763
|
+
shouldBeMinimized && primaryAction && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2764
|
+
Button,
|
|
2765
|
+
{
|
|
2766
|
+
className: "rounded-2xl bg-white text-indigo-700 hover:bg-white/90",
|
|
2767
|
+
onClick: primaryAction.onClick,
|
|
2768
|
+
children: primaryAction.label
|
|
2769
|
+
}
|
|
2770
|
+
),
|
|
2771
|
+
shouldBeMinimized && (secondaryAction || tertiaryAction) && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(DropdownMenu, { open: actionsMenuOpen, onOpenChange: setActionsMenuOpen, children: [
|
|
2772
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2773
|
+
Button,
|
|
2774
|
+
{
|
|
2775
|
+
variant: "ghost",
|
|
2776
|
+
size: "sm",
|
|
2777
|
+
className: "rounded-2xl bg-white/20 text-white hover:bg-white/30 p-2",
|
|
2778
|
+
"aria-label": "More actions",
|
|
2779
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.EllipsisVertical, { size: 20 })
|
|
2780
|
+
}
|
|
2781
|
+
) }),
|
|
2782
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(DropdownMenuContent, { align: "end", className: "w-48", children: [
|
|
2783
|
+
secondaryAction && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DropdownMenuItem, { onClick: secondaryAction.onClick, children: secondaryAction.label }),
|
|
2784
|
+
tertiaryAction && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DropdownMenuItem, { onClick: tertiaryAction.onClick, children: tertiaryAction.label })
|
|
2785
|
+
] })
|
|
2830
2786
|
] }),
|
|
2831
|
-
/* @__PURE__ */ (0,
|
|
2787
|
+
(secondaryAction || description) && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2788
|
+
"button",
|
|
2789
|
+
{
|
|
2790
|
+
"aria-label": minimized ? "Expand hero section" : "Minimize hero section",
|
|
2791
|
+
className: "rounded-full bg-white/20 hover:bg-white/30 p-1 text-white transition-colors",
|
|
2792
|
+
onClick: () => setMinimized(!minimized),
|
|
2793
|
+
style: { lineHeight: 0 },
|
|
2794
|
+
children: minimized ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fa.FaChevronDown, { size: 22 }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fa.FaChevronUp, { size: 22 })
|
|
2795
|
+
}
|
|
2796
|
+
)
|
|
2832
2797
|
] })
|
|
2833
|
-
] })
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2798
|
+
] }),
|
|
2799
|
+
!shouldBeMinimized && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between", children: [
|
|
2800
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "space-y-4", children: [
|
|
2801
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "max-w-[600px] text-white/80", children: description }),
|
|
2802
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex flex-wrap gap-3", children: [
|
|
2803
|
+
primaryAction && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2804
|
+
Button,
|
|
2805
|
+
{
|
|
2806
|
+
className: "rounded-2xl bg-white text-indigo-700 hover:bg-white/90",
|
|
2807
|
+
onClick: primaryAction.onClick,
|
|
2808
|
+
children: primaryAction.label
|
|
2809
|
+
}
|
|
2810
|
+
),
|
|
2811
|
+
secondaryAction && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2812
|
+
Button,
|
|
2813
|
+
{
|
|
2814
|
+
variant: "outline",
|
|
2815
|
+
className: "rounded-2xl bg-transparent border-white text-white hover:bg-white/10",
|
|
2816
|
+
onClick: secondaryAction.onClick,
|
|
2817
|
+
children: secondaryAction.label
|
|
2818
|
+
}
|
|
2819
|
+
),
|
|
2820
|
+
tertiaryAction && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
2821
|
+
Button,
|
|
2822
|
+
{
|
|
2823
|
+
variant: "outline",
|
|
2824
|
+
className: "rounded-2xl bg-transparent border-white text-white hover:bg-white/10",
|
|
2825
|
+
onClick: tertiaryAction.onClick,
|
|
2826
|
+
children: tertiaryAction.label
|
|
2827
|
+
}
|
|
2828
|
+
)
|
|
2846
2829
|
] })
|
|
2847
2830
|
] }),
|
|
2848
|
-
/* @__PURE__ */ (0,
|
|
2849
|
-
|
|
2831
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "hidden lg:block", children })
|
|
2832
|
+
] })
|
|
2833
|
+
]
|
|
2834
|
+
}
|
|
2835
|
+
);
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2838
|
+
// src/utils/extract-id.ts
|
|
2839
|
+
var extractId = (field) => {
|
|
2840
|
+
if (!field) return 0;
|
|
2841
|
+
if (typeof field === "number") return field;
|
|
2842
|
+
if (typeof field === "object" && field && "id" in field) return field.id;
|
|
2843
|
+
return 0;
|
|
2844
|
+
};
|
|
2845
|
+
|
|
2846
|
+
// src/components/Projects/GanttView.tsx
|
|
2847
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
2848
|
+
var PHASE_LABELS = {
|
|
2849
|
+
1: "Plan",
|
|
2850
|
+
2: "Dev",
|
|
2851
|
+
3: "Test",
|
|
2852
|
+
4: "Deploy",
|
|
2853
|
+
5: "Review",
|
|
2854
|
+
6: "Maint.",
|
|
2855
|
+
7: "Complete",
|
|
2856
|
+
8: "Archive",
|
|
2857
|
+
9: "Legacy"
|
|
2858
|
+
};
|
|
2859
|
+
var ZOOM_LEVELS = [
|
|
2860
|
+
{ label: "Quarter", dayWidth: 3 },
|
|
2861
|
+
{ label: "Month", dayWidth: 7 },
|
|
2862
|
+
{ label: "Week", dayWidth: 14 },
|
|
2863
|
+
{ label: "Day", dayWidth: 40 }
|
|
2864
|
+
];
|
|
2865
|
+
var ROW_HEIGHT = 48;
|
|
2866
|
+
var TIME_HEADER_HEIGHT = 60;
|
|
2867
|
+
var GanttView = ({
|
|
2868
|
+
tasks,
|
|
2869
|
+
epics,
|
|
2870
|
+
sprints,
|
|
2871
|
+
onTaskClick
|
|
2872
|
+
}) => {
|
|
2873
|
+
const [dayWidth, setDayWidth] = (0, import_react4.useState)(7);
|
|
2874
|
+
const [isFullscreen, setIsFullscreen] = (0, import_react4.useState)(false);
|
|
2875
|
+
const scrollRef = (0, import_react4.useRef)(null);
|
|
2876
|
+
const heroRef = (0, import_react4.useRef)(null);
|
|
2877
|
+
const [heroHeight, setHeroHeight] = (0, import_react4.useState)(0);
|
|
2878
|
+
(0, import_react4.useEffect)(() => {
|
|
2879
|
+
const measure = () => {
|
|
2880
|
+
if (heroRef.current) setHeroHeight(heroRef.current.offsetHeight);
|
|
2881
|
+
};
|
|
2882
|
+
const observer = new ResizeObserver(measure);
|
|
2883
|
+
if (heroRef.current) observer.observe(heroRef.current);
|
|
2884
|
+
return () => observer.disconnect();
|
|
2885
|
+
}, []);
|
|
2886
|
+
const { timelineStart, timelineEnd, totalDays } = (0, import_react4.useMemo)(() => {
|
|
2887
|
+
if (epics.length === 0) {
|
|
2888
|
+
const today = /* @__PURE__ */ new Date();
|
|
2889
|
+
const start = (0, import_date_fns.addDays)(today, -14);
|
|
2890
|
+
const end = (0, import_date_fns.addDays)(today, 76);
|
|
2891
|
+
return { timelineStart: start, timelineEnd: end, totalDays: 90 };
|
|
2892
|
+
}
|
|
2893
|
+
const allDates = epics.flatMap((e) => [new Date(e.startDate), new Date(e.endDate)]);
|
|
2894
|
+
const minTime = Math.min(...allDates.map((d) => d.getTime()));
|
|
2895
|
+
const maxTime = Math.max(...allDates.map((d) => d.getTime()));
|
|
2896
|
+
const paddedStart = (0, import_date_fns.addDays)(new Date(minTime), -14);
|
|
2897
|
+
const paddedEnd = (0, import_date_fns.addDays)(new Date(maxTime), 14);
|
|
2898
|
+
return {
|
|
2899
|
+
timelineStart: paddedStart,
|
|
2900
|
+
timelineEnd: paddedEnd,
|
|
2901
|
+
totalDays: (0, import_date_fns.differenceInDays)(paddedEnd, paddedStart)
|
|
2902
|
+
};
|
|
2903
|
+
}, [epics]);
|
|
2904
|
+
const { groups, sortedKeys } = (0, import_react4.useMemo)(() => {
|
|
2905
|
+
const groups2 = {};
|
|
2906
|
+
epics.forEach((epic) => {
|
|
2907
|
+
if (!groups2[epic.name]) groups2[epic.name] = [];
|
|
2908
|
+
groups2[epic.name].push(epic);
|
|
2909
|
+
});
|
|
2910
|
+
Object.values(groups2).forEach((list) => list.sort((a, b) => a.phase - b.phase));
|
|
2911
|
+
const sortedKeys2 = Object.keys(groups2).sort((a, b) => {
|
|
2912
|
+
const aMin = Math.min(...groups2[a].map((e) => new Date(e.startDate).getTime()));
|
|
2913
|
+
const bMin = Math.min(...groups2[b].map((e) => new Date(e.startDate).getTime()));
|
|
2914
|
+
return aMin - bMin;
|
|
2915
|
+
});
|
|
2916
|
+
return { groups: groups2, sortedKeys: sortedKeys2 };
|
|
2917
|
+
}, [epics]);
|
|
2918
|
+
const realSprints = (0, import_react4.useMemo)(
|
|
2919
|
+
() => sprints.filter((s) => {
|
|
2920
|
+
const name = s.name.toLowerCase();
|
|
2921
|
+
return name !== "backlog" && name !== "all tasks";
|
|
2922
|
+
}),
|
|
2923
|
+
[sprints]
|
|
2924
|
+
);
|
|
2925
|
+
const monthHeaders = (0, import_react4.useMemo)(
|
|
2926
|
+
() => (0, import_date_fns.eachMonthOfInterval)({ start: timelineStart, end: timelineEnd }).map((month) => ({
|
|
2927
|
+
month,
|
|
2928
|
+
left: (0, import_date_fns.differenceInDays)(month, timelineStart) * dayWidth
|
|
2929
|
+
})),
|
|
2930
|
+
[timelineStart, timelineEnd, dayWidth]
|
|
2931
|
+
);
|
|
2932
|
+
const totalWidth = Math.max(totalDays * dayWidth, 600);
|
|
2933
|
+
const scrollToToday = (0, import_react4.useCallback)(() => {
|
|
2934
|
+
if (scrollRef.current) {
|
|
2935
|
+
const todayOffset = (0, import_date_fns.differenceInDays)(/* @__PURE__ */ new Date(), timelineStart) * dayWidth;
|
|
2936
|
+
scrollRef.current.scrollLeft = Math.max(0, todayOffset - 200);
|
|
2937
|
+
}
|
|
2938
|
+
}, [timelineStart, dayWidth]);
|
|
2939
|
+
const todayLeft = (0, import_date_fns.differenceInDays)(/* @__PURE__ */ new Date(), timelineStart) * dayWidth;
|
|
2940
|
+
const getEpicStats = (epic) => {
|
|
2941
|
+
const epicTasks = tasks.filter((t) => extractId(t.epic) === epic.id);
|
|
2942
|
+
const done = epicTasks.filter((t) => t.status === "done").length;
|
|
2943
|
+
const pct = epicTasks.length > 0 ? Math.round(done / epicTasks.length * 100) : 0;
|
|
2944
|
+
return { total: epicTasks.length, done, pct };
|
|
2945
|
+
};
|
|
2946
|
+
const getGroupStats = (epicList) => {
|
|
2947
|
+
const allTasks = epicList.flatMap(
|
|
2948
|
+
(e) => tasks.filter((t) => extractId(t.epic) === e.id)
|
|
2949
|
+
);
|
|
2950
|
+
const done = allTasks.filter((t) => t.status === "done").length;
|
|
2951
|
+
const pct = allTasks.length > 0 ? Math.round(done / allTasks.length * 100) : 0;
|
|
2952
|
+
return { total: allTasks.length, done, pct };
|
|
2953
|
+
};
|
|
2954
|
+
const isSprintActive = (sprint) => {
|
|
2955
|
+
const today = /* @__PURE__ */ new Date();
|
|
2956
|
+
try {
|
|
2957
|
+
return (0, import_date_fns.isWithinInterval)(today, {
|
|
2958
|
+
start: new Date(sprint.startDate),
|
|
2959
|
+
end: new Date(sprint.endDate)
|
|
2960
|
+
});
|
|
2961
|
+
} catch {
|
|
2962
|
+
return false;
|
|
2963
|
+
}
|
|
2964
|
+
};
|
|
2965
|
+
const chartContent = /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-1 min-h-0 overflow-hidden", children: [
|
|
2966
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "w-52 flex-shrink-0 border-r bg-background z-10 flex flex-col", children: [
|
|
2967
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
2968
|
+
"div",
|
|
2969
|
+
{
|
|
2970
|
+
className: "border-b flex items-end pb-2 px-3 flex-shrink-0 bg-muted/20",
|
|
2971
|
+
style: { height: TIME_HEADER_HEIGHT },
|
|
2972
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-xs font-semibold text-muted-foreground tracking-wider uppercase", children: "Epic" })
|
|
2973
|
+
}
|
|
2974
|
+
),
|
|
2975
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "overflow-y-auto flex-1", children: [
|
|
2976
|
+
sortedKeys.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex items-center justify-center h-24 text-sm text-muted-foreground", children: "No epics" }),
|
|
2977
|
+
sortedKeys.map((name) => {
|
|
2978
|
+
const stats = getGroupStats(groups[name]);
|
|
2979
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
2980
|
+
"div",
|
|
2850
2981
|
{
|
|
2851
|
-
|
|
2852
|
-
|
|
2982
|
+
className: "flex flex-col justify-center px-3 border-b",
|
|
2983
|
+
style: { height: ROW_HEIGHT },
|
|
2853
2984
|
children: [
|
|
2854
|
-
/* @__PURE__ */ (0,
|
|
2855
|
-
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-sm font-medium truncate", title: name, children: name }),
|
|
2986
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "text-xs text-muted-foreground", children: [
|
|
2987
|
+
stats.total,
|
|
2988
|
+
" task",
|
|
2989
|
+
stats.total !== 1 ? "s" : "",
|
|
2990
|
+
" \xB7 ",
|
|
2991
|
+
stats.pct,
|
|
2992
|
+
"%"
|
|
2993
|
+
] })
|
|
2856
2994
|
]
|
|
2857
|
-
}
|
|
2858
|
-
|
|
2859
|
-
|
|
2995
|
+
},
|
|
2996
|
+
name
|
|
2997
|
+
);
|
|
2998
|
+
})
|
|
2860
2999
|
] })
|
|
2861
|
-
] })
|
|
2862
|
-
|
|
2863
|
-
/* @__PURE__ */ (0,
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
3000
|
+
] }),
|
|
3001
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex-1 overflow-x-auto overflow-y-auto", ref: scrollRef, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { width: totalWidth, position: "relative" }, children: [
|
|
3002
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
3003
|
+
"div",
|
|
3004
|
+
{
|
|
3005
|
+
className: "sticky top-0 border-b bg-muted/20 z-20 flex-shrink-0",
|
|
3006
|
+
style: { height: TIME_HEADER_HEIGHT, width: totalWidth },
|
|
3007
|
+
children: [
|
|
3008
|
+
monthHeaders.map(({ month, left }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3009
|
+
"div",
|
|
3010
|
+
{
|
|
3011
|
+
className: "absolute top-2 text-xs font-semibold text-muted-foreground select-none",
|
|
3012
|
+
style: { left: left + 4 },
|
|
3013
|
+
children: (0, import_date_fns.format)(month, "MMM yyyy")
|
|
3014
|
+
},
|
|
3015
|
+
month.toISOString()
|
|
3016
|
+
)),
|
|
3017
|
+
realSprints.map((sprint) => {
|
|
3018
|
+
const start = new Date(sprint.startDate);
|
|
3019
|
+
const end = new Date(sprint.endDate);
|
|
3020
|
+
if (start > timelineEnd || end < timelineStart) return null;
|
|
3021
|
+
const left = Math.max(0, (0, import_date_fns.differenceInDays)(start, timelineStart) * dayWidth);
|
|
3022
|
+
const right = Math.min(
|
|
3023
|
+
totalWidth,
|
|
3024
|
+
(0, import_date_fns.differenceInDays)(end, timelineStart) * dayWidth
|
|
3025
|
+
);
|
|
3026
|
+
const width = right - left;
|
|
3027
|
+
if (width <= 0) return null;
|
|
3028
|
+
const active = isSprintActive(sprint);
|
|
3029
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3030
|
+
"div",
|
|
3031
|
+
{
|
|
3032
|
+
className: `absolute bottom-0 border-l border-t text-xs px-1 overflow-hidden whitespace-nowrap select-none flex items-center ${active ? "border-primary/50 bg-primary/10 text-primary font-medium" : "border-border bg-muted/40 text-muted-foreground"}`,
|
|
3033
|
+
style: { left, width, height: 22 },
|
|
3034
|
+
title: sprint.name,
|
|
3035
|
+
children: sprint.name
|
|
3036
|
+
},
|
|
3037
|
+
`header-sprint-${sprint.id}`
|
|
3038
|
+
);
|
|
3039
|
+
})
|
|
3040
|
+
]
|
|
3041
|
+
}
|
|
3042
|
+
),
|
|
3043
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { position: "relative", width: totalWidth }, children: [
|
|
3044
|
+
realSprints.map((sprint) => {
|
|
3045
|
+
const start = new Date(sprint.startDate);
|
|
3046
|
+
const end = new Date(sprint.endDate);
|
|
3047
|
+
if (start > timelineEnd || end < timelineStart) return null;
|
|
3048
|
+
const left = Math.max(0, (0, import_date_fns.differenceInDays)(start, timelineStart) * dayWidth);
|
|
3049
|
+
const right = Math.min(
|
|
3050
|
+
totalWidth,
|
|
3051
|
+
(0, import_date_fns.differenceInDays)(end, timelineStart) * dayWidth
|
|
3052
|
+
);
|
|
3053
|
+
const width = right - left;
|
|
3054
|
+
if (width <= 0 || !isSprintActive(sprint)) return null;
|
|
3055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3056
|
+
"div",
|
|
3057
|
+
{
|
|
3058
|
+
className: "absolute inset-y-0 bg-primary/5 pointer-events-none",
|
|
3059
|
+
style: { left, width }
|
|
3060
|
+
},
|
|
3061
|
+
`bg-${sprint.id}`
|
|
3062
|
+
);
|
|
3063
|
+
}),
|
|
3064
|
+
realSprints.map((sprint) => {
|
|
3065
|
+
const left = (0, import_date_fns.differenceInDays)(new Date(sprint.startDate), timelineStart) * dayWidth;
|
|
3066
|
+
if (left < 0 || left > totalWidth) return null;
|
|
3067
|
+
const active = isSprintActive(sprint);
|
|
3068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3069
|
+
"div",
|
|
3070
|
+
{
|
|
3071
|
+
className: `absolute inset-y-0 pointer-events-none ${active ? "border-l border-primary/40" : "border-l border-dashed border-border/60"}`,
|
|
3072
|
+
style: { left }
|
|
3073
|
+
},
|
|
3074
|
+
`line-${sprint.id}`
|
|
3075
|
+
);
|
|
3076
|
+
}),
|
|
3077
|
+
todayLeft >= 0 && todayLeft <= totalWidth && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
3078
|
+
"div",
|
|
2897
3079
|
{
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
3080
|
+
className: "absolute inset-y-0 pointer-events-none z-10",
|
|
3081
|
+
style: { left: todayLeft },
|
|
3082
|
+
children: [
|
|
3083
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "absolute inset-y-0 w-0.5 bg-destructive/50" }),
|
|
3084
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "absolute top-1 -translate-x-1/2 w-2 h-2 rounded-full bg-destructive" })
|
|
3085
|
+
]
|
|
2903
3086
|
}
|
|
2904
|
-
)
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
3087
|
+
),
|
|
3088
|
+
monthHeaders.map(({ month, left }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3089
|
+
"div",
|
|
3090
|
+
{
|
|
3091
|
+
className: "absolute inset-y-0 border-l border-border/30 pointer-events-none",
|
|
3092
|
+
style: { left }
|
|
3093
|
+
},
|
|
3094
|
+
`grid-${month.toISOString()}`
|
|
3095
|
+
)),
|
|
3096
|
+
sortedKeys.map((name) => {
|
|
3097
|
+
const epicList = groups[name];
|
|
3098
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3099
|
+
"div",
|
|
3100
|
+
{
|
|
3101
|
+
className: "border-b relative flex items-center",
|
|
3102
|
+
style: { height: ROW_HEIGHT },
|
|
3103
|
+
children: epicList.map((epic) => {
|
|
3104
|
+
const start = new Date(epic.startDate);
|
|
3105
|
+
const end = new Date(epic.endDate);
|
|
3106
|
+
const left = (0, import_date_fns.differenceInDays)(start, timelineStart) * dayWidth;
|
|
3107
|
+
const width = Math.max(8, (0, import_date_fns.differenceInDays)(end, start) * dayWidth);
|
|
3108
|
+
const stats = getEpicStats(epic);
|
|
3109
|
+
const phaseLabel = PHASE_LABELS[epic.phase] ?? `Phase ${epic.phase}`;
|
|
3110
|
+
const showLabel = width >= 50;
|
|
3111
|
+
const tooltip = [
|
|
3112
|
+
`${epic.name} \xB7 ${phaseLabel}`,
|
|
3113
|
+
epic.description ? epic.description : null,
|
|
3114
|
+
`${(0, import_date_fns.format)(start, "dd MMM yyyy")} \u2192 ${(0, import_date_fns.format)(end, "dd MMM yyyy")}`,
|
|
3115
|
+
`${stats.total} tasks \xB7 ${stats.pct}% complete`
|
|
3116
|
+
].filter(Boolean).join("\n");
|
|
3117
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
3118
|
+
"div",
|
|
3119
|
+
{
|
|
3120
|
+
className: "absolute rounded overflow-hidden cursor-pointer hover:ring-2 hover:ring-white/40 transition-all",
|
|
3121
|
+
style: { left, width, height: 32, top: 8 },
|
|
3122
|
+
title: tooltip,
|
|
3123
|
+
children: [
|
|
3124
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3125
|
+
"div",
|
|
3126
|
+
{
|
|
3127
|
+
className: `absolute inset-0 ${epic.color}`,
|
|
3128
|
+
style: { opacity: 0.2 }
|
|
3129
|
+
}
|
|
3130
|
+
),
|
|
3131
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3132
|
+
"div",
|
|
3133
|
+
{
|
|
3134
|
+
className: `absolute inset-y-0 left-0 ${epic.color} transition-all`,
|
|
3135
|
+
style: { width: `${stats.pct}%`, opacity: 0.85 }
|
|
3136
|
+
}
|
|
3137
|
+
),
|
|
3138
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "absolute inset-0 flex items-center px-2 gap-1.5 z-10", children: [
|
|
3139
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-xs font-semibold text-white drop-shadow truncate", children: phaseLabel }),
|
|
3140
|
+
stats.total > 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "text-xs text-white/80 drop-shadow shrink-0", children: [
|
|
3141
|
+
stats.pct,
|
|
3142
|
+
"%"
|
|
3143
|
+
] })
|
|
3144
|
+
] })
|
|
3145
|
+
]
|
|
3146
|
+
},
|
|
3147
|
+
epic.id
|
|
3148
|
+
);
|
|
3149
|
+
})
|
|
3150
|
+
},
|
|
3151
|
+
name
|
|
3152
|
+
);
|
|
3153
|
+
}),
|
|
3154
|
+
sortedKeys.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3155
|
+
"div",
|
|
2910
3156
|
{
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
onClick: () => setIsExpanded(!isExpanded),
|
|
2915
|
-
children: isExpanded ? "Show less" : `+${colleague.capabilities.length - 2} more`
|
|
3157
|
+
className: "flex items-center justify-center text-sm text-muted-foreground",
|
|
3158
|
+
style: { height: 200 },
|
|
3159
|
+
children: "No epics to display on the timeline"
|
|
2916
3160
|
}
|
|
2917
3161
|
)
|
|
2918
|
-
] })
|
|
2919
|
-
] })
|
|
3162
|
+
] })
|
|
3163
|
+
] }) })
|
|
2920
3164
|
] });
|
|
2921
|
-
}
|
|
3165
|
+
const inner = /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: `flex flex-col ${isFullscreen ? "h-screen" : "h-full"} overflow-hidden`, children: [
|
|
3166
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { ref: heroRef, className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3167
|
+
DashboardHero,
|
|
3168
|
+
{
|
|
3169
|
+
title: "Gantt Chart",
|
|
3170
|
+
description: "Epic timeline with sprint alignment and phase-based grouping.",
|
|
3171
|
+
gradient: "bg-gradient-to-r from-indigo-600 via-blue-600 to-cyan-600",
|
|
3172
|
+
badge: `${sortedKeys.length} epic${sortedKeys.length !== 1 ? "s" : ""}`
|
|
3173
|
+
}
|
|
3174
|
+
) }),
|
|
3175
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2 px-4 py-2 border-b bg-background flex-shrink-0", children: [
|
|
3176
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.BarChart2, { className: "h-4 w-4 text-muted-foreground" }),
|
|
3177
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex items-center gap-1", children: ZOOM_LEVELS.map((z) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3178
|
+
Button,
|
|
3179
|
+
{
|
|
3180
|
+
variant: dayWidth === z.dayWidth ? "default" : "outline",
|
|
3181
|
+
size: "sm",
|
|
3182
|
+
className: "h-7 px-2 text-xs",
|
|
3183
|
+
onClick: () => setDayWidth(z.dayWidth),
|
|
3184
|
+
children: z.label
|
|
3185
|
+
},
|
|
3186
|
+
z.label
|
|
3187
|
+
)) }),
|
|
3188
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex-1" }),
|
|
3189
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
3190
|
+
Button,
|
|
3191
|
+
{
|
|
3192
|
+
variant: "outline",
|
|
3193
|
+
size: "sm",
|
|
3194
|
+
className: "h-7 px-2 text-xs",
|
|
3195
|
+
onClick: scrollToToday,
|
|
3196
|
+
children: [
|
|
3197
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Calendar, { className: "h-3 w-3 mr-1" }),
|
|
3198
|
+
"Today"
|
|
3199
|
+
]
|
|
3200
|
+
}
|
|
3201
|
+
),
|
|
3202
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3203
|
+
Button,
|
|
3204
|
+
{
|
|
3205
|
+
variant: "outline",
|
|
3206
|
+
size: "sm",
|
|
3207
|
+
className: "h-7 w-7 p-0",
|
|
3208
|
+
onClick: () => setIsFullscreen((v) => !v),
|
|
3209
|
+
title: isFullscreen ? "Exit fullscreen" : "Fullscreen",
|
|
3210
|
+
children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Minimize2, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react2.Maximize2, { className: "h-3.5 w-3.5" })
|
|
3211
|
+
}
|
|
3212
|
+
)
|
|
3213
|
+
] }),
|
|
3214
|
+
chartContent
|
|
3215
|
+
] });
|
|
3216
|
+
if (isFullscreen) {
|
|
3217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "fixed inset-0 z-50 bg-background overflow-hidden", children: inner });
|
|
3218
|
+
}
|
|
3219
|
+
return inner;
|
|
3220
|
+
};
|
|
2922
3221
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2923
3222
|
0 && (module.exports = {
|
|
2924
|
-
|
|
3223
|
+
GanttView
|
|
2925
3224
|
});
|