@mavea/mavea 2.1.1 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/dist/.vite/manifest.json +639 -569
- package/dist/assets/{AnnotationLayer-0YQgrjN3.js → AnnotationLayer-CzXCVZCu.js} +1 -1
- package/dist/assets/{AppCommandPalette-CeNtZzhG.js → AppCommandPalette-D6904cc9.js} +1 -1
- package/dist/assets/{CheckLogRail-CPKGKw7i.js → CheckLogRail-CeRhbIwa.js} +1 -1
- package/dist/assets/{ConversationVideoStudio-BLU1b2u_.js → ConversationVideoStudio-Cyu-M9Us.js} +1 -1
- package/dist/assets/{CourseLessonReader-Ci4BguIU.js → CourseLessonReader-BvTabDPT.js} +2 -2
- package/dist/assets/{CoursesApp-CErXxpH-.js → CoursesApp-B8kZ6pFr.js} +2 -2
- package/dist/assets/{DashPresent-w5oqKZpo.js → DashPresent-Dr0LLNnz.js} +1 -1
- package/dist/assets/{DashboardDetail-Dej7CPf7.js → DashboardDetail-B5JZ6fRz.js} +2 -2
- package/dist/assets/{DashboardLoopGate-DzJol3Os.js → DashboardLoopGate-UHcbTCXN.js} +2 -2
- package/dist/assets/DashboardLoopRuntime-BZutKupS.js +1 -0
- package/dist/assets/{DashboardsApp-BQtz_4UA.js → DashboardsApp-DzVa4Nqd.js} +2 -2
- package/dist/assets/{DeepZoomApp-STtNq9C3.js → DeepZoomApp-CN8ZKeS4.js} +1 -1
- package/dist/assets/{DelegatePanel-C2_s1eW9.js → DelegatePanel-DO7J_rk_.js} +1 -1
- package/dist/assets/{DemoGallery-CXoaPF9b.js → DemoGallery-DMQP4JAa.js} +1 -1
- package/dist/assets/{DropSelect-rrPFJVkl.js → DropSelect-BVDNR47E.js} +1 -1
- package/dist/assets/{ExportModal-BS3He6V7.js → ExportModal-BVsirsNU.js} +1 -1
- package/dist/assets/{ExtractionPreview-CQ73RXM8.js → ExtractionPreview-872OE2ZI.js} +1 -1
- package/dist/assets/FallbackCard-CUe6i-zT.js +1 -0
- package/dist/assets/{FeatureUseNotice-lFcApjaS.js → FeatureUseNotice-BNDajs0p.js} +1 -1
- package/dist/assets/{FlagshipCommandPalette-D6gjWvTe.js → FlagshipCommandPalette-mKkMVsza.js} +1 -1
- package/dist/assets/{FlagshipShowcase-mZDqHQtE.js → FlagshipShowcase-CL_KWgKn.js} +1 -1
- package/dist/assets/{FlashcardsApp-C8gRaBO8.js → FlashcardsApp-COYviD1h.js} +1 -1
- package/dist/assets/GalleryApp-B5z9rsrO.css +1 -0
- package/dist/assets/GalleryApp-D96R7Hdy.js +2 -0
- package/dist/assets/{HonestByDesign-Czur9n6R.js → HonestByDesign-DOg91fEf.js} +1 -1
- package/dist/assets/{HowItWorks-CA9WdZQ6.js → HowItWorks-D4lHSwEb.js} +1 -1
- package/dist/assets/{LegalApp-BCnZfHNq.js → LegalApp-BSPhYvKz.js} +1 -1
- package/dist/assets/{LegalMarkdownDocument-CNsihJ1F.js → LegalMarkdownDocument-DDUOgn72.js} +1 -1
- package/dist/assets/{LegalPageShell-8HHhJAPo.js → LegalPageShell-DSbe8dTr.js} +1 -1
- package/dist/assets/{LibraryOverlay-CGDPmvnX.js → LibraryOverlay-CEhVoSyv.js} +1 -1
- package/dist/assets/{LiveApp-CEaISHEZ.css → LiveApp-Dc7Mk5oS.css} +1 -1
- package/dist/assets/LiveApp-DtpM4tO0.js +79 -0
- package/dist/assets/{LiveSettings-Bx7Uu6Fl.js → LiveSettings-C7luyoWU.js} +3 -3
- package/dist/assets/{MindMapViewerDrawer-CBLaSq-i.js → MindMapViewerDrawer-DxcjLJzB.js} +1 -1
- package/dist/assets/{MindShape-QuVL_EXi.js → MindShape-DhEmAQeq.js} +1 -1
- package/dist/assets/{PinToDashboard-CddhBx85.js → PinToDashboard-CQHDENt1.js} +1 -1
- package/dist/assets/{PlanReview-DCPDkqLj.js → PlanReview-f7EY7XTc.js} +1 -1
- package/dist/assets/{PresentationDeck-DV8AeOrh.js → PresentationDeck-Bo1BVx73.js} +1 -1
- package/dist/assets/{PrismApp-BHcClSEQ.js → PrismApp-CBr8XpUt.js} +2 -2
- package/dist/assets/{PrismBriefingPlayer-CDkaBWup.js → PrismBriefingPlayer-qNjVbmUq.js} +2 -2
- package/dist/assets/{PrismOverlay-DRWAI9Mh.js → PrismOverlay-L_lLIH_1.js} +3 -3
- package/dist/assets/{PrismWorkbench-B2uSg63W.js → PrismWorkbench-DK-1IY4A.js} +1 -1
- package/dist/assets/{PrivacyApp-CoFgfPwJ.js → PrivacyApp-DT8wZumn.js} +1 -1
- package/dist/assets/{ReplayCard-CLlaKpWg.js → ReplayCard-BQr6DWYi.js} +2 -2
- package/dist/assets/{ReplayOverlay-W3KwhRaQ.js → ReplayOverlay-CRVixwg2.js} +1 -1
- package/dist/assets/{RippleApp-CEJvJl-c.js → RippleApp-CMY2OCRm.js} +2 -2
- package/dist/assets/{RippleOverlay-DHnHEYoS.js → RippleOverlay-Dwi8Ir43.js} +2 -2
- package/dist/assets/{SeeDontRead-tA-fTWQW.js → SeeDontRead-BkeAv1Jd.js} +1 -1
- package/dist/assets/{ShareModal-Ys5NYDZR.js → ShareModal-DVwc57KT.js} +2 -2
- package/dist/assets/{ShipCourse-C3pjBELa.js → ShipCourse-BNEPgsV5.js} +1 -1
- package/dist/assets/{SignatureLoop-BNjDbepH.js → SignatureLoop-C9GvENvP.js} +1 -1
- package/dist/assets/{SynthesisApp-BCsFms4h.js → SynthesisApp-BPAT6v7a.js} +2 -2
- package/dist/assets/{SynthesisOverlay-iqXO09rf.js → SynthesisOverlay-u_W105hD.js} +1 -1
- package/dist/assets/{TemplatePicker-PWw_xyWb.js → TemplatePicker-CAC4ggbJ.js} +1 -1
- package/dist/assets/{TermsApp-B1D2SwN7.js → TermsApp-BlyUsTrJ.js} +1 -1
- package/dist/assets/TopicCanvas-CyBGLgb0.js +2 -0
- package/dist/assets/TopicCanvas-sGuo7pnQ.css +1 -0
- package/dist/assets/{TourPrism-Do4evVOo.js → TourPrism-Cn2YHIwh.js} +1 -1
- package/dist/assets/{TrackerTile-Dp7fvG4P.js → TrackerTile-Ds3ks6Bh.js} +2 -2
- package/dist/assets/{TwoSurfaces-CZA6zuue.js → TwoSurfaces-cdP8bAG9.js} +1 -1
- package/dist/assets/{WorldOverlay-EwAFBDvq.js → WorldOverlay-DPkQobVE.js} +2 -2
- package/dist/assets/{WowFeatures-DRKs2UGb.js → WowFeatures-BBtcWAOz.js} +1 -1
- package/dist/assets/{ZoomDeck-qJqKFxkc.js → ZoomDeck-Cdvkvo2H.js} +1 -1
- package/dist/assets/{audioTrack-myyVq6Sp.js → audioTrack-W_18XwGZ.js} +1 -1
- package/dist/assets/{backup-DkCsHNEE.js → backup-AymOkasb.js} +1 -1
- package/dist/assets/briefs-5oOobpyS.js +1 -0
- package/dist/assets/canvas-BX595EVB.js +1 -0
- package/dist/assets/{capture-MMxmbgt1.js → capture-Dyff_zSz.js} +1 -1
- package/dist/assets/catalog-vLsIS_Na.js +1 -0
- package/dist/assets/{confirmAdd-VLwpBNf_.js → confirmAdd-D_hDIeaD.js} +1 -1
- package/dist/assets/{dashboardEvents-CiE91_oj.js → dashboardEvents-BV0Ly6No.js} +1 -1
- package/dist/assets/{deepen-FZiVqiEc.js → deepen-D8kPrlU5.js} +1 -1
- package/dist/assets/docs-6X4Ki_cV.js +1 -0
- package/dist/assets/{effort-CQY4uJMS.js → effort-QeWrMtZt.js} +1 -1
- package/dist/assets/facts-CNQz8OQz.js +1 -0
- package/dist/assets/{generateBeats-Ci99Isyk.js → generateBeats-Da9RmZke.js} +1 -1
- package/dist/assets/{generateLive-DzBVo6Yg.js → generateLive-CDIkclO4.js} +1 -1
- package/dist/assets/{index-yJfYsjAB.js → index-BMeoXWPR.js} +3 -3
- package/dist/assets/{kokoro-DogSQaQB.js → kokoro-DcP-u0Tl.js} +1 -1
- package/dist/assets/{lens-DyGK7Owa.js → lens-Ba83fBmq.js} +1 -1
- package/dist/assets/liveSchema-eKgFc5D0.js +127 -0
- package/dist/assets/loader-BRfSnl9t.js +2 -0
- package/dist/assets/notes-BDCTTA87.js +1 -0
- package/dist/assets/overflowAudit-DQLYFrM8.js +1 -0
- package/dist/assets/{perfProbe-q5Gt55We.js → perfProbe-ssw0AtWX.js} +1 -1
- package/dist/assets/{pin-BReqt-Wx.js → pin-Bic4-gim.js} +1 -1
- package/dist/assets/{portal-XWyi6FIz.js → portal-Dpb34d3-.js} +1 -1
- package/dist/assets/{prewarm-DOqg5zPk.js → prewarm-xdXDmF8B.js} +1 -1
- package/dist/assets/{quietHours-kEvnJP2S.js → quietHours-uFS7n8N6.js} +1 -1
- package/dist/assets/registry-B3HqLZyO.css +1 -0
- package/dist/assets/registry-BV02ROnH.js +1 -0
- package/dist/assets/{registry-CQ0bMOV_.js → registry-BWx2f_wi.js} +1 -1
- package/dist/assets/registry-BZsqAOnQ.css +1 -0
- package/dist/assets/registry-BoLdoGPW.js +1 -0
- package/dist/assets/registry-Bs5HUWIJ.js +1 -0
- package/dist/assets/registry-CLHP_r7X.js +1 -0
- package/dist/assets/registry-CT85vG1M.js +1 -0
- package/dist/assets/registry-CdPShFc3.js +1 -0
- package/dist/assets/{registry-CIcGBgtK.css → registry-CnNL4jmR.css} +1 -1
- package/dist/assets/registry-CyPRooIp.css +1 -0
- package/dist/assets/registry-D5O0Ptw_.css +1 -0
- package/dist/assets/registry-DNIasVGX.js +2 -0
- package/dist/assets/registry-DOctfuxc.js +1 -0
- package/dist/assets/{registry-BZuT2Epw.css → registry-DhWVSz_J.css} +1 -1
- package/dist/assets/registry-DueizAoA.js +1 -0
- package/dist/assets/{registry-B7zPuTCI.js → registry-PAcazQzL.js} +1 -1
- package/dist/assets/registry-brX673Dg.css +1 -0
- package/dist/assets/{registry-C4Yh05pk.js → registry-nCDSZOmZ.js} +1 -1
- package/dist/assets/registry-sT9NoG1k.css +1 -0
- package/dist/assets/registry-yzYj0SNk.css +1 -0
- package/dist/assets/{relate-CsRMEWBw.js → relate-BHJl3RaA.js} +1 -1
- package/dist/assets/{replay-BlrkSDMO.js → replay-DoRQJHjZ.js} +1 -1
- package/dist/assets/select-StjZ4ZRN.js +3 -0
- package/dist/assets/shapes-BwXCYTlu.js +1 -0
- package/dist/assets/shard001-BrI-88cO.js +1 -0
- package/dist/assets/shard002-CVTdbXod.js +1 -0
- package/dist/assets/shard003-Bilw1tcB.js +1 -0
- package/dist/assets/shard004-Cq0Or-2a.js +1 -0
- package/dist/assets/shard005-Wh3WypcW.js +1 -0
- package/dist/assets/shard006-BAUUhTjB.js +1 -0
- package/dist/assets/shard007-DYMH8Yxn.js +1 -0
- package/dist/assets/shard008-DsrV7tH6.js +1 -0
- package/dist/assets/shard009-Bsf_hKwR.js +1 -0
- package/dist/assets/shard010-B5P3ny1k.js +1 -0
- package/dist/assets/shard010-Bal9PeRL.js +1 -0
- package/dist/assets/shard011-BgeG9-or.js +1 -0
- package/dist/assets/shard012-BDkbj6cq.js +1 -0
- package/dist/assets/shard013-G23LG7Fa.js +1 -0
- package/dist/assets/shard014-CnDxCS2j.js +1 -0
- package/dist/assets/shard015-JvmiIIrG.js +1 -0
- package/dist/assets/shard016-BVcRKptB.js +1 -0
- package/dist/assets/shard017-DrpF6FaE.js +1 -0
- package/dist/assets/shard018-Bi11C9yu.js +1 -0
- package/dist/assets/shard019-QyeKtIb0.js +1 -0
- package/dist/assets/shard020-Djc1cf5i.js +1 -0
- package/dist/assets/shard021-D2RM4FCA.js +1 -0
- package/dist/assets/shard022-DRT0Qsp3.js +1 -0
- package/dist/assets/shard023-COM71H0n.js +1 -0
- package/dist/assets/shard024-DEnCOj6l.js +1 -0
- package/dist/assets/shard025-DHxYqsae.js +1 -0
- package/dist/assets/shard026-BIgdfcha.js +1 -0
- package/dist/assets/shard027-CvJzY_e0.js +1 -0
- package/dist/assets/shard028-57qhg2sc.js +1 -0
- package/dist/assets/shard029-Dx2Qnz9G.js +1 -0
- package/dist/assets/shard030-CtC4LpQR.js +1 -0
- package/dist/assets/shard031-jLIDhN2C.js +1 -0
- package/dist/assets/shard032-BDQTeOZV.js +1 -0
- package/dist/assets/shard033-955G5ec6.js +1 -0
- package/dist/assets/shard034-Bu3aEL9i.js +1 -0
- package/dist/assets/shard035-B2E-tzQZ.js +1 -0
- package/dist/assets/shard036-BEyPFMoV.js +1 -0
- package/dist/assets/shard037-CFQfstFa.js +1 -0
- package/dist/assets/shard038-C3QlFW5S.js +1 -0
- package/dist/assets/shard039-DFpQvV8e.js +1 -0
- package/dist/assets/shard040-I3SaNaKO.js +1 -0
- package/dist/assets/shard041-B1UVtmcS.js +1 -0
- package/dist/assets/shard042-DGJ4rHUt.js +1 -0
- package/dist/assets/shard043-BCie8K9U.js +1 -0
- package/dist/assets/shard044-DeFpPsR0.js +1 -0
- package/dist/assets/{shard043-BKoTEB-H.js → shard045-COwX5PHB.js} +1 -1
- package/dist/assets/shard046-CDOiSCGB.js +1 -0
- package/dist/assets/shard047-CuL2iVAe.js +1 -0
- package/dist/assets/shard048-B7z0WHO6.js +1 -0
- package/dist/assets/shard049-C4_IyApZ.js +1 -0
- package/dist/assets/shard049-D1yDablJ.js +1 -0
- package/dist/assets/shard050-DJi3AgeT.js +1 -0
- package/dist/assets/shard051-D_2ipfUr.js +1 -0
- package/dist/assets/shard052-1aGgWZdd.js +1 -0
- package/dist/assets/shard053-Bjwa0Og4.js +1 -0
- package/dist/assets/shard054-Cx_GAk3v.js +1 -0
- package/dist/assets/shard055-LaeOD3V5.js +1 -0
- package/dist/assets/shard056-CAArZwW0.js +1 -0
- package/dist/assets/shard057-CM8eSRQk.js +1 -0
- package/dist/assets/shard058-QRpDl4Vs.js +1 -0
- package/dist/assets/shard059-DkY7CQm3.js +1 -0
- package/dist/assets/shard060-BVCgf7o0.js +1 -0
- package/dist/assets/shard061-93aGtdrX.js +1 -0
- package/dist/assets/shard062-rJE9X1_I.js +1 -0
- package/dist/assets/shard063-Co_V_D1g.js +1 -0
- package/dist/assets/{shard062-BJ8OX6CJ.js → shard064-C9A8iNiq.js} +1 -1
- package/dist/assets/shard065-CpmX_yt1.js +1 -0
- package/dist/assets/shard066-C_uen3Ub.js +1 -0
- package/dist/assets/shard067-Dl5k0N1Z.js +1 -0
- package/dist/assets/shard068-DLIIO7yh.js +1 -0
- package/dist/assets/shard069-D15zOFva.js +1 -0
- package/dist/assets/shard070-BwHL1JLg.js +1 -0
- package/dist/assets/shard071-BFQhwU3I.js +1 -0
- package/dist/assets/shard072-DC9v9Ysb.js +1 -0
- package/dist/assets/shard073-CicaGoa8.js +1 -0
- package/dist/assets/shard074-BvwBlB0R.js +1 -0
- package/dist/assets/shard075-BDKPICyR.js +1 -0
- package/dist/assets/shard076-COQxCeXV.js +1 -0
- package/dist/assets/{shard076-DZHs0uzd.js → shard076-b5-2mnEN.js} +1 -1
- package/dist/assets/shard077-DGa0bRNk.js +1 -0
- package/dist/assets/shard077-wv2mA5w5.js +1 -0
- package/dist/assets/shard078-CI97pFkb.js +1 -0
- package/dist/assets/shard078-D64eVQuV.js +1 -0
- package/dist/assets/{useDashboardLoop-CA3LNVME.js → useDashboardLoop-DEE_sLT0.js} +3 -3
- package/dist/assets/{walkSync-BfK0U5vB.js → walkSync-CRhkAQFu.js} +1 -1
- package/dist/demo-assets/CREDITS.md +36 -0
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/DashboardLoopRuntime-CX63-Gn4.js +0 -1
- package/dist/assets/FallbackCard-ap_4wOfj.js +0 -1
- package/dist/assets/GalleryApp-B1CB3_81.css +0 -1
- package/dist/assets/GalleryApp-ChsuVZqR.js +0 -1
- package/dist/assets/LiveApp-CnTYFYf1.js +0 -79
- package/dist/assets/TopicCanvas-DWTm611H.css +0 -1
- package/dist/assets/TopicCanvas-xwDjwqxn.js +0 -2
- package/dist/assets/canvas-OSBUSYbY.js +0 -1
- package/dist/assets/catalog-CRekRbKO.js +0 -1
- package/dist/assets/docs-B2aDtm5K.js +0 -1
- package/dist/assets/facts-BUGuVUIc.js +0 -1
- package/dist/assets/liveSchema-Z_39HuDI.js +0 -125
- package/dist/assets/loader-BPVv7hEn.js +0 -2
- package/dist/assets/notes-C-RNIoXo.js +0 -1
- package/dist/assets/registry-B5S3brjM.css +0 -1
- package/dist/assets/registry-BAoRB8rd.css +0 -1
- package/dist/assets/registry-BB0UFcJi.js +0 -1
- package/dist/assets/registry-BmjYillB.js +0 -1
- package/dist/assets/registry-BvtWVDCw.js +0 -2
- package/dist/assets/registry-C3ezxLR3.css +0 -1
- package/dist/assets/registry-CnDAxBcl.js +0 -1
- package/dist/assets/registry-CwRTUk0R.js +0 -1
- package/dist/assets/registry-DTNUXJuV.js +0 -1
- package/dist/assets/registry-Dbe9TQPw.css +0 -1
- package/dist/assets/registry-S3j4OpCH.js +0 -1
- package/dist/assets/registry-YrewlFlo.js +0 -1
- package/dist/assets/registry-dmR14XnY.css +0 -1
- package/dist/assets/registry-twSIyxJQ.css +0 -1
- package/dist/assets/select-BuqyXI8k.js +0 -3
- package/dist/assets/shapes-BwoDrn09.js +0 -1
- package/dist/assets/shard001-gQEQs7_F.js +0 -1
- package/dist/assets/shard002-DbDas-W-.js +0 -1
- package/dist/assets/shard003-DxMszG4_.js +0 -1
- package/dist/assets/shard004-DZMpLBw1.js +0 -1
- package/dist/assets/shard005-Dp5TM33O.js +0 -1
- package/dist/assets/shard006-DpJfkjmW.js +0 -1
- package/dist/assets/shard007-CIQN8OfZ.js +0 -1
- package/dist/assets/shard008-BFiyL7r6.js +0 -1
- package/dist/assets/shard009-0s30Tkk9.js +0 -1
- package/dist/assets/shard010-CQfR6lnk.js +0 -1
- package/dist/assets/shard010-DPhgF5ck.js +0 -1
- package/dist/assets/shard011-C2jVsC25.js +0 -1
- package/dist/assets/shard012-DYtN5yzJ.js +0 -1
- package/dist/assets/shard013-1D6_Qy9C.js +0 -1
- package/dist/assets/shard014-D8s7GHnm.js +0 -1
- package/dist/assets/shard015-16W6KgnL.js +0 -1
- package/dist/assets/shard016-B4PpWmro.js +0 -1
- package/dist/assets/shard017-BO1sA5b3.js +0 -1
- package/dist/assets/shard018-D4gn8z25.js +0 -1
- package/dist/assets/shard019-vSbfaqRA.js +0 -1
- package/dist/assets/shard020-DwbHP8bp.js +0 -1
- package/dist/assets/shard021-BhEyVVAL.js +0 -1
- package/dist/assets/shard022-BdT7zFy3.js +0 -1
- package/dist/assets/shard023-Dga_NQcm.js +0 -1
- package/dist/assets/shard024-CXHofcxc.js +0 -1
- package/dist/assets/shard025-a4CQKYw1.js +0 -1
- package/dist/assets/shard026-0rhLKfDL.js +0 -1
- package/dist/assets/shard027-C9GMfOtn.js +0 -1
- package/dist/assets/shard028-D9__rPnw.js +0 -1
- package/dist/assets/shard029-BSdYKGgG.js +0 -1
- package/dist/assets/shard030-DceOU7pS.js +0 -1
- package/dist/assets/shard031-C6_p076r.js +0 -1
- package/dist/assets/shard032-Cah16sJi.js +0 -1
- package/dist/assets/shard033-D-iobGzc.js +0 -1
- package/dist/assets/shard034-DIyfCKl8.js +0 -1
- package/dist/assets/shard035-BHWs8v0a.js +0 -1
- package/dist/assets/shard036-AhOPHqzq.js +0 -1
- package/dist/assets/shard037-CuAGDOOu.js +0 -1
- package/dist/assets/shard038-CYdtnPjK.js +0 -1
- package/dist/assets/shard039-DgvXKOyi.js +0 -1
- package/dist/assets/shard040-DO012waT.js +0 -1
- package/dist/assets/shard041-BeUicA1R.js +0 -1
- package/dist/assets/shard042-D2zbq14A.js +0 -1
- package/dist/assets/shard044-bmYKfH3A.js +0 -1
- package/dist/assets/shard045-i_R1olD9.js +0 -1
- package/dist/assets/shard046-CFk2L0GQ.js +0 -1
- package/dist/assets/shard047-pjHCnVaT.js +0 -1
- package/dist/assets/shard048-Cc7tGz6R.js +0 -1
- package/dist/assets/shard049-C9eoD-6Z.js +0 -1
- package/dist/assets/shard049-hPaNN2sL.js +0 -1
- package/dist/assets/shard050-V3c_ZDrB.js +0 -1
- package/dist/assets/shard051-D1ISwZzf.js +0 -1
- package/dist/assets/shard052-Dy09xx3S.js +0 -1
- package/dist/assets/shard053-Bi4Z4cwW.js +0 -1
- package/dist/assets/shard054-CNzJxw2V.js +0 -1
- package/dist/assets/shard055-D2NJeMN1.js +0 -1
- package/dist/assets/shard056-sSFMbxXN.js +0 -1
- package/dist/assets/shard057-DhNK5nyZ.js +0 -1
- package/dist/assets/shard058-Du4SjxeD.js +0 -1
- package/dist/assets/shard059-fGiLnJzG.js +0 -1
- package/dist/assets/shard060-l84MDY2t.js +0 -1
- package/dist/assets/shard061-B3aIa7Aa.js +0 -1
- package/dist/assets/shard063-CMo-7Qit.js +0 -1
- package/dist/assets/shard064-B0EEOnfG.js +0 -1
- package/dist/assets/shard065-D-StlUHp.js +0 -1
- package/dist/assets/shard066-C2edvdvh.js +0 -1
- package/dist/assets/shard067-DFcuVhZm.js +0 -1
- package/dist/assets/shard068-BN8DM8JZ.js +0 -1
- package/dist/assets/shard069-i464K77p.js +0 -1
- package/dist/assets/shard070-BmNyRhxw.js +0 -1
- package/dist/assets/shard071-BPVvR8GH.js +0 -1
- package/dist/assets/shard072-Bal_0d9L.js +0 -1
- package/dist/assets/shard073-CBQu62kt.js +0 -1
- package/dist/assets/shard074-D5BRae0w.js +0 -1
- package/dist/assets/shard075-DtFvcBnZ.js +0 -1
- /package/dist/assets/{registry-Ci65uThi.js → registry-C4RNoF_2.js} +0 -0
- /package/dist/assets/{registry-Bjf2Ggs6.js → registry-CbKXa68-.js} +0 -0
- /package/dist/assets/{registry-Di1fTdpi.js → registry-Cdk7NOiD.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{lt as r}from"./index-yJfYsjAB.js";import{r as i}from"./format-q0LwBjID.js";import{i as a,n as o,r as s,t as c}from"./gesture-BBS5nQEi.js";import{n as l}from"./number-zqlPMliA.js";import{t as u}from"./emphasize-BqCIst-B.js";var d=e(),f=t(),p=r(),m=`svg text, img, canvas, video, button, input, select, textarea, a`,h=`.ink-layer, .ink-connect-layer, .note-rail`,g=600,_={left:-1e9,top:-1e9,width:2e9,height:2e9};function v(e){let t=[],n=e=>{e.width>0&&e.height>0&&t.length<g&&t.push(e)},r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),i;for(;i=r.nextNode();){if(t.length>=g)return[_];let e=i;if(!e.textContent?.trim()||e.parentElement?.closest(h))continue;let r=document.createRange();if(r.selectNodeContents(e),typeof r.getClientRects==`function`)for(let e of Array.from(r.getClientRects()))n(e)}for(let r of Array.from(e.querySelectorAll(m))){if(t.length>=g)return[_];r.closest(h)||n(r.getBoundingClientRect())}return t}function y(e,t,n=3){return e.left-n<t.left+t.width&&e.left+e.width+n>t.left&&e.top-n<t.top+t.height&&e.top+e.height+n>t.top}function b(e,t,n=3){for(let r of e)if(!t.some(e=>y(r.box,e,n)))return r.place;return null}var x=2,S=.5,C=28,w=/^[+\-\u2212]?\s*[$€£¥₹]?\s*\d[\d,]*(?:\.\d+)?\s*(?:%|pts?|×|x|k|m|bn)?$/i;function T(e){let t=Math.abs(e)>=10?Math.round(e):Math.round(e*10)/10;return i(t,{decimals:+!Number.isInteger(t)})}function E(e,t){return`${e<0?`−`:`+`}${T(Math.abs(e))}${t}`}function ee(e,t,n){if(n&&!w.test(n))return n;let r=l(e),i=l(t);if(!r||!i||r.kind!==i.kind)return n;let a=e=>e.length>C?e.slice(0,C):e;if(r.kind===`pct`){let e=i.value-r.value;return Math.abs(e)<S?n:a(E(e,` pts`))}if(r.value===0)return n;let o=i.value/r.value;if(o>=x)return a(`${T(o)}×`);let s=(i.value-r.value)/Math.abs(r.value)*100;return Math.abs(s)<S?n:a(E(s,`%`))}function te(e){let t=u(e).filter(e=>e.accent).map(e=>e.text.trim()),n=[],r=/\b[A-Z][\w+#.&-]*(?:\s+[A-Z][\w+#.&-]*)*/g;for(let t=r.exec(e);t;t=r.exec(e)){let r=e.slice(0,t.index).trimEnd();if((r===``||/[.!?…:—]$/.test(r)||/["“]$/.test(r))&&!t[0].includes(` `))continue;let i=t[0].replace(/[.,;:!?]+$/,``);i.length<3||n.push(i)}return{figures:t,labels:n}}function D(e){let t=``,n=[];for(let r=0;r<e.length;r++){let i=e[r];/[\s,\u00a0$€£¥₹₩₽+%°]/.test(i)||(t+=i.toLowerCase(),n.push(r))}return{norm:t,map:n}}var O=/[0-9.]/;function ne(e){return e.length>0&&[...e].every(e=>O.test(e))}function re(e,t,n){let r=t>0?e[t-1]:``,i=t+n<e.length?e[t+n]:``;return O.test(r)||O.test(i)}var ie=`.ink-layer, .block-ask, .card-eyebrow`;function k(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);for(let e=n.nextNode();e;e=n.nextNode()){let n=e,r=n.textContent??``;if(!r.trim()||n.parentElement?.closest(ie))continue;let{norm:i,map:a}=D(r);t.push({node:n,raw:r,norm:i,map:a})}return t}function A(e,t){for(let n of t){let t=D(n).norm;if(t.length<2)continue;let r=ne(t);for(let{node:n,norm:i,map:a}of e){let e=i.indexOf(t);for(;e>=0;){if(!r||!re(i,e,t.length))return{node:n,start:a[e],end:a[e+t.length-1]+1};e=i.indexOf(t,e+1)}}}return null}function j(e,t){return A(k(e),t)}var M=4,N=40,P=new Set([`the`,`and`,`with`,`from`,`into`,`this`,`that`,`then`,`than`,`over`,`under`,`each`,`both`,`more`,`less`,`total`,`other`]);function F(e,t){let n=D(t).norm;if(n.length<M)return null;let r=new Set,i=[];for(let t of e){let e=t.raw.trim();if(e.length<M||e.length>N)continue;let a=t.norm;a.length<M||P.has(a)||r.has(a)||n.includes(a)&&(r.add(a),i.push(e))}return i.sort((e,t)=>t.length-e.length),i.length?A(e,i):null}function I(e){let t=k(e);return{find:e=>A(t,e),echoed:e=>F(t,e)}}function ae(e,t){let n=e.node.parentElement;for(let e=0;n&&n!==t&&e<4;e++,n=n.parentElement)if(n.matches(`li, tr, .bar-col, .cat-row, .kpi, [class*="-row"], [class*="-item"], [class*="-col"]`))return n;return null}var oe=e=>[e.overflow,e.overflowX,e.overflowY].some(e=>e!==``&&e!==`visible`);function L(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;for(let e=t;e;e=e.parentElement){let t=getComputedStyle(e);if(t.display===`none`||t.visibility===`hidden`||Number(t.opacity)===0)return!1;if(!oe(t))continue;let n=e.getBoundingClientRect();if(n.height<=1||n.width<=1)return!1}return!0}function R(e){let t=document.createRange();if(t.setStart(e.node,e.start),t.setEnd(e.node,e.end),typeof t.getClientRects!=`function`)return null;let n=t.getClientRects(),r=n.length>0?n[0]:t.getBoundingClientRect();return!r||r.width<=0||r.height<=0?null:L(e.node)?r:null}function se(e){let t=document.createRange();return t.setStart(e.node,e.start),t.setEnd(e.node,e.end),typeof t.getClientRects!=`function`||!L(e.node)?[]:Array.from(t.getClientRects()).filter(e=>e.width>0&&e.height>0)}var z=100,ce=500,B=18,V=2,H=`.ink-layer, .ink-connect-layer, .note-rail`;function U(e){return!!(e instanceof Element?e:e.parentElement)?.closest(H)}function W(e,t,n,r){let i=!1,a,o=0,s=null,c=0,l,u,d,f=e=>{if(!l&&typeof ResizeObserver<`u`&&(l=new ResizeObserver(()=>h()),l.observe(e)),u||(u=e,e.addEventListener(`transitionend`,h)),!d&&typeof MutationObserver<`u`){let t=t=>U(t.target)?!1:t.type===`attributes`?t.target!==e||t.attributeName!==`style`&&t.attributeName!==`data-inking`:t.type!==`childList`||[...Array.from(t.addedNodes),...Array.from(t.removedNodes)].some(e=>!U(e));d=new MutationObserver(e=>{e.some(t)&&h()}),d.observe(e,{subtree:!0,childList:!0,attributes:!0,characterData:!0})}},p=()=>o>=B?ce:z,m=()=>{if(i)return;let l=e();if(l){f(n(l));let e=t(l);if(c=e===s?c+1:1,s=e,r(l),c>=V){o=0;return}}o++,!(o>=(s===null?B:30))&&(a=window.setTimeout(m,p()))},h=()=>{i||(window.clearTimeout(a),s===null&&(o=0),a=window.setTimeout(m,p()))};return a=window.setTimeout(m,z),window.addEventListener(`resize`,h),()=>{i=!0,window.clearTimeout(a),window.removeEventListener(`resize`,h),l?.disconnect(),d?.disconnect(),u?.removeEventListener(`transitionend`,h)}}function G(e){for(let t=e.length-1;t>=0;t--){let n=e[t].getBoundingClientRect();if(n.width>0&&n.height>0)return e[t]}return e[e.length-1]??null}var le=140;function ue(e,t=le){let n=e.trim().replace(/\s+/g,` `);if(!n)return``;let r=/^(.*?[.!?])(?:\s|$)/.exec(n)?.[1]??n;if(r.length<=t)return r;let i=r.slice(0,t+1),a=i.lastIndexOf(` `);return(a>0?i.slice(0,a):i.slice(0,t)).replace(/[,;:\s]+$/,``)+`…`}function de(e,t=12,n){if(e.length===0)return[];let r=e.map((e,t)=>({top:e.top,h:e.height??84,i:t})).sort((e,t)=>e.top-t.top||e.i-t.i),i=Array(e.length).fill(0),a=-1/0,o=-1/0;for(let{top:e,h:n,i:s}of r){let r=Math.max(e,a);i[s]=r,a=r+n+t,o=r+n}if(n!==void 0&&o>n){let e=Math.min(o-n,Math.max(0,Math.min(...i)));if(e>0)for(let t=0;t<i.length;t++)i[t]-=e}return i}var K=n(),fe=12,pe=e=>Math.ceil(Math.max(1,e.length)/26)*18+18,me=218,q=18;function J(e,t,n,r,i){let a=Math.min(n,r),o=Math.max(n,r);return e.some(e=>e!==t&&e.right>a&&e.left<o&&e.bottom>i-10&&e.top<i+10)}function he(e,t){let n=(t??document).querySelector(`.card-grid.note-gutter`);if(!n)return null;let r=n.getBoundingClientRect();if(r.width<=0)return null;let i=parseFloat(getComputedStyle(n).paddingRight)||me,o=i-q;if(o<=0)return null;let s=i-q,c=r.width-i+q,l=[],u=new Map;for(let e of Array.from(n.querySelectorAll(`[data-spot-id]`))){let t=e.getBoundingClientRect();if(t.width<=0||t.height<=0)continue;let n={left:t.left-r.left,top:t.top-r.top,right:t.left-r.left+t.width,bottom:t.top-r.top+t.height};l.push(n),u.set(e,n)}let d=[];for(let t of e){let e=G(n.querySelectorAll(`[data-spot-id="${CSS.escape(t.spot)}"]`)),i=e?u.get(e):void 0;if(!i)continue;let a=i.top+Math.min(36,(i.bottom-i.top)/2),o=!J(l,i,s,i.left,a),f=!J(l,i,i.right,c,a),p=(i.left+i.right)/2<=r.width/2?`left`:`right`,m=o&&f?p:o?`left`:f?`right`:p,h=m===`left`?o:f;d.push({note:t,box:i,side:m,tethered:h})}if(!d.length)return null;let f=[];for(let e of[`left`,`right`]){let t=d.filter(t=>t.side===e);if(!t.length)continue;let n=de(t.map(e=>({top:e.box.top+4,height:pe(e.note.text)})),fe,r.height-8);t.forEach((t,r)=>{let i=t.box.top+Math.min(36,(t.box.bottom-t.box.top)/2);f.push({...t.note,top:n[r],side:e,...t.tethered?{tether:e===`right`?a({x:c-6,y:n[r]+16},{x:t.box.right+3,y:i},t.note.spot):a({x:s+6,y:n[r]+16},{x:t.box.left-3,y:i},t.note.spot)}:{}})})}return{grid:n,railWidth:o,notes:f}}function ge({notes:e,within:t,revision:n}){let[r,i]=(0,d.useState)(null),a=(0,d.useRef)(e);a.current=e;let o=e.map(e=>`${e.spot}${e.text}`).join(``);return(0,d.useEffect)(()=>W(()=>he(a.current,t),e=>e.notes.map(e=>`${e.spot}@${Math.round(e.top)}`).join(`|`)+`|${e.railWidth}`,e=>e.grid,i),[o,t,n]),!r||r.notes.length===0?null:(0,p.createPortal)((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`svg`,{className:`note-rail-arrows`,"aria-hidden":`true`,children:r.notes.map((e,t)=>e.tether&&(0,K.jsxs)(`g`,{style:{"--note-delay":`${t*120}ms`},children:[(0,K.jsx)(`path`,{className:`note-tether`,d:e.tether.d,pathLength:1,fill:`none`}),(0,K.jsx)(`path`,{className:`note-tether note-tether-head`,d:e.tether.head,pathLength:1,fill:`none`})]},e.spot))}),[`left`,`right`].map(e=>{let t=r.notes.filter(t=>t.side===e);return t.length?(0,K.jsx)(`aside`,{className:`note-rail`+(e===`left`?` left`:``),role:`list`,"aria-label":`Mavéa's notes`,style:{width:r.railWidth},children:t.map((e,t)=>(0,K.jsx)(`div`,{role:`listitem`,className:`margin-note`,style:{top:e.top,"--note-delay":`${t*120}ms`},children:e.text},e.spot))},e):null})]}),r.grid)}var _e=`600 16px Caveat`,Y=!1;function ve(){if(!Y){Y=!0;try{document.fonts?.load?.(_e)}catch{}}}var X=9;function ye(e){return e===`rising`||e===`falling`||e===`bracket`||e===`brace`}function be(e,t,n){let r={rect:e,kind:t.kind};if(ye(t.kind)&&t.to){let e=n.find([t.to]),i=e&&R(e);i&&(r.toRect=i)}let i=t.kind===`bracket`&&r.toRect&&t.to?ee(t.at,t.to,t.label):t.label;return(t.kind===`note`||t.kind===`bracket`||t.kind===`brace`)&&i&&(r.label=i),r}function xe(e,t,n,r=!1){if(n){let t=I(e),r=t.find([n.at]),i=r&&R(r);if(r&&i){if(n.kind===`circle`){let t=ae(r,e)?.getBoundingClientRect(),n=e.getBoundingClientRect();if(t&&t.width>0&&t.width<=n.width*.6&&t.height<=n.height*.6&&t.width/Math.max(t.height,1)<=5)return{rect:t,kind:`circle`,el:r.node.parentElement??void 0}}let a=be(i,n,t);if(a.el=r.node.parentElement??void 0,n.kind===`highlight`){let e=se(r);e.length>1&&(a.rects=e)}return a}return null}if(!r)return null;let i=null,a=()=>i??=I(e),o=t?te(t):null;if(o?.figures.length){let e=a().find(o.figures),t=e&&R(e);if(t)return{rect:t,kind:`underline`,el:e?.node.parentElement??void 0}}let s=e.querySelector(`[data-mark]`),l=c(s?.getAttribute(`data-mark`));if(s&&l){let e=s.getBoundingClientRect();if(e.width>0)return{rect:e,kind:l,el:s}}if(o?.labels.length){let e=a().find(o.labels),t=e&&R(e);if(t)return{rect:t,kind:`underline`,el:e?.node.parentElement??void 0}}if(t){let e=a().echoed(t),n=e&&R(e);if(n)return{rect:n,kind:`underline`,el:e?.node.parentElement??void 0}}return null}var Z=`ink-mount`;function Q(e){let t=e.querySelector(`:scope > .${Z}`);if(t)return t;let n=document.createElement(`div`);return n.className=Z,n.style.display=`contents`,e.appendChild(n),n}function Se(e,t){let n=e;for(;n&&n!==t;){let e=getComputedStyle(n),t=n.scrollHeight>n.clientHeight+1&&/(auto|scroll|overlay)/.test(e.overflowY),r=n.scrollWidth>n.clientWidth+1&&/(auto|scroll|overlay)/.test(e.overflowX);if(t||r)return n;n=n.parentElement}return null}function Ce(e,t){let n=[];for(let r of Array.from(e.querySelectorAll(`:scope > .${Z} > .ink-layer`))){let e=Number(r.querySelector(`.ink-step-num`)?.textContent);if(!(!Number.isFinite(e)||e>=t))for(let e of Array.from(r.querySelectorAll(`.ink-stroke, .ink-fill, .ink-step-dot, .ink-note`))){let t=e.getBoundingClientRect();t.width>0&&t.height>0&&n.push(t)}}return n}function we(e,t,n,r,i,a){let c=G((i??document).querySelectorAll(`[data-spot-id="${CSS.escape(e)}"]`));if(!c)return null;let l=xe(c,t,n,r);if(!l)return null;let u=c.getBoundingClientRect();if(u.width<=0||u.height<=0)return null;let d=l.el?Se(l.el,c):null,f=d??c;d&&getComputedStyle(d).position===`static`&&(d.style.position=`relative`);let p=d?d.getBoundingClientRect():null,m=p&&p.width>0&&d.offsetWidth>0?p.width/d.offsetWidth:1,h=d?{w:d.scrollWidth,h:d.scrollHeight}:{w:u.width,h:u.height},g=e=>d&&p?{left:(e.left-p.left)/m+d.scrollLeft,top:(e.top-p.top)/m+d.scrollTop,width:e.width/m,height:e.height/m}:{left:e.left-u.left,top:e.top-u.top,width:e.width,height:e.height},_=g(l.rect),x={left:0,top:0,width:h.w,height:h.h},S={...l.toRect?{to:g(l.toRect)}:{},...l.label?{label:l.label}:{},...l.rects?.length?{rects:l.rects.map(g)}:{}},C=null,w=()=>C??=v(f).map(g);if(l.kind===`note`||l.kind===`question`||(l.kind===`bracket`||l.kind===`brace`)&&S.label){let e=l.kind===`question`?`?`:S.label??``,t=b(o(l.kind,_,x,e,S.to),w());if(t)S.place=t;else if(l.kind===`note`||l.kind===`question`)return null;else delete S.label}if(l.kind===`underline`||l.kind===`circle`){let e={left:_.left,top:_.top+_.height+2,width:_.width,height:9};w().some(t=>y(e,t,0))&&(S.tight=!0)}let T=s(l.kind,_,x,e,S);if(!T)return null;let E;if(typeof a==`number`){let e=(e,t,n)=>Math.min(Math.max(e,t),n),t=[{x:_.left-X-2,y:_.top-X-2},{x:_.left-X-4,y:_.top+_.height/2},{x:_.left+_.width+X+3,y:_.top-X-2},{x:_.left-X-2,y:_.top+_.height+X+3}].map(t=>({x:e(t.x,10,x.width-X-1),y:e(t.y,10,x.height-X-1)})),n=Ce(f,a).map(g);E=t.find(e=>{let t={left:e.x-X,top:e.y-X,width:18,height:18};return!w().some(e=>y(t,e,2))&&!n.some(e=>y(t,e,2))})}return{host:c,container:f,stroke:T,anchor:_,view:{w:h.w,h:h.h},...E?{chip:E}:{}}}var Te=2400;function Ee({spot:e,line:t,mark:n,generous:r,within:i,delayMs:a,badgeMs:o,revision:s,stepNumber:c,onPlaced:l}){let[u,f]=(0,d.useState)(null);(0,d.useEffect)(()=>W(()=>we(e,t,n,r,i,c),e=>e.stroke.d+(e.chip?`|${Math.round(e.chip.x)},${Math.round(e.chip.y)}`:``),e=>e.host,f),[e,t,n,r,i,s,c]);let m=(0,d.useRef)(!1);if((0,d.useEffect)(()=>{!u||m.current||(m.current=!0,l?.())},[u,l]),(0,d.useEffect)(()=>{if(!u)return;let{host:e}=u,t=o??2400;e.style.setProperty(`--ink-badge-dur`,`${t/1e3}s`),e.dataset.inking=n?.color===`key`?`key`:n?.color===`cool`?`cool`:``;let r=window.setTimeout(()=>{delete e.dataset.inking,e.style.removeProperty(`--ink-badge-dur`)},t);return()=>{window.clearTimeout(r),delete e.dataset.inking,e.style.removeProperty(`--ink-badge-dur`)}},[u,n?.color,o]),!u||!u.container.isConnected)return null;let{host:h,container:g,stroke:_,view:v,chip:y}=u,b=Q(g);if(!b)return null;let x=n?.color&&n.color!==`warm`?n.color:void 0,S=g!==h,C={...a?{"--ink-delay":`${a}ms`}:{},...S?{inset:`auto`,top:0,left:0,width:`${Math.max(1,Math.round(v.w))}px`,height:`${Math.max(1,Math.round(v.h))}px`}:{}};return(0,p.createPortal)((0,K.jsxs)(`svg`,{className:`ink-layer`,"aria-hidden":`true`,style:C,viewBox:`0 0 ${Math.max(1,Math.round(v.w))} ${Math.max(1,Math.round(v.h))}`,preserveAspectRatio:`none`,children:[_.fill?(0,K.jsx)(`path`,{className:`ink-fill`,d:_.d,...x?{"data-color":x}:{}}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{className:`ink-halo`,d:_.d,pathLength:1,...x?{"data-color":x}:{}}),(0,K.jsx)(`path`,{className:`ink-stroke`,d:_.d,pathLength:1,...x?{"data-color":x}:{}}),_.head&&(0,K.jsx)(`path`,{className:`ink-stroke ink-head`,d:_.head,pathLength:1,...x?{"data-color":x}:{}})]}),_.label&&(0,K.jsx)(`text`,{className:`ink-note`+(_.kind===`question`?` ink-glyph`:``),x:_.label.x,y:_.label.y,textAnchor:_.label.anchor,..._.label.size?{fontSize:_.label.size}:{},...x?{"data-color":x}:{},children:_.label.text.split(`
|
|
1
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{lt as r}from"./index-BMeoXWPR.js";import{r as i}from"./format-q0LwBjID.js";import{i as a,n as o,r as s,t as c}from"./gesture-BBS5nQEi.js";import{n as l}from"./number-zqlPMliA.js";import{t as u}from"./emphasize-BqCIst-B.js";var d=e(),f=t(),p=r(),m=`svg text, img, canvas, video, button, input, select, textarea, a`,h=`.ink-layer, .ink-connect-layer, .note-rail`,g=600,_={left:-1e9,top:-1e9,width:2e9,height:2e9};function v(e){let t=[],n=e=>{e.width>0&&e.height>0&&t.length<g&&t.push(e)},r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),i;for(;i=r.nextNode();){if(t.length>=g)return[_];let e=i;if(!e.textContent?.trim()||e.parentElement?.closest(h))continue;let r=document.createRange();if(r.selectNodeContents(e),typeof r.getClientRects==`function`)for(let e of Array.from(r.getClientRects()))n(e)}for(let r of Array.from(e.querySelectorAll(m))){if(t.length>=g)return[_];r.closest(h)||n(r.getBoundingClientRect())}return t}function y(e,t,n=3){return e.left-n<t.left+t.width&&e.left+e.width+n>t.left&&e.top-n<t.top+t.height&&e.top+e.height+n>t.top}function b(e,t,n=3){for(let r of e)if(!t.some(e=>y(r.box,e,n)))return r.place;return null}var x=2,S=.5,C=28,w=/^[+\-\u2212]?\s*[$€£¥₹]?\s*\d[\d,]*(?:\.\d+)?\s*(?:%|pts?|×|x|k|m|bn)?$/i;function T(e){let t=Math.abs(e)>=10?Math.round(e):Math.round(e*10)/10;return i(t,{decimals:+!Number.isInteger(t)})}function E(e,t){return`${e<0?`−`:`+`}${T(Math.abs(e))}${t}`}function ee(e,t,n){if(n&&!w.test(n))return n;let r=l(e),i=l(t);if(!r||!i||r.kind!==i.kind)return n;let a=e=>e.length>C?e.slice(0,C):e;if(r.kind===`pct`){let e=i.value-r.value;return Math.abs(e)<S?n:a(E(e,` pts`))}if(r.value===0)return n;let o=i.value/r.value;if(o>=x)return a(`${T(o)}×`);let s=(i.value-r.value)/Math.abs(r.value)*100;return Math.abs(s)<S?n:a(E(s,`%`))}function te(e){let t=u(e).filter(e=>e.accent).map(e=>e.text.trim()),n=[],r=/\b[A-Z][\w+#.&-]*(?:\s+[A-Z][\w+#.&-]*)*/g;for(let t=r.exec(e);t;t=r.exec(e)){let r=e.slice(0,t.index).trimEnd();if((r===``||/[.!?…:—]$/.test(r)||/["“]$/.test(r))&&!t[0].includes(` `))continue;let i=t[0].replace(/[.,;:!?]+$/,``);i.length<3||n.push(i)}return{figures:t,labels:n}}function D(e){let t=``,n=[];for(let r=0;r<e.length;r++){let i=e[r];/[\s,\u00a0$€£¥₹₩₽+%°]/.test(i)||(t+=i.toLowerCase(),n.push(r))}return{norm:t,map:n}}var O=/[0-9.]/;function ne(e){return e.length>0&&[...e].every(e=>O.test(e))}function re(e,t,n){let r=t>0?e[t-1]:``,i=t+n<e.length?e[t+n]:``;return O.test(r)||O.test(i)}var ie=`.ink-layer, .block-ask, .card-eyebrow`;function k(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);for(let e=n.nextNode();e;e=n.nextNode()){let n=e,r=n.textContent??``;if(!r.trim()||n.parentElement?.closest(ie))continue;let{norm:i,map:a}=D(r);t.push({node:n,raw:r,norm:i,map:a})}return t}function A(e,t){for(let n of t){let t=D(n).norm;if(t.length<2)continue;let r=ne(t);for(let{node:n,norm:i,map:a}of e){let e=i.indexOf(t);for(;e>=0;){if(!r||!re(i,e,t.length))return{node:n,start:a[e],end:a[e+t.length-1]+1};e=i.indexOf(t,e+1)}}}return null}function j(e,t){return A(k(e),t)}var M=4,N=40,P=new Set([`the`,`and`,`with`,`from`,`into`,`this`,`that`,`then`,`than`,`over`,`under`,`each`,`both`,`more`,`less`,`total`,`other`]);function F(e,t){let n=D(t).norm;if(n.length<M)return null;let r=new Set,i=[];for(let t of e){let e=t.raw.trim();if(e.length<M||e.length>N)continue;let a=t.norm;a.length<M||P.has(a)||r.has(a)||n.includes(a)&&(r.add(a),i.push(e))}return i.sort((e,t)=>t.length-e.length),i.length?A(e,i):null}function I(e){let t=k(e);return{find:e=>A(t,e),echoed:e=>F(t,e)}}function ae(e,t){let n=e.node.parentElement;for(let e=0;n&&n!==t&&e<4;e++,n=n.parentElement)if(n.matches(`li, tr, .bar-col, .cat-row, .kpi, [class*="-row"], [class*="-item"], [class*="-col"]`))return n;return null}var oe=e=>[e.overflow,e.overflowX,e.overflowY].some(e=>e!==``&&e!==`visible`);function L(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;for(let e=t;e;e=e.parentElement){let t=getComputedStyle(e);if(t.display===`none`||t.visibility===`hidden`||Number(t.opacity)===0)return!1;if(!oe(t))continue;let n=e.getBoundingClientRect();if(n.height<=1||n.width<=1)return!1}return!0}function R(e){let t=document.createRange();if(t.setStart(e.node,e.start),t.setEnd(e.node,e.end),typeof t.getClientRects!=`function`)return null;let n=t.getClientRects(),r=n.length>0?n[0]:t.getBoundingClientRect();return!r||r.width<=0||r.height<=0?null:L(e.node)?r:null}function se(e){let t=document.createRange();return t.setStart(e.node,e.start),t.setEnd(e.node,e.end),typeof t.getClientRects!=`function`||!L(e.node)?[]:Array.from(t.getClientRects()).filter(e=>e.width>0&&e.height>0)}var z=100,ce=500,B=18,V=2,H=`.ink-layer, .ink-connect-layer, .note-rail`;function U(e){return!!(e instanceof Element?e:e.parentElement)?.closest(H)}function W(e,t,n,r){let i=!1,a,o=0,s=null,c=0,l,u,d,f=e=>{if(!l&&typeof ResizeObserver<`u`&&(l=new ResizeObserver(()=>h()),l.observe(e)),u||(u=e,e.addEventListener(`transitionend`,h)),!d&&typeof MutationObserver<`u`){let t=t=>U(t.target)?!1:t.type===`attributes`?t.target!==e||t.attributeName!==`style`&&t.attributeName!==`data-inking`:t.type!==`childList`||[...Array.from(t.addedNodes),...Array.from(t.removedNodes)].some(e=>!U(e));d=new MutationObserver(e=>{e.some(t)&&h()}),d.observe(e,{subtree:!0,childList:!0,attributes:!0,characterData:!0})}},p=()=>o>=B?ce:z,m=()=>{if(i)return;let l=e();if(l){f(n(l));let e=t(l);if(c=e===s?c+1:1,s=e,r(l),c>=V){o=0;return}}o++,!(o>=(s===null?B:30))&&(a=window.setTimeout(m,p()))},h=()=>{i||(window.clearTimeout(a),s===null&&(o=0),a=window.setTimeout(m,p()))};return a=window.setTimeout(m,z),window.addEventListener(`resize`,h),()=>{i=!0,window.clearTimeout(a),window.removeEventListener(`resize`,h),l?.disconnect(),d?.disconnect(),u?.removeEventListener(`transitionend`,h)}}function G(e){for(let t=e.length-1;t>=0;t--){let n=e[t].getBoundingClientRect();if(n.width>0&&n.height>0)return e[t]}return e[e.length-1]??null}var le=140;function ue(e,t=le){let n=e.trim().replace(/\s+/g,` `);if(!n)return``;let r=/^(.*?[.!?])(?:\s|$)/.exec(n)?.[1]??n;if(r.length<=t)return r;let i=r.slice(0,t+1),a=i.lastIndexOf(` `);return(a>0?i.slice(0,a):i.slice(0,t)).replace(/[,;:\s]+$/,``)+`…`}function de(e,t=12,n){if(e.length===0)return[];let r=e.map((e,t)=>({top:e.top,h:e.height??84,i:t})).sort((e,t)=>e.top-t.top||e.i-t.i),i=Array(e.length).fill(0),a=-1/0,o=-1/0;for(let{top:e,h:n,i:s}of r){let r=Math.max(e,a);i[s]=r,a=r+n+t,o=r+n}if(n!==void 0&&o>n){let e=Math.min(o-n,Math.max(0,Math.min(...i)));if(e>0)for(let t=0;t<i.length;t++)i[t]-=e}return i}var K=n(),fe=12,pe=e=>Math.ceil(Math.max(1,e.length)/26)*18+18,me=218,q=18;function J(e,t,n,r,i){let a=Math.min(n,r),o=Math.max(n,r);return e.some(e=>e!==t&&e.right>a&&e.left<o&&e.bottom>i-10&&e.top<i+10)}function he(e,t){let n=(t??document).querySelector(`.card-grid.note-gutter`);if(!n)return null;let r=n.getBoundingClientRect();if(r.width<=0)return null;let i=parseFloat(getComputedStyle(n).paddingRight)||me,o=i-q;if(o<=0)return null;let s=i-q,c=r.width-i+q,l=[],u=new Map;for(let e of Array.from(n.querySelectorAll(`[data-spot-id]`))){let t=e.getBoundingClientRect();if(t.width<=0||t.height<=0)continue;let n={left:t.left-r.left,top:t.top-r.top,right:t.left-r.left+t.width,bottom:t.top-r.top+t.height};l.push(n),u.set(e,n)}let d=[];for(let t of e){let e=G(n.querySelectorAll(`[data-spot-id="${CSS.escape(t.spot)}"]`)),i=e?u.get(e):void 0;if(!i)continue;let a=i.top+Math.min(36,(i.bottom-i.top)/2),o=!J(l,i,s,i.left,a),f=!J(l,i,i.right,c,a),p=(i.left+i.right)/2<=r.width/2?`left`:`right`,m=o&&f?p:o?`left`:f?`right`:p,h=m===`left`?o:f;d.push({note:t,box:i,side:m,tethered:h})}if(!d.length)return null;let f=[];for(let e of[`left`,`right`]){let t=d.filter(t=>t.side===e);if(!t.length)continue;let n=de(t.map(e=>({top:e.box.top+4,height:pe(e.note.text)})),fe,r.height-8);t.forEach((t,r)=>{let i=t.box.top+Math.min(36,(t.box.bottom-t.box.top)/2);f.push({...t.note,top:n[r],side:e,...t.tethered?{tether:e===`right`?a({x:c-6,y:n[r]+16},{x:t.box.right+3,y:i},t.note.spot):a({x:s+6,y:n[r]+16},{x:t.box.left-3,y:i},t.note.spot)}:{}})})}return{grid:n,railWidth:o,notes:f}}function ge({notes:e,within:t,revision:n}){let[r,i]=(0,d.useState)(null),a=(0,d.useRef)(e);a.current=e;let o=e.map(e=>`${e.spot}${e.text}`).join(``);return(0,d.useEffect)(()=>W(()=>he(a.current,t),e=>e.notes.map(e=>`${e.spot}@${Math.round(e.top)}`).join(`|`)+`|${e.railWidth}`,e=>e.grid,i),[o,t,n]),!r||r.notes.length===0?null:(0,p.createPortal)((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`svg`,{className:`note-rail-arrows`,"aria-hidden":`true`,children:r.notes.map((e,t)=>e.tether&&(0,K.jsxs)(`g`,{style:{"--note-delay":`${t*120}ms`},children:[(0,K.jsx)(`path`,{className:`note-tether`,d:e.tether.d,pathLength:1,fill:`none`}),(0,K.jsx)(`path`,{className:`note-tether note-tether-head`,d:e.tether.head,pathLength:1,fill:`none`})]},e.spot))}),[`left`,`right`].map(e=>{let t=r.notes.filter(t=>t.side===e);return t.length?(0,K.jsx)(`aside`,{className:`note-rail`+(e===`left`?` left`:``),role:`list`,"aria-label":`Mavéa's notes`,style:{width:r.railWidth},children:t.map((e,t)=>(0,K.jsx)(`div`,{role:`listitem`,className:`margin-note`,style:{top:e.top,"--note-delay":`${t*120}ms`},children:e.text},e.spot))},e):null})]}),r.grid)}var _e=`600 16px Caveat`,Y=!1;function ve(){if(!Y){Y=!0;try{document.fonts?.load?.(_e)}catch{}}}var X=9;function ye(e){return e===`rising`||e===`falling`||e===`bracket`||e===`brace`}function be(e,t,n){let r={rect:e,kind:t.kind};if(ye(t.kind)&&t.to){let e=n.find([t.to]),i=e&&R(e);i&&(r.toRect=i)}let i=t.kind===`bracket`&&r.toRect&&t.to?ee(t.at,t.to,t.label):t.label;return(t.kind===`note`||t.kind===`bracket`||t.kind===`brace`)&&i&&(r.label=i),r}function xe(e,t,n,r=!1){if(n){let t=I(e),r=t.find([n.at]),i=r&&R(r);if(r&&i){if(n.kind===`circle`){let t=ae(r,e)?.getBoundingClientRect(),n=e.getBoundingClientRect();if(t&&t.width>0&&t.width<=n.width*.6&&t.height<=n.height*.6&&t.width/Math.max(t.height,1)<=5)return{rect:t,kind:`circle`,el:r.node.parentElement??void 0}}let a=be(i,n,t);if(a.el=r.node.parentElement??void 0,n.kind===`highlight`){let e=se(r);e.length>1&&(a.rects=e)}return a}return null}if(!r)return null;let i=null,a=()=>i??=I(e),o=t?te(t):null;if(o?.figures.length){let e=a().find(o.figures),t=e&&R(e);if(t)return{rect:t,kind:`underline`,el:e?.node.parentElement??void 0}}let s=e.querySelector(`[data-mark]`),l=c(s?.getAttribute(`data-mark`));if(s&&l){let e=s.getBoundingClientRect();if(e.width>0)return{rect:e,kind:l,el:s}}if(o?.labels.length){let e=a().find(o.labels),t=e&&R(e);if(t)return{rect:t,kind:`underline`,el:e?.node.parentElement??void 0}}if(t){let e=a().echoed(t),n=e&&R(e);if(n)return{rect:n,kind:`underline`,el:e?.node.parentElement??void 0}}return null}var Z=`ink-mount`;function Q(e){let t=e.querySelector(`:scope > .${Z}`);if(t)return t;let n=document.createElement(`div`);return n.className=Z,n.style.display=`contents`,e.appendChild(n),n}function Se(e,t){let n=e;for(;n&&n!==t;){let e=getComputedStyle(n),t=n.scrollHeight>n.clientHeight+1&&/(auto|scroll|overlay)/.test(e.overflowY),r=n.scrollWidth>n.clientWidth+1&&/(auto|scroll|overlay)/.test(e.overflowX);if(t||r)return n;n=n.parentElement}return null}function Ce(e,t){let n=[];for(let r of Array.from(e.querySelectorAll(`:scope > .${Z} > .ink-layer`))){let e=Number(r.querySelector(`.ink-step-num`)?.textContent);if(!(!Number.isFinite(e)||e>=t))for(let e of Array.from(r.querySelectorAll(`.ink-stroke, .ink-fill, .ink-step-dot, .ink-note`))){let t=e.getBoundingClientRect();t.width>0&&t.height>0&&n.push(t)}}return n}function we(e,t,n,r,i,a){let c=G((i??document).querySelectorAll(`[data-spot-id="${CSS.escape(e)}"]`));if(!c)return null;let l=xe(c,t,n,r);if(!l)return null;let u=c.getBoundingClientRect();if(u.width<=0||u.height<=0)return null;let d=l.el?Se(l.el,c):null,f=d??c;d&&getComputedStyle(d).position===`static`&&(d.style.position=`relative`);let p=d?d.getBoundingClientRect():null,m=p&&p.width>0&&d.offsetWidth>0?p.width/d.offsetWidth:1,h=d?{w:d.scrollWidth,h:d.scrollHeight}:{w:u.width,h:u.height},g=e=>d&&p?{left:(e.left-p.left)/m+d.scrollLeft,top:(e.top-p.top)/m+d.scrollTop,width:e.width/m,height:e.height/m}:{left:e.left-u.left,top:e.top-u.top,width:e.width,height:e.height},_=g(l.rect),x={left:0,top:0,width:h.w,height:h.h},S={...l.toRect?{to:g(l.toRect)}:{},...l.label?{label:l.label}:{},...l.rects?.length?{rects:l.rects.map(g)}:{}},C=null,w=()=>C??=v(f).map(g);if(l.kind===`note`||l.kind===`question`||(l.kind===`bracket`||l.kind===`brace`)&&S.label){let e=l.kind===`question`?`?`:S.label??``,t=b(o(l.kind,_,x,e,S.to),w());if(t)S.place=t;else if(l.kind===`note`||l.kind===`question`)return null;else delete S.label}if(l.kind===`underline`||l.kind===`circle`){let e={left:_.left,top:_.top+_.height+2,width:_.width,height:9};w().some(t=>y(e,t,0))&&(S.tight=!0)}let T=s(l.kind,_,x,e,S);if(!T)return null;let E;if(typeof a==`number`){let e=(e,t,n)=>Math.min(Math.max(e,t),n),t=[{x:_.left-X-2,y:_.top-X-2},{x:_.left-X-4,y:_.top+_.height/2},{x:_.left+_.width+X+3,y:_.top-X-2},{x:_.left-X-2,y:_.top+_.height+X+3}].map(t=>({x:e(t.x,10,x.width-X-1),y:e(t.y,10,x.height-X-1)})),n=Ce(f,a).map(g);E=t.find(e=>{let t={left:e.x-X,top:e.y-X,width:18,height:18};return!w().some(e=>y(t,e,2))&&!n.some(e=>y(t,e,2))})}return{host:c,container:f,stroke:T,anchor:_,view:{w:h.w,h:h.h},...E?{chip:E}:{}}}var Te=2400;function Ee({spot:e,line:t,mark:n,generous:r,within:i,delayMs:a,badgeMs:o,revision:s,stepNumber:c,onPlaced:l}){let[u,f]=(0,d.useState)(null);(0,d.useEffect)(()=>W(()=>we(e,t,n,r,i,c),e=>e.stroke.d+(e.chip?`|${Math.round(e.chip.x)},${Math.round(e.chip.y)}`:``),e=>e.host,f),[e,t,n,r,i,s,c]);let m=(0,d.useRef)(!1);if((0,d.useEffect)(()=>{!u||m.current||(m.current=!0,l?.())},[u,l]),(0,d.useEffect)(()=>{if(!u)return;let{host:e}=u,t=o??2400;e.style.setProperty(`--ink-badge-dur`,`${t/1e3}s`),e.dataset.inking=n?.color===`key`?`key`:n?.color===`cool`?`cool`:``;let r=window.setTimeout(()=>{delete e.dataset.inking,e.style.removeProperty(`--ink-badge-dur`)},t);return()=>{window.clearTimeout(r),delete e.dataset.inking,e.style.removeProperty(`--ink-badge-dur`)}},[u,n?.color,o]),!u||!u.container.isConnected)return null;let{host:h,container:g,stroke:_,view:v,chip:y}=u,b=Q(g);if(!b)return null;let x=n?.color&&n.color!==`warm`?n.color:void 0,S=g!==h,C={...a?{"--ink-delay":`${a}ms`}:{},...S?{inset:`auto`,top:0,left:0,width:`${Math.max(1,Math.round(v.w))}px`,height:`${Math.max(1,Math.round(v.h))}px`}:{}};return(0,p.createPortal)((0,K.jsxs)(`svg`,{className:`ink-layer`,"aria-hidden":`true`,style:C,viewBox:`0 0 ${Math.max(1,Math.round(v.w))} ${Math.max(1,Math.round(v.h))}`,preserveAspectRatio:`none`,children:[_.fill?(0,K.jsx)(`path`,{className:`ink-fill`,d:_.d,...x?{"data-color":x}:{}}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{className:`ink-halo`,d:_.d,pathLength:1,...x?{"data-color":x}:{}}),(0,K.jsx)(`path`,{className:`ink-stroke`,d:_.d,pathLength:1,...x?{"data-color":x}:{}}),_.head&&(0,K.jsx)(`path`,{className:`ink-stroke ink-head`,d:_.head,pathLength:1,...x?{"data-color":x}:{}})]}),_.label&&(0,K.jsx)(`text`,{className:`ink-note`+(_.kind===`question`?` ink-glyph`:``),x:_.label.x,y:_.label.y,textAnchor:_.label.anchor,..._.label.size?{fontSize:_.label.size}:{},...x?{"data-color":x}:{},children:_.label.text.split(`
|
|
2
2
|
`).map((e,t)=>(0,K.jsx)(`tspan`,{x:_.label.x,dy:t===0?0:`1.25em`,children:e},t))}),typeof c==`number`&&y&&(0,K.jsxs)(`g`,{"aria-hidden":`true`,children:[(0,K.jsx)(`circle`,{className:`ink-step-dot`,cx:y.x,cy:y.y,r:8,...x?{"data-color":x}:{}}),(0,K.jsx)(`text`,{className:`ink-step-num`,x:y.x,y:y.y,textAnchor:`middle`,dominantBaseline:`middle`,children:c})]})]}),b)}function De(e,t,n,r){let i=r??document,a=i.querySelector(`.card-grid`);if(!a)return null;let o=G(i.querySelectorAll(`[data-spot-id="${CSS.escape(e)}"]`)),c=G(i.querySelectorAll(`[data-spot-id="${CSS.escape(t)}"]`));if(!o||!c||o===c)return null;let l=j(o,[n.at]),u=l&&R(l),d=n.to?j(c,[n.to]):null,f=d&&R(d);if(!u||!f)return null;let p=a.getBoundingClientRect(),m=s(`connect`,u,p,`${e}>${t}`,{to:f});return m?{grid:a,stroke:m}:null}function $(e){let t=(0,f.c)(41),{spot:n,toSpot:r,mark:i,within:a,delayMs:o,revision:s,onPlaced:c}=e,[l,u]=(0,d.useState)(null),m;t[0]!==i||t[1]!==n||t[2]!==r||t[3]!==a?(m=()=>W(()=>De(n,r,i,a),ke,Oe,u),t[0]=i,t[1]=n,t[2]=r,t[3]=a,t[4]=m):m=t[4];let h;t[5]!==i||t[6]!==s||t[7]!==n||t[8]!==r||t[9]!==a?(h=[n,r,i,a,s],t[5]=i,t[6]=s,t[7]=n,t[8]=r,t[9]=a,t[10]=h):h=t[10],(0,d.useEffect)(m,h);let g=(0,d.useRef)(!1),_,v;if(t[11]!==c||t[12]!==l?(_=()=>{!l||g.current||(g.current=!0,c?.())},v=[l,c],t[11]=c,t[12]=l,t[13]=_,t[14]=v):(_=t[13],v=t[14]),(0,d.useEffect)(_,v),!l||!l.grid.isConnected)return null;let{grid:y,stroke:b}=l,x,S;if(t[15]!==o||t[16]!==y||t[17]!==i||t[18]!==b){S=Symbol.for(`react.early_return_sentinel`);bb0:{let e=Q(y);if(!e){S=null;break bb0}let n=i.color&&i.color!==`warm`?i.color:void 0,r;t[21]===o?r=t[22]:(r=o?{"--ink-delay":`${o}ms`}:void 0,t[21]=o,t[22]=r);let a=r,s;t[23]===n?s=t[24]:(s=n?{"data-color":n}:{},t[23]=n,t[24]=s);let c;t[25]!==b.d||t[26]!==s?(c=(0,K.jsx)(`path`,{className:`ink-halo`,d:b.d,pathLength:1,...s}),t[25]=b.d,t[26]=s,t[27]=c):c=t[27];let l;t[28]===n?l=t[29]:(l=n?{"data-color":n}:{},t[28]=n,t[29]=l);let u;t[30]!==b.d||t[31]!==l?(u=(0,K.jsx)(`path`,{className:`ink-stroke`,d:b.d,pathLength:1,...l}),t[30]=b.d,t[31]=l,t[32]=u):u=t[32];let d;t[33]!==n||t[34]!==b.head?(d=b.head&&(0,K.jsx)(`path`,{className:`ink-stroke ink-head`,d:b.head,pathLength:1,...n?{"data-color":n}:{}}),t[33]=n,t[34]=b.head,t[35]=d):d=t[35];let f;t[36]!==a||t[37]!==u||t[38]!==d||t[39]!==c?(f=(0,K.jsxs)(`svg`,{className:`ink-connect-layer`,"aria-hidden":`true`,style:a,children:[c,u,d]}),t[36]=a,t[37]=u,t[38]=d,t[39]=c,t[40]=f):f=t[40],x=(0,p.createPortal)(f,e)}t[15]=o,t[16]=y,t[17]=i,t[18]=b,t[19]=x,t[20]=S}else x=t[19],S=t[20];return S===Symbol.for(`react.early_return_sentinel`)?x:S}function Oe(e){return e.grid}function ke(e){return e.stroke.d}function Ae(e){let t=(0,f.c)(13),{spots:n,within:r,revision:i,onPlaced:a}=e;if(n.length===0)return null;ve();let o,s;if(t[0]!==a||t[1]!==i||t[2]!==n||t[3]!==r){let e=n.filter(Ne),c=n.filter(Me);o=e.length>0&&(0,K.jsx)(ge,{notes:e.map(je),within:r,revision:i});let l;t[6]!==a||t[7]!==i||t[8]!==r?(l=(e,t)=>{let n=`${e.spot}|${e.mark?.kind??``}|${e.mark?.at??t}`;return e.mark?.kind===`connect`&&e.toSpot?(0,K.jsx)($,{spot:e.spot,toSpot:e.toSpot,mark:e.mark,within:r,delayMs:e.delayMs,revision:i,onPlaced:a&&(()=>a(e))},n):(0,K.jsx)(Ee,{spot:e.spot,line:e.line,mark:e.mark,generous:e.generous,within:r,delayMs:e.delayMs,badgeMs:e.badgeMs,revision:i,stepNumber:e.stepNumber,onPlaced:a&&(()=>a(e))},n)},t[6]=a,t[7]=i,t[8]=r,t[9]=l):l=t[9],s=c.map(l),t[0]=a,t[1]=i,t[2]=n,t[3]=r,t[4]=o,t[5]=s}else o=t[4],s=t[5];let c;return t[10]!==o||t[11]!==s?(c=(0,K.jsxs)(K.Fragment,{children:[o,s]}),t[10]=o,t[11]=s,t[12]=c):c=t[12],c}function je(e){return{spot:e.spot,text:e.noteText}}function Me(e){return!e.noteText}function Ne(e){return e.noteText}export{Te as n,ue as r,Ae as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{O as n}from"./index-
|
|
1
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{O as n}from"./index-BMeoXWPR.js";import{t as r}from"./registry-BodYWiga.js";import{CommandPalette as i}from"./CommandPalette-Cz8h94Jd.js";import{t as a}from"./demoPaletteItems-NPCSaSU6.js";var o=e(),s=t();function c({onClose:e,startTour:t,watchInLive:c,enterLive:l}){let u=(0,o.useMemo)(()=>a(r,{direct:{dashboards:()=>{window.location.hash=`#/dashboards`},how:t},watchInLive:c,enterLive:l}).map(e=>({...e,watch:e.feature.id===`how`?t:e.watch,preload:e.feature.id===`dashboards`?()=>n(`#/dashboards`)??Promise.resolve():()=>n(`#/live`)??Promise.resolve()})),[l,t,c]);return(0,s.jsx)(i,{items:u,surface:`demo`,onClose:e})}export{c as AppCommandPalette};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{o as r}from"./ledger-DHS2di3l.js";import{t as i}from"./useLedger-D4cXEwI0.js";import{c as a,l as o}from"./dashboardEvents-
|
|
1
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{o as r}from"./ledger-DHS2di3l.js";import{t as i}from"./useLedger-D4cXEwI0.js";import{c as a,l as o}from"./dashboardEvents-BV0Ly6No.js";import{n as s,t as c}from"./checkLogModel-BMtruriG.js";var l=e(),u=t(),d=n();function f(e){return e.domains?.length?e.domains.join(`, `):e.manual?`MANUAL`:`MAVÉA`}function p(e){let t=(0,u.c)(34),{entry:n}=e,r;t[0]===n?r=t[1]:(r=c(n),t[0]=n,t[1]=r);let i=r,l=n.kind===`savings`?n.suggestion:void 0,p;t[2]===n.at?p=t[3]:(p=s(n.at),t[2]=n.at,t[3]=p);let m;t[4]===p?m=t[5]:(m=(0,d.jsx)(`span`,{className:`dash-log-time`,children:p}),t[4]=p,t[5]=m);let h;t[6]===i?h=t[7]:(h=i&&(0,d.jsx)(`span`,{className:`dash-log-chip dash-log-chip--${i.tone}`,children:i.label}),t[6]=i,t[7]=h);let g;t[8]!==m||t[9]!==h?(g=(0,d.jsxs)(`div`,{className:`dash-log-row-top`,children:[m,h]}),t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===n.text?_=t[12]:(_=(0,d.jsx)(`p`,{className:`dash-log-text`,children:n.text}),t[11]=n.text,t[12]=_);let v;t[13]!==n.id||t[14]!==l?(v=l&&l.state===`open`&&(0,d.jsxs)(`div`,{className:`dash-log-suggestion`,children:[(0,d.jsxs)(`button`,{type:`button`,className:`dash-log-apply-btn`,onClick:()=>a(n.id,l.dashboardId,l.to),children:[`Apply — save ~`,l.savesPerMonth,` searches/mo`]}),(0,d.jsx)(`button`,{type:`button`,className:`dash-log-dismiss-btn`,onClick:()=>o(n.id),children:`Dismiss`})]}),t[13]=n.id,t[14]=l,t[15]=v):v=t[15];let y;t[16]===l?y=t[17]:(y=l&&l.state===`applied`&&(0,d.jsx)(`div`,{className:`dash-log-suggestion`,children:(0,d.jsx)(`span`,{className:`dash-log-applied`,children:`Applied ✓`})}),t[16]=l,t[17]=y);let b;t[18]===n?b=t[19]:(b=f(n),t[18]=n,t[19]=b);let x;t[20]===b?x=t[21]:(x=(0,d.jsx)(`span`,{className:`dash-log-source`,children:b}),t[20]=b,t[21]=x);let S;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,d.jsx)(`span`,{className:`dash-log-dot`,"aria-hidden":`true`}),t[22]=S):S=t[22];let C=n.searches===1?`1 SEARCH`:`NO SEARCH SPENT`,w;t[23]===C?w=t[24]:(w=(0,d.jsx)(`span`,{className:`dash-log-cost`,children:C}),t[23]=C,t[24]=w);let T;t[25]!==x||t[26]!==w?(T=(0,d.jsxs)(`div`,{className:`dash-log-foot`,children:[x,S,w]}),t[25]=x,t[26]=w,t[27]=T):T=t[27];let E;return t[28]!==T||t[29]!==g||t[30]!==_||t[31]!==v||t[32]!==y?(E=(0,d.jsxs)(`li`,{className:`dash-log-row`,children:[g,_,v,y,T]}),t[28]=T,t[29]=g,t[30]=_,t[31]=v,t[32]=y,t[33]=E):E=t[33],E}var m=100;function h({dashboardId:e,now:t,limit:n=m}){let a=i(),o=(0,l.useMemo)(()=>e?a.filter(t=>t.dashboardIds.includes(e)):a,[a,e]),s=(0,l.useMemo)(()=>r(o,t),[o,t]),c=(0,l.useMemo)(()=>o.slice(0,Math.max(0,n)),[o,n]);return(0,d.jsxs)(`section`,{className:`card dash-log-card`,"aria-label":`Check log`,children:[(0,d.jsxs)(`div`,{className:`card-eyebrow dash-log-head`,children:[e?`CHECK LOG · `:``,`TODAY · `,s,` SEARCHES USED`]}),c.length===0?(0,d.jsx)(`p`,{className:`dash-log-empty`,children:`Your check log will appear here.`}):(0,d.jsx)(`ul`,{className:`dash-log-list`,role:`log`,"aria-live":`polite`,"aria-relevant":`additions`,children:c.map(e=>(0,d.jsx)(p,{entry:e},e.id))})]})}export{h as t};
|
package/dist/assets/{ConversationVideoStudio-BLU1b2u_.js → ConversationVideoStudio-Cyu-M9Us.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{F as r,R as i,f as a}from"./index-yJfYsjAB.js";import{n as o}from"./icons-gLFQTv74.js";import{t as s}from"./TopicCanvas-xwDjwqxn.js";import{t as c}from"./motion-BY_Egaxm.js";import{t as l}from"./toast-BBNs2h3L.js";import{t as u}from"./Presence-UqXfH4Y-.js";import{t as d}from"./sentenceCase-CLDiNB0f.js";import{a as f,i as p,r as m,t as h}from"./capture-MMxmbgt1.js";import{n as ee,r as g,t as _}from"./share--tpc1nLE.js";import{t as v}from"./FeatureUseNotice-lFcApjaS.js";import{r as y}from"./history-D2EH2X6D.js";import{n as b,r as x}from"./audioTrack-myyVq6Sp.js";import{t as S}from"./replay-BlrkSDMO.js";import"./canvas-OSBUSYbY.js";import{t as C}from"./AnnotationLayer-0YQgrjN3.js";var w=e(),T=t(),te=18e4,E=650,D=350,O=700;function k(e){let t=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].reduce((e,t)=>e+t.trim().length,0);return 1e3+Math.max(1800,t/14*1e3)}function ne(e){return e.reduce((e,t)=>e+k(t),0)}function re(e){let t=k(e),n=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean),r=n.reduce((e,t)=>e+t.length,0),i=t-E-D,a=E;return{durationMs:t,spans:n.map(e=>{let t=Math.round(a);return a+=r?i*e.length/r:0,{text:e,startMs:t,endMs:Math.round(a)}})}}function ie(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.topicShift===!0||n?.topicShift===void 0&&n?.mode===`replace`)return t}return 0}function A(e,t,n){let r=n.spans[e+1];return r?r.startMs:E+Math.max(0,n.durationMs-E-D)*(e+1)/(t+1)}function ae(e,t,n){let r=[],i=0;return e.forEach((e,a)=>{let o=t[a];if(!o)return;let s=S(e),c=s.cues.map((e,t)=>A(t,s.cues.length,o)),l=[0,E,...c,o.durationMs].map(e=>Math.max(0,Math.min(o.durationMs,e))).filter((e,t,n)=>t===0||e>n[t-1]),u=[];for(let t=0;t<l.length-1;t++){let d=l[t],f=l[t+1],p=c.findIndex(e=>e===d),m=p>=0?s.cues[p]:void 0;m&&n.penMarks&&(u=[...u,...m.marks.map((t,n)=>({spot:m.spot,line:m.say,mark:t,delayMs:n*240,...t.kind===`connect`&&typeof t.onIndex==`number`?{toSpot:e.spec.blocks[t.onIndex]?.id}:{}}))]);let h=[...o.spans].reverse().find(e=>e.startMs<=d&&e.endMs>d);r.push({frame:e,turnIndex:a,startMs:i+d,durationMs:Math.max(1,f-d),spot:n.spotlights?m?.spot??null:null,caption:n.captions?h?.text??null:null,ink:u,questionOnly:t===0})}i+=o.durationMs}),j(r)}function j(e){let t=e[e.length-1];if(!t?.spot)return e;if(t.durationMs<=O*2)return e[e.length-1]={...t,spot:null},e;let n=t.durationMs-O;return e[e.length-1]={...t,durationMs:n},e.push({...t,startMs:t.startMs+n,durationMs:O,spot:null}),e}var M=24e3,N=.65,P=.18,F=.35,I=.89,L=6,R=class extends Error{turnIndex;question;constructor(e,t){super(`Narration is unavailable for “${t||`turn ${e+1}`}”.`),this.turnIndex=e,this.question=t,this.name=`RequiredConversationAudioError`}};function z(e){return[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean)}function B(e){return e.trim().replace(/\s+/g,` `)}function V(e,t){let n=z(e);return n.length>0&&t.pcm.length>0&&t.spans.length===n.length&&n.every((e,n)=>B(t.spans[n]?.text??``)===B(e)&&t.spans[n].t1>t.spans[n].t0)}function H(e){let t=e.spans.map(e=>({text:e.text,startMs:Math.round((N+e.t0)*1e3),endMs:Math.round((N+e.t1)*1e3)})),n=new Float32Array(e.pcm.length);for(let t=0;t<e.pcm.length;t++)n[t]=e.pcm[t]/32768;return{lines:[{text:t.map(e=>e.text).join(` `),pcm:n,rate:e.sampleRate}],durationS:N+e.duration+F,spans:t}}async function U(e,t,n,r){let i=z(e);if(!i.length)throw new R(t,e.question);let a=[];for(let o of i){if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);let i=await b(o,n);if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);if(!i.length)throw new R(t,e.question);a.push({text:o,pcm:i,rate:M}),r?.(i.length/M+P)}let o=[],s=N;for(let e of a){let t=s;s+=e.pcm.length/e.rate,o.push({text:e.text,startMs:Math.round(t*1e3),endMs:Math.round(s*1e3)}),s+=P}return{lines:a,durationS:s+F,spans:o}}async function oe(e,t,n,i){let a=r();if(a===null||typeof OfflineAudioContext>`u`)throw Error(`audio-encoding-unavailable`);let o=e.map(e=>{let n=t(e);return n&&V(e,n)?H(n):null}),s=o.reduce((e,t)=>e+(t?.durationS??1),0),c=e.reduce((e,t,n)=>e+(o[n]?0:z(t).length),0),l=0,u=new AbortController,d=()=>u.abort();n?.addEventListener(`abort`,d,{once:!0}),n?.aborted&&u.abort();let f=e=>{if(s+=e,i?.(++l,c),s*1e3>18e4)throw u.abort(),Error(`conversation-too-long`)},p;try{p=await x(e,2,(e,t)=>{let n=o[t];return n?Promise.resolve(n):U(e,t,u.signal,f)})}finally{n?.removeEventListener(`abort`,d)}let m=p.reduce((e,t)=>e+t.durationS,0);if(m*1e3>18e4)throw Error(`conversation-too-long`);let h=0;for(let e of p)for(let t of e.lines)for(let e=0;e<t.pcm.length;e++)h=Math.max(h,Math.abs(t.pcm[e]));let ee=h>0?Math.min(L,I/h):1,g=new OfflineAudioContext(1,Math.ceil(m*a),a),_=g.createGain();_.gain.value=ee,_.connect(g.destination);let v=0;for(let e of p){let t=v+N;for(let n of e.lines){let e=g.createBuffer(1,n.pcm.length,n.rate);e.getChannelData(0).set(n.pcm);let r=g.createBufferSource();r.buffer=e,r.connect(_),r.start(t),t+=n.pcm.length/n.rate+P}v+=e.durationS}return{buffer:await g.startRendering(),turns:p.map(e=>({durationMs:Math.round(e.durationS*1e3),spans:e.spans})),durationMs:Math.round(m*1e3)}}var se={"1080p":{width:1920,height:1080},"720p":{width:1280,height:720}};function W(e,t,n=a()){let{bitrate:r}=h(e,n);return t===`720p`?Math.round(r*.55):r}async function G(e){document.visibilityState===`hidden`&&await new Promise((t,n)=>{let r=()=>a(new DOMException(`Cancelled`,`AbortError`)),i=()=>{document.visibilityState!==`hidden`&&a()},a=a=>{document.removeEventListener(`visibilitychange`,i),e.removeEventListener(`abort`,r),a?n(a):t()};document.addEventListener(`visibilitychange`,i),e.addEventListener(`abort`,r,{once:!0})})}function ce(){return typeof document<`u`&&(typeof VideoEncoder<`u`&&typeof AudioEncoder<`u`||f()!==null)}var K={selector:`.cvs-presence`,bleed:96};async function le(e){let t=a(),n=se[e.size],r=e.scenes[0];r&&await e.applyScene(r,0);let i=getComputedStyle(e.el).backgroundColor,o=await p({el:e.el,audioBuffer:e.audioBuffer,aspect:`16:9`,dims:{w:n.width,h:n.height},quality:e.quality,bitrate:W(e.quality,e.size,t),background:i&&i!==`rgba(0, 0, 0, 0)`?i:void 0,maxDurationMs:e.durationMs,liveLayer:K,onFrame:e.onFrame,cues:e.scenes.slice(1).map((t,n)=>({atMs:t.startMs,apply:async()=>{let r=n+1;await e.applyScene(t,r),e.onProgress?.({phase:`render`,completed:r+1,total:e.scenes.length})}})),gate:async()=>{if(e.signal.aborted)throw new DOMException(`Cancelled`,`AbortError`);await G(e.signal)}});try{await o.done(),e.onProgress?.({phase:`encode`,completed:0,total:1});let t=await o.stop();return e.onProgress?.({phase:`ready`,completed:1,total:1}),{...t,...n}}catch(e){throw o.cancel(),e}}var q=n();function ue({scene:e,options:t,frameRef:n,glide:r=!0}){let a=(0,w.useRef)(null),o=(0,w.useRef)(null),c=(0,w.useRef)(null),l=i(),d=(0,w.useRef)(null),[f,p]=(0,w.useState)(0);(0,w.useEffect)(()=>(n?.(a.current),()=>n?.(null)),[n]),(0,w.useEffect)(()=>{let t=o.current,n=c.current;if(!t||!n)return;let r=d.current!==e?.turnIndex;d.current=e?.turnIndex??null;let i=r?0:null;if(e?.spot){let r=[...t.querySelectorAll(`[data-spot-id]`)].find(t=>t.dataset.spotId===e.spot);if(r){let e=0;for(let n=r;n&&n!==t;n=n.offsetParent)e+=n.offsetTop;i=Math.max(0,Math.min(e-(t.clientHeight-r.offsetHeight)/2,n.offsetHeight-t.clientHeight))}}if(i===null)return;n.style.setProperty(`--cvs-shift`,`${-i}px`);let a=window.setTimeout(()=>p(e=>e+1),420);return()=>window.clearTimeout(a)},[e?.spot,e?.turnIndex]);let m=e?.questionOnly??!1,h=e?e.frame.question||e.frame.spec.title:``;return(0,q.jsx)(`div`,{ref:a,className:`cvs-stage`,"data-aspect":`16:9`,"data-question-only":m,"data-captioned":t.captions,children:e?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`header`,{className:`cvs-header`,children:[(0,q.jsxs)(`div`,{className:`cvs-brand`,children:[(0,q.jsx)(`span`,{className:`cvs-brand-dot`}),` Mavéa conversation`]}),(0,q.jsxs)(`div`,{className:`cvs-turn`,children:[`Turn `,e.turnIndex+1]}),(0,q.jsx)(`h2`,{children:h})]}),m?(0,q.jsxs)(`div`,{className:`cvs-ask`,children:[(0,q.jsx)(`span`,{className:`cvs-ask-eyebrow`,children:`Asked`}),(0,q.jsx)(`p`,{className:`cvs-ask-line`,children:h})]}):(0,q.jsxs)(`div`,{ref:o,className:`cvs-canvas`,children:[(0,q.jsx)(`div`,{className:`topic-wrap`,ref:c,"data-glide":r,children:(0,q.jsx)(s,{data:e.frame.spec,spot:e.spot,built:{},onProve:()=>{}})},e.turnIndex),t.penMarks&&(0,q.jsx)(C,{spots:e.ink,within:a.current,revision:f})]}),t.captions&&e.caption&&(0,q.jsx)(`div`,{className:`cvs-caption`,children:e.caption}),t.presence&&(0,q.jsx)(`div`,{className:`cvs-presence`,ref:l,children:(0,q.jsx)(u,{state:m?`thinking`:`speaking`})})]}):(0,q.jsx)(`div`,{className:`cvs-empty`,children:`Choose a turn to preview it.`})})}var de=[{id:`1080p`,label:`1080p`,hint:`1920×1080`},{id:`720p`,label:`720p`,hint:`1280×720`}],fe=[{id:`balanced`,label:`Balanced`},{id:`high`,label:`High`},{id:`ultra`,label:`Ultra`}],J=650,pe=640,me=360;function he(e=300){return Promise.race([(async()=>{await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e()))})(),new Promise(t=>window.setTimeout(t,e))])}var ge=[{key:`captions`,label:`Captions`},{key:`spotlights`,label:`Spotlights`},{key:`penMarks`,label:`Pen marks`},{key:`presence`,label:`Mavéa`},{key:`audio`,label:`Audio`}];function _e(e){let t=Math.max(0,Math.round(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}function ve(e){let t=(0,T.c)(12),{width:n,height:r,children:i}=e,a=(0,w.useRef)(null),[o,s]=(0,w.useState)(0),c,l;t[0]!==r||t[1]!==n?(c=()=>{let e=a.current;if(!e)return;let t=()=>{let{width:t,height:i}=e.getBoundingClientRect();!t||!i||s(Math.min(t/n,i/r))};if(t(),typeof ResizeObserver>`u`)return;let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},l=[n,r],t[0]=r,t[1]=n,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,w.useLayoutEffect)(c,l);let u=`scale(${o})`,d=o?void 0:`hidden`,f;t[4]!==r||t[5]!==u||t[6]!==d||t[7]!==n?(f={width:n,height:r,transform:u,visibility:d},t[4]=r,t[5]=u,t[6]=d,t[7]=n,t[8]=f):f=t[8];let p;return t[9]!==i||t[10]!==f?(p=(0,q.jsx)(`div`,{ref:a,className:`cvs-viewport`,children:(0,q.jsx)(`div`,{className:`cvs-scaler`,style:f,children:i})}),t[9]=i,t[10]=f,t[11]=p):p=t[11],p}function ye(e){return e.map(e=>{let t=k(e);return{durationMs:t,spans:[{text:e.narration,startMs:650,endMs:Math.max(651,t-350)}]}})}function Y({frames:e,retainedAudio:t,onShared:n,onBusyChange:r}){let i=(0,w.useMemo)(()=>e.filter(e=>!!((e.spoken??e.narration).trim()||e.tour.some(e=>(e.saySpoken??e.say)?.trim()))),[e]),[a,s]=(0,w.useState)(()=>new Set(i.length?[y(i[i.length-1])]:[])),u=(0,w.useMemo)(()=>new Set(i.map(y)),[i]),[f,p]=(0,w.useState)({size:`1080p`,quality:`high`,captions:!0,spotlights:!0,penMarks:!0,presence:!0,audio:!0}),h=(0,w.useMemo)(()=>e.filter(e=>a.has(y(e))),[e,a]),b=(0,w.useMemo)(()=>ne(h),[h]),x=(0,w.useMemo)(()=>ae(h,ye(h),f),[h,f]),[S,C]=(0,w.useState)(()=>x[0]??null),[T,E]=(0,w.useState)(null),[D,O]=(0,w.useState)(null),[k,A]=(0,w.useState)(null),[j,M]=(0,w.useState)(!1),[N,P]=(0,w.useState)(!1),[F,I]=(0,w.useState)(0),[L,z]=(0,w.useState)(!1),[B,V]=(0,w.useState)(!1),H=(0,w.useRef)(null),U=(0,w.useRef)(null),W=(0,w.useRef)(null),G=(0,w.useRef)(null),K=(0,w.useRef)(null),Y=T!==null&&T.phase!==`ready`,be=Y&&T?.phase!==`audio`,xe=ce(),X=(0,w.useMemo)(()=>c(),[]),Z=N&&!Y&&!X&&x.length>1;(0,w.useEffect)(()=>r?.(Y),[Y,r]),(0,w.useEffect)(()=>{if(!Y){V(!1);return}let e=()=>V(document.visibilityState===`hidden`);return e(),document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[Y]),(0,w.useEffect)(()=>P(!0),[]),(0,w.useEffect)(()=>{let e=X?x.findIndex(e=>!e.questionOnly):0;I(Math.max(0,e)),z(!1)},[x,X]),(0,w.useEffect)(()=>{Y||C(x[F]??x[0]??null)},[x,F,Y]),(0,w.useEffect)(()=>{if(!Z||L)return;let e=x[F]??x[0],t=window.setTimeout(()=>I(e=>(e+1)%x.length),Math.max(J,e?.durationMs??J));return()=>window.clearTimeout(t)},[Z,L,x,F]),(0,w.useEffect)(()=>()=>{H.current?.abort(),U.current?.dispose?.(),U.current=null,r?.(!1)},[r]),(0,w.useEffect)(()=>{let e=G.current;if(!e)return;let t=()=>{e.dataset.overflowing=String(e.scrollHeight>e.clientHeight+1)};if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[e]);let Se=(0,w.useCallback)(async e=>{C(e),await he()},[]),Ce=(0,w.useCallback)(e=>{let t=K.current,n=t?.getContext(`2d`);!t||!n||n.drawImage(e,0,0,t.width,t.height)},[]),Q=(0,w.useCallback)(()=>{U.current?.dispose?.(),U.current=null,O(null),E(null)},[]),we=(0,w.useCallback)(async()=>{if(!h.length||b>18e4)return;let e=new AbortController;H.current=e,Q(),A(null),E(f.audio?{phase:`audio`,completed:0,total:h.length}:{phase:`render`,completed:1,total:1}),M(!0);try{await he();let n=W.current;if(!n)throw Error(`capture-stage-unavailable`);let r=f.audio?await oe(h,t??(()=>null),e.signal):null,i=r?r.turns:h.map(re),a=ae(h,i,f);if(!a.length)throw Error(`empty-video`);E({phase:`render`,completed:1,total:a.length});let o=await le({el:n,scenes:a,audioBuffer:r?.buffer??null,durationMs:r?.durationMs??i.reduce((e,t)=>e+t.durationMs,0),size:f.size,quality:f.quality,signal:e.signal,applyScene:Se,onProgress:E,onFrame:Ce});U.current=o,O(o),E(null)}catch(e){if(e?.name===`AbortError`){E(null);return}let t=e instanceof R?`${e.message} Check the local voice service, then retry.`:e instanceof Error&&e.message===`conversation-too-long`?`The voiced result is over three minutes. Remove a turn and retry.`:e instanceof Error&&e.message===`open-codec-unavailable`?`This browser cannot encode an approved open-media format (AV1/VP9/VP8 with Opus). Try the current Chrome, Edge, or Firefox.`:`The video could not be created in this browser. Your conversation is unchanged.`;A(t),E(null)}finally{M(!1)}},[Se,Q,b,f,t,h,Ce]),$=e=>{Y||(s(new Set(e.map(y))),Q(),A(null))},Te=se[f.size],Ee=_(g(h[0]?.spec.title||h[0]?.question,new Date),D?.type??``),De=T?T.phase===`audio`?`Preparing required narration…`:T.phase===`render`?`Rendering scene ${T.completed} of ${T.total}…`:T.phase===`encode`?`Finishing the file…`:`Video ready`:``,Oe=b>te;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`shm-panel cvs-panel`,children:[(0,q.jsx)(`div`,{className:`shm-eyebrow`,children:`▷ CONVERSATION VIDEO`}),(0,q.jsx)(`div`,{className:`cvs-title`,children:`Share this conversation.`}),(0,q.jsx)(`div`,{className:`shm-sub`,children:`Pick the turns worth sending. Mavéa narrates every one unless Audio is off. The video renders locally in this browser and is never uploaded.`}),(0,q.jsx)(v,{kind:`publishing`,from:`live`}),(0,q.jsxs)(`div`,{className:`cvs-presets`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(i.slice(-1)),disabled:Y,children:`Current turn`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(e.slice(ie(e)).filter(e=>u.has(y(e)))),disabled:Y,children:`Current topic`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(i),disabled:Y,children:`All turns`})]}),(0,q.jsx)(`div`,{className:`cvs-turns`,role:`group`,"aria-label":`Conversation turns`,ref:G,children:e.map((e,t)=>{let n=y(e),r=u.has(n);return(0,q.jsxs)(`label`,{className:`cvs-turn-card`,"data-selected":a.has(n),children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:a.has(n),disabled:Y||!r,onChange:()=>{s(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}),Q()}}),(0,q.jsx)(`span`,{className:`cvs-thumb`,"aria-hidden":`true`,children:e.spec.blocks.length}),(0,q.jsxs)(`span`,{className:`cvs-turn-copy`,children:[(0,q.jsx)(`strong`,{children:d(e.question||e.spec.title)}),(0,q.jsxs)(`small`,{children:[new Date(e.at).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),r?``:` · no narration`]})]}),(0,q.jsx)(`span`,{className:`cvs-order`,children:t+1})]},n)})}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Size`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:de.map(e=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.size===e.id,"aria-pressed":f.size===e.id,disabled:Y,onClick:()=>{Q(),p(t=>({...t,size:e.id}))},title:e.hint,children:e.label},e.id))})]}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Quality`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:fe.map(e=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.quality===e.id,"aria-pressed":f.quality===e.id,disabled:Y,onClick:()=>{Q(),p(t=>({...t,quality:e.id}))},title:m(e.id),children:e.label},e.id))})]}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Include`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:ge.map(({key:e,label:t})=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f[e],"aria-pressed":f[e],disabled:Y,onClick:()=>{Q(),p(t=>({...t,[e]:!t[e]}))},children:t},e))})]}),(0,q.jsxs)(`div`,{className:`cvs-meter`,"data-over":Oe,children:[(0,q.jsxs)(`span`,{children:[_e(b),` selected`]}),(0,q.jsx)(`span`,{children:`3:00 max`}),(0,q.jsx)(`i`,{style:{width:`${Math.min(100,b/te*100)}%`}})]}),k&&(0,q.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:k}),!xe&&(0,q.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:`Video export needs an approved open video codec (AV1/VP9/VP8) and Opus audio. Try the current Chrome, Edge, or Firefox.`}),T&&(0,q.jsxs)(`div`,{className:`cvs-progress`,role:`status`,children:[De,B&&(0,q.jsx)(`em`,{className:`cvs-paused`,children:`Paused while this window is in the background — come back to it and the render picks up where it left off.`})]}),D&&(0,q.jsxs)(`div`,{className:`cvs-result`,role:`status`,children:[(0,q.jsxs)(`strong`,{children:[`Ready · `,D.width,`×`,D.height]}),(0,q.jsxs)(`span`,{children:[_e(D.durationMs),` · `,(D.blob.size/1048576).toFixed(1),` MB`]})]}),(0,q.jsx)(`div`,{className:`shm-actions`,children:D?(0,q.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,onClick:()=>{U.current=null,ee(D.blob,Ee,()=>void D.dispose?.()),O(null),l(`Saved to your downloads`,`good`),n?.()},children:`↓ Download video`}):Y?(0,q.jsx)(`button`,{type:`button`,className:`shm-btn`,onClick:()=>H.current?.abort(),children:`Cancel`}):(0,q.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,disabled:!h.length||Oe||!xe,onClick:()=>void we(),children:k?`Retry ${f.size} video`:`Create ${f.size} video`})})]}),(0,q.jsx)(`div`,{className:`shm-stage`,children:(0,q.jsxs)(`div`,{className:`shm-frame`,"data-aspect":`16:9`,children:[be?(0,q.jsx)(`canvas`,{ref:K,className:`cvs-monitor`,width:pe,height:me,role:`img`,"aria-label":`The frames being rendered`}):N?(0,q.jsx)(ve,{width:Te.width,height:Te.height,children:(0,q.jsx)(ue,{scene:S,options:f,glide:!X})}):(0,q.jsx)(`div`,{className:`cvs-stage`,"data-aspect":`16:9`,children:(0,q.jsx)(`div`,{className:`cvs-empty`,role:`status`,children:`Preparing preview…`})}),Z&&(0,q.jsx)(`div`,{className:`shm-controls`,children:(0,q.jsx)(`button`,{type:`button`,className:`shm-sound`,"data-on":L,onClick:()=>z(e=>!e),"aria-pressed":L,title:L?`Play preview`:`Pause preview`,children:L?(0,q.jsx)(o.play,{style:{width:17,height:17}}):(0,q.jsx)(o.pause,{style:{width:17,height:17}})})})]})}),j&&(0,q.jsx)(`div`,{className:`cvs-capture-host`,"data-size":f.size,"aria-hidden":`true`,inert:!0,children:(0,q.jsx)(ue,{scene:S,options:f,frameRef:e=>{W.current=e}})})]})}export{Y as ConversationVideoStudio};
|
|
1
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{F as r,R as i,f as a}from"./index-BMeoXWPR.js";import{n as o}from"./icons-gLFQTv74.js";import{t as s}from"./TopicCanvas-CyBGLgb0.js";import{t as c}from"./motion-BY_Egaxm.js";import{t as l}from"./toast-BBNs2h3L.js";import{t as u}from"./Presence-UqXfH4Y-.js";import{t as d}from"./sentenceCase-CLDiNB0f.js";import{a as f,i as p,r as m,t as h}from"./capture-Dyff_zSz.js";import{n as ee,r as g,t as _}from"./share--tpc1nLE.js";import{t as v}from"./FeatureUseNotice-BNDajs0p.js";import{r as y}from"./history-D2EH2X6D.js";import{n as b,r as x}from"./audioTrack-W_18XwGZ.js";import{t as S}from"./replay-DoRQJHjZ.js";import"./canvas-BX595EVB.js";import{t as C}from"./AnnotationLayer-CzXCVZCu.js";var w=e(),T=t(),te=18e4,E=650,D=350,O=700;function k(e){let t=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].reduce((e,t)=>e+t.trim().length,0);return 1e3+Math.max(1800,t/14*1e3)}function ne(e){return e.reduce((e,t)=>e+k(t),0)}function re(e){let t=k(e),n=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean),r=n.reduce((e,t)=>e+t.length,0),i=t-E-D,a=E;return{durationMs:t,spans:n.map(e=>{let t=Math.round(a);return a+=r?i*e.length/r:0,{text:e,startMs:t,endMs:Math.round(a)}})}}function ie(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.topicShift===!0||n?.topicShift===void 0&&n?.mode===`replace`)return t}return 0}function A(e,t,n){let r=n.spans[e+1];return r?r.startMs:E+Math.max(0,n.durationMs-E-D)*(e+1)/(t+1)}function ae(e,t,n){let r=[],i=0;return e.forEach((e,a)=>{let o=t[a];if(!o)return;let s=S(e),c=s.cues.map((e,t)=>A(t,s.cues.length,o)),l=[0,E,...c,o.durationMs].map(e=>Math.max(0,Math.min(o.durationMs,e))).filter((e,t,n)=>t===0||e>n[t-1]),u=[];for(let t=0;t<l.length-1;t++){let d=l[t],f=l[t+1],p=c.findIndex(e=>e===d),m=p>=0?s.cues[p]:void 0;m&&n.penMarks&&(u=[...u,...m.marks.map((t,n)=>({spot:m.spot,line:m.say,mark:t,delayMs:n*240,...t.kind===`connect`&&typeof t.onIndex==`number`?{toSpot:e.spec.blocks[t.onIndex]?.id}:{}}))]);let h=[...o.spans].reverse().find(e=>e.startMs<=d&&e.endMs>d);r.push({frame:e,turnIndex:a,startMs:i+d,durationMs:Math.max(1,f-d),spot:n.spotlights?m?.spot??null:null,caption:n.captions?h?.text??null:null,ink:u,questionOnly:t===0})}i+=o.durationMs}),j(r)}function j(e){let t=e[e.length-1];if(!t?.spot)return e;if(t.durationMs<=O*2)return e[e.length-1]={...t,spot:null},e;let n=t.durationMs-O;return e[e.length-1]={...t,durationMs:n},e.push({...t,startMs:t.startMs+n,durationMs:O,spot:null}),e}var M=24e3,N=.65,P=.18,F=.35,I=.89,L=6,R=class extends Error{turnIndex;question;constructor(e,t){super(`Narration is unavailable for “${t||`turn ${e+1}`}”.`),this.turnIndex=e,this.question=t,this.name=`RequiredConversationAudioError`}};function z(e){return[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean)}function B(e){return e.trim().replace(/\s+/g,` `)}function V(e,t){let n=z(e);return n.length>0&&t.pcm.length>0&&t.spans.length===n.length&&n.every((e,n)=>B(t.spans[n]?.text??``)===B(e)&&t.spans[n].t1>t.spans[n].t0)}function H(e){let t=e.spans.map(e=>({text:e.text,startMs:Math.round((N+e.t0)*1e3),endMs:Math.round((N+e.t1)*1e3)})),n=new Float32Array(e.pcm.length);for(let t=0;t<e.pcm.length;t++)n[t]=e.pcm[t]/32768;return{lines:[{text:t.map(e=>e.text).join(` `),pcm:n,rate:e.sampleRate}],durationS:N+e.duration+F,spans:t}}async function U(e,t,n,r){let i=z(e);if(!i.length)throw new R(t,e.question);let a=[];for(let o of i){if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);let i=await b(o,n);if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);if(!i.length)throw new R(t,e.question);a.push({text:o,pcm:i,rate:M}),r?.(i.length/M+P)}let o=[],s=N;for(let e of a){let t=s;s+=e.pcm.length/e.rate,o.push({text:e.text,startMs:Math.round(t*1e3),endMs:Math.round(s*1e3)}),s+=P}return{lines:a,durationS:s+F,spans:o}}async function oe(e,t,n,i){let a=r();if(a===null||typeof OfflineAudioContext>`u`)throw Error(`audio-encoding-unavailable`);let o=e.map(e=>{let n=t(e);return n&&V(e,n)?H(n):null}),s=o.reduce((e,t)=>e+(t?.durationS??1),0),c=e.reduce((e,t,n)=>e+(o[n]?0:z(t).length),0),l=0,u=new AbortController,d=()=>u.abort();n?.addEventListener(`abort`,d,{once:!0}),n?.aborted&&u.abort();let f=e=>{if(s+=e,i?.(++l,c),s*1e3>18e4)throw u.abort(),Error(`conversation-too-long`)},p;try{p=await x(e,2,(e,t)=>{let n=o[t];return n?Promise.resolve(n):U(e,t,u.signal,f)})}finally{n?.removeEventListener(`abort`,d)}let m=p.reduce((e,t)=>e+t.durationS,0);if(m*1e3>18e4)throw Error(`conversation-too-long`);let h=0;for(let e of p)for(let t of e.lines)for(let e=0;e<t.pcm.length;e++)h=Math.max(h,Math.abs(t.pcm[e]));let ee=h>0?Math.min(L,I/h):1,g=new OfflineAudioContext(1,Math.ceil(m*a),a),_=g.createGain();_.gain.value=ee,_.connect(g.destination);let v=0;for(let e of p){let t=v+N;for(let n of e.lines){let e=g.createBuffer(1,n.pcm.length,n.rate);e.getChannelData(0).set(n.pcm);let r=g.createBufferSource();r.buffer=e,r.connect(_),r.start(t),t+=n.pcm.length/n.rate+P}v+=e.durationS}return{buffer:await g.startRendering(),turns:p.map(e=>({durationMs:Math.round(e.durationS*1e3),spans:e.spans})),durationMs:Math.round(m*1e3)}}var se={"1080p":{width:1920,height:1080},"720p":{width:1280,height:720}};function W(e,t,n=a()){let{bitrate:r}=h(e,n);return t===`720p`?Math.round(r*.55):r}async function G(e){document.visibilityState===`hidden`&&await new Promise((t,n)=>{let r=()=>a(new DOMException(`Cancelled`,`AbortError`)),i=()=>{document.visibilityState!==`hidden`&&a()},a=a=>{document.removeEventListener(`visibilitychange`,i),e.removeEventListener(`abort`,r),a?n(a):t()};document.addEventListener(`visibilitychange`,i),e.addEventListener(`abort`,r,{once:!0})})}function ce(){return typeof document<`u`&&(typeof VideoEncoder<`u`&&typeof AudioEncoder<`u`||f()!==null)}var K={selector:`.cvs-presence`,bleed:96};async function le(e){let t=a(),n=se[e.size],r=e.scenes[0];r&&await e.applyScene(r,0);let i=getComputedStyle(e.el).backgroundColor,o=await p({el:e.el,audioBuffer:e.audioBuffer,aspect:`16:9`,dims:{w:n.width,h:n.height},quality:e.quality,bitrate:W(e.quality,e.size,t),background:i&&i!==`rgba(0, 0, 0, 0)`?i:void 0,maxDurationMs:e.durationMs,liveLayer:K,onFrame:e.onFrame,cues:e.scenes.slice(1).map((t,n)=>({atMs:t.startMs,apply:async()=>{let r=n+1;await e.applyScene(t,r),e.onProgress?.({phase:`render`,completed:r+1,total:e.scenes.length})}})),gate:async()=>{if(e.signal.aborted)throw new DOMException(`Cancelled`,`AbortError`);await G(e.signal)}});try{await o.done(),e.onProgress?.({phase:`encode`,completed:0,total:1});let t=await o.stop();return e.onProgress?.({phase:`ready`,completed:1,total:1}),{...t,...n}}catch(e){throw o.cancel(),e}}var q=n();function ue({scene:e,options:t,frameRef:n,glide:r=!0}){let a=(0,w.useRef)(null),o=(0,w.useRef)(null),c=(0,w.useRef)(null),l=i(),d=(0,w.useRef)(null),[f,p]=(0,w.useState)(0);(0,w.useEffect)(()=>(n?.(a.current),()=>n?.(null)),[n]),(0,w.useEffect)(()=>{let t=o.current,n=c.current;if(!t||!n)return;let r=d.current!==e?.turnIndex;d.current=e?.turnIndex??null;let i=r?0:null;if(e?.spot){let r=[...t.querySelectorAll(`[data-spot-id]`)].find(t=>t.dataset.spotId===e.spot);if(r){let e=0;for(let n=r;n&&n!==t;n=n.offsetParent)e+=n.offsetTop;i=Math.max(0,Math.min(e-(t.clientHeight-r.offsetHeight)/2,n.offsetHeight-t.clientHeight))}}if(i===null)return;n.style.setProperty(`--cvs-shift`,`${-i}px`);let a=window.setTimeout(()=>p(e=>e+1),420);return()=>window.clearTimeout(a)},[e?.spot,e?.turnIndex]);let m=e?.questionOnly??!1,h=e?e.frame.question||e.frame.spec.title:``;return(0,q.jsx)(`div`,{ref:a,className:`cvs-stage`,"data-aspect":`16:9`,"data-question-only":m,"data-captioned":t.captions,children:e?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`header`,{className:`cvs-header`,children:[(0,q.jsxs)(`div`,{className:`cvs-brand`,children:[(0,q.jsx)(`span`,{className:`cvs-brand-dot`}),` Mavéa conversation`]}),(0,q.jsxs)(`div`,{className:`cvs-turn`,children:[`Turn `,e.turnIndex+1]}),(0,q.jsx)(`h2`,{children:h})]}),m?(0,q.jsxs)(`div`,{className:`cvs-ask`,children:[(0,q.jsx)(`span`,{className:`cvs-ask-eyebrow`,children:`Asked`}),(0,q.jsx)(`p`,{className:`cvs-ask-line`,children:h})]}):(0,q.jsxs)(`div`,{ref:o,className:`cvs-canvas`,children:[(0,q.jsx)(`div`,{className:`topic-wrap`,ref:c,"data-glide":r,children:(0,q.jsx)(s,{data:e.frame.spec,spot:e.spot,built:{},onProve:()=>{}})},e.turnIndex),t.penMarks&&(0,q.jsx)(C,{spots:e.ink,within:a.current,revision:f})]}),t.captions&&e.caption&&(0,q.jsx)(`div`,{className:`cvs-caption`,children:e.caption}),t.presence&&(0,q.jsx)(`div`,{className:`cvs-presence`,ref:l,children:(0,q.jsx)(u,{state:m?`thinking`:`speaking`})})]}):(0,q.jsx)(`div`,{className:`cvs-empty`,children:`Choose a turn to preview it.`})})}var de=[{id:`1080p`,label:`1080p`,hint:`1920×1080`},{id:`720p`,label:`720p`,hint:`1280×720`}],fe=[{id:`balanced`,label:`Balanced`},{id:`high`,label:`High`},{id:`ultra`,label:`Ultra`}],J=650,pe=640,me=360;function he(e=300){return Promise.race([(async()=>{await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e()))})(),new Promise(t=>window.setTimeout(t,e))])}var ge=[{key:`captions`,label:`Captions`},{key:`spotlights`,label:`Spotlights`},{key:`penMarks`,label:`Pen marks`},{key:`presence`,label:`Mavéa`},{key:`audio`,label:`Audio`}];function _e(e){let t=Math.max(0,Math.round(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}function ve(e){let t=(0,T.c)(12),{width:n,height:r,children:i}=e,a=(0,w.useRef)(null),[o,s]=(0,w.useState)(0),c,l;t[0]!==r||t[1]!==n?(c=()=>{let e=a.current;if(!e)return;let t=()=>{let{width:t,height:i}=e.getBoundingClientRect();!t||!i||s(Math.min(t/n,i/r))};if(t(),typeof ResizeObserver>`u`)return;let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},l=[n,r],t[0]=r,t[1]=n,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,w.useLayoutEffect)(c,l);let u=`scale(${o})`,d=o?void 0:`hidden`,f;t[4]!==r||t[5]!==u||t[6]!==d||t[7]!==n?(f={width:n,height:r,transform:u,visibility:d},t[4]=r,t[5]=u,t[6]=d,t[7]=n,t[8]=f):f=t[8];let p;return t[9]!==i||t[10]!==f?(p=(0,q.jsx)(`div`,{ref:a,className:`cvs-viewport`,children:(0,q.jsx)(`div`,{className:`cvs-scaler`,style:f,children:i})}),t[9]=i,t[10]=f,t[11]=p):p=t[11],p}function ye(e){return e.map(e=>{let t=k(e);return{durationMs:t,spans:[{text:e.narration,startMs:650,endMs:Math.max(651,t-350)}]}})}function Y({frames:e,retainedAudio:t,onShared:n,onBusyChange:r}){let i=(0,w.useMemo)(()=>e.filter(e=>!!((e.spoken??e.narration).trim()||e.tour.some(e=>(e.saySpoken??e.say)?.trim()))),[e]),[a,s]=(0,w.useState)(()=>new Set(i.length?[y(i[i.length-1])]:[])),u=(0,w.useMemo)(()=>new Set(i.map(y)),[i]),[f,p]=(0,w.useState)({size:`1080p`,quality:`high`,captions:!0,spotlights:!0,penMarks:!0,presence:!0,audio:!0}),h=(0,w.useMemo)(()=>e.filter(e=>a.has(y(e))),[e,a]),b=(0,w.useMemo)(()=>ne(h),[h]),x=(0,w.useMemo)(()=>ae(h,ye(h),f),[h,f]),[S,C]=(0,w.useState)(()=>x[0]??null),[T,E]=(0,w.useState)(null),[D,O]=(0,w.useState)(null),[k,A]=(0,w.useState)(null),[j,M]=(0,w.useState)(!1),[N,P]=(0,w.useState)(!1),[F,I]=(0,w.useState)(0),[L,z]=(0,w.useState)(!1),[B,V]=(0,w.useState)(!1),H=(0,w.useRef)(null),U=(0,w.useRef)(null),W=(0,w.useRef)(null),G=(0,w.useRef)(null),K=(0,w.useRef)(null),Y=T!==null&&T.phase!==`ready`,be=Y&&T?.phase!==`audio`,xe=ce(),X=(0,w.useMemo)(()=>c(),[]),Z=N&&!Y&&!X&&x.length>1;(0,w.useEffect)(()=>r?.(Y),[Y,r]),(0,w.useEffect)(()=>{if(!Y){V(!1);return}let e=()=>V(document.visibilityState===`hidden`);return e(),document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[Y]),(0,w.useEffect)(()=>P(!0),[]),(0,w.useEffect)(()=>{let e=X?x.findIndex(e=>!e.questionOnly):0;I(Math.max(0,e)),z(!1)},[x,X]),(0,w.useEffect)(()=>{Y||C(x[F]??x[0]??null)},[x,F,Y]),(0,w.useEffect)(()=>{if(!Z||L)return;let e=x[F]??x[0],t=window.setTimeout(()=>I(e=>(e+1)%x.length),Math.max(J,e?.durationMs??J));return()=>window.clearTimeout(t)},[Z,L,x,F]),(0,w.useEffect)(()=>()=>{H.current?.abort(),U.current?.dispose?.(),U.current=null,r?.(!1)},[r]),(0,w.useEffect)(()=>{let e=G.current;if(!e)return;let t=()=>{e.dataset.overflowing=String(e.scrollHeight>e.clientHeight+1)};if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[e]);let Se=(0,w.useCallback)(async e=>{C(e),await he()},[]),Ce=(0,w.useCallback)(e=>{let t=K.current,n=t?.getContext(`2d`);!t||!n||n.drawImage(e,0,0,t.width,t.height)},[]),Q=(0,w.useCallback)(()=>{U.current?.dispose?.(),U.current=null,O(null),E(null)},[]),we=(0,w.useCallback)(async()=>{if(!h.length||b>18e4)return;let e=new AbortController;H.current=e,Q(),A(null),E(f.audio?{phase:`audio`,completed:0,total:h.length}:{phase:`render`,completed:1,total:1}),M(!0);try{await he();let n=W.current;if(!n)throw Error(`capture-stage-unavailable`);let r=f.audio?await oe(h,t??(()=>null),e.signal):null,i=r?r.turns:h.map(re),a=ae(h,i,f);if(!a.length)throw Error(`empty-video`);E({phase:`render`,completed:1,total:a.length});let o=await le({el:n,scenes:a,audioBuffer:r?.buffer??null,durationMs:r?.durationMs??i.reduce((e,t)=>e+t.durationMs,0),size:f.size,quality:f.quality,signal:e.signal,applyScene:Se,onProgress:E,onFrame:Ce});U.current=o,O(o),E(null)}catch(e){if(e?.name===`AbortError`){E(null);return}let t=e instanceof R?`${e.message} Check the local voice service, then retry.`:e instanceof Error&&e.message===`conversation-too-long`?`The voiced result is over three minutes. Remove a turn and retry.`:e instanceof Error&&e.message===`open-codec-unavailable`?`This browser cannot encode an approved open-media format (AV1/VP9/VP8 with Opus). Try the current Chrome, Edge, or Firefox.`:`The video could not be created in this browser. Your conversation is unchanged.`;A(t),E(null)}finally{M(!1)}},[Se,Q,b,f,t,h,Ce]),$=e=>{Y||(s(new Set(e.map(y))),Q(),A(null))},Te=se[f.size],Ee=_(g(h[0]?.spec.title||h[0]?.question,new Date),D?.type??``),De=T?T.phase===`audio`?`Preparing required narration…`:T.phase===`render`?`Rendering scene ${T.completed} of ${T.total}…`:T.phase===`encode`?`Finishing the file…`:`Video ready`:``,Oe=b>te;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`shm-panel cvs-panel`,children:[(0,q.jsx)(`div`,{className:`shm-eyebrow`,children:`▷ CONVERSATION VIDEO`}),(0,q.jsx)(`div`,{className:`cvs-title`,children:`Share this conversation.`}),(0,q.jsx)(`div`,{className:`shm-sub`,children:`Pick the turns worth sending. Mavéa narrates every one unless Audio is off. The video renders locally in this browser and is never uploaded.`}),(0,q.jsx)(v,{kind:`publishing`,from:`live`}),(0,q.jsxs)(`div`,{className:`cvs-presets`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(i.slice(-1)),disabled:Y,children:`Current turn`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(e.slice(ie(e)).filter(e=>u.has(y(e)))),disabled:Y,children:`Current topic`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(i),disabled:Y,children:`All turns`})]}),(0,q.jsx)(`div`,{className:`cvs-turns`,role:`group`,"aria-label":`Conversation turns`,ref:G,children:e.map((e,t)=>{let n=y(e),r=u.has(n);return(0,q.jsxs)(`label`,{className:`cvs-turn-card`,"data-selected":a.has(n),children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:a.has(n),disabled:Y||!r,onChange:()=>{s(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}),Q()}}),(0,q.jsx)(`span`,{className:`cvs-thumb`,"aria-hidden":`true`,children:e.spec.blocks.length}),(0,q.jsxs)(`span`,{className:`cvs-turn-copy`,children:[(0,q.jsx)(`strong`,{children:d(e.question||e.spec.title)}),(0,q.jsxs)(`small`,{children:[new Date(e.at).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),r?``:` · no narration`]})]}),(0,q.jsx)(`span`,{className:`cvs-order`,children:t+1})]},n)})}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Size`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:de.map(e=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.size===e.id,"aria-pressed":f.size===e.id,disabled:Y,onClick:()=>{Q(),p(t=>({...t,size:e.id}))},title:e.hint,children:e.label},e.id))})]}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Quality`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:fe.map(e=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.quality===e.id,"aria-pressed":f.quality===e.id,disabled:Y,onClick:()=>{Q(),p(t=>({...t,quality:e.id}))},title:m(e.id),children:e.label},e.id))})]}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Include`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:ge.map(({key:e,label:t})=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f[e],"aria-pressed":f[e],disabled:Y,onClick:()=>{Q(),p(t=>({...t,[e]:!t[e]}))},children:t},e))})]}),(0,q.jsxs)(`div`,{className:`cvs-meter`,"data-over":Oe,children:[(0,q.jsxs)(`span`,{children:[_e(b),` selected`]}),(0,q.jsx)(`span`,{children:`3:00 max`}),(0,q.jsx)(`i`,{style:{width:`${Math.min(100,b/te*100)}%`}})]}),k&&(0,q.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:k}),!xe&&(0,q.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:`Video export needs an approved open video codec (AV1/VP9/VP8) and Opus audio. Try the current Chrome, Edge, or Firefox.`}),T&&(0,q.jsxs)(`div`,{className:`cvs-progress`,role:`status`,children:[De,B&&(0,q.jsx)(`em`,{className:`cvs-paused`,children:`Paused while this window is in the background — come back to it and the render picks up where it left off.`})]}),D&&(0,q.jsxs)(`div`,{className:`cvs-result`,role:`status`,children:[(0,q.jsxs)(`strong`,{children:[`Ready · `,D.width,`×`,D.height]}),(0,q.jsxs)(`span`,{children:[_e(D.durationMs),` · `,(D.blob.size/1048576).toFixed(1),` MB`]})]}),(0,q.jsx)(`div`,{className:`shm-actions`,children:D?(0,q.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,onClick:()=>{U.current=null,ee(D.blob,Ee,()=>void D.dispose?.()),O(null),l(`Saved to your downloads`,`good`),n?.()},children:`↓ Download video`}):Y?(0,q.jsx)(`button`,{type:`button`,className:`shm-btn`,onClick:()=>H.current?.abort(),children:`Cancel`}):(0,q.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,disabled:!h.length||Oe||!xe,onClick:()=>void we(),children:k?`Retry ${f.size} video`:`Create ${f.size} video`})})]}),(0,q.jsx)(`div`,{className:`shm-stage`,children:(0,q.jsxs)(`div`,{className:`shm-frame`,"data-aspect":`16:9`,children:[be?(0,q.jsx)(`canvas`,{ref:K,className:`cvs-monitor`,width:pe,height:me,role:`img`,"aria-label":`The frames being rendered`}):N?(0,q.jsx)(ve,{width:Te.width,height:Te.height,children:(0,q.jsx)(ue,{scene:S,options:f,glide:!X})}):(0,q.jsx)(`div`,{className:`cvs-stage`,"data-aspect":`16:9`,children:(0,q.jsx)(`div`,{className:`cvs-empty`,role:`status`,children:`Preparing preview…`})}),Z&&(0,q.jsx)(`div`,{className:`shm-controls`,children:(0,q.jsx)(`button`,{type:`button`,className:`shm-sound`,"data-on":L,onClick:()=>z(e=>!e),"aria-pressed":L,title:L?`Play preview`:`Pause preview`,children:L?(0,q.jsx)(o.play,{style:{width:17,height:17}}):(0,q.jsx)(o.pause,{style:{width:17,height:17}})})})]})}),j&&(0,q.jsx)(`div`,{className:`cvs-capture-host`,"data-size":f.size,"aria-hidden":`true`,inert:!0,children:(0,q.jsx)(ue,{scene:S,options:f,frameRef:e=>{W.current=e}})})]})}export{Y as ConversationVideoStudio};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TopicCanvas-
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{t as a}from"./preloadableLazy-MIX1ApBW.js";import{E as o,S as s}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TopicCanvas-CyBGLgb0.js","assets/rolldown-runtime-DkW27tQK.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/jsx-runtime-DeHZSEgm.js","assets/preload-helper-CiWYd9n-.js","assets/index-BMeoXWPR.js","assets/useInView-DsTvv7L_.js","assets/coreIcons-DDTChE1H.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/theme-D5D55hZi.js","assets/index-CFE0vqqO.css","assets/icons-gLFQTv74.js","assets/loader-BRfSnl9t.js","assets/FallbackCard-CUe6i-zT.js","assets/blockLabel-FogyzEQY.js","assets/FallbackCard-D_6ps1xA.css","assets/useFocusTrap-CJmpNZv2.js","assets/motion-BY_Egaxm.js","assets/useSpatialCanvas-CfmZOXXP.js","assets/CanvasSkeleton-BmGjJHUQ.js","assets/CanvasSkeleton-DYASkTjW.css","assets/richText-BkxJhl9N.js","assets/toast-BBNs2h3L.js","assets/format-q0LwBjID.js","assets/safeImageUrl-BINWXOTz.js","assets/useValidatedImage-BQi2c66o.js","assets/empty-D51uhW0E.js","assets/deepenStore-BWLLzLCY.js","assets/catalog-BHjl-1uH.js","assets/http-Bqk6nJiH.js","assets/lib-Dkb5WBRc.js","assets/BlockEmpty-B-giiUPy.js","assets/motion-DxHSlPN6.js","assets/lib-DP9Kuxqk.css","assets/TopicCanvas-sGuo7pnQ.css","assets/generateLive-CDIkclO4.js","assets/history-D2EH2X6D.js","assets/number-zqlPMliA.js","assets/catalog-vLsIS_Na.js","assets/facts-CNQz8OQz.js","assets/blockTypes-DUDdP3pB.js","assets/streamParse-BX0bAppQ.js","assets/liveSchema-eKgFc5D0.js","assets/sourceHost-BV3t2XDb.js","assets/spokenText-Dy-GZvZV.js","assets/annotations-CftUUB13.js","assets/contentVault-XKWjF2FB.js","assets/keyVault-Aw5Y2PjT.js","assets/screen-DFWKge3-.js","assets/attachments-BW-vki-E.js","assets/providers-CPhoN8j0.js","assets/info-CiqHR5cs.js","assets/route-CMdTFx0P.js","assets/effort-QeWrMtZt.js","assets/speed-BOytg6bC.js","assets/cache-7UEbF3S6.js","assets/validate-MQG0EcTD.js","assets/types-C42I77wh.js","assets/json-J4Y32_i9.js","assets/verbatim-DBTj9sPD.js","assets/citation-BsSvaaer.js","assets/receipts-D7zveV-I.js","assets/officeDoc-GU6Cssjf.js","assets/csv-DAqzYXUs.js","assets/search-ZN7v_P5B.js","assets/store-DqOaVRLn.js","assets/ready-_sg3IJkE.js","assets/shapes-BwXCYTlu.js","assets/ledger-BssK9Pv2.js","assets/now-C9-UAzTC.js","assets/select-StjZ4ZRN.js","assets/offers-eBNj_lSP.js","assets/scale-Bcgfo6Hp.js","assets/spreadLabels-CQ8hufvK.js","assets/useLiveConfig-CvOQTr0s.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{t as a}from"./preloadableLazy-MIX1ApBW.js";import{E as o,S as s}from"./index-BMeoXWPR.js";import{n as c}from"./icons-gLFQTv74.js";import{t as l}from"./FeatureUseNotice-BNDajs0p.js";import{n as u}from"./history-D2EH2X6D.js";/* empty css */import{n as d}from"./TemplatePicker-CAC4ggbJ.js";import{_ as f,a as p,g as m,l as h,o as g,p as _,r as v,s as y}from"./store-B2Rpbqgg.js";import{r as b}from"./courseSeed-CZdNBTTs.js";import{i as x,n as S,r as C}from"./mastery-DB5qpRAy.js";/* empty css */import{CourseRail as w}from"./CourseRail-DD8gtAn4.js";var T=t(),E=e(),D=n();r();var O=a(()=>i(()=>import(`./TopicCanvas-CyBGLgb0.js`).then(e=>e.n).then(e=>({default:e.TopicCanvas})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]))),k=O.Component,A=9e4;function j(){return(0,E.useSyncExternalStore)(f,y,y)}function M(){let e=b();if(e)return{courseId:e.courseId,lessonIdx:e.lessonIdx};try{let e=new URLSearchParams(window.location.hash.split(`?`)[1]??``),t=e.get(`c`)?.trim();if(!t)return null;let n=Number(e.get(`l`));return{courseId:t,lessonIdx:Number.isFinite(n)&&n>=0?Math.round(n):0}}catch{return null}}function N(e,t){try{let n=`#/course?c=${encodeURIComponent(e)}&l=${t}`;window.location.hash!==n&&window.history.replaceState(null,``,n)}catch{}}function P(e,t){let n=Date.now();return{id:u(n),question:t,narration:e.narration,...e.spoken?{spoken:e.spoken}:{},mode:`replace`,tour:(e.tour??[]).map(e=>({index:e.index,...e.say?{say:e.say}:{},...e.saySpoken?{saySpoken:e.saySpoken}:{},...e.mark?{mark:e.mark}:{},...e.marks?{marks:e.marks}:{}})),spec:e.spec,at:n}}function F(){"use no memo";(0,E.useEffect)(()=>s(document),[]),j(),(0,E.useEffect)(()=>S(),[]);let e=(0,E.useRef)(M()),t=e.current?.courseId,n=t?g(t):void 0,[r,a]=(0,E.useState)(()=>{let t=e.current?.lessonIdx??0;return n?Math.min(Math.max(0,t),n.lessons.length-1):Math.max(0,t)}),[u,f]=(0,E.useState)(`loading`),[y,b]=(0,E.useState)(null),[T,F]=(0,E.useState)(``),[L,R]=(0,E.useState)(null),[V,H]=(0,E.useState)(!1),[U,W]=(0,E.useState)(null),G=(0,E.useRef)(null),K=(0,E.useCallback)(e=>{let n=t?g(t):void 0,r=n?.lessons[e];if(!n||!r)return;G.current?.ctrl.abort(),m(n.id,e),N(n.id,e);let a=`Lesson ${e+1}: ${r.title}`,o=p(n.id,r.id);if(O.preload().catch(()=>{}),o){G.current=null,b(o.spec),F(o.narration),R(null),H(!1),W(null),f(`ready`);return}b(null),F(``),R(null),H(!1),f(`loading`),W(null);let s={ctrl:new AbortController,timedOut:!1};G.current=s;let c=setTimeout(()=>{s.timedOut=!0,s.ctrl.abort()},A);(async()=>{try{let[t,o,c]=await Promise.all([i(()=>import(`./generateLive-CDIkclO4.js`),__vite__mapDeps([38,17,30,31,32,39,40,41,5,1,42,43,44,45,14,4,27,29,46,47,48,49,50,51,52,53,54,55,56,6,2,3,7,8,9,10,11,12,13,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76])),i(()=>import(`./useLiveConfig-CvOQTr0s.js`).then(e=>e.f),__vite__mapDeps([77,1,2,3,54,50,53,32,43,52,55])),i(()=>import(`./streamParse-BX0bAppQ.js`).then(e=>e.s),__vite__mapDeps([44,1]))]),l=x(n,e,h(n.id),C(n.topic)),u=o.toModelConfig(o.getLiveConfigV2()),d=``,p=``,m=()=>G.current===s&&!s.ctrl.signal.aborted,g=await t.generateLive(`Teach this lesson: "${r.title}" — ${r.goal}`,[],u,e=>{if(!m())return;d+=e;let t=c.extractNarrationProgress(d);if(!t)return;let n=c.nextSpeakableChunk(t.text,p.length,t.done);n.chunk&&(p=t.text.slice(0,n.consumed),F(p),f(`streaming`))},{lesson:l,signal:s.ctrl.signal,onPartial:e=>{m()&&(b(e.spec),e.narration&&(p=e.narration,F(e.narration)),f(`streaming`))},onPending:e=>{m()&&(R(e),e&&f(`streaming`))},onThinking:e=>{m()&&(H(e),e&&f(`streaming`))}});if(s.ctrl.signal.aborted&&!s.timedOut)return;if(s.timedOut){W(`Building this lesson took too long and was stopped — the model may be slow or rate-limited right now. Try again in a moment.`),f(`error`);return}if(g.error){W(g.error.message),f(`error`);return}v(n.id,r.id,P(g,a)),b(g.spec),F(g.narration),R(null),H(!1),W(null),f(`ready`)}catch{if(s.ctrl.signal.aborted&&!s.timedOut)return;W(s.timedOut?`Building this lesson took too long and was stopped — try again in a moment.`:`Couldn't build this lesson — check your connection and model settings, then try again.`),f(`error`)}finally{clearTimeout(c),G.current===s&&(G.current=null)}})()},[t]);(0,E.useEffect)(()=>(K(r),()=>G.current?.ctrl.abort()),[r,K]);let q=(0,E.useCallback)(e=>{let n=t?g(t):void 0,i=n?.lessons[r];!n||!i||_(n.id,i.id,e)},[t,r]),J=(0,E.useCallback)(()=>{window.location.hash=`#/courses`},[]);if(!n)return(0,D.jsx)(`div`,{className:`mavea-app clr-app`,children:(0,D.jsx)(`main`,{className:`clr-stage clr-stage-center`,children:(0,D.jsxs)(`div`,{className:`clr-empty`,children:[(0,D.jsx)(`div`,{className:`clr-empty-icon`,"aria-hidden":`true`,children:(0,D.jsx)(c.layers,{})}),(0,D.jsx)(`div`,{className:`clr-empty-head`,children:`This lesson isn’t here`}),(0,D.jsx)(`div`,{className:`clr-empty-sub`,children:`The course may have been removed, or the link is out of date. Head back and pick one to open.`}),(0,D.jsxs)(`button`,{type:`button`,className:`clr-btn clr-btn-primary`,onClick:J,children:[(0,D.jsx)(c.chevL,{}),` Back to courses`]})]})})});let Y=u===`loading`||u===`streaming`,X=h(n.id);return(0,D.jsx)(`div`,{className:`mavea-app clr-app`,children:(0,D.jsx)(`main`,{className:`clr-stage`,children:(0,D.jsxs)(`div`,{className:`clr-col`,children:[(0,D.jsx)(`div`,{className:`clr-top`,children:(0,D.jsx)(d,{triggerClassName:`ctrl`})}),(0,D.jsx)(l,{kind:`learning`}),(0,D.jsx)(w,{course:n,lessonIdx:r,progress:X,onPrev:()=>a(e=>Math.max(0,e-1)),onNext:()=>a(e=>Math.min(n.lessons.length-1,e+1)),onCheckpoint:q,busy:Y},`${n.id}:${r}`),u===`loading`&&(0,D.jsx)(I,{lessonNumber:r+1,course:n}),u===`streaming`&&(0,D.jsx)(z,{narration:T,pendingShape:L,thinking:V}),u===`error`&&(0,D.jsx)(B,{message:U??`Something went wrong building this lesson.`,onRetry:()=>K(r)}),(u===`streaming`||u===`ready`)&&y&&(0,D.jsx)(`div`,{className:`clr-canvas`,children:(0,D.jsx)(o,{label:`Lesson canvas`,children:(0,D.jsx)(k,{data:y,spot:null,built:{},onProve:()=>{}})})})]})})})}function I(e){let t=(0,T.c)(8),{lessonNumber:n,course:r}=e,i=r.lessons[n-1],a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,D.jsxs)(`div`,{className:`clr-lens`,"aria-hidden":`true`,children:[(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{})]}),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,D.jsxs)(`div`,{className:`clr-state-head`,children:[`Building lesson `,n,`…`]}),t[1]=n,t[2]=o);let s;t[3]===i?s=t[4]:(s=i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`div`,{className:`clr-state-sub`,children:i.goal}),(0,D.jsx)(`div`,{className:`clr-lesson-outline`,"aria-label":`Lesson outline`,children:i.objectives.slice(0,3).map(L)})]}),t[3]=i,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,D.jsxs)(`div`,{className:`clr-state`,role:`status`,"aria-live":`polite`,children:[a,o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function L(e,t){return(0,D.jsxs)(`div`,{className:`clr-lesson-outline-row`,children:[(0,D.jsx)(`span`,{"aria-hidden":`true`,children:t+1}),(0,D.jsx)(`strong`,{children:e})]},e)}function R(e){return e?`Building ${e.replace(/[_-]+/g,` `)}`:`Building the next section`}function z(e){let t=(0,T.c)(11),{narration:n,pendingShape:r,thinking:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,D.jsx)(`span`,{className:`clr-stream-pulse`,"aria-hidden":`true`}),t[0]=a):a=t[0];let o;t[1]!==r||t[2]!==i?(o=i?`Thinking through the lesson`:R(r),t[1]=r,t[2]=i,t[3]=o):o=t[3];let s;t[4]===o?s=t[5]:(s=(0,D.jsxs)(`div`,{className:`clr-stream-label`,children:[o,`…`]}),t[4]=o,t[5]=s);let c;t[6]===n?c=t[7]:(c=n&&(0,D.jsx)(`p`,{children:n}),t[6]=n,t[7]=c);let l;return t[8]!==s||t[9]!==c?(l=(0,D.jsxs)(`div`,{className:`clr-stream`,role:`status`,"aria-live":`polite`,"aria-atomic":`false`,children:[a,(0,D.jsxs)(`div`,{className:`clr-stream-copy`,children:[s,c]})]}),t[8]=s,t[9]=c,t[10]=l):l=t[10],l}function B(e){let t=(0,T.c)(10),{message:n,onRetry:r}=e,i,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,D.jsx)(`div`,{className:`clr-state-icon clr-state-icon-warn`,"aria-hidden":`true`,children:(0,D.jsx)(c.alert,{})}),a=(0,D.jsx)(`div`,{className:`clr-state-head`,children:`Couldn’t build this lesson`}),t[0]=i,t[1]=a):(i=t[0],a=t[1]);let o;t[2]===n?o=t[3]:(o=(0,D.jsx)(`div`,{className:`clr-state-sub clr-state-error`,children:n}),t[2]=n,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,D.jsx)(c.refresh,{}),t[4]=s):s=t[4];let l;t[5]===r?l=t[6]:(l=(0,D.jsxs)(`button`,{type:`button`,className:`clr-btn clr-btn-primary`,onClick:r,children:[s,` Try again`]}),t[5]=r,t[6]=l);let u;return t[7]!==o||t[8]!==l?(u=(0,D.jsxs)(`div`,{className:`clr-state`,children:[i,a,o,l]}),t[7]=o,t[8]=l,t[9]=u):u=t[9],u}export{F as CourseLessonReader};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TemplatePicker-
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a,r as o,t as s}from"./preloadableLazy-MIX1ApBW.js";import{O as c,S as l}from"./index-yJfYsjAB.js";import{n as u}from"./icons-gLFQTv74.js";import{t as d}from"./useFocusTrap-CJmpNZv2.js";import{t as f}from"./homeTarget-CDc-r2mj.js";/* empty css */import{t as p}from"./DropSelect-rrPFJVkl.js";import{i as m}from"./store-D2IJF4SA.js";import{_ as h,c as g,h as _,l as v,m as y,s as b}from"./store-B2Rpbqgg.js";import{i as x,t as S}from"./courseSeed-CZdNBTTs.js";/* empty css */import{n as ee,t as te}from"./useSrsCards-C27o39fF.js";import{t as ne}from"./deckLine-NBd3MyGT.js";var re=t(),C=e(),w=n();r();var T=s(()=>i(()=>import(`./TemplatePicker-PWw_xyWb.js`).then(e=>e.r).then(e=>({default:e.TemplatePicker})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]))).Component,E;function D(){return E??=Promise.all([i(()=>import(`./generateCourse-DPL0bO3L.js`).then(e=>e.n),__vite__mapDeps([22,1,17,18,19,15,20,21,23])),i(()=>import(`./useLiveConfig-CvOQTr0s.js`).then(e=>e.f),__vite__mapDeps([14,1,2,3,15,16,17,18,19,20,21]))]),E}function O(){D().catch(()=>{})}function k(){return(0,C.useSyncExternalStore)(h,b,b)}function ie(e,t){S({courseId:e,lessonIdx:t}),window.location.hash=`#/course`}function ae(e,t){let n=e.lessons.filter(e=>t.lessons[e.id]?.status===`done`).length;return n>=e.lessons.length?`complete`:n>0||t.current>0?`in-progress`:`new`}var oe={beginner:`Beginner`,intermediate:`Intermediate`,expert:`Expert`},A=[`Personal finance basics`,`How the internet works`,`Spanish for travel`];function j(e){let t=(0,re.c)(67),{course:n,progress:r,onRemove:i}=e,s=(0,C.useRef)(null),[c,l]=(0,C.useState)(!1),d=n.lessons.length,f;if(t[0]!==n.lessons||t[1]!==r.lessons){let e;t[3]===r.lessons?e=t[4]:(e=e=>r.lessons[e.id]?.status===`done`,t[3]=r.lessons,t[4]=e),f=n.lessons.filter(e),t[0]=n.lessons,t[1]=r.lessons,t[2]=f}else f=t[2];let p=f.length,h;t[5]!==p||t[6]!==d?(h=d?Math.round(p/d*100):0,t[5]=p,t[6]=d,t[7]=h):h=t[7];let g=h,_=ae(n,r),v=Math.max(0,Math.min(r.current,d-1)),y=n.lessons[v],b=`Lesson ${v+1} of ${d}`,x=_===`complete`?`Review`:_===`in-progress`?`Continue`:`Start course`;te();let S;t[8]===n.title?S=t[9]:(S=e=>e.name===n.title,t[8]=n.title,t[9]=S);let T=m().decks.find(S),E,D;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=s.current;if(!e)return;let t=ue,n=()=>{t=o(le)};if(!(`IntersectionObserver`in window))return n(),t;let r=new IntersectionObserver(e=>{e.some(ce)&&(r.disconnect(),n())});return r.observe(e),()=>{r.disconnect(),t()}},D=[],t[10]=E,t[11]=D):(E=t[10],D=t[11]),(0,C.useEffect)(E,D);let O=`cr-card cr-card-${_}`,k;t[12]===n.level?k=t[13]:(k=n.level&&(0,w.jsx)(`span`,{className:`cr-badge`,children:oe[n.level]}),t[12]=n.level,t[13]=k);let A=`cr-status cr-status-`+_,j=_===`complete`?`Complete`:_===`in-progress`?`In progress`:`New`,M;t[14]!==A||t[15]!==j?(M=(0,w.jsx)(`span`,{className:A,children:j}),t[14]=A,t[15]=j,t[16]=M):M=t[16];let N;t[17]!==M||t[18]!==k?(N=(0,w.jsxs)(`div`,{className:`cr-card-top`,children:[k,M]}),t[17]=M,t[18]=k,t[19]=N):N=t[19];let P;t[20]===n.title?P=t[21]:(P=(0,w.jsx)(`h3`,{className:`cr-card-title`,children:n.title}),t[20]=n.title,t[21]=P);let F=n.subtitle||n.topic,I;t[22]===F?I=t[23]:(I=(0,w.jsx)(`p`,{className:`cr-card-sub`,children:F}),t[22]=F,t[23]=I);let L=`${n.title} progress`,R=`${p} of ${d} lessons complete`,z=`${g}%`,B;t[24]===z?B=t[25]:(B=(0,w.jsx)(`div`,{className:`cr-progress-fill`,style:{width:z}}),t[24]=z,t[25]=B);let V;t[26]!==g||t[27]!==L||t[28]!==R||t[29]!==B?(V=(0,w.jsx)(`div`,{className:`cr-progress`,role:`progressbar`,"aria-label":L,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":g,"aria-valuetext":R,children:B}),t[26]=g,t[27]=L,t[28]=R,t[29]=B,t[30]=V):V=t[30];let H;t[31]===b?H=t[32]:(H=(0,w.jsx)(`span`,{children:b}),t[31]=b,t[32]=H);let U;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,w.jsx)(`span`,{className:`cr-card-meta-dot`,"aria-hidden":`true`}),t[33]=U):U=t[33];let W;t[34]!==p||t[35]!==d?(W=(0,w.jsxs)(`span`,{children:[p,`/`,d,` done`]}),t[34]=p,t[35]=d,t[36]=W):W=t[36];let G;t[37]!==H||t[38]!==W?(G=(0,w.jsxs)(`div`,{className:`cr-card-meta`,children:[H,U,W]}),t[37]=H,t[38]=W,t[39]=G):G=t[39];let K;t[40]!==y||t[41]!==_?(K=y&&(0,w.jsxs)(`div`,{className:`cr-current-lesson`,children:[(0,w.jsx)(`span`,{children:_===`complete`?`Review from`:`Up next`}),(0,w.jsx)(`strong`,{children:y.title})]}),t[40]=y,t[41]=_,t[42]=K):K=t[42];let de=T&&(0,w.jsxs)(`a`,{className:`cr-deck-link`,href:ee.deck(n.title),children:[(0,w.jsx)(u.layers,{}),ne(T)]}),q;t[43]!==n.id||t[44]!==r.current?(q=()=>ie(n.id,r.current),t[43]=n.id,t[44]=r.current,t[45]=q):q=t[45];let J,Y;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(J=a(se),Y=(0,w.jsx)(u.play,{}),t[46]=J,t[47]=Y):(J=t[46],Y=t[47]);let X;t[48]!==x||t[49]!==q?(X=(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:q,...J,children:[Y,` `,x]}),t[48]=x,t[49]=q,t[50]=X):X=t[50];let Z;t[51]!==c||t[52]!==i?(Z=c?(0,w.jsxs)(`div`,{className:`cr-delete-confirm`,role:`group`,"aria-label":`Confirm course deletion`,children:[(0,w.jsx)(`span`,{children:`Delete?`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-delete-cancel`,onClick:()=>l(!1),children:`Cancel`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn cr-icon-danger`,"aria-label":`Confirm delete course`,onClick:i,children:(0,w.jsx)(u.check,{})})]}):(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn`,"aria-label":`Delete course`,onClick:()=>l(!0),children:(0,w.jsx)(u.x,{})}),t[51]=c,t[52]=i,t[53]=Z):Z=t[53];let Q;t[54]!==X||t[55]!==Z?(Q=(0,w.jsxs)(`div`,{className:`cr-card-actions`,children:[X,Z]}),t[54]=X,t[55]=Z,t[56]=Q):Q=t[56];let $;return t[57]!==N||t[58]!==P||t[59]!==I||t[60]!==V||t[61]!==G||t[62]!==K||t[63]!==de||t[64]!==Q||t[65]!==O?($=(0,w.jsxs)(`article`,{className:O,ref:s,children:[N,P,I,V,G,K,de,Q]}),t[57]=N,t[58]=P,t[59]=I,t[60]=V,t[61]=G,t[62]=K,t[63]=de,t[64]=Q,t[65]=O,t[66]=$):$=t[66],$}function se(){return c(`#/course`)??Promise.resolve()}function ce(e){return e.isIntersecting}function le(){return c(`#/course`)??Promise.resolve()}function ue(){}function M({initialTopic:e,onClose:t}){let n=(0,C.useRef)(null),r=(0,C.useRef)(null);d(r);let[i,o]=(0,C.useState)(e??``),[s,c]=(0,C.useState)(``),[l,f]=(0,C.useState)(!1),[m,h]=(0,C.useState)(null),g=(0,C.useRef)(null);(0,C.useEffect)(()=>()=>g.current?.abort(),[]);let v=(0,C.useCallback)(()=>{g.current?.abort(),t()},[t]);(0,C.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),v())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v]);let y=(0,C.useRef)(null);(0,C.useEffect)(()=>{e?.trim()||y.current?.focus()},[]),(0,C.useEffect)(()=>{let e=n.current;if(!e)return;let t=t=>{t.target===e&&v()};return e.addEventListener(`pointerdown`,t),()=>e.removeEventListener(`pointerdown`,t)},[v]);let b=async e=>{if(!e||l)return;f(!0),h(null);let t=new AbortController;g.current=t;try{let[{generateCourse:n},{getLiveConfigV2:r,toModelConfig:i}]=await D(),a=await n(e,i(r()),{level:s||void 0,signal:t.signal});if(t.signal.aborted)return;_(a),ie(a.id,0)}catch(e){if(t.signal.aborted)return;h(e instanceof Error?e.message:`Something went wrong building that course.`),f(!1)}},x=async e=>{e.preventDefault(),await b(i.trim())};return(0,w.jsx)(`div`,{className:`cr-scrim`,ref:n,children:(0,w.jsxs)(`div`,{className:`cr-sheet`,ref:r,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`cr-sheet-title`,"aria-describedby":`cr-sheet-subtitle`,tabIndex:-1,children:[(0,w.jsxs)(`div`,{className:`cr-sheet-head`,children:[(0,w.jsx)(`div`,{className:`cr-sheet-mark`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsxs)(`div`,{className:`cr-sheet-heading`,children:[(0,w.jsx)(`span`,{className:`cr-sheet-title`,id:`cr-sheet-title`,children:`New course`}),(0,w.jsx)(`span`,{className:`cr-sheet-subtitle`,id:`cr-sheet-subtitle`,children:`A tailored syllabus, built around what you want to understand.`})]}),(0,w.jsx)(`button`,{type:`button`,className:`cr-ed-close`,"aria-label":l?`Cancel building course`:`Close`,onClick:v,children:(0,w.jsx)(u.x,{})})]}),(0,w.jsxs)(`form`,{className:`cr-sheet-body`,"aria-busy":l,onSubmit:e=>void x(e),children:[(0,w.jsxs)(`p`,{className:`cr-legal-note`,children:[(0,w.jsx)(`strong`,{children:`Learning aid, not an authority.`}),` Lessons are AI-generated and may be wrong or incomplete. Verify consequential or professional topics with authoritative sources. `,(0,w.jsx)(`a`,{href:`#/legal?from=home`,children:`Details`})]}),(0,w.jsxs)(`label`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Topic`}),(0,w.jsx)(`input`,{ref:y,type:`text`,className:`cr-input`,placeholder:`e.g. linear algebra, the French Revolution, Rust ownership`,value:i,onFocus:O,onChange:e=>{O(),o(e.target.value)},disabled:l,autoComplete:`off`})]}),(0,w.jsx)(`div`,{className:`cr-topic-picks`,"aria-label":`Topic suggestions`,children:A.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>o(e),disabled:l,children:e},e))}),(0,w.jsxs)(`div`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Starting level`}),(0,w.jsx)(p,{ariaLabel:`Starting level`,triggerClassName:`cr-input`,value:s,onChange:e=>c(e),disabled:l,focusOnMount:!!e?.trim(),options:[{value:``,label:`Pick for me`},{value:`beginner`,label:`Beginner`},{value:`intermediate`,label:`Intermediate`},{value:`expert`,label:`Expert`}]}),(0,w.jsx)(`span`,{className:`cr-field-hint`,children:`Pick for me lets Mavéa infer the right starting point from your topic.`})]}),m&&(0,w.jsx)(`div`,{className:`cr-error`,role:`alert`,children:m}),(0,w.jsx)(`button`,{type:`submit`,className:`cr-btn cr-btn-primary cr-btn-wide`,disabled:!i.trim()||l,...a(()=>D().then(()=>void 0)),children:l?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`cr-spinner`,"aria-hidden":`true`}),` Building your syllabus…`]}):`Build course`})]})]})})}function N(){"use no memo";let e=f();(0,C.useEffect)(()=>l(document),[]),k();let t=(0,C.useRef)(x()),[n,r]=(0,C.useState)(!!t.current),[i,a]=(0,C.useState)(t.current??``),o=g(),s=(e=``)=>{a(e),r(!0)};return(0,w.jsxs)(`div`,{className:`mavea-app cr-app`,children:[(0,w.jsxs)(`header`,{className:`cr-nav`,children:[(0,w.jsxs)(`button`,{type:`button`,className:`cr-nav-back`,onClick:()=>{window.location.hash=e.href},children:[(0,w.jsx)(u.chevL,{}),` `,e.label]}),(0,w.jsxs)(`div`,{className:`cr-nav-title`,children:[`Courses`,(0,w.jsxs)(`span`,{className:`cr-nav-sub`,children:[o.length,` course`,o.length===1?``:`s`]})]}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:()=>s(),children:[(0,w.jsx)(u.plus,{}),` New course`]}),(0,w.jsx)(C.Suspense,{fallback:null,children:(0,w.jsx)(T,{triggerClassName:`ctrl`})})]}),(0,w.jsx)(`main`,{className:`cr-main`,children:o.length===0?(0,w.jsxs)(`section`,{className:`cr-empty`,"aria-labelledby":`cr-empty-title`,children:[(0,w.jsxs)(`div`,{className:`cr-empty-copy`,children:[(0,w.jsx)(`div`,{className:`cr-empty-icon`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsx)(`div`,{className:`cr-empty-eyebrow`,children:`No courses yet`}),(0,w.jsx)(`h1`,{className:`cr-empty-head`,id:`cr-empty-title`,children:`Build a clear path through anything`}),(0,w.jsx)(`p`,{className:`cr-empty-sub`,children:`Name what you want to understand. Mavéa maps the syllabus, teaches one focused lesson at a time, and turns missed checkpoints into review cards.`}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary cr-empty-cta`,onClick:()=>s(),children:[(0,w.jsx)(u.plus,{}),` Build your first course`]}),(0,w.jsxs)(`div`,{className:`cr-starter-row`,"aria-label":`Try a topic`,children:[(0,w.jsx)(`span`,{children:`Or try`}),A.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>s(e),children:e},e))]})]}),(0,w.jsxs)(`div`,{className:`cr-course-path`,"aria-label":`How a Mavéa course works`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`01`}),(0,w.jsx)(`strong`,{children:`Shape the syllabus`}),(0,w.jsx)(`p`,{children:`A useful sequence, matched to your starting level.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`02`}),(0,w.jsx)(`strong`,{children:`Learn visually`}),(0,w.jsx)(`p`,{children:`Focused lessons use the clearest canvas for each idea.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`03`}),(0,w.jsx)(`strong`,{children:`Make it stick`}),(0,w.jsx)(`p`,{children:`Checkpoints and spaced review close the gaps.`})]})]})]}):(0,w.jsx)(`div`,{className:`cr-grid`,children:o.map(e=>(0,w.jsx)(j,{course:e,progress:v(e.id),onRemove:()=>y(e.id)},e.id))})}),n&&(0,w.jsx)(M,{initialTopic:i,onClose:()=>r(!1)})]})}export{N as CoursesApp};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TemplatePicker-CAC4ggbJ.js","assets/rolldown-runtime-DkW27tQK.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/jsx-runtime-DeHZSEgm.js","assets/theme-D5D55hZi.js","assets/index-BMeoXWPR.js","assets/useInView-DsTvv7L_.js","assets/coreIcons-DDTChE1H.js","assets/preload-helper-CiWYd9n-.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/index-CFE0vqqO.css","assets/useLiveConfig-CvOQTr0s.js","assets/info-CiqHR5cs.js","assets/keyVault-Aw5Y2PjT.js","assets/providers-CPhoN8j0.js","assets/http-Bqk6nJiH.js","assets/blockTypes-DUDdP3pB.js","assets/attachments-BW-vki-E.js","assets/route-CMdTFx0P.js","assets/generateCourse-DPL0bO3L.js","assets/json-J4Y32_i9.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a,r as o,t as s}from"./preloadableLazy-MIX1ApBW.js";import{O as c,S as l}from"./index-BMeoXWPR.js";import{n as u}from"./icons-gLFQTv74.js";import{t as d}from"./useFocusTrap-CJmpNZv2.js";import{t as f}from"./homeTarget-CDc-r2mj.js";/* empty css */import{t as p}from"./DropSelect-BVDNR47E.js";import{i as m}from"./store-D2IJF4SA.js";import{_ as h,c as g,h as _,l as v,m as y,s as b}from"./store-B2Rpbqgg.js";import{i as x,t as S}from"./courseSeed-CZdNBTTs.js";/* empty css */import{n as ee,t as te}from"./useSrsCards-C27o39fF.js";import{t as ne}from"./deckLine-NBd3MyGT.js";var re=t(),C=e(),w=n();r();var T=s(()=>i(()=>import(`./TemplatePicker-CAC4ggbJ.js`).then(e=>e.r).then(e=>({default:e.TemplatePicker})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]))).Component,E;function D(){return E??=Promise.all([i(()=>import(`./generateCourse-DPL0bO3L.js`).then(e=>e.n),__vite__mapDeps([22,1,17,18,19,15,20,21,23])),i(()=>import(`./useLiveConfig-CvOQTr0s.js`).then(e=>e.f),__vite__mapDeps([14,1,2,3,15,16,17,18,19,20,21]))]),E}function O(){D().catch(()=>{})}function k(){return(0,C.useSyncExternalStore)(h,b,b)}function ie(e,t){S({courseId:e,lessonIdx:t}),window.location.hash=`#/course`}function ae(e,t){let n=e.lessons.filter(e=>t.lessons[e.id]?.status===`done`).length;return n>=e.lessons.length?`complete`:n>0||t.current>0?`in-progress`:`new`}var oe={beginner:`Beginner`,intermediate:`Intermediate`,expert:`Expert`},A=[`Personal finance basics`,`How the internet works`,`Spanish for travel`];function j(e){let t=(0,re.c)(67),{course:n,progress:r,onRemove:i}=e,s=(0,C.useRef)(null),[c,l]=(0,C.useState)(!1),d=n.lessons.length,f;if(t[0]!==n.lessons||t[1]!==r.lessons){let e;t[3]===r.lessons?e=t[4]:(e=e=>r.lessons[e.id]?.status===`done`,t[3]=r.lessons,t[4]=e),f=n.lessons.filter(e),t[0]=n.lessons,t[1]=r.lessons,t[2]=f}else f=t[2];let p=f.length,h;t[5]!==p||t[6]!==d?(h=d?Math.round(p/d*100):0,t[5]=p,t[6]=d,t[7]=h):h=t[7];let g=h,_=ae(n,r),v=Math.max(0,Math.min(r.current,d-1)),y=n.lessons[v],b=`Lesson ${v+1} of ${d}`,x=_===`complete`?`Review`:_===`in-progress`?`Continue`:`Start course`;te();let S;t[8]===n.title?S=t[9]:(S=e=>e.name===n.title,t[8]=n.title,t[9]=S);let T=m().decks.find(S),E,D;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=s.current;if(!e)return;let t=ue,n=()=>{t=o(le)};if(!(`IntersectionObserver`in window))return n(),t;let r=new IntersectionObserver(e=>{e.some(ce)&&(r.disconnect(),n())});return r.observe(e),()=>{r.disconnect(),t()}},D=[],t[10]=E,t[11]=D):(E=t[10],D=t[11]),(0,C.useEffect)(E,D);let O=`cr-card cr-card-${_}`,k;t[12]===n.level?k=t[13]:(k=n.level&&(0,w.jsx)(`span`,{className:`cr-badge`,children:oe[n.level]}),t[12]=n.level,t[13]=k);let A=`cr-status cr-status-`+_,j=_===`complete`?`Complete`:_===`in-progress`?`In progress`:`New`,M;t[14]!==A||t[15]!==j?(M=(0,w.jsx)(`span`,{className:A,children:j}),t[14]=A,t[15]=j,t[16]=M):M=t[16];let N;t[17]!==M||t[18]!==k?(N=(0,w.jsxs)(`div`,{className:`cr-card-top`,children:[k,M]}),t[17]=M,t[18]=k,t[19]=N):N=t[19];let P;t[20]===n.title?P=t[21]:(P=(0,w.jsx)(`h3`,{className:`cr-card-title`,children:n.title}),t[20]=n.title,t[21]=P);let F=n.subtitle||n.topic,I;t[22]===F?I=t[23]:(I=(0,w.jsx)(`p`,{className:`cr-card-sub`,children:F}),t[22]=F,t[23]=I);let L=`${n.title} progress`,R=`${p} of ${d} lessons complete`,z=`${g}%`,B;t[24]===z?B=t[25]:(B=(0,w.jsx)(`div`,{className:`cr-progress-fill`,style:{width:z}}),t[24]=z,t[25]=B);let V;t[26]!==g||t[27]!==L||t[28]!==R||t[29]!==B?(V=(0,w.jsx)(`div`,{className:`cr-progress`,role:`progressbar`,"aria-label":L,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":g,"aria-valuetext":R,children:B}),t[26]=g,t[27]=L,t[28]=R,t[29]=B,t[30]=V):V=t[30];let H;t[31]===b?H=t[32]:(H=(0,w.jsx)(`span`,{children:b}),t[31]=b,t[32]=H);let U;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,w.jsx)(`span`,{className:`cr-card-meta-dot`,"aria-hidden":`true`}),t[33]=U):U=t[33];let W;t[34]!==p||t[35]!==d?(W=(0,w.jsxs)(`span`,{children:[p,`/`,d,` done`]}),t[34]=p,t[35]=d,t[36]=W):W=t[36];let G;t[37]!==H||t[38]!==W?(G=(0,w.jsxs)(`div`,{className:`cr-card-meta`,children:[H,U,W]}),t[37]=H,t[38]=W,t[39]=G):G=t[39];let K;t[40]!==y||t[41]!==_?(K=y&&(0,w.jsxs)(`div`,{className:`cr-current-lesson`,children:[(0,w.jsx)(`span`,{children:_===`complete`?`Review from`:`Up next`}),(0,w.jsx)(`strong`,{children:y.title})]}),t[40]=y,t[41]=_,t[42]=K):K=t[42];let de=T&&(0,w.jsxs)(`a`,{className:`cr-deck-link`,href:ee.deck(n.title),children:[(0,w.jsx)(u.layers,{}),ne(T)]}),q;t[43]!==n.id||t[44]!==r.current?(q=()=>ie(n.id,r.current),t[43]=n.id,t[44]=r.current,t[45]=q):q=t[45];let J,Y;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(J=a(se),Y=(0,w.jsx)(u.play,{}),t[46]=J,t[47]=Y):(J=t[46],Y=t[47]);let X;t[48]!==x||t[49]!==q?(X=(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:q,...J,children:[Y,` `,x]}),t[48]=x,t[49]=q,t[50]=X):X=t[50];let Z;t[51]!==c||t[52]!==i?(Z=c?(0,w.jsxs)(`div`,{className:`cr-delete-confirm`,role:`group`,"aria-label":`Confirm course deletion`,children:[(0,w.jsx)(`span`,{children:`Delete?`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-delete-cancel`,onClick:()=>l(!1),children:`Cancel`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn cr-icon-danger`,"aria-label":`Confirm delete course`,onClick:i,children:(0,w.jsx)(u.check,{})})]}):(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn`,"aria-label":`Delete course`,onClick:()=>l(!0),children:(0,w.jsx)(u.x,{})}),t[51]=c,t[52]=i,t[53]=Z):Z=t[53];let Q;t[54]!==X||t[55]!==Z?(Q=(0,w.jsxs)(`div`,{className:`cr-card-actions`,children:[X,Z]}),t[54]=X,t[55]=Z,t[56]=Q):Q=t[56];let $;return t[57]!==N||t[58]!==P||t[59]!==I||t[60]!==V||t[61]!==G||t[62]!==K||t[63]!==de||t[64]!==Q||t[65]!==O?($=(0,w.jsxs)(`article`,{className:O,ref:s,children:[N,P,I,V,G,K,de,Q]}),t[57]=N,t[58]=P,t[59]=I,t[60]=V,t[61]=G,t[62]=K,t[63]=de,t[64]=Q,t[65]=O,t[66]=$):$=t[66],$}function se(){return c(`#/course`)??Promise.resolve()}function ce(e){return e.isIntersecting}function le(){return c(`#/course`)??Promise.resolve()}function ue(){}function M({initialTopic:e,onClose:t}){let n=(0,C.useRef)(null),r=(0,C.useRef)(null);d(r);let[i,o]=(0,C.useState)(e??``),[s,c]=(0,C.useState)(``),[l,f]=(0,C.useState)(!1),[m,h]=(0,C.useState)(null),g=(0,C.useRef)(null);(0,C.useEffect)(()=>()=>g.current?.abort(),[]);let v=(0,C.useCallback)(()=>{g.current?.abort(),t()},[t]);(0,C.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),v())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v]);let y=(0,C.useRef)(null);(0,C.useEffect)(()=>{e?.trim()||y.current?.focus()},[]),(0,C.useEffect)(()=>{let e=n.current;if(!e)return;let t=t=>{t.target===e&&v()};return e.addEventListener(`pointerdown`,t),()=>e.removeEventListener(`pointerdown`,t)},[v]);let b=async e=>{if(!e||l)return;f(!0),h(null);let t=new AbortController;g.current=t;try{let[{generateCourse:n},{getLiveConfigV2:r,toModelConfig:i}]=await D(),a=await n(e,i(r()),{level:s||void 0,signal:t.signal});if(t.signal.aborted)return;_(a),ie(a.id,0)}catch(e){if(t.signal.aborted)return;h(e instanceof Error?e.message:`Something went wrong building that course.`),f(!1)}},x=async e=>{e.preventDefault(),await b(i.trim())};return(0,w.jsx)(`div`,{className:`cr-scrim`,ref:n,children:(0,w.jsxs)(`div`,{className:`cr-sheet`,ref:r,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`cr-sheet-title`,"aria-describedby":`cr-sheet-subtitle`,tabIndex:-1,children:[(0,w.jsxs)(`div`,{className:`cr-sheet-head`,children:[(0,w.jsx)(`div`,{className:`cr-sheet-mark`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsxs)(`div`,{className:`cr-sheet-heading`,children:[(0,w.jsx)(`span`,{className:`cr-sheet-title`,id:`cr-sheet-title`,children:`New course`}),(0,w.jsx)(`span`,{className:`cr-sheet-subtitle`,id:`cr-sheet-subtitle`,children:`A tailored syllabus, built around what you want to understand.`})]}),(0,w.jsx)(`button`,{type:`button`,className:`cr-ed-close`,"aria-label":l?`Cancel building course`:`Close`,onClick:v,children:(0,w.jsx)(u.x,{})})]}),(0,w.jsxs)(`form`,{className:`cr-sheet-body`,"aria-busy":l,onSubmit:e=>void x(e),children:[(0,w.jsxs)(`p`,{className:`cr-legal-note`,children:[(0,w.jsx)(`strong`,{children:`Learning aid, not an authority.`}),` Lessons are AI-generated and may be wrong or incomplete. Verify consequential or professional topics with authoritative sources. `,(0,w.jsx)(`a`,{href:`#/legal?from=home`,children:`Details`})]}),(0,w.jsxs)(`label`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Topic`}),(0,w.jsx)(`input`,{ref:y,type:`text`,className:`cr-input`,placeholder:`e.g. linear algebra, the French Revolution, Rust ownership`,value:i,onFocus:O,onChange:e=>{O(),o(e.target.value)},disabled:l,autoComplete:`off`})]}),(0,w.jsx)(`div`,{className:`cr-topic-picks`,"aria-label":`Topic suggestions`,children:A.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>o(e),disabled:l,children:e},e))}),(0,w.jsxs)(`div`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Starting level`}),(0,w.jsx)(p,{ariaLabel:`Starting level`,triggerClassName:`cr-input`,value:s,onChange:e=>c(e),disabled:l,focusOnMount:!!e?.trim(),options:[{value:``,label:`Pick for me`},{value:`beginner`,label:`Beginner`},{value:`intermediate`,label:`Intermediate`},{value:`expert`,label:`Expert`}]}),(0,w.jsx)(`span`,{className:`cr-field-hint`,children:`Pick for me lets Mavéa infer the right starting point from your topic.`})]}),m&&(0,w.jsx)(`div`,{className:`cr-error`,role:`alert`,children:m}),(0,w.jsx)(`button`,{type:`submit`,className:`cr-btn cr-btn-primary cr-btn-wide`,disabled:!i.trim()||l,...a(()=>D().then(()=>void 0)),children:l?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`cr-spinner`,"aria-hidden":`true`}),` Building your syllabus…`]}):`Build course`})]})]})})}function N(){"use no memo";let e=f();(0,C.useEffect)(()=>l(document),[]),k();let t=(0,C.useRef)(x()),[n,r]=(0,C.useState)(!!t.current),[i,a]=(0,C.useState)(t.current??``),o=g(),s=(e=``)=>{a(e),r(!0)};return(0,w.jsxs)(`div`,{className:`mavea-app cr-app`,children:[(0,w.jsxs)(`header`,{className:`cr-nav`,children:[(0,w.jsxs)(`button`,{type:`button`,className:`cr-nav-back`,onClick:()=>{window.location.hash=e.href},children:[(0,w.jsx)(u.chevL,{}),` `,e.label]}),(0,w.jsxs)(`div`,{className:`cr-nav-title`,children:[`Courses`,(0,w.jsxs)(`span`,{className:`cr-nav-sub`,children:[o.length,` course`,o.length===1?``:`s`]})]}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:()=>s(),children:[(0,w.jsx)(u.plus,{}),` New course`]}),(0,w.jsx)(C.Suspense,{fallback:null,children:(0,w.jsx)(T,{triggerClassName:`ctrl`})})]}),(0,w.jsx)(`main`,{className:`cr-main`,children:o.length===0?(0,w.jsxs)(`section`,{className:`cr-empty`,"aria-labelledby":`cr-empty-title`,children:[(0,w.jsxs)(`div`,{className:`cr-empty-copy`,children:[(0,w.jsx)(`div`,{className:`cr-empty-icon`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsx)(`div`,{className:`cr-empty-eyebrow`,children:`No courses yet`}),(0,w.jsx)(`h1`,{className:`cr-empty-head`,id:`cr-empty-title`,children:`Build a clear path through anything`}),(0,w.jsx)(`p`,{className:`cr-empty-sub`,children:`Name what you want to understand. Mavéa maps the syllabus, teaches one focused lesson at a time, and turns missed checkpoints into review cards.`}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary cr-empty-cta`,onClick:()=>s(),children:[(0,w.jsx)(u.plus,{}),` Build your first course`]}),(0,w.jsxs)(`div`,{className:`cr-starter-row`,"aria-label":`Try a topic`,children:[(0,w.jsx)(`span`,{children:`Or try`}),A.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>s(e),children:e},e))]})]}),(0,w.jsxs)(`div`,{className:`cr-course-path`,"aria-label":`How a Mavéa course works`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`01`}),(0,w.jsx)(`strong`,{children:`Shape the syllabus`}),(0,w.jsx)(`p`,{children:`A useful sequence, matched to your starting level.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`02`}),(0,w.jsx)(`strong`,{children:`Learn visually`}),(0,w.jsx)(`p`,{children:`Focused lessons use the clearest canvas for each idea.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`03`}),(0,w.jsx)(`strong`,{children:`Make it stick`}),(0,w.jsx)(`p`,{children:`Checkpoints and spaced review close the gaps.`})]})]})]}):(0,w.jsx)(`div`,{className:`cr-grid`,children:o.map(e=>(0,w.jsx)(j,{course:e,progress:v(e.id),onRemove:()=>y(e.id)},e.id))})}),n&&(0,w.jsx)(M,{initialTopic:i,onClose:()=>r(!1)})]})}export{N as CoursesApp};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{S as r}from"./index-
|
|
1
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{S as r}from"./index-BMeoXWPR.js";/* empty css */import{t as i}from"./useDashboards-B-EjE8FH.js";import{t as a}from"./useLedger-D4cXEwI0.js";import{p as o,u as s}from"./format-BkvssSOr.js";import{t as c}from"./TrackerTile-Ds3ks6Bh.js";var l=e(),u=t(),d=n(),f=3e4,p=12e3,m=3e3;function h(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function g(e){let t=(0,u.c)(9),{state:n}=e;if(n.paused){let e;t[0]===n.resumesAt?e=t[1]:(e=h(n.resumesAt),t[0]=n.resumesAt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,d.jsxs)(`span`,{className:`dash-present-budget dash-present-budget--paused`,children:[`Paused · resumes `,e]}),t[2]=e,t[3]=r),r}let r=`dash-present-budget`+(n.amber?` dash-present-budget--amber`:``),i=n.amber?` · low`:``,a;return t[4]!==n.cap||t[5]!==n.used||t[6]!==r||t[7]!==i?(a=(0,d.jsxs)(`span`,{className:r,children:[n.used,`/`,n.cap,` searches today`,i]}),t[4]=n.cap,t[5]=n.used,t[6]=r,t[7]=i,t[8]=a):a=t[8],a}function _(e){let t=(0,u.c)(42),{onClose:n}=e,r=i(),h=a(),_=o(),b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(b=[],t[0]=b):b=t[0],(0,l.useEffect)(y,b);let[x,S]=(0,l.useState)(v),C,w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{let e=window.setInterval(()=>S(Date.now()),f);return()=>window.clearInterval(e)},w=[],t[1]=C,t[2]=w):(C=t[1],w=t[2]),(0,l.useEffect)(C,w);let[T,E]=(0,l.useState)(null),D,O;t[3]===r.length?(D=t[4],O=t[5]):(D=()=>{if(r.length<2){E(null);return}let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t,n=e=>{if(t!==void 0&&window.clearInterval(t),e){E(null);return}E(0),t=window.setInterval(()=>{E(e=>((e??-1)+1)%r.length)},p)};n(e.matches);let i=e=>n(e.matches);return e.addEventListener(`change`,i),()=>{e.removeEventListener(`change`,i),t!==void 0&&window.clearInterval(t)}},O=[r.length],t[3]=r.length,t[4]=D,t[5]=O),(0,l.useEffect)(D,O);let[k,A]=(0,l.useState)(!1),j,M;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>{let e,t=()=>{A(!1),e!==void 0&&window.clearTimeout(e),e=window.setTimeout(()=>A(!0),m)};return t(),window.addEventListener(`mousemove`,t),()=>{window.removeEventListener(`mousemove`,t),e!==void 0&&window.clearTimeout(e)}},M=[],t[6]=j,t[7]=M):(j=t[6],M=t[7]),(0,l.useEffect)(j,M);let N,P;t[8]===n?(N=t[9],P=t[10]):(N=()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},P=[n],t[8]=n,t[9]=N,t[10]=P),(0,l.useEffect)(N,P);let F;t[11]!==h||t[12]!==x||t[13]!==_.dailySearchBudget?(F=s(h,_.dailySearchBudget,x),t[11]=h,t[12]=x,t[13]=_.dailySearchBudget,t[14]=F):F=t[14];let I=F,L;t[15]===x?L=t[16]:(L=new Date(x).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),t[15]=x,t[16]=L);let R=L,z;t[17]===x?z=t[18]:(z=new Date(x).toLocaleDateString([],{weekday:`long`,month:`long`,day:`numeric`}),t[17]=x,t[18]=z);let B=z,V=`dash-present`+(k?` dash-present--cursor-hidden`:``),H;t[19]===R?H=t[20]:(H=(0,d.jsx)(`span`,{className:`dash-present-time`,children:R}),t[19]=R,t[20]=H);let U;t[21]===B?U=t[22]:(U=(0,d.jsx)(`span`,{className:`dash-present-date`,children:B}),t[21]=B,t[22]=U);let W;t[23]!==H||t[24]!==U?(W=(0,d.jsxs)(`div`,{className:`dash-present-clock`,children:[H,U]}),t[23]=H,t[24]=U,t[25]=W):W=t[25];let G;t[26]===I?G=t[27]:(G=(0,d.jsx)(g,{state:I}),t[26]=I,t[27]=G);let K;t[28]!==W||t[29]!==G?(K=(0,d.jsxs)(`header`,{className:`dash-present-head`,children:[W,G]}),t[28]=W,t[29]=G,t[30]=K):K=t[30];let q;t[31]!==I||t[32]!==r||t[33]!==x||t[34]!==T?(q=(0,d.jsx)(`div`,{className:`dash-present-body`,children:r.length===0?(0,d.jsx)(`p`,{className:`dash-present-empty`,children:`Nothing on watch yet.`}):(0,d.jsx)(`div`,{className:`dash-present-grid`,children:r.map((e,t)=>(0,d.jsx)(`div`,{className:`dash-present-tile-wrap`,"data-spotlight":T===null?void 0:t===T?`on`:`off`,children:(0,d.jsx)(c,{dashboard:e,now:x,paused:I.paused})},e.id))})}),t[31]=I,t[32]=r,t[33]=x,t[34]=T,t[35]=q):q=t[35];let J;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,d.jsx)(`p`,{className:`dash-present-hint`,children:`Esc or click anywhere to exit`}),t[36]=J):J=t[36];let Y;return t[37]!==n||t[38]!==V||t[39]!==K||t[40]!==q?(Y=(0,d.jsxs)(`div`,{className:V,role:`presentation`,onClick:n,children:[K,q,J]}),t[37]=n,t[38]=V,t[39]=K,t[40]=q,t[41]=Y):Y=t[41],Y}function v(){return Date.now()}function y(){return r(document)}export{_ as DashPresent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generateLive-
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a}from"./icons-gLFQTv74.js";import{t as o}from"./TopicCanvas-xwDjwqxn.js";import{a as s}from"./loader-BPVv7hEn.js";import{t as c}from"./useFocusTrap-CJmpNZv2.js";import{r as l}from"./sourceHost-BV3t2XDb.js";import"./canvas-OSBUSYbY.js";import{B as u,D as d,K as f,L as p,N as m,P as h,W as g,d as _,f as v,k as y,o as b,p as x,w as S}from"./store-D16dGt7I.js";import{d as C,n as w,r as ee,u as T}from"./useLiveConfig-CvOQTr0s.js";import{t as E}from"./route-D4kd-D3B.js";import{t as te}from"./useDashboards-B-EjE8FH.js";import{a as D,f as O,i as k,l as A,n as ne,p as re,t as ie}from"./format-BkvssSOr.js";import{n as ae}from"./dataPending-DGdCvY5Y.js";import{t as j}from"./AreaChart-DZGCSEwt.js";import"./tiles-D-s6v-mA.js";import{a as M,n as oe,o as N,s as P,t as se}from"./useDashboardLoop-CA3LNVME.js";import{r as ce}from"./predictions-CkVKHq-5.js";import{i as le,n as ue,r as F}from"./confirmAdd-VLwpBNf_.js";import{t as de}from"./planTracker-BA-x4jbw.js";import{t as fe}from"./pin-BReqt-Wx.js";/* empty css */import{t as pe}from"./CadenceCard-j1V7XOxX.js";import{t as me}from"./CheckLogRail-CPKGKw7i.js";var I=t(),L=e();function he(e,t){for(let n of document.elementsFromPoint(e,t)){let e=n.closest(`[data-dash-widget]`);if(e)return e.getAttribute(`data-dash-widget`)}return null}function ge(e,t){let[n,r]=(0,L.useState)(null),[i,a]=(0,L.useState)(null),o=(0,L.useRef)({working:null,draggingId:null,onCommit:t,sourceIds:e,cleanup:null});o.current.onCommit=t,o.current.sourceIds=e,(0,L.useEffect)(()=>()=>o.current.cleanup?.(),[]);let s=(0,L.useCallback)(e=>t=>{if(t.button!==0&&t.pointerType===`mouse`)return;t.preventDefault();let n=[...o.current.sourceIds];o.current.working=n,o.current.draggingId=e,r(n),a(e);let i=e=>{let t=he(e.clientX,e.clientY),n=o.current.draggingId,i=o.current.working;if(!t||!n||!i||t===n)return;let a=i.indexOf(n),s=i.indexOf(t);if(a<0||s<0||a===s)return;let c=[...i];c.splice(s,0,c.splice(a,1)[0]),o.current.working=c,r(c)},s=()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,s),window.removeEventListener(`pointercancel`,s),o.current.cleanup=null;let e=o.current.working;o.current.working=null,o.current.draggingId=null,r(null),a(null),e&&o.current.onCommit(e)};o.current.cleanup=s,window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,s),window.addEventListener(`pointercancel`,s)},[]),c=(0,L.useCallback)(e=>t=>{if(t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let n=o.current.sourceIds,r=n.indexOf(e),i=t.key===`ArrowUp`?r-1:r+1;if(r<0||i<0||i>=n.length)return;let a=[...n];a.splice(i,0,a.splice(r,1)[0]),o.current.onCommit(a)},[]);return{draggingId:i,order:n??e,handleProps:e=>({onPointerDown:s(e),onKeyDown:c(e),tabIndex:0,role:`button`,"aria-label":`Drag to reorder, or use arrow keys`})}}var R=n();function _e(e){return{id:`dash-`+(e.id??e.type),workspace:`Dashboards`,title:``,sub:``,opener:``,context:[],blocks:[{...e,col:12,delay:0}],proof:null,extras:{},group:`home`,suggests:[],keywords:[]}}function ve(e){let t=(0,I.c)(18),{dashboard:n,widget:r,editing:i,dragging:a,children:s,footer:c}=e,l;t[0]!==n||t[1]!==r?(l=P(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u=l,d;t[3]===u?d=t[4]:(d=_e(u),t[3]=u,t[4]=d);let f=d,p=`dash-span-${r.span}`,m=i?`dash-tile--editing`:``,h=a?`dash-tile--dragging`:``,g;t[5]!==p||t[6]!==m||t[7]!==h?(g=[`dash-tile`,p,m,h].filter(Boolean),t[5]=p,t[6]=m,t[7]=h,t[8]=g):g=t[8];let _=g.join(` `),v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={},t[9]=v):v=t[9];let y;t[10]===f?y=t[11]:(y=(0,R.jsx)(o,{data:f,spot:null,built:v,onProve:ye}),t[10]=f,t[11]=y);let b;return t[12]!==s||t[13]!==_||t[14]!==c||t[15]!==y||t[16]!==r.id?(b=(0,R.jsxs)(`div`,{className:_,"data-dash-widget":r.id,children:[s,y,c]}),t[12]=s,t[13]=_,t[14]=c,t[15]=y,t[16]=r.id,t[17]=b):b=t[17],b}function ye(){}function z(){return`w-`+Math.random().toString(36).slice(2,8)}function be(e){let t=new Set(e.widgets.map(e=>e.block.type));return[{key:`note`,label:`Note`,make:()=>({block:{type:`list`,col:12,id:z(),props:{title:`Note`,items:[`Add a note about this dashboard.`]}},span:2})},{key:`thesis`,label:`Reasoning note`,make:()=>({block:{type:`thesis`,col:12,id:z(),props:{reasoning:``}},span:2})},{key:`alignmentgauge`,label:`Alignment gauge`,make:()=>({block:{type:`alignmentgauge`,col:12,id:z(),props:{pct:null}},span:1})},{key:`standingalerts`,label:`Standing alerts`,make:()=>({block:{type:`standingalerts`,col:12,id:z(),props:{alerts:[]}},span:1})},{key:`sourceslineage`,label:`Sources`,make:()=>({block:{type:`sourceslineage`,col:12,id:z(),props:{rows:[]}},span:2})}].filter(e=>e.key===`note`||!t.has(e.key))}function xe(e){let t=(0,I.c)(26),{dashboard:n,onClose:r}=e,[i,a]=(0,L.useState)(`menu`),[o,s]=(0,L.useState)(``),[l,u]=(0,L.useState)(!1),[d,f]=(0,L.useState)(null),p=be(n),m=!!T(w()).apiKey,h;t[0]!==n||t[1]!==r?(h=e=>{let{block:t,span:i}=e.make(),a={id:z(),block:t,span:i,fromSource:`manual`};b(n.id,a),r()},t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,y=(0,L.useRef)(!0),x,S;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>(y.current=!0,()=>{y.current=!1}),S=[],t[3]=x,t[4]=S):(x=t[3],S=t[4]),(0,L.useEffect)(x,S);let C;t[5]!==o||t[6]!==n||t[7]!==r||t[8]!==l?(C=async()=>{let e=o.trim();if(!e||l)return;if(n.metrics.length>=12||n.widgets.length>=12){f(`This board is full — remove a card or metric first, then track another number.`);return}u(!0),f(null);let t=await de(e,T(w()));if(!y.current)return;let i=t.metrics[0];if(!i){u(!1),f(`No single number found in that — the Track bar on the Dashboards home builds richer trackers.`);return}let a=Date.now(),s={id:`m-${a}`,label:i.label,query:i.query,...i.unit?{unit:i.unit}:{},sourceQuote:{text:i.label,saidAt:a},lastValue:null,origin:`empty`},c={id:z(),block:{type:`insight`,col:12,id:`blk-${a}`,num:`1`,props:{title:s.label,stat:`—`,conf:`inferred`,summary:s.label}},span:1,metricId:s.id,fromSource:`manual`},d=ue(n);v(n.id,{metrics:[s],tripwires:[],widgets:[c],source:{kind:`ADDED`,conversationId:`manual`,title:`Added by hand`,contributed:`Tracking ${s.label}`,at:a}}),_(n.id,a);let p=await le(n.id,d);if(y.current){if(p!==`confirmed`){u(!1),f(F(p));return}r()}},t[5]=o,t[6]=n,t[7]=r,t[8]=l,t[9]=C):C=t[9];let ee=C,E=(0,L.useRef)(null),te;t[10]===r?te=t[11]:(te={onEscape:r},t[10]=r,t[11]=te),c(E,te);let D=(0,L.useRef)(null),O,k;t[12]===i?(O=t[13],k=t[14]):(O=()=>{i===`track`?D.current?.focus():E.current?.querySelector(`.dash-palette-item`)?.focus()},k=[i],t[12]=i,t[13]=O,t[14]=k),(0,L.useEffect)(O,k);let A,ne;t[15]===r?(A=t[16],ne=t[17]):(A=()=>{let e=E.current?.parentElement;if(!e)return;let t=t=>{e.contains(t.target)||r()};return document.addEventListener(`pointerdown`,t),()=>document.removeEventListener(`pointerdown`,t)},ne=[r],t[15]=r,t[16]=A,t[17]=ne),(0,L.useEffect)(A,ne);let re;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(re=e=>{let t=Array.from(E.current?.querySelectorAll(`.dash-palette-item`)??[]);t.length&&t[(t.indexOf(document.activeElement)+e+t.length)%t.length]?.focus()},t[18]=re):re=t[18];let ie=re,ae=i===`menu`?`menu`:`dialog`,j=i===`menu`?`Add a widget`:`Track a number`,M;t[19]===i?M=t[20]:(M=e=>{i===`menu`&&(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),ie(e.key===`ArrowDown`?1:-1))},t[19]=i,t[20]=M);let oe=i===`menu`?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item dash-palette-lead`,onClick:()=>a(`track`),children:`+ Track a number`}),p.map(e=>(0,R.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item`,onClick:()=>g(e),children:[`+ `,e.label]},e.key))]}):(0,R.jsxs)(`div`,{className:`dash-ptrack`,children:[(0,R.jsxs)(`div`,{className:`dash-ptrack-head`,children:[(0,R.jsx)(`button`,{type:`button`,className:`dash-ptrack-back`,"aria-label":`Back to widget list`,onClick:()=>a(`menu`),children:`←`}),(0,R.jsx)(`span`,{className:`dash-ptrack-kicker`,children:`Track a number`})]}),m?(0,R.jsxs)(`form`,{className:`dash-ptrack-form`,onSubmit:e=>{e.preventDefault(),ee()},children:[(0,R.jsx)(`input`,{ref:D,className:`dash-ptrack-input`,value:o,placeholder:`BTC price, SF temperature, 10-year yield…`,"aria-label":`What number to track`,disabled:l,onChange:e=>s(e.target.value)}),d&&(0,R.jsx)(`p`,{className:`dash-ptrack-err`,children:d}),(0,R.jsx)(`button`,{type:`submit`,className:`dash-ptrack-go`,disabled:l||!o.trim(),children:l?`Planning…`:`Track · 1 call + 1 search`})]}):(0,R.jsxs)(`p`,{className:`dash-ptrack-gate`,children:[`A tracked number is fetched by real web searches on your own key — nothing is ever made up. `,(0,R.jsx)(`a`,{href:`#/live`,children:`Connect a model in Live`}),` first.`]})]}),N;return t[21]!==ae||t[22]!==j||t[23]!==M||t[24]!==oe?(N=(0,R.jsx)(`div`,{ref:E,className:`dash-palette`,role:ae,"aria-label":j,tabIndex:-1,onKeyDown:M,children:oe}),t[21]=ae,t[22]=j,t[23]=M,t[24]=oe,t[25]=N):N=t[25],N}function Se(e){let t=(0,I.c)(24),{dashboardId:n,metric:r}=e,i=r.lastValue===null?``:String(r.lastValue),[a,o]=(0,L.useState)(i),[s,c]=(0,L.useState)(i);i!==s&&(c(i),o(i));let l;t[0]!==n||t[1]!==r.id||t[2]!==r.lastValue||t[3]!==r.unit||t[4]!==a?(l=()=>{let e=Number(a.replace(/[^0-9.+-]/g,``));if(a.trim()===``||!Number.isFinite(e))return;let t=Date.now(),i=r.lastValue;m(n,r.id,e,A(String(e),r.unit),`user`,t);let o=x(n);if(o){let{tripwires:e}=N(o,{[r.id]:i});h(n,e,t)}},t[0]=n,t[1]=r.id,t[2]=r.lastValue,t[3]=r.unit,t[4]=a,t[5]=l):l=t[5];let u=l,d;t[6]===u?d=t[7]:(d=e=>{e.preventDefault(),u()},t[6]=u,t[7]=d);let f=`Set ${r.label}…`,p=`Set ${r.label}`,g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>o(e.target.value),t[8]=g):g=t[8];let _;t[9]!==f||t[10]!==p||t[11]!==a?(_=(0,R.jsx)(`input`,{className:`dash-fill-input`,value:a,inputMode:`decimal`,placeholder:f,"aria-label":p,onChange:g}),t[9]=f,t[10]=p,t[11]=a,t[12]=_):_=t[12];let v;t[13]===r.unit?v=t[14]:(v=r.unit&&(0,R.jsx)(`span`,{className:`dash-fill-unit`,children:r.unit}),t[13]=r.unit,t[14]=v);let y;t[15]===a?y=t[16]:(y=a.trim(),t[15]=a,t[16]=y);let b=y===``,S;t[17]===b?S=t[18]:(S=(0,R.jsx)(`button`,{type:`submit`,className:`dash-fill-save`,disabled:b,children:`Save`}),t[17]=b,t[18]=S);let C;return t[19]!==S||t[20]!==d||t[21]!==_||t[22]!==v?(C=(0,R.jsxs)(`form`,{className:`dash-fill`,onSubmit:d,children:[_,v,S]}),t[19]=S,t[20]=d,t[21]=_,t[22]=v,t[23]=C):C=t[23],C}r();var Ce=()=>i(()=>import(`./generateLive-DzBVo6Yg.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58]));function B(){return!!T(w()).apiKey}function V(e){let t=(0,I.c)(15),[n,r]=(0,L.useState)(!1),[i,a]=(0,L.useState)(null),[o,s]=(0,L.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=[],t[0]=c):c=t[0];let l=(0,L.useRef)(c),u=(0,L.useRef)(!1),d=(0,L.useRef)(null),f;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{d.current?.abort(),d.current=null,u.current=!1,l.current=[],r(!1),a(null),s(null)},t[1]=f):f=t[1];let p;t[2]===e.id?p=t[3]:(p=[e.id],t[2]=e.id,t[3]=p),(0,L.useEffect)(f,p);let m,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>()=>d.current?.abort(),h=[],t[4]=m,t[5]=h):(m=t[4],h=t[5]),(0,L.useEffect)(m,h);let g;t[6]===e?g=t[7]:(g=t=>{let n=t.trim();if(!n||u.current||!B())return;u.current=!0,r(!0),s(n);let i=T(w()),o=e.widgets.map(t=>P(e,t)),c=new AbortController;d.current=c,Ce().then(e=>{let{generateLive:t}=e;return t(n,l.current,i,void 0,{selectedBlocks:o,signal:c.signal,caps:{searchMode:`realtime`}})}).then(e=>{c.signal.aborted||(e.error||(l.current=[...l.current,{role:`user`,content:n},{role:`assistant`,content:e.narration}].slice(-8)),a(e))}).catch(()=>{c.signal.aborted||a(null)}).finally(()=>{c.signal.aborted||(u.current=!1,r(!1))})},t[6]=e,t[7]=g);let _=g,v;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>{d.current?.abort(),u.current=!1,r(!1),a(null),s(null)},t[8]=v):v=t[8];let y=v,b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=B(),t[9]=b):b=t[9];let x;return t[10]!==o||t[11]!==n||t[12]!==i||t[13]!==_?(x={ready:b,loading:n,result:i,lastAsk:o,run:_,reset:y},t[10]=o,t[11]=n,t[12]=i,t[13]=_,t[14]=x):x=t[14],x}var we=/^(add|track|watch|monitor|follow)\b/i;function H(e){let t=e.trim();return t&&we.test(t)?`add`:`ask`}function Te(e){let t=[];return e.tripwires.length>0&&t.push(`Are the numbers holding where I want?`,`Which alert is closest to triggering?`),e.metrics[0]&&t.push(`What does ${e.metrics[0].label} tell me right now?`),t.push(`What changed since the last update?`),t.slice(0,3)}function U(e,t,n){n.length!==0&&fe({block:n,question:t,target:e,fromSource:`talk`,firstCheck:!1,source:{kind:`ADDED`,conversationId:`talk`,title:`Asked: “${t}”`,contributed:`Pinned ${Math.min(n.length,4)} from this question`,at:Date.now()}})}function Ee(e){let t=(0,I.c)(29),{dashboard:n}=e,r=V(n),[i,a]=(0,L.useState)(``),[s,c]=(0,L.useState)(!1),[l,u]=(0,L.useState)(`ask`),d;t[0]===n?d=t[1]:(d=Te(n),t[0]=n,t[1]=d);let f=d,p;t[2]===r?p=t[3]:(p=e=>{c(!1),u(H(e)),r.run(e),a(``)},t[2]=r,t[3]=p);let m=p,h,g;t[4]!==l||t[5]!==n.id||t[6]!==s||t[7]!==r.lastAsk||t[8]!==r.loading||t[9]!==r.result?(h=()=>{l===`add`&&!r.loading&&r.result&&!r.result.error&&r.result.spec.blocks.length>0&&!s&&(U(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0))},g=[l,r.loading,r.result,r.lastAsk,s,n.id],t[4]=l,t[5]=n.id,t[6]=s,t[7]=r.lastAsk,t[8]=r.loading,t[9]=r.result,t[10]=h,t[11]=g):(h=t[10],g=t[11]),(0,L.useEffect)(h,g);let _;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,R.jsx)(`div`,{className:`card-eyebrow dash-talk-eyebrow`,children:`Talk to this dashboard`}),t[12]=_):_=t[12];let v;t[13]!==f||t[14]!==i||t[15]!==m||t[16]!==r.loading||t[17]!==r.ready?(v=r.ready?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`dash-talk-chips`,children:f.map(e=>(0,R.jsxs)(`button`,{type:`button`,className:`dash-talk-chip`,disabled:r.loading,onClick:()=>m(e),children:[(0,R.jsx)(`span`,{className:`dash-talk-chip-orb`}),(0,R.jsxs)(`span`,{className:`dash-talk-chip-t`,children:[`“`,e,`”`]})]},e))}),(0,R.jsxs)(`form`,{className:`dash-talk-ask`,onSubmit:e=>{e.preventDefault(),m(i)},children:[(0,R.jsx)(`input`,{className:`dash-talk-input`,value:i,placeholder:`Ask a question, or type "add …" / "track …" to add it in one step`,onChange:e=>a(e.target.value),disabled:r.loading}),(0,R.jsx)(`button`,{type:`submit`,className:`dash-talk-send`,disabled:r.loading||!i.trim(),children:r.loading?`Thinking…`:`Ask`})]})]}):(0,R.jsxs)(`p`,{className:`dash-talk-gate`,children:[`Connect a model in `,(0,R.jsx)(`a`,{href:`#/live`,children:`Live`}),` to ask questions grounded in this dashboard.`]}),t[13]=f,t[14]=i,t[15]=m,t[16]=r.loading,t[17]=r.ready,t[18]=v):v=t[18];let y;t[19]!==l||t[20]!==n.id||t[21]!==s||t[22]!==r.lastAsk||t[23]!==r.loading||t[24]!==r.result?(y=r.lastAsk&&(0,R.jsxs)(`div`,{className:`dash-talk-answer`,children:[(0,R.jsxs)(`div`,{className:`dash-talk-q`,children:[`“`,r.lastAsk,`”`]}),r.loading?(0,R.jsx)(`div`,{className:`dash-talk-thinking`,children:`Mavéa is looking at your dashboard…`}):r.result?.error?(0,R.jsxs)(`div`,{className:`dash-talk-error`,children:[`That didn’t go through. Check your model in `,(0,R.jsx)(`a`,{href:`#/live`,children:`Live`}),` and try again.`]}):r.result?(0,R.jsxs)(R.Fragment,{children:[r.result.narration&&(0,R.jsx)(`p`,{className:`dash-talk-narration`,children:r.result.narration}),(0,R.jsx)(o,{data:r.result.spec,spot:null,built:{},onProve:W}),r.result.spec.blocks.length>0&&(s?(0,R.jsx)(`div`,{className:`dash-talk-pinned`,children:l===`add`?(0,R.jsx)(R.Fragment,{children:`Auto-added — this read like a command, not a question. Remove it from Edit layout if that’s wrong.`}):`Added to this dashboard ✓`}):l===`add`?null:(0,R.jsx)(`button`,{type:`button`,className:`dash-talk-pin`,onClick:()=>{U(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0)},children:`+ Add this to the dashboard`}))]}):null]}),t[19]=l,t[20]=n.id,t[21]=s,t[22]=r.lastAsk,t[23]=r.loading,t[24]=r.result,t[25]=y):y=t[25];let b;return t[26]!==v||t[27]!==y?(b=(0,R.jsxs)(`section`,{className:`dash-talk`,children:[_,v,y]}),t[26]=v,t[27]=y,t[28]=b):b=t[28],b}function W(){}function De(e){if(!e.history||e.history.length<2)return null;let t=e.history[e.history.length-2].value,n=e.history[e.history.length-1].value;if(n===t)return null;let r=n>t?`up`:`down`,i=Math.round(Math.abs(n-t)*100)/100;if(i===0)return null;let a=Number.isInteger(i)?String(i):i.toFixed(2),o=e.unit===`$`?`$`:``,s=e.unit&&e.unit!==`$`?e.unit:``;return{direction:r,text:`${r===`up`?`+`:`-`}${o}${a}${s}`}}function Oe(e){return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function G(e){if(e<=0)return`due now`;let t=Math.round(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;if(n<24)return r?`${n}h ${r}m`:`${n}h`;let i=Math.floor(n/24),a=n%24;return a?`${i}d ${a}h`:`${i}d`}function ke({dashboard:e,now:t,checking:n=!1}){let r=(0,L.useMemo)(()=>e.metrics.find(e=>e.lastValue!==null)??e.metrics[0],[e.metrics]),i=D(e);if(!i||!r)return null;let a=De(r),o=i.label||e.title,s=r.asOf??e.lastRefreshedAt??null,c=e.cadence.data===`manual`?`when you refresh`:G(e.nextDataAt-t),l=r.history??[];return(0,R.jsxs)(`section`,{className:`card dash-hero`,"aria-label":`${o} — as of last check`,children:[(0,R.jsxs)(`div`,{className:`dash-hero-top`,children:[(0,R.jsxs)(`span`,{className:`dash-hero-eyebrow`,children:[o,`: as of last check`]}),(0,R.jsx)(`span`,{className:`dash-hero-meta`,children:n?`checking for new data…`:`as of ${s?Oe(s):`not yet checked`} / not real-time — next check ${c}`})]}),(0,R.jsxs)(`div`,{className:`dash-hero-value-row`,children:[(0,R.jsx)(`span`,{className:`dash-hero-value${n?` tile-value--checking`:``}`,children:i.value}),a&&(0,R.jsx)(`span`,{className:`dash-hero-delta dash-hero-delta--${a.direction}`,children:a.text})]}),(0,R.jsx)(`div`,{className:`dash-hero-chart`,children:l.length>=2?(0,R.jsx)(j,{points:l,tone:a?.direction??`flat`}):(0,R.jsx)(`p`,{className:`dash-hero-chart-empty`,children:`Not enough history yet for a chart.`})})]})}function Ae(e){let t=(0,I.c)(6),{dashboard:n}=e,[r,i]=C();if(re().keyNudgeShown||!ee(r)||r.rememberKey||!k(n))return null;let a=je,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,R.jsx)(`p`,{className:`dash-key-nudge-text`,children:`Mavéa checks this with your key, which currently lives only in this tab. Keep it on this device (encrypted) so checks still work after a reload?`}),t[0]=o):o=t[0];let s;t[1]===i?s=t[2]:(s=(0,R.jsx)(`button`,{type:`button`,className:`dash-key-nudge-keep`,onClick:()=>{i({rememberKey:!0}),a()},children:`Keep key on this device`}),t[1]=i,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,R.jsx)(`button`,{type:`button`,className:`dash-key-nudge-dismiss`,onClick:a,children:`Not now`}),t[3]=c):c=t[3];let l;return t[4]===s?l=t[5]:(l=(0,R.jsxs)(`div`,{className:`card dash-key-nudge`,children:[o,(0,R.jsxs)(`div`,{className:`dash-key-nudge-actions`,children:[s,c]})]}),t[4]=s,t[5]=l),l}function je(){return O({keyNudgeShown:!0})}var K={hit:{label:`Called it ✓`,className:`is-hit`},miss:{label:`Missed ✗`,className:`is-miss`},unclear:{label:`Unclear`,className:`is-unclear`}};function q(e){let t=(0,I.c)(21),{dashboard:n,now:r}=e,i;t[0]===n.predictionHistory?i=t[1]:(i=n.predictionHistory??[],t[0]=n.predictionHistory,t[1]=i);let a=i,o=a.length>0?a[a.length-1]:null;if(!n.prediction&&!o)return null;let s;t[2]!==n.predictionHistory||t[3]!==r?(s=ce(n.predictionHistory,r),t[2]=n.predictionHistory,t[3]=r,t[4]=s):s=t[4];let c=s,l=o?K[o.result]:null,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,R.jsx)(`span`,{className:`card-eyebrow dash-expects-eyebrow`,children:`Expects by next check`}),t[5]=u):u=t[5];let d;t[6]===n.prediction?d=t[7]:(d=n.prediction&&(0,R.jsx)(`p`,{className:`dash-expects-text`,children:n.prediction.text}),t[6]=n.prediction,t[7]=d);let f;t[8]!==l||t[9]!==o?(f=o&&l&&(0,R.jsxs)(`div`,{className:`dash-expects-grade`,children:[(0,R.jsxs)(`span`,{className:`dash-expects-chip ${l.className}`,children:[`Last call: `,l.label]}),(0,R.jsxs)(`p`,{className:`dash-expects-expected`,children:[`“`,o.expected,`”`]}),o.note&&(0,R.jsx)(`p`,{className:`dash-expects-note`,children:o.note})]}),t[8]=l,t[9]=o,t[10]=f):f=t[10];let p;t[11]!==c.hits||t[12]!==c.total?(p=c.total>0&&(0,R.jsxs)(`span`,{className:`dash-expects-tally`,children:[`Calls this week · `,c.hits,`/`,c.total]}),t[11]=c.hits,t[12]=c.total,t[13]=p):p=t[13];let m;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,R.jsx)(`span`,{className:`dash-expects-label`,children:`Predictions are free — written from checks you already paid for`}),t[14]=m):m=t[14];let h;t[15]===p?h=t[16]:(h=(0,R.jsxs)(`div`,{className:`dash-expects-foot`,children:[p,m]}),t[15]=p,t[16]=h);let g;return t[17]!==d||t[18]!==f||t[19]!==h?(g=(0,R.jsxs)(`div`,{className:`dash-expects`,children:[u,d,f,h]}),t[17]=d,t[18]=f,t[19]=h,t[20]=g):g=t[20],g}function Me(e){let t=(0,I.c)(23),{dashboard:n,now:r}=e,i=M(n.id);if(!(n.tripwires.length>0||n.lastVerdict||n.prediction||i))return null;let a=n.lastVerdict,o;t[0]!==n.tripwires||t[1]!==a?(o=a?n.tripwires.find(e=>e.id===a.tripwireId)??null:null,t[0]=n.tripwires,t[1]=a,t[2]=o):o=t[2];let s=o,c=!!n.lastVerdictError&&(n.lastVerdictAttemptAt??0)>(a?.at??0),l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,R.jsx)(`span`,{className:`card-eyebrow dash-lastcheck-eyebrow`,children:`From the last check`}),t[3]=l):l=t[3];let u;t[4]!==r||t[5]!==a?(u=a&&(0,R.jsx)(`span`,{className:`dash-lastcheck-when`,children:ie(a.at,r).replace(/^updated /,`checked `)}),t[4]=r,t[5]=a,t[6]=u):u=t[6];let d;t[7]===u?d=t[8]:(d=(0,R.jsxs)(`div`,{className:`dash-lastcheck-head`,children:[l,u]}),t[7]=u,t[8]=d);let f;t[9]!==n||t[10]!==c||t[11]!==r||t[12]!==i||t[13]!==s||t[14]!==a?(f=a?(0,R.jsxs)(R.Fragment,{children:[s&&(0,R.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-about`,children:[`About: `,s.label]}),i?(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c&&(0,R.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:[`A newer check just failed: `,n.lastVerdictError]}),(0,R.jsx)(`p`,{className:`dash-lastcheck-text`,children:a.text}),a.grounded===!1&&(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-qualifier`,children:`Based on background knowledge, not a fresh search.`}),a.sources&&a.sources.length>0&&(0,R.jsx)(`div`,{className:`dash-lastcheck-sources`,children:a.sources.map(J)})]}):i?(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c?(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:n.lastVerdictError}):(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-muted`,children:ne(n,r)}),t[9]=n,t[10]=c,t[11]=r,t[12]=i,t[13]=s,t[14]=a,t[15]=f):f=t[15];let p;t[16]!==n||t[17]!==r?(p=(0,R.jsx)(q,{dashboard:n,now:r}),t[16]=n,t[17]=r,t[18]=p):p=t[18];let m;return t[19]!==d||t[20]!==f||t[21]!==p?(m=(0,R.jsxs)(`section`,{className:`dash-lastcheck`,"aria-label":`From the last check`,children:[d,f,p]}),t[19]=d,t[20]=f,t[21]=p,t[22]=m):m=t[22],m}function J(e){let t=l(e.url);return t?(0,R.jsx)(`a`,{className:`dash-lastcheck-source`,href:t,target:`_blank`,rel:`noopener noreferrer`,title:e.title,children:e.title},e.url):null}var Y={WATCHING:`Watching`,CLEAR:`Clear`,AWAITING:`Awaiting data`,TRIGGERED:`Triggered`};function X(e){let t=(0,I.c)(15),{tripwire:n}=e,r=n.state===`TRIGGERED`,i=`dash-alertcard-row`+(r?` is-triggered`:``),a=`dash-switch`+(n.state===`AWAITING`?``:` on`),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,R.jsx)(`span`,{className:`dash-switch-knob`}),t[0]=o):o=t[0];let s;t[1]===a?s=t[2]:(s=(0,R.jsx)(`span`,{className:a,"aria-hidden":`true`,children:o}),t[1]=a,t[2]=s);let c=n.sourceQuote.text||n.label,l;t[3]===c?l=t[4]:(l=(0,R.jsx)(`span`,{className:`dash-alertcard-line`,children:c}),t[3]=c,t[4]=l);let u;t[5]!==r||t[6]!==n.state?(u=r?(0,R.jsx)(`span`,{className:`dash-alertcard-crossed`,children:`A line you set has been crossed`}):(0,R.jsx)(`span`,{className:`dash-alertcard-state`,children:Y[n.state]}),t[5]=r,t[6]=n.state,t[7]=u):u=t[7];let d;t[8]!==l||t[9]!==u?(d=(0,R.jsxs)(`div`,{className:`dash-alertcard-body`,children:[l,u]}),t[8]=l,t[9]=u,t[10]=d):d=t[10];let f;return t[11]!==i||t[12]!==s||t[13]!==d?(f=(0,R.jsxs)(`li`,{className:i,children:[s,d]}),t[11]=i,t[12]=s,t[13]=d,t[14]=f):f=t[14],f}function Ne(e){let t=(0,I.c)(5),{dashboard:n}=e;if(n.tripwires.length===0)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`div`,{className:`card-eyebrow`,children:`Your alerts`}),t[0]=r):r=t[0];let i;t[1]===n.tripwires?i=t[2]:(i=n.tripwires.map(Z),t[1]=n.tripwires,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,R.jsxs)(`section`,{className:`card dash-alertcard`,"aria-label":`Your alerts`,children:[r,(0,R.jsx)(`ul`,{className:`dash-alertcard-list`,children:i})]}),t[3]=i,t[4]=a),a}function Z(e){return(0,R.jsx)(X,{tripwire:e},e.id)}var Q={scheduled:`Scheduled`,search:`Search`,sources:`Sources`,extraction:`Extraction`,grounding:`Grounding`,saved:`Saved`,tripwires:`Lines checked`},Pe={updated:`New data saved`,"no-change":`Checked — nothing new`,unverified:`Nothing could be verified`,failed:`The check could not run`};function Fe(e){if(e.endedAt===void 0)return`…`;let t=(e.endedAt-e.startedAt)/1e3;return t<1?`${Math.max(1,Math.round(t*1e3))}ms`:`${t.toFixed(1)}s`}function Ie(e){let t=(0,I.c)(13),{dashboardId:n}=e,r,i;t[0]===n?(r=t[1],i=t[2]):(r=()=>u(n),i=()=>u(n),t[0]=n,t[1]=r,t[2]=i);let a=(0,L.useSyncExternalStore)(g,r,i),[o,s]=(0,L.useState)(!1),c=a[0];if(!c)return null;let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>s($),t[3]=l):l=t[3];let d=o?`Hide`:`What happened on the last check?`,f;t[4]!==o||t[5]!==d?(f=(0,R.jsx)(`button`,{type:`button`,className:`crp-toggle`,"aria-expanded":o,onClick:l,children:d}),t[4]=o,t[5]=d,t[6]=f):f=t[6];let m;t[7]!==c||t[8]!==o?(m=o&&(0,R.jsxs)(`ol`,{className:`crp-steps`,children:[c.steps.map(Le),(0,R.jsxs)(`li`,{className:`crp-foot`,children:[(0,R.jsx)(`span`,{children:c.outcome?Pe[c.outcome]:`Running…`}),(0,R.jsx)(`span`,{className:`crp-foot-time`,children:Fe(c)})]}),c.failure&&(0,R.jsx)(`li`,{className:`crp-fix`,children:p(c.failure)})]}),t[7]=c,t[8]=o,t[9]=m):m=t[9];let h;return t[10]!==f||t[11]!==m?(h=(0,R.jsxs)(`section`,{className:`crp`,children:[f,m]}),t[10]=f,t[11]=m,t[12]=h):h=t[12],h}function Le(e,t){return(0,R.jsxs)(`li`,{className:e.ok?`crp-step`:`crp-step is-bad`,children:[(0,R.jsx)(`span`,{className:`crp-step-mark`,"aria-hidden":`true`,children:e.ok?`✓`:`✕`}),(0,R.jsx)(`span`,{className:`crp-step-name`,children:Q[e.name]}),e.count!==void 0&&(0,R.jsx)(`span`,{className:`crp-step-count`,children:e.count}),e.detail&&(0,R.jsx)(`span`,{className:`crp-step-detail`,children:e.detail})]},`${e.name}-${t}`)}function $(e){return!e}var Re={1:`S`,2:`M`,3:`L`};function ze(e){let t=(0,I.c)(120),{id:n}=e,r=te(),i;t[0]!==r||t[1]!==n?(i=r.find(e=>e.id===n)??null,t[0]=r,t[1]=n,t[2]=i):i=t[2];let o=i,[c,l]=(0,L.useState)(!1),[u,p]=(0,L.useState)(!1),m;t[3]===o?.widgets?m=t[4]:(m=o?.widgets.map(Ge)??[],t[3]=o?.widgets,t[4]=m);let h=m,g;t[5]===o?g=t[6]:(g=e=>o&&d(o.id,e),t[5]=o,t[6]=g);let _=ge(h,g),v;t[7]===o?.widgets?v=t[8]:(v=new Map((o?.widgets??[]).map(We)),t[7]=o?.widgets,t[8]=v);let b=v,x,w;t[9]===o?(x=t[10],w=t[11]):(x=()=>{o&&s(o.widgets.map(Ue))},w=[o],t[9]=o,t[10]=x,t[11]=w),(0,L.useEffect)(x,w);let T=o?.id,D,O;t[12]===T?(D=t[13],O=t[14]):(D=()=>{T&&f(T)},O=[T],t[12]=T,t[13]=D,t[14]=O),(0,L.useEffect)(D,O);let[A,re]=(0,L.useState)(He),ie,j;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>{let e=window.setInterval(()=>re(Date.now()),3e4);return()=>window.clearInterval(e)},ie=[],t[15]=ie,t[16]=j):(ie=t[15],j=t[16]),(0,L.useEffect)(j,ie);let[M]=C(),N=ae(o?.id??``),[P,ce]=(0,L.useState)(`idle`),le;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(le=async e=>{ce(`busy`);let t=await oe(e);ce(t===`no-model`||t===`failed`||t===`unverified`?t:`idle`)},t[17]=le):le=t[17];let ue=le,[F,de]=(0,L.useState)(`idle`),fe;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(fe=async e=>{de(`busy`);let t=await se(e);de(t===`no-model`||t===`failed`?t:`idle`)},t[18]=fe):fe=t[18];let he=fe;if(!o){let e;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,R.jsx)(`p`,{className:`dash-empty-title`,children:`That dashboard isn’t here.`}),t[19]=e):e=t[19];let n;return t[20]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,R.jsx)(`div`,{className:`dash-detail`,children:(0,R.jsxs)(`div`,{className:`dash-empty`,children:[e,(0,R.jsxs)(`p`,{className:`dash-empty-how`,children:[`It may have been removed. `,(0,R.jsx)(`a`,{href:E.gallery,children:`Back to your dashboards →`})]})]})}),t[20]=n):n=t[20],n}let _e;t[21]===o.id?_e=t[22]:(_e=(e,t)=>{y(o.id,e,t>=3?1:t+1)},t[21]=o.id,t[22]=_e);let ye=_e,z;t[23]!==b||t[24]!==ye||t[25]!==o||t[26]!==c||t[27]!==_?(z=_.order.map(e=>{let t=b.get(e);if(!t)return null;let n=t.metricId?o.metrics.find(e=>e.id===t.metricId):null,r=!c&&n?.blankKey?(0,R.jsx)(Se,{dashboardId:o.id,metric:n}):void 0;return(0,R.jsx)(ve,{dashboard:o,widget:t,editing:c,dragging:_.draggingId===t.id,footer:r,children:c&&(0,R.jsxs)(`div`,{className:`dash-tile-chrome`,children:[(0,R.jsx)(`span`,{className:`dash-tile-handle`,..._.handleProps(t.id),children:`⠿`}),(0,R.jsxs)(`div`,{className:`dash-tile-ctrls`,children:[(0,R.jsx)(`button`,{type:`button`,className:`dash-tile-size`,onClick:()=>ye(t.id,t.span),title:`Resize`,children:Re[t.span]}),(0,R.jsx)(`button`,{type:`button`,className:`dash-tile-x`,onClick:()=>S(o.id,t.id),"aria-label":`Remove widget`,children:`×`})]})]})},t.id)}),t[23]=b,t[24]=ye,t[25]=o,t[26]=c,t[27]=_,t[28]=z):z=t[28];let be=z,Ce;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,R.jsx)(`a`,{className:`dash-back`,href:E.gallery,"aria-label":`Back to dashboards`,children:`←`}),t[29]=Ce):Ce=t[29];let B;t[30]===o.title?B=t[31]:(B=(0,R.jsx)(`span`,{className:`dash-detail-title`,children:o.title}),t[30]=o.title,t[31]=B);let V;t[32]===o.question?V=t[33]:(V=o.question&&(0,R.jsxs)(`span`,{className:`dash-detail-q`,title:o.question,children:[`“`,o.question,`”`]}),t[32]=o.question,t[33]=V);let we;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,R.jsx)(`i`,{className:`dash-live-dot`}),t[34]=we):we=t[34];let H;t[35]!==o||t[36]!==N||t[37]!==A?(H=N?`checking for new data…`:ne(o,A),t[35]=o,t[36]=N,t[37]=A,t[38]=H):H=t[38];let Te=!N&&k(o)&&o.cadence.data!==`manual`?` · refreshes while open`:``,U;t[39]!==H||t[40]!==Te?(U=(0,R.jsxs)(`span`,{className:`dash-detail-clock`,children:[we,H,Te]}),t[39]=H,t[40]=Te,t[41]=U):U=t[41];let W;t[42]===o.id?W=t[43]:(W=()=>void ue(o.id),t[42]=o.id,t[43]=W);let De=P===`busy`,Oe=P===`busy`?`dash-refresh-spin`:void 0,G;t[44]===Oe?G=t[45]:(G=(0,R.jsx)(a.refresh,{className:Oe}),t[44]=Oe,t[45]=G);let je=P===`busy`?`Refreshing…`:`Refresh now`,K;t[46]!==W||t[47]!==De||t[48]!==G||t[49]!==je?(K=(0,R.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-refresh-btn`,onClick:W,disabled:De,title:`Fetch current values now, regardless of cadence`,children:[G,je]}),t[46]=W,t[47]=De,t[48]=G,t[49]=je,t[50]=K):K=t[50];let q;t[51]!==o||t[52]!==M||t[53]!==P?(q=(P===`no-model`||!ee(M)&&k(o))&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to refresh.`}),t[51]=o,t[52]=M,t[53]=P,t[54]=q):q=t[54];let J;t[55]===P?J=t[56]:(J=P===`failed`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[55]=P,t[56]=J);let Y;t[57]===P?Y=t[58]:(Y=P===`unverified`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Checked, but no source could verify new values — keeping the last real ones.`}),t[57]=P,t[58]=Y);let X;t[59]!==o.id||t[60]!==o.metrics.length||t[61]!==F?(X=o.metrics.length>0&&(0,R.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-read-btn`,onClick:()=>void he(o.id),disabled:F===`busy`,title:`Ask Mavéa to read the latest numbers now`,children:[(0,R.jsx)(a.sparkle,{className:F===`busy`?`dash-refresh-spin`:void 0}),F===`busy`?`Reading…`:`Read the numbers now`]}),t[59]=o.id,t[60]=o.metrics.length,t[61]=F,t[62]=X):X=t[62];let Z;t[63]===F?Z=t[64]:(Z=F===`no-model`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to read.`}),t[63]=F,t[64]=Z);let Q;t[65]===F?Q=t[66]:(Q=F===`failed`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[65]=F,t[66]=Q);let Pe=`dash-edit-btn`+(c?` is-active`:``),Fe;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=()=>{l(Ve),p(!1)},t[67]=Fe):Fe=t[67];let Le=c?`Done`:`Edit layout`,$;t[68]!==Pe||t[69]!==Le?($=(0,R.jsx)(`button`,{type:`button`,className:Pe,onClick:Fe,children:Le}),t[68]=Pe,t[69]=Le,t[70]=$):$=t[70];let ze;t[71]===o.id?ze=t[72]:(ze=E.settings(o.id),t[71]=o.id,t[72]=ze);let Ke;t[73]===ze?Ke=t[74]:(Ke=(0,R.jsx)(`a`,{className:`dash-gear`,href:ze,"aria-label":`Dashboard settings`,title:`Settings`,children:`⚙`}),t[73]=ze,t[74]=Ke);let qe;t[75]!==B||t[76]!==V||t[77]!==U||t[78]!==K||t[79]!==q||t[80]!==J||t[81]!==Y||t[82]!==X||t[83]!==Z||t[84]!==Q||t[85]!==$||t[86]!==Ke?(qe=(0,R.jsxs)(`header`,{className:`dash-detail-head`,children:[Ce,B,V,U,K,q,J,Y,X,Z,Q,$,Ke]}),t[75]=B,t[76]=V,t[77]=U,t[78]=K,t[79]=q,t[80]=J,t[81]=Y,t[82]=X,t[83]=Z,t[84]=Q,t[85]=$,t[86]=Ke,t[87]=qe):qe=t[87];let Je;t[88]!==o||t[89]!==c?(Je=!c&&(0,R.jsx)(Ae,{dashboard:o}),t[88]=o,t[89]=c,t[90]=Je):Je=t[90];let Ye;t[91]!==o||t[92]!==N||t[93]!==c||t[94]!==A?(Ye=!c&&(0,R.jsx)(ke,{dashboard:o,now:A,checking:N}),t[91]=o,t[92]=N,t[93]=c,t[94]=A,t[95]=Ye):Ye=t[95];let Xe;t[96]!==o||t[97]!==c||t[98]!==A?(Xe=!c&&(0,R.jsx)(Me,{dashboard:o,now:A}),t[96]=o,t[97]=c,t[98]=A,t[99]=Xe):Xe=t[99];let Ze;t[100]!==o||t[101]!==c||t[102]!==u?(Ze=c&&(0,R.jsxs)(`div`,{className:`dash-edit-bar`,children:[(0,R.jsxs)(`span`,{className:`dash-edit-hint`,children:[`Drag a tile by its `,(0,R.jsx)(`strong`,{children:`⠿`}),` handle to reorder, tap `,(0,R.jsx)(`strong`,{children:`S/M/L`}),` to resize, `,(0,R.jsx)(`strong`,{children:`×`}),` to remove.`]}),(0,R.jsx)(`button`,{type:`button`,className:`dash-edit-add`,onClick:()=>p(Be),"aria-expanded":u,children:`+ Add widget`}),u&&(0,R.jsx)(xe,{dashboard:o,onClose:()=>p(!1)})]}),t[100]=o,t[101]=c,t[102]=u,t[103]=Ze):Ze=t[103];let Qe;t[104]!==o||t[105]!==c||t[106]!==A||t[107]!==be?(Qe=c?(0,R.jsx)(`div`,{className:`dash-grid`,children:be}):(0,R.jsxs)(`div`,{className:`dash-detail-cols`,children:[(0,R.jsxs)(`div`,{className:`dash-detail-main`,children:[o.widgets.length>0&&(0,R.jsxs)(`div`,{className:`dash-detail-section`,children:[(0,R.jsx)(`div`,{className:`card-eyebrow dash-detail-section-title`,children:`Cards`}),(0,R.jsx)(`div`,{className:`dash-grid`,children:be})]}),(0,R.jsx)(me,{dashboardId:o.id,now:A}),(0,R.jsx)(Ie,{dashboardId:o.id})]}),(0,R.jsxs)(`div`,{className:`dash-detail-side`,children:[(0,R.jsx)(pe,{dashboard:o,now:A}),(0,R.jsx)(Ne,{dashboard:o})]})]}),t[104]=o,t[105]=c,t[106]=A,t[107]=be,t[108]=Qe):Qe=t[108];let $e;t[109]!==o||t[110]!==c?($e=!c&&(0,R.jsx)(Ee,{dashboard:o},o.id),t[109]=o,t[110]=c,t[111]=$e):$e=t[111];let et;return t[112]!==qe||t[113]!==Je||t[114]!==Ye||t[115]!==Xe||t[116]!==Ze||t[117]!==Qe||t[118]!==$e?(et=(0,R.jsxs)(`div`,{className:`dash-detail`,children:[qe,Je,Ye,Xe,Ze,Qe,$e]}),t[112]=qe,t[113]=Je,t[114]=Ye,t[115]=Xe,t[116]=Ze,t[117]=Qe,t[118]=$e,t[119]=et):et=t[119],et}function Be(e){return!e}function Ve(e){return!e}function He(){return Date.now()}function Ue(e){return e.block}function We(e){return[e.id,e]}function Ge(e){return e.id}export{ze as DashboardDetail};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generateLive-CDIkclO4.js","assets/blockLabel-FogyzEQY.js","assets/deepenStore-BWLLzLCY.js","assets/catalog-BHjl-1uH.js","assets/http-Bqk6nJiH.js","assets/history-D2EH2X6D.js","assets/number-zqlPMliA.js","assets/catalog-vLsIS_Na.js","assets/preload-helper-CiWYd9n-.js","assets/rolldown-runtime-DkW27tQK.js","assets/facts-CNQz8OQz.js","assets/blockTypes-DUDdP3pB.js","assets/streamParse-BX0bAppQ.js","assets/liveSchema-eKgFc5D0.js","assets/icons-gLFQTv74.js","assets/jsx-runtime-DeHZSEgm.js","assets/safeImageUrl-BINWXOTz.js","assets/empty-D51uhW0E.js","assets/sourceHost-BV3t2XDb.js","assets/spokenText-Dy-GZvZV.js","assets/annotations-CftUUB13.js","assets/contentVault-XKWjF2FB.js","assets/keyVault-Aw5Y2PjT.js","assets/screen-DFWKge3-.js","assets/attachments-BW-vki-E.js","assets/providers-CPhoN8j0.js","assets/info-CiqHR5cs.js","assets/route-CMdTFx0P.js","assets/effort-QeWrMtZt.js","assets/index-BMeoXWPR.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/useInView-DsTvv7L_.js","assets/coreIcons-DDTChE1H.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/theme-D5D55hZi.js","assets/index-CFE0vqqO.css","assets/speed-BOytg6bC.js","assets/cache-7UEbF3S6.js","assets/validate-MQG0EcTD.js","assets/types-C42I77wh.js","assets/json-J4Y32_i9.js","assets/verbatim-DBTj9sPD.js","assets/citation-BsSvaaer.js","assets/receipts-D7zveV-I.js","assets/officeDoc-GU6Cssjf.js","assets/csv-DAqzYXUs.js","assets/search-ZN7v_P5B.js","assets/store-DqOaVRLn.js","assets/ready-_sg3IJkE.js","assets/shapes-BwXCYTlu.js","assets/ledger-BssK9Pv2.js","assets/now-C9-UAzTC.js","assets/select-StjZ4ZRN.js","assets/offers-eBNj_lSP.js","assets/scale-Bcgfo6Hp.js","assets/spreadLabels-CQ8hufvK.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a}from"./icons-gLFQTv74.js";import{t as o}from"./TopicCanvas-CyBGLgb0.js";import{a as s}from"./loader-BRfSnl9t.js";import{t as c}from"./useFocusTrap-CJmpNZv2.js";import{r as l}from"./sourceHost-BV3t2XDb.js";import"./canvas-BX595EVB.js";import{B as u,D as d,K as f,L as p,N as m,P as h,W as g,d as _,f as v,k as y,o as b,p as x,w as S}from"./store-D16dGt7I.js";import{d as C,n as w,r as ee,u as T}from"./useLiveConfig-CvOQTr0s.js";import{t as E}from"./route-D4kd-D3B.js";import{t as te}from"./useDashboards-B-EjE8FH.js";import{a as D,f as O,i as k,l as A,n as ne,p as re,t as ie}from"./format-BkvssSOr.js";import{n as ae}from"./dataPending-DGdCvY5Y.js";import{t as j}from"./AreaChart-DZGCSEwt.js";import"./tiles-D-s6v-mA.js";import{a as M,n as oe,o as N,s as P,t as se}from"./useDashboardLoop-DEE_sLT0.js";import{r as ce}from"./predictions-CkVKHq-5.js";import{i as le,n as ue,r as F}from"./confirmAdd-D_hDIeaD.js";import{t as de}from"./planTracker-BA-x4jbw.js";import{t as fe}from"./pin-Bic4-gim.js";/* empty css */import{t as pe}from"./CadenceCard-j1V7XOxX.js";import{t as me}from"./CheckLogRail-CeRhbIwa.js";var I=t(),L=e();function he(e,t){for(let n of document.elementsFromPoint(e,t)){let e=n.closest(`[data-dash-widget]`);if(e)return e.getAttribute(`data-dash-widget`)}return null}function ge(e,t){let[n,r]=(0,L.useState)(null),[i,a]=(0,L.useState)(null),o=(0,L.useRef)({working:null,draggingId:null,onCommit:t,sourceIds:e,cleanup:null});o.current.onCommit=t,o.current.sourceIds=e,(0,L.useEffect)(()=>()=>o.current.cleanup?.(),[]);let s=(0,L.useCallback)(e=>t=>{if(t.button!==0&&t.pointerType===`mouse`)return;t.preventDefault();let n=[...o.current.sourceIds];o.current.working=n,o.current.draggingId=e,r(n),a(e);let i=e=>{let t=he(e.clientX,e.clientY),n=o.current.draggingId,i=o.current.working;if(!t||!n||!i||t===n)return;let a=i.indexOf(n),s=i.indexOf(t);if(a<0||s<0||a===s)return;let c=[...i];c.splice(s,0,c.splice(a,1)[0]),o.current.working=c,r(c)},s=()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,s),window.removeEventListener(`pointercancel`,s),o.current.cleanup=null;let e=o.current.working;o.current.working=null,o.current.draggingId=null,r(null),a(null),e&&o.current.onCommit(e)};o.current.cleanup=s,window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,s),window.addEventListener(`pointercancel`,s)},[]),c=(0,L.useCallback)(e=>t=>{if(t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let n=o.current.sourceIds,r=n.indexOf(e),i=t.key===`ArrowUp`?r-1:r+1;if(r<0||i<0||i>=n.length)return;let a=[...n];a.splice(i,0,a.splice(r,1)[0]),o.current.onCommit(a)},[]);return{draggingId:i,order:n??e,handleProps:e=>({onPointerDown:s(e),onKeyDown:c(e),tabIndex:0,role:`button`,"aria-label":`Drag to reorder, or use arrow keys`})}}var R=n();function _e(e){return{id:`dash-`+(e.id??e.type),workspace:`Dashboards`,title:``,sub:``,opener:``,context:[],blocks:[{...e,col:12,delay:0}],proof:null,extras:{},group:`home`,suggests:[],keywords:[]}}function ve(e){let t=(0,I.c)(18),{dashboard:n,widget:r,editing:i,dragging:a,children:s,footer:c}=e,l;t[0]!==n||t[1]!==r?(l=P(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u=l,d;t[3]===u?d=t[4]:(d=_e(u),t[3]=u,t[4]=d);let f=d,p=`dash-span-${r.span}`,m=i?`dash-tile--editing`:``,h=a?`dash-tile--dragging`:``,g;t[5]!==p||t[6]!==m||t[7]!==h?(g=[`dash-tile`,p,m,h].filter(Boolean),t[5]=p,t[6]=m,t[7]=h,t[8]=g):g=t[8];let _=g.join(` `),v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={},t[9]=v):v=t[9];let y;t[10]===f?y=t[11]:(y=(0,R.jsx)(o,{data:f,spot:null,built:v,onProve:ye}),t[10]=f,t[11]=y);let b;return t[12]!==s||t[13]!==_||t[14]!==c||t[15]!==y||t[16]!==r.id?(b=(0,R.jsxs)(`div`,{className:_,"data-dash-widget":r.id,children:[s,y,c]}),t[12]=s,t[13]=_,t[14]=c,t[15]=y,t[16]=r.id,t[17]=b):b=t[17],b}function ye(){}function z(){return`w-`+Math.random().toString(36).slice(2,8)}function be(e){let t=new Set(e.widgets.map(e=>e.block.type));return[{key:`note`,label:`Note`,make:()=>({block:{type:`list`,col:12,id:z(),props:{title:`Note`,items:[`Add a note about this dashboard.`]}},span:2})},{key:`thesis`,label:`Reasoning note`,make:()=>({block:{type:`thesis`,col:12,id:z(),props:{reasoning:``}},span:2})},{key:`alignmentgauge`,label:`Alignment gauge`,make:()=>({block:{type:`alignmentgauge`,col:12,id:z(),props:{pct:null}},span:1})},{key:`standingalerts`,label:`Standing alerts`,make:()=>({block:{type:`standingalerts`,col:12,id:z(),props:{alerts:[]}},span:1})},{key:`sourceslineage`,label:`Sources`,make:()=>({block:{type:`sourceslineage`,col:12,id:z(),props:{rows:[]}},span:2})}].filter(e=>e.key===`note`||!t.has(e.key))}function xe(e){let t=(0,I.c)(26),{dashboard:n,onClose:r}=e,[i,a]=(0,L.useState)(`menu`),[o,s]=(0,L.useState)(``),[l,u]=(0,L.useState)(!1),[d,f]=(0,L.useState)(null),p=be(n),m=!!T(w()).apiKey,h;t[0]!==n||t[1]!==r?(h=e=>{let{block:t,span:i}=e.make(),a={id:z(),block:t,span:i,fromSource:`manual`};b(n.id,a),r()},t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,y=(0,L.useRef)(!0),x,S;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>(y.current=!0,()=>{y.current=!1}),S=[],t[3]=x,t[4]=S):(x=t[3],S=t[4]),(0,L.useEffect)(x,S);let C;t[5]!==o||t[6]!==n||t[7]!==r||t[8]!==l?(C=async()=>{let e=o.trim();if(!e||l)return;if(n.metrics.length>=12||n.widgets.length>=12){f(`This board is full — remove a card or metric first, then track another number.`);return}u(!0),f(null);let t=await de(e,T(w()));if(!y.current)return;let i=t.metrics[0];if(!i){u(!1),f(`No single number found in that — the Track bar on the Dashboards home builds richer trackers.`);return}let a=Date.now(),s={id:`m-${a}`,label:i.label,query:i.query,...i.unit?{unit:i.unit}:{},sourceQuote:{text:i.label,saidAt:a},lastValue:null,origin:`empty`},c={id:z(),block:{type:`insight`,col:12,id:`blk-${a}`,num:`1`,props:{title:s.label,stat:`—`,conf:`inferred`,summary:s.label}},span:1,metricId:s.id,fromSource:`manual`},d=ue(n);v(n.id,{metrics:[s],tripwires:[],widgets:[c],source:{kind:`ADDED`,conversationId:`manual`,title:`Added by hand`,contributed:`Tracking ${s.label}`,at:a}}),_(n.id,a);let p=await le(n.id,d);if(y.current){if(p!==`confirmed`){u(!1),f(F(p));return}r()}},t[5]=o,t[6]=n,t[7]=r,t[8]=l,t[9]=C):C=t[9];let ee=C,E=(0,L.useRef)(null),te;t[10]===r?te=t[11]:(te={onEscape:r},t[10]=r,t[11]=te),c(E,te);let D=(0,L.useRef)(null),O,k;t[12]===i?(O=t[13],k=t[14]):(O=()=>{i===`track`?D.current?.focus():E.current?.querySelector(`.dash-palette-item`)?.focus()},k=[i],t[12]=i,t[13]=O,t[14]=k),(0,L.useEffect)(O,k);let A,ne;t[15]===r?(A=t[16],ne=t[17]):(A=()=>{let e=E.current?.parentElement;if(!e)return;let t=t=>{e.contains(t.target)||r()};return document.addEventListener(`pointerdown`,t),()=>document.removeEventListener(`pointerdown`,t)},ne=[r],t[15]=r,t[16]=A,t[17]=ne),(0,L.useEffect)(A,ne);let re;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(re=e=>{let t=Array.from(E.current?.querySelectorAll(`.dash-palette-item`)??[]);t.length&&t[(t.indexOf(document.activeElement)+e+t.length)%t.length]?.focus()},t[18]=re):re=t[18];let ie=re,ae=i===`menu`?`menu`:`dialog`,j=i===`menu`?`Add a widget`:`Track a number`,M;t[19]===i?M=t[20]:(M=e=>{i===`menu`&&(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),ie(e.key===`ArrowDown`?1:-1))},t[19]=i,t[20]=M);let oe=i===`menu`?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item dash-palette-lead`,onClick:()=>a(`track`),children:`+ Track a number`}),p.map(e=>(0,R.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item`,onClick:()=>g(e),children:[`+ `,e.label]},e.key))]}):(0,R.jsxs)(`div`,{className:`dash-ptrack`,children:[(0,R.jsxs)(`div`,{className:`dash-ptrack-head`,children:[(0,R.jsx)(`button`,{type:`button`,className:`dash-ptrack-back`,"aria-label":`Back to widget list`,onClick:()=>a(`menu`),children:`←`}),(0,R.jsx)(`span`,{className:`dash-ptrack-kicker`,children:`Track a number`})]}),m?(0,R.jsxs)(`form`,{className:`dash-ptrack-form`,onSubmit:e=>{e.preventDefault(),ee()},children:[(0,R.jsx)(`input`,{ref:D,className:`dash-ptrack-input`,value:o,placeholder:`BTC price, SF temperature, 10-year yield…`,"aria-label":`What number to track`,disabled:l,onChange:e=>s(e.target.value)}),d&&(0,R.jsx)(`p`,{className:`dash-ptrack-err`,children:d}),(0,R.jsx)(`button`,{type:`submit`,className:`dash-ptrack-go`,disabled:l||!o.trim(),children:l?`Planning…`:`Track · 1 call + 1 search`})]}):(0,R.jsxs)(`p`,{className:`dash-ptrack-gate`,children:[`A tracked number is fetched by real web searches on your own key — nothing is ever made up. `,(0,R.jsx)(`a`,{href:`#/live`,children:`Connect a model in Live`}),` first.`]})]}),N;return t[21]!==ae||t[22]!==j||t[23]!==M||t[24]!==oe?(N=(0,R.jsx)(`div`,{ref:E,className:`dash-palette`,role:ae,"aria-label":j,tabIndex:-1,onKeyDown:M,children:oe}),t[21]=ae,t[22]=j,t[23]=M,t[24]=oe,t[25]=N):N=t[25],N}function Se(e){let t=(0,I.c)(24),{dashboardId:n,metric:r}=e,i=r.lastValue===null?``:String(r.lastValue),[a,o]=(0,L.useState)(i),[s,c]=(0,L.useState)(i);i!==s&&(c(i),o(i));let l;t[0]!==n||t[1]!==r.id||t[2]!==r.lastValue||t[3]!==r.unit||t[4]!==a?(l=()=>{let e=Number(a.replace(/[^0-9.+-]/g,``));if(a.trim()===``||!Number.isFinite(e))return;let t=Date.now(),i=r.lastValue;m(n,r.id,e,A(String(e),r.unit),`user`,t);let o=x(n);if(o){let{tripwires:e}=N(o,{[r.id]:i});h(n,e,t)}},t[0]=n,t[1]=r.id,t[2]=r.lastValue,t[3]=r.unit,t[4]=a,t[5]=l):l=t[5];let u=l,d;t[6]===u?d=t[7]:(d=e=>{e.preventDefault(),u()},t[6]=u,t[7]=d);let f=`Set ${r.label}…`,p=`Set ${r.label}`,g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>o(e.target.value),t[8]=g):g=t[8];let _;t[9]!==f||t[10]!==p||t[11]!==a?(_=(0,R.jsx)(`input`,{className:`dash-fill-input`,value:a,inputMode:`decimal`,placeholder:f,"aria-label":p,onChange:g}),t[9]=f,t[10]=p,t[11]=a,t[12]=_):_=t[12];let v;t[13]===r.unit?v=t[14]:(v=r.unit&&(0,R.jsx)(`span`,{className:`dash-fill-unit`,children:r.unit}),t[13]=r.unit,t[14]=v);let y;t[15]===a?y=t[16]:(y=a.trim(),t[15]=a,t[16]=y);let b=y===``,S;t[17]===b?S=t[18]:(S=(0,R.jsx)(`button`,{type:`submit`,className:`dash-fill-save`,disabled:b,children:`Save`}),t[17]=b,t[18]=S);let C;return t[19]!==S||t[20]!==d||t[21]!==_||t[22]!==v?(C=(0,R.jsxs)(`form`,{className:`dash-fill`,onSubmit:d,children:[_,v,S]}),t[19]=S,t[20]=d,t[21]=_,t[22]=v,t[23]=C):C=t[23],C}r();var Ce=()=>i(()=>import(`./generateLive-CDIkclO4.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58]));function B(){return!!T(w()).apiKey}function V(e){let t=(0,I.c)(15),[n,r]=(0,L.useState)(!1),[i,a]=(0,L.useState)(null),[o,s]=(0,L.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=[],t[0]=c):c=t[0];let l=(0,L.useRef)(c),u=(0,L.useRef)(!1),d=(0,L.useRef)(null),f;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{d.current?.abort(),d.current=null,u.current=!1,l.current=[],r(!1),a(null),s(null)},t[1]=f):f=t[1];let p;t[2]===e.id?p=t[3]:(p=[e.id],t[2]=e.id,t[3]=p),(0,L.useEffect)(f,p);let m,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>()=>d.current?.abort(),h=[],t[4]=m,t[5]=h):(m=t[4],h=t[5]),(0,L.useEffect)(m,h);let g;t[6]===e?g=t[7]:(g=t=>{let n=t.trim();if(!n||u.current||!B())return;u.current=!0,r(!0),s(n);let i=T(w()),o=e.widgets.map(t=>P(e,t)),c=new AbortController;d.current=c,Ce().then(e=>{let{generateLive:t}=e;return t(n,l.current,i,void 0,{selectedBlocks:o,signal:c.signal,caps:{searchMode:`realtime`}})}).then(e=>{c.signal.aborted||(e.error||(l.current=[...l.current,{role:`user`,content:n},{role:`assistant`,content:e.narration}].slice(-8)),a(e))}).catch(()=>{c.signal.aborted||a(null)}).finally(()=>{c.signal.aborted||(u.current=!1,r(!1))})},t[6]=e,t[7]=g);let _=g,v;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>{d.current?.abort(),u.current=!1,r(!1),a(null),s(null)},t[8]=v):v=t[8];let y=v,b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=B(),t[9]=b):b=t[9];let x;return t[10]!==o||t[11]!==n||t[12]!==i||t[13]!==_?(x={ready:b,loading:n,result:i,lastAsk:o,run:_,reset:y},t[10]=o,t[11]=n,t[12]=i,t[13]=_,t[14]=x):x=t[14],x}var we=/^(add|track|watch|monitor|follow)\b/i;function H(e){let t=e.trim();return t&&we.test(t)?`add`:`ask`}function Te(e){let t=[];return e.tripwires.length>0&&t.push(`Are the numbers holding where I want?`,`Which alert is closest to triggering?`),e.metrics[0]&&t.push(`What does ${e.metrics[0].label} tell me right now?`),t.push(`What changed since the last update?`),t.slice(0,3)}function U(e,t,n){n.length!==0&&fe({block:n,question:t,target:e,fromSource:`talk`,firstCheck:!1,source:{kind:`ADDED`,conversationId:`talk`,title:`Asked: “${t}”`,contributed:`Pinned ${Math.min(n.length,4)} from this question`,at:Date.now()}})}function Ee(e){let t=(0,I.c)(29),{dashboard:n}=e,r=V(n),[i,a]=(0,L.useState)(``),[s,c]=(0,L.useState)(!1),[l,u]=(0,L.useState)(`ask`),d;t[0]===n?d=t[1]:(d=Te(n),t[0]=n,t[1]=d);let f=d,p;t[2]===r?p=t[3]:(p=e=>{c(!1),u(H(e)),r.run(e),a(``)},t[2]=r,t[3]=p);let m=p,h,g;t[4]!==l||t[5]!==n.id||t[6]!==s||t[7]!==r.lastAsk||t[8]!==r.loading||t[9]!==r.result?(h=()=>{l===`add`&&!r.loading&&r.result&&!r.result.error&&r.result.spec.blocks.length>0&&!s&&(U(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0))},g=[l,r.loading,r.result,r.lastAsk,s,n.id],t[4]=l,t[5]=n.id,t[6]=s,t[7]=r.lastAsk,t[8]=r.loading,t[9]=r.result,t[10]=h,t[11]=g):(h=t[10],g=t[11]),(0,L.useEffect)(h,g);let _;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,R.jsx)(`div`,{className:`card-eyebrow dash-talk-eyebrow`,children:`Talk to this dashboard`}),t[12]=_):_=t[12];let v;t[13]!==f||t[14]!==i||t[15]!==m||t[16]!==r.loading||t[17]!==r.ready?(v=r.ready?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`dash-talk-chips`,children:f.map(e=>(0,R.jsxs)(`button`,{type:`button`,className:`dash-talk-chip`,disabled:r.loading,onClick:()=>m(e),children:[(0,R.jsx)(`span`,{className:`dash-talk-chip-orb`}),(0,R.jsxs)(`span`,{className:`dash-talk-chip-t`,children:[`“`,e,`”`]})]},e))}),(0,R.jsxs)(`form`,{className:`dash-talk-ask`,onSubmit:e=>{e.preventDefault(),m(i)},children:[(0,R.jsx)(`input`,{className:`dash-talk-input`,value:i,placeholder:`Ask a question, or type "add …" / "track …" to add it in one step`,onChange:e=>a(e.target.value),disabled:r.loading}),(0,R.jsx)(`button`,{type:`submit`,className:`dash-talk-send`,disabled:r.loading||!i.trim(),children:r.loading?`Thinking…`:`Ask`})]})]}):(0,R.jsxs)(`p`,{className:`dash-talk-gate`,children:[`Connect a model in `,(0,R.jsx)(`a`,{href:`#/live`,children:`Live`}),` to ask questions grounded in this dashboard.`]}),t[13]=f,t[14]=i,t[15]=m,t[16]=r.loading,t[17]=r.ready,t[18]=v):v=t[18];let y;t[19]!==l||t[20]!==n.id||t[21]!==s||t[22]!==r.lastAsk||t[23]!==r.loading||t[24]!==r.result?(y=r.lastAsk&&(0,R.jsxs)(`div`,{className:`dash-talk-answer`,children:[(0,R.jsxs)(`div`,{className:`dash-talk-q`,children:[`“`,r.lastAsk,`”`]}),r.loading?(0,R.jsx)(`div`,{className:`dash-talk-thinking`,children:`Mavéa is looking at your dashboard…`}):r.result?.error?(0,R.jsxs)(`div`,{className:`dash-talk-error`,children:[`That didn’t go through. Check your model in `,(0,R.jsx)(`a`,{href:`#/live`,children:`Live`}),` and try again.`]}):r.result?(0,R.jsxs)(R.Fragment,{children:[r.result.narration&&(0,R.jsx)(`p`,{className:`dash-talk-narration`,children:r.result.narration}),(0,R.jsx)(o,{data:r.result.spec,spot:null,built:{},onProve:W}),r.result.spec.blocks.length>0&&(s?(0,R.jsx)(`div`,{className:`dash-talk-pinned`,children:l===`add`?(0,R.jsx)(R.Fragment,{children:`Auto-added — this read like a command, not a question. Remove it from Edit layout if that’s wrong.`}):`Added to this dashboard ✓`}):l===`add`?null:(0,R.jsx)(`button`,{type:`button`,className:`dash-talk-pin`,onClick:()=>{U(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0)},children:`+ Add this to the dashboard`}))]}):null]}),t[19]=l,t[20]=n.id,t[21]=s,t[22]=r.lastAsk,t[23]=r.loading,t[24]=r.result,t[25]=y):y=t[25];let b;return t[26]!==v||t[27]!==y?(b=(0,R.jsxs)(`section`,{className:`dash-talk`,children:[_,v,y]}),t[26]=v,t[27]=y,t[28]=b):b=t[28],b}function W(){}function De(e){if(!e.history||e.history.length<2)return null;let t=e.history[e.history.length-2].value,n=e.history[e.history.length-1].value;if(n===t)return null;let r=n>t?`up`:`down`,i=Math.round(Math.abs(n-t)*100)/100;if(i===0)return null;let a=Number.isInteger(i)?String(i):i.toFixed(2),o=e.unit===`$`?`$`:``,s=e.unit&&e.unit!==`$`?e.unit:``;return{direction:r,text:`${r===`up`?`+`:`-`}${o}${a}${s}`}}function Oe(e){return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function G(e){if(e<=0)return`due now`;let t=Math.round(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;if(n<24)return r?`${n}h ${r}m`:`${n}h`;let i=Math.floor(n/24),a=n%24;return a?`${i}d ${a}h`:`${i}d`}function ke({dashboard:e,now:t,checking:n=!1}){let r=(0,L.useMemo)(()=>e.metrics.find(e=>e.lastValue!==null)??e.metrics[0],[e.metrics]),i=D(e);if(!i||!r)return null;let a=De(r),o=i.label||e.title,s=r.asOf??e.lastRefreshedAt??null,c=e.cadence.data===`manual`?`when you refresh`:G(e.nextDataAt-t),l=r.history??[];return(0,R.jsxs)(`section`,{className:`card dash-hero`,"aria-label":`${o} — as of last check`,children:[(0,R.jsxs)(`div`,{className:`dash-hero-top`,children:[(0,R.jsxs)(`span`,{className:`dash-hero-eyebrow`,children:[o,`: as of last check`]}),(0,R.jsx)(`span`,{className:`dash-hero-meta`,children:n?`checking for new data…`:`as of ${s?Oe(s):`not yet checked`} / not real-time — next check ${c}`})]}),(0,R.jsxs)(`div`,{className:`dash-hero-value-row`,children:[(0,R.jsx)(`span`,{className:`dash-hero-value${n?` tile-value--checking`:``}`,children:i.value}),a&&(0,R.jsx)(`span`,{className:`dash-hero-delta dash-hero-delta--${a.direction}`,children:a.text})]}),(0,R.jsx)(`div`,{className:`dash-hero-chart`,children:l.length>=2?(0,R.jsx)(j,{points:l,tone:a?.direction??`flat`}):(0,R.jsx)(`p`,{className:`dash-hero-chart-empty`,children:`Not enough history yet for a chart.`})})]})}function Ae(e){let t=(0,I.c)(6),{dashboard:n}=e,[r,i]=C();if(re().keyNudgeShown||!ee(r)||r.rememberKey||!k(n))return null;let a=je,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,R.jsx)(`p`,{className:`dash-key-nudge-text`,children:`Mavéa checks this with your key, which currently lives only in this tab. Keep it on this device (encrypted) so checks still work after a reload?`}),t[0]=o):o=t[0];let s;t[1]===i?s=t[2]:(s=(0,R.jsx)(`button`,{type:`button`,className:`dash-key-nudge-keep`,onClick:()=>{i({rememberKey:!0}),a()},children:`Keep key on this device`}),t[1]=i,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,R.jsx)(`button`,{type:`button`,className:`dash-key-nudge-dismiss`,onClick:a,children:`Not now`}),t[3]=c):c=t[3];let l;return t[4]===s?l=t[5]:(l=(0,R.jsxs)(`div`,{className:`card dash-key-nudge`,children:[o,(0,R.jsxs)(`div`,{className:`dash-key-nudge-actions`,children:[s,c]})]}),t[4]=s,t[5]=l),l}function je(){return O({keyNudgeShown:!0})}var K={hit:{label:`Called it ✓`,className:`is-hit`},miss:{label:`Missed ✗`,className:`is-miss`},unclear:{label:`Unclear`,className:`is-unclear`}};function q(e){let t=(0,I.c)(21),{dashboard:n,now:r}=e,i;t[0]===n.predictionHistory?i=t[1]:(i=n.predictionHistory??[],t[0]=n.predictionHistory,t[1]=i);let a=i,o=a.length>0?a[a.length-1]:null;if(!n.prediction&&!o)return null;let s;t[2]!==n.predictionHistory||t[3]!==r?(s=ce(n.predictionHistory,r),t[2]=n.predictionHistory,t[3]=r,t[4]=s):s=t[4];let c=s,l=o?K[o.result]:null,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,R.jsx)(`span`,{className:`card-eyebrow dash-expects-eyebrow`,children:`Expects by next check`}),t[5]=u):u=t[5];let d;t[6]===n.prediction?d=t[7]:(d=n.prediction&&(0,R.jsx)(`p`,{className:`dash-expects-text`,children:n.prediction.text}),t[6]=n.prediction,t[7]=d);let f;t[8]!==l||t[9]!==o?(f=o&&l&&(0,R.jsxs)(`div`,{className:`dash-expects-grade`,children:[(0,R.jsxs)(`span`,{className:`dash-expects-chip ${l.className}`,children:[`Last call: `,l.label]}),(0,R.jsxs)(`p`,{className:`dash-expects-expected`,children:[`“`,o.expected,`”`]}),o.note&&(0,R.jsx)(`p`,{className:`dash-expects-note`,children:o.note})]}),t[8]=l,t[9]=o,t[10]=f):f=t[10];let p;t[11]!==c.hits||t[12]!==c.total?(p=c.total>0&&(0,R.jsxs)(`span`,{className:`dash-expects-tally`,children:[`Calls this week · `,c.hits,`/`,c.total]}),t[11]=c.hits,t[12]=c.total,t[13]=p):p=t[13];let m;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,R.jsx)(`span`,{className:`dash-expects-label`,children:`Predictions are free — written from checks you already paid for`}),t[14]=m):m=t[14];let h;t[15]===p?h=t[16]:(h=(0,R.jsxs)(`div`,{className:`dash-expects-foot`,children:[p,m]}),t[15]=p,t[16]=h);let g;return t[17]!==d||t[18]!==f||t[19]!==h?(g=(0,R.jsxs)(`div`,{className:`dash-expects`,children:[u,d,f,h]}),t[17]=d,t[18]=f,t[19]=h,t[20]=g):g=t[20],g}function Me(e){let t=(0,I.c)(23),{dashboard:n,now:r}=e,i=M(n.id);if(!(n.tripwires.length>0||n.lastVerdict||n.prediction||i))return null;let a=n.lastVerdict,o;t[0]!==n.tripwires||t[1]!==a?(o=a?n.tripwires.find(e=>e.id===a.tripwireId)??null:null,t[0]=n.tripwires,t[1]=a,t[2]=o):o=t[2];let s=o,c=!!n.lastVerdictError&&(n.lastVerdictAttemptAt??0)>(a?.at??0),l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,R.jsx)(`span`,{className:`card-eyebrow dash-lastcheck-eyebrow`,children:`From the last check`}),t[3]=l):l=t[3];let u;t[4]!==r||t[5]!==a?(u=a&&(0,R.jsx)(`span`,{className:`dash-lastcheck-when`,children:ie(a.at,r).replace(/^updated /,`checked `)}),t[4]=r,t[5]=a,t[6]=u):u=t[6];let d;t[7]===u?d=t[8]:(d=(0,R.jsxs)(`div`,{className:`dash-lastcheck-head`,children:[l,u]}),t[7]=u,t[8]=d);let f;t[9]!==n||t[10]!==c||t[11]!==r||t[12]!==i||t[13]!==s||t[14]!==a?(f=a?(0,R.jsxs)(R.Fragment,{children:[s&&(0,R.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-about`,children:[`About: `,s.label]}),i?(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c&&(0,R.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:[`A newer check just failed: `,n.lastVerdictError]}),(0,R.jsx)(`p`,{className:`dash-lastcheck-text`,children:a.text}),a.grounded===!1&&(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-qualifier`,children:`Based on background knowledge, not a fresh search.`}),a.sources&&a.sources.length>0&&(0,R.jsx)(`div`,{className:`dash-lastcheck-sources`,children:a.sources.map(J)})]}):i?(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c?(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:n.lastVerdictError}):(0,R.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-muted`,children:ne(n,r)}),t[9]=n,t[10]=c,t[11]=r,t[12]=i,t[13]=s,t[14]=a,t[15]=f):f=t[15];let p;t[16]!==n||t[17]!==r?(p=(0,R.jsx)(q,{dashboard:n,now:r}),t[16]=n,t[17]=r,t[18]=p):p=t[18];let m;return t[19]!==d||t[20]!==f||t[21]!==p?(m=(0,R.jsxs)(`section`,{className:`dash-lastcheck`,"aria-label":`From the last check`,children:[d,f,p]}),t[19]=d,t[20]=f,t[21]=p,t[22]=m):m=t[22],m}function J(e){let t=l(e.url);return t?(0,R.jsx)(`a`,{className:`dash-lastcheck-source`,href:t,target:`_blank`,rel:`noopener noreferrer`,title:e.title,children:e.title},e.url):null}var Y={WATCHING:`Watching`,CLEAR:`Clear`,AWAITING:`Awaiting data`,TRIGGERED:`Triggered`};function X(e){let t=(0,I.c)(15),{tripwire:n}=e,r=n.state===`TRIGGERED`,i=`dash-alertcard-row`+(r?` is-triggered`:``),a=`dash-switch`+(n.state===`AWAITING`?``:` on`),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,R.jsx)(`span`,{className:`dash-switch-knob`}),t[0]=o):o=t[0];let s;t[1]===a?s=t[2]:(s=(0,R.jsx)(`span`,{className:a,"aria-hidden":`true`,children:o}),t[1]=a,t[2]=s);let c=n.sourceQuote.text||n.label,l;t[3]===c?l=t[4]:(l=(0,R.jsx)(`span`,{className:`dash-alertcard-line`,children:c}),t[3]=c,t[4]=l);let u;t[5]!==r||t[6]!==n.state?(u=r?(0,R.jsx)(`span`,{className:`dash-alertcard-crossed`,children:`A line you set has been crossed`}):(0,R.jsx)(`span`,{className:`dash-alertcard-state`,children:Y[n.state]}),t[5]=r,t[6]=n.state,t[7]=u):u=t[7];let d;t[8]!==l||t[9]!==u?(d=(0,R.jsxs)(`div`,{className:`dash-alertcard-body`,children:[l,u]}),t[8]=l,t[9]=u,t[10]=d):d=t[10];let f;return t[11]!==i||t[12]!==s||t[13]!==d?(f=(0,R.jsxs)(`li`,{className:i,children:[s,d]}),t[11]=i,t[12]=s,t[13]=d,t[14]=f):f=t[14],f}function Ne(e){let t=(0,I.c)(5),{dashboard:n}=e;if(n.tripwires.length===0)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`div`,{className:`card-eyebrow`,children:`Your alerts`}),t[0]=r):r=t[0];let i;t[1]===n.tripwires?i=t[2]:(i=n.tripwires.map(Z),t[1]=n.tripwires,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,R.jsxs)(`section`,{className:`card dash-alertcard`,"aria-label":`Your alerts`,children:[r,(0,R.jsx)(`ul`,{className:`dash-alertcard-list`,children:i})]}),t[3]=i,t[4]=a),a}function Z(e){return(0,R.jsx)(X,{tripwire:e},e.id)}var Q={scheduled:`Scheduled`,search:`Search`,sources:`Sources`,extraction:`Extraction`,grounding:`Grounding`,saved:`Saved`,tripwires:`Lines checked`},Pe={updated:`New data saved`,"no-change":`Checked — nothing new`,unverified:`Nothing could be verified`,failed:`The check could not run`};function Fe(e){if(e.endedAt===void 0)return`…`;let t=(e.endedAt-e.startedAt)/1e3;return t<1?`${Math.max(1,Math.round(t*1e3))}ms`:`${t.toFixed(1)}s`}function Ie(e){let t=(0,I.c)(13),{dashboardId:n}=e,r,i;t[0]===n?(r=t[1],i=t[2]):(r=()=>u(n),i=()=>u(n),t[0]=n,t[1]=r,t[2]=i);let a=(0,L.useSyncExternalStore)(g,r,i),[o,s]=(0,L.useState)(!1),c=a[0];if(!c)return null;let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>s($),t[3]=l):l=t[3];let d=o?`Hide`:`What happened on the last check?`,f;t[4]!==o||t[5]!==d?(f=(0,R.jsx)(`button`,{type:`button`,className:`crp-toggle`,"aria-expanded":o,onClick:l,children:d}),t[4]=o,t[5]=d,t[6]=f):f=t[6];let m;t[7]!==c||t[8]!==o?(m=o&&(0,R.jsxs)(`ol`,{className:`crp-steps`,children:[c.steps.map(Le),(0,R.jsxs)(`li`,{className:`crp-foot`,children:[(0,R.jsx)(`span`,{children:c.outcome?Pe[c.outcome]:`Running…`}),(0,R.jsx)(`span`,{className:`crp-foot-time`,children:Fe(c)})]}),c.failure&&(0,R.jsx)(`li`,{className:`crp-fix`,children:p(c.failure)})]}),t[7]=c,t[8]=o,t[9]=m):m=t[9];let h;return t[10]!==f||t[11]!==m?(h=(0,R.jsxs)(`section`,{className:`crp`,children:[f,m]}),t[10]=f,t[11]=m,t[12]=h):h=t[12],h}function Le(e,t){return(0,R.jsxs)(`li`,{className:e.ok?`crp-step`:`crp-step is-bad`,children:[(0,R.jsx)(`span`,{className:`crp-step-mark`,"aria-hidden":`true`,children:e.ok?`✓`:`✕`}),(0,R.jsx)(`span`,{className:`crp-step-name`,children:Q[e.name]}),e.count!==void 0&&(0,R.jsx)(`span`,{className:`crp-step-count`,children:e.count}),e.detail&&(0,R.jsx)(`span`,{className:`crp-step-detail`,children:e.detail})]},`${e.name}-${t}`)}function $(e){return!e}var Re={1:`S`,2:`M`,3:`L`};function ze(e){let t=(0,I.c)(120),{id:n}=e,r=te(),i;t[0]!==r||t[1]!==n?(i=r.find(e=>e.id===n)??null,t[0]=r,t[1]=n,t[2]=i):i=t[2];let o=i,[c,l]=(0,L.useState)(!1),[u,p]=(0,L.useState)(!1),m;t[3]===o?.widgets?m=t[4]:(m=o?.widgets.map(Ge)??[],t[3]=o?.widgets,t[4]=m);let h=m,g;t[5]===o?g=t[6]:(g=e=>o&&d(o.id,e),t[5]=o,t[6]=g);let _=ge(h,g),v;t[7]===o?.widgets?v=t[8]:(v=new Map((o?.widgets??[]).map(We)),t[7]=o?.widgets,t[8]=v);let b=v,x,w;t[9]===o?(x=t[10],w=t[11]):(x=()=>{o&&s(o.widgets.map(Ue))},w=[o],t[9]=o,t[10]=x,t[11]=w),(0,L.useEffect)(x,w);let T=o?.id,D,O;t[12]===T?(D=t[13],O=t[14]):(D=()=>{T&&f(T)},O=[T],t[12]=T,t[13]=D,t[14]=O),(0,L.useEffect)(D,O);let[A,re]=(0,L.useState)(He),ie,j;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>{let e=window.setInterval(()=>re(Date.now()),3e4);return()=>window.clearInterval(e)},ie=[],t[15]=ie,t[16]=j):(ie=t[15],j=t[16]),(0,L.useEffect)(j,ie);let[M]=C(),N=ae(o?.id??``),[P,ce]=(0,L.useState)(`idle`),le;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(le=async e=>{ce(`busy`);let t=await oe(e);ce(t===`no-model`||t===`failed`||t===`unverified`?t:`idle`)},t[17]=le):le=t[17];let ue=le,[F,de]=(0,L.useState)(`idle`),fe;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(fe=async e=>{de(`busy`);let t=await se(e);de(t===`no-model`||t===`failed`?t:`idle`)},t[18]=fe):fe=t[18];let he=fe;if(!o){let e;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,R.jsx)(`p`,{className:`dash-empty-title`,children:`That dashboard isn’t here.`}),t[19]=e):e=t[19];let n;return t[20]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,R.jsx)(`div`,{className:`dash-detail`,children:(0,R.jsxs)(`div`,{className:`dash-empty`,children:[e,(0,R.jsxs)(`p`,{className:`dash-empty-how`,children:[`It may have been removed. `,(0,R.jsx)(`a`,{href:E.gallery,children:`Back to your dashboards →`})]})]})}),t[20]=n):n=t[20],n}let _e;t[21]===o.id?_e=t[22]:(_e=(e,t)=>{y(o.id,e,t>=3?1:t+1)},t[21]=o.id,t[22]=_e);let ye=_e,z;t[23]!==b||t[24]!==ye||t[25]!==o||t[26]!==c||t[27]!==_?(z=_.order.map(e=>{let t=b.get(e);if(!t)return null;let n=t.metricId?o.metrics.find(e=>e.id===t.metricId):null,r=!c&&n?.blankKey?(0,R.jsx)(Se,{dashboardId:o.id,metric:n}):void 0;return(0,R.jsx)(ve,{dashboard:o,widget:t,editing:c,dragging:_.draggingId===t.id,footer:r,children:c&&(0,R.jsxs)(`div`,{className:`dash-tile-chrome`,children:[(0,R.jsx)(`span`,{className:`dash-tile-handle`,..._.handleProps(t.id),children:`⠿`}),(0,R.jsxs)(`div`,{className:`dash-tile-ctrls`,children:[(0,R.jsx)(`button`,{type:`button`,className:`dash-tile-size`,onClick:()=>ye(t.id,t.span),title:`Resize`,children:Re[t.span]}),(0,R.jsx)(`button`,{type:`button`,className:`dash-tile-x`,onClick:()=>S(o.id,t.id),"aria-label":`Remove widget`,children:`×`})]})]})},t.id)}),t[23]=b,t[24]=ye,t[25]=o,t[26]=c,t[27]=_,t[28]=z):z=t[28];let be=z,Ce;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,R.jsx)(`a`,{className:`dash-back`,href:E.gallery,"aria-label":`Back to dashboards`,children:`←`}),t[29]=Ce):Ce=t[29];let B;t[30]===o.title?B=t[31]:(B=(0,R.jsx)(`span`,{className:`dash-detail-title`,children:o.title}),t[30]=o.title,t[31]=B);let V;t[32]===o.question?V=t[33]:(V=o.question&&(0,R.jsxs)(`span`,{className:`dash-detail-q`,title:o.question,children:[`“`,o.question,`”`]}),t[32]=o.question,t[33]=V);let we;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,R.jsx)(`i`,{className:`dash-live-dot`}),t[34]=we):we=t[34];let H;t[35]!==o||t[36]!==N||t[37]!==A?(H=N?`checking for new data…`:ne(o,A),t[35]=o,t[36]=N,t[37]=A,t[38]=H):H=t[38];let Te=!N&&k(o)&&o.cadence.data!==`manual`?` · refreshes while open`:``,U;t[39]!==H||t[40]!==Te?(U=(0,R.jsxs)(`span`,{className:`dash-detail-clock`,children:[we,H,Te]}),t[39]=H,t[40]=Te,t[41]=U):U=t[41];let W;t[42]===o.id?W=t[43]:(W=()=>void ue(o.id),t[42]=o.id,t[43]=W);let De=P===`busy`,Oe=P===`busy`?`dash-refresh-spin`:void 0,G;t[44]===Oe?G=t[45]:(G=(0,R.jsx)(a.refresh,{className:Oe}),t[44]=Oe,t[45]=G);let je=P===`busy`?`Refreshing…`:`Refresh now`,K;t[46]!==W||t[47]!==De||t[48]!==G||t[49]!==je?(K=(0,R.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-refresh-btn`,onClick:W,disabled:De,title:`Fetch current values now, regardless of cadence`,children:[G,je]}),t[46]=W,t[47]=De,t[48]=G,t[49]=je,t[50]=K):K=t[50];let q;t[51]!==o||t[52]!==M||t[53]!==P?(q=(P===`no-model`||!ee(M)&&k(o))&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to refresh.`}),t[51]=o,t[52]=M,t[53]=P,t[54]=q):q=t[54];let J;t[55]===P?J=t[56]:(J=P===`failed`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[55]=P,t[56]=J);let Y;t[57]===P?Y=t[58]:(Y=P===`unverified`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Checked, but no source could verify new values — keeping the last real ones.`}),t[57]=P,t[58]=Y);let X;t[59]!==o.id||t[60]!==o.metrics.length||t[61]!==F?(X=o.metrics.length>0&&(0,R.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-read-btn`,onClick:()=>void he(o.id),disabled:F===`busy`,title:`Ask Mavéa to read the latest numbers now`,children:[(0,R.jsx)(a.sparkle,{className:F===`busy`?`dash-refresh-spin`:void 0}),F===`busy`?`Reading…`:`Read the numbers now`]}),t[59]=o.id,t[60]=o.metrics.length,t[61]=F,t[62]=X):X=t[62];let Z;t[63]===F?Z=t[64]:(Z=F===`no-model`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to read.`}),t[63]=F,t[64]=Z);let Q;t[65]===F?Q=t[66]:(Q=F===`failed`&&(0,R.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[65]=F,t[66]=Q);let Pe=`dash-edit-btn`+(c?` is-active`:``),Fe;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=()=>{l(Ve),p(!1)},t[67]=Fe):Fe=t[67];let Le=c?`Done`:`Edit layout`,$;t[68]!==Pe||t[69]!==Le?($=(0,R.jsx)(`button`,{type:`button`,className:Pe,onClick:Fe,children:Le}),t[68]=Pe,t[69]=Le,t[70]=$):$=t[70];let ze;t[71]===o.id?ze=t[72]:(ze=E.settings(o.id),t[71]=o.id,t[72]=ze);let Ke;t[73]===ze?Ke=t[74]:(Ke=(0,R.jsx)(`a`,{className:`dash-gear`,href:ze,"aria-label":`Dashboard settings`,title:`Settings`,children:`⚙`}),t[73]=ze,t[74]=Ke);let qe;t[75]!==B||t[76]!==V||t[77]!==U||t[78]!==K||t[79]!==q||t[80]!==J||t[81]!==Y||t[82]!==X||t[83]!==Z||t[84]!==Q||t[85]!==$||t[86]!==Ke?(qe=(0,R.jsxs)(`header`,{className:`dash-detail-head`,children:[Ce,B,V,U,K,q,J,Y,X,Z,Q,$,Ke]}),t[75]=B,t[76]=V,t[77]=U,t[78]=K,t[79]=q,t[80]=J,t[81]=Y,t[82]=X,t[83]=Z,t[84]=Q,t[85]=$,t[86]=Ke,t[87]=qe):qe=t[87];let Je;t[88]!==o||t[89]!==c?(Je=!c&&(0,R.jsx)(Ae,{dashboard:o}),t[88]=o,t[89]=c,t[90]=Je):Je=t[90];let Ye;t[91]!==o||t[92]!==N||t[93]!==c||t[94]!==A?(Ye=!c&&(0,R.jsx)(ke,{dashboard:o,now:A,checking:N}),t[91]=o,t[92]=N,t[93]=c,t[94]=A,t[95]=Ye):Ye=t[95];let Xe;t[96]!==o||t[97]!==c||t[98]!==A?(Xe=!c&&(0,R.jsx)(Me,{dashboard:o,now:A}),t[96]=o,t[97]=c,t[98]=A,t[99]=Xe):Xe=t[99];let Ze;t[100]!==o||t[101]!==c||t[102]!==u?(Ze=c&&(0,R.jsxs)(`div`,{className:`dash-edit-bar`,children:[(0,R.jsxs)(`span`,{className:`dash-edit-hint`,children:[`Drag a tile by its `,(0,R.jsx)(`strong`,{children:`⠿`}),` handle to reorder, tap `,(0,R.jsx)(`strong`,{children:`S/M/L`}),` to resize, `,(0,R.jsx)(`strong`,{children:`×`}),` to remove.`]}),(0,R.jsx)(`button`,{type:`button`,className:`dash-edit-add`,onClick:()=>p(Be),"aria-expanded":u,children:`+ Add widget`}),u&&(0,R.jsx)(xe,{dashboard:o,onClose:()=>p(!1)})]}),t[100]=o,t[101]=c,t[102]=u,t[103]=Ze):Ze=t[103];let Qe;t[104]!==o||t[105]!==c||t[106]!==A||t[107]!==be?(Qe=c?(0,R.jsx)(`div`,{className:`dash-grid`,children:be}):(0,R.jsxs)(`div`,{className:`dash-detail-cols`,children:[(0,R.jsxs)(`div`,{className:`dash-detail-main`,children:[o.widgets.length>0&&(0,R.jsxs)(`div`,{className:`dash-detail-section`,children:[(0,R.jsx)(`div`,{className:`card-eyebrow dash-detail-section-title`,children:`Cards`}),(0,R.jsx)(`div`,{className:`dash-grid`,children:be})]}),(0,R.jsx)(me,{dashboardId:o.id,now:A}),(0,R.jsx)(Ie,{dashboardId:o.id})]}),(0,R.jsxs)(`div`,{className:`dash-detail-side`,children:[(0,R.jsx)(pe,{dashboard:o,now:A}),(0,R.jsx)(Ne,{dashboard:o})]})]}),t[104]=o,t[105]=c,t[106]=A,t[107]=be,t[108]=Qe):Qe=t[108];let $e;t[109]!==o||t[110]!==c?($e=!c&&(0,R.jsx)(Ee,{dashboard:o},o.id),t[109]=o,t[110]=c,t[111]=$e):$e=t[111];let et;return t[112]!==qe||t[113]!==Je||t[114]!==Ye||t[115]!==Xe||t[116]!==Ze||t[117]!==Qe||t[118]!==$e?(et=(0,R.jsxs)(`div`,{className:`dash-detail`,children:[qe,Je,Ye,Xe,Ze,Qe,$e]}),t[112]=qe,t[113]=Je,t[114]=Ye,t[115]=Xe,t[116]=Ze,t[117]=Qe,t[118]=$e,t[119]=et):et=t[119],et}function Be(e){return!e}function Ve(e){return!e}function He(){return Date.now()}function Ue(e){return e.block}function We(e){return[e.id,e]}function Ge(e){return e.id}export{ze as DashboardDetail};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardLoopRuntime-
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{t as a}from"./preloadableLazy-MIX1ApBW.js";import{a as o,s}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardLoopRuntime-BZutKupS.js","assets/useDashboardLoop-DEE_sLT0.js","assets/rolldown-runtime-DkW27tQK.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/preload-helper-CiWYd9n-.js","assets/http-Bqk6nJiH.js","assets/number-zqlPMliA.js","assets/store-D16dGt7I.js","assets/contentVault-XKWjF2FB.js","assets/keyVault-Aw5Y2PjT.js","assets/localBudget-CxLP6bjE.js","assets/providers-CPhoN8j0.js","assets/blockTypes-DUDdP3pB.js","assets/info-CiqHR5cs.js","assets/attachments-BW-vki-E.js","assets/route-CMdTFx0P.js","assets/useLiveConfig-CvOQTr0s.js","assets/json-J4Y32_i9.js","assets/ledger-DHS2di3l.js","assets/format-BkvssSOr.js","assets/dataPending-DGdCvY5Y.js","assets/now-C9-UAzTC.js","assets/predictions-CkVKHq-5.js","assets/notify-Bz4wuE4T.js","assets/dashboardEvents-BV0Ly6No.js","assets/spokenText-Dy-GZvZV.js","assets/kokoro-DcP-u0Tl.js","assets/index-BMeoXWPR.js","assets/useInView-DsTvv7L_.js","assets/jsx-runtime-DeHZSEgm.js","assets/coreIcons-DDTChE1H.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/theme-D5D55hZi.js","assets/index-CFE0vqqO.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{t as a}from"./preloadableLazy-MIX1ApBW.js";import{a as o,s}from"./index-BMeoXWPR.js";import{t as c}from"./useDashboards-B-EjE8FH.js";var l=t(),u=e(),d=n();r();var f=a(()=>i(()=>import(`./DashboardLoopRuntime-BZutKupS.js`).then(e=>({default:e.DashboardLoopRuntime})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]))).Component;function p(){let e=(0,l.c)(1),t=(0,u.useSyncExternalStore)(s,o,m),n=c();if(!t||n.length===0)return null;let r;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,d.jsx)(u.Suspense,{fallback:null,children:(0,d.jsx)(f,{})}),e[0]=r):r=e[0],r}function m(){return!1}export{p as DashboardLoopGate};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./useDashboardLoop-DEE_sLT0.js";function t(){return e(),null}export{t as DashboardLoopRuntime};
|