@mavea/mavea 1.2.1 → 2.0.0
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 +81 -0
- package/PRIVACY.md +1 -0
- package/README.md +8 -4
- package/TERMS.md +1 -1
- package/THIRD-PARTY.txt +13 -5
- package/bin/mavea.mjs +143 -2
- package/dist/.vite/manifest.json +1469 -857
- package/dist/assets/AnnotationLayer-Cccb12ps.js +0 -0
- package/dist/assets/{AppCommandPalette-CgDUWU08.js → AppCommandPalette-DdOPNZ0e.js} +1 -1
- package/dist/assets/AtlasView-B7yObdf8.css +1 -0
- package/dist/assets/{AtlasView-B82UfrEX.js → AtlasView-DO_p0TdZ.js} +1 -1
- package/dist/assets/BriefingPlayer-DHV4vMga.css +1 -0
- package/dist/assets/{CadenceCard-P4teI7Se.js → CadenceCard-DxceyiPA.js} +1 -1
- package/dist/assets/{CanvasSkeleton-CRGWlafo.js → CanvasSkeleton-BmGjJHUQ.js} +1 -1
- package/dist/assets/CanvasSkeleton-DYASkTjW.css +1 -0
- package/dist/assets/CardEditor-CiAfT78z.css +1 -0
- package/dist/assets/{CardEditor-DABIhGdQ.js → CardEditor-D4slxmIM.js} +1 -1
- package/dist/assets/{CheckLogRail-DO7sbZwC.js → CheckLogRail-BibJTid0.js} +1 -1
- package/dist/assets/ConversationVideoStudio-CSO3jHXD.css +1 -0
- package/dist/assets/ConversationVideoStudio-DMIPUCcq.js +1 -0
- package/dist/assets/CourseLessonReader-D29Kix4f.js +2 -0
- package/dist/assets/{CourseRail-DXt3bzjU.js → CourseRail-BQmUsG6v.js} +1 -1
- package/dist/assets/CoursesApp-DcDsS_ZS.js +2 -0
- package/dist/assets/CrossExamPanel-BafTqkbf.css +1 -0
- package/dist/assets/{DashPresent-B6MP1i_4.js → DashPresent-BDWgO9am.js} +1 -1
- package/dist/assets/DashboardDetail-BrnAdWfy.js +2 -0
- package/dist/assets/DashboardLoopGate-NxMcQ4rD.js +2 -0
- package/dist/assets/DashboardLoopRuntime-Dsy9u1wa.js +1 -0
- package/dist/assets/{DashboardSettings-CE0B2y2y.js → DashboardSettings-DJon1Q4o.js} +1 -1
- package/dist/assets/DashboardsApp-DxyMn3x_.js +2 -0
- package/dist/assets/DeepZoomApp-CVwmnRGN.css +1 -0
- package/dist/assets/{DeepZoomApp-UEPtylG7.js → DeepZoomApp-nNjqoyYE.js} +1 -1
- package/dist/assets/DelegatePanel-D17XvWYd.css +1 -0
- package/dist/assets/DelegatePanel-DN_ZL0j7.js +33 -0
- package/dist/assets/DemoGallery-DrSlMsnu.js +1 -0
- package/dist/assets/{DropSelect-DilESAgA.css → DropSelect-B4lqCEjw.css} +1 -1
- package/dist/assets/{DropSelect-QcBm3N4D.js → DropSelect-GwIXHA5o.js} +1 -1
- package/dist/assets/{ExportModal-Ya0VBbxa.js → ExportModal-DBUjC71U.js} +1 -1
- package/dist/assets/{ExtractionPreview-BFrmqKDo.js → ExtractionPreview-D4M6eXqb.js} +1 -1
- package/dist/assets/{FeatureUseNotice-Dc3GNBvy.js → FeatureUseNotice-Bda9jr3W.js} +1 -1
- package/dist/assets/{FlagshipCommandPalette-B1yHwI6V.js → FlagshipCommandPalette-DAO849RC.js} +1 -1
- package/dist/assets/FlagshipShowcase-g2x-1c70.js +1 -0
- package/dist/assets/{FlashcardsApp-DteNeHpz.js → FlashcardsApp-BUKzCr65.js} +1 -1
- package/dist/assets/ForecastPanel-Cq_yDhNQ.css +1 -0
- package/dist/assets/GalleryApp-ot_A7ZF-.js +1 -0
- package/dist/assets/{HonestByDesign-DZltb3Ss.js → HonestByDesign-DgZFEpEx.js} +1 -1
- package/dist/assets/{HowItWorks-D-hgfN6a.js → HowItWorks-DPFpdeGE.js} +1 -1
- package/dist/assets/{LegalApp-ChzcKiY0.js → LegalApp-C56kWdmK.js} +1 -1
- package/dist/assets/{LegalMarkdownDocument-j6UHhPnp.js → LegalMarkdownDocument-BBTHuW_M.js} +1 -1
- package/dist/assets/{LegalPageShell-Wcsviye1.js → LegalPageShell-hMA-7JLf.js} +1 -1
- package/dist/assets/LeverPanel-HOEwIr8k.css +1 -0
- package/dist/assets/{Library-DmdzY2se.js → Library-CVj7R6F4.js} +1 -1
- package/dist/assets/LibraryOverlay-BkPYm0Bs.css +1 -0
- package/dist/assets/{LibraryOverlay-YHBrdVKo.js → LibraryOverlay-DSUWcUe4.js} +1 -1
- package/dist/assets/LiveApp-B62EMybC.js +79 -0
- package/dist/assets/LiveApp-CziqEsOb.css +1 -0
- package/dist/assets/LiveSettings-BITIaMoT.js +6 -0
- package/dist/assets/LiveSettings-Dho0OxlM.css +1 -0
- package/dist/assets/{MindMapViewerDrawer-DI_S7fRZ.js → MindMapViewerDrawer-CKdJtHno.js} +1 -1
- package/dist/assets/MindShape-B3lg_z4X.js +1 -0
- package/dist/assets/MindShape-CozR9W8M.css +1 -0
- package/dist/assets/{PinToDashboard-BCiWaSg8.js → PinToDashboard-DpQjBLPa.js} +1 -1
- package/dist/assets/{PlanReview-BIERfK1t.js → PlanReview-CrTbmMAd.js} +1 -1
- package/dist/assets/PresentationDeck-CfYadu9V.js +1 -0
- package/dist/assets/PrismApp-bRKK_3JA.js +2 -0
- package/dist/assets/PrismAskController-68gbUO5u.css +1 -0
- package/dist/assets/{PrismAskController-Bt0k9hAA.js → PrismAskController-C4MuB8om.js} +1 -1
- package/dist/assets/{PrismBriefingPlayer-DLAPs6eZ.js → PrismBriefingPlayer-ChJj6hSS.js} +2 -2
- package/dist/assets/PrismOverlay-BwnF4BEn.css +1 -0
- package/dist/assets/{PrismOverlay-DJDGPGxo.js → PrismOverlay-Pp6ZKmTc.js} +4 -4
- package/dist/assets/{PrismWorkbench-DHLvpguj.js → PrismWorkbench-BCV7r4Oa.js} +1 -1
- package/dist/assets/{PrivacyApp-uMjq2z14.js → PrivacyApp-A2Bu6LVd.js} +2 -1
- package/dist/assets/{Recap-T9DtFaEk.js → Recap-BOl3SUh0.js} +1 -1
- package/dist/assets/Recap-D3NlzM1p.css +1 -0
- package/dist/assets/{ReplayCard-F7U3LYAg.js → ReplayCard-B6NYiYzQ.js} +2 -2
- package/dist/assets/{ReplayOverlay-BTldvkU7.js → ReplayOverlay-BJKtJ-vc.js} +1 -1
- package/dist/assets/{RewindOverlay-CousnxXo.js → RewindOverlay-BO7YgDsW.js} +1 -1
- package/dist/assets/RippleApp-BXt7tenS.js +2 -0
- package/dist/assets/{RippleAskController-9SxpZnHX.js → RippleAskController-BzdwYcYY.js} +1 -1
- package/dist/assets/RippleOverlay-B3hg2KMN.css +1 -0
- package/dist/assets/RippleOverlay-BSxubBwj.js +6 -0
- package/dist/assets/SeeDontRead-0He5hS2C.js +1 -0
- package/dist/assets/ShareModal-I_sxHKLv.css +1 -0
- package/dist/assets/ShareModal-xYdZWJxy.js +2 -0
- package/dist/assets/{ShipCourse-Up9gRR07.js → ShipCourse-Dg6kCWyH.js} +1 -1
- package/dist/assets/{SignatureLoop-Cq790dMw.js → SignatureLoop-QPwB2oNN.js} +1 -1
- package/dist/assets/SrsReview-DmBcJCMa.css +1 -0
- package/dist/assets/{SrsReview-DhWNYYv7.js → SrsReview-Gr6Y0QTQ.js} +1 -1
- package/dist/assets/{SynthesisApp-4ZPLZgmJ.js → SynthesisApp-DrCq6NDa.js} +2 -2
- package/dist/assets/{SynthesisOverlay-iesJ0hEt.js → SynthesisOverlay-DCa-2Pz_.js} +1 -1
- package/dist/assets/{TermsApp-DL2hFKsv.js → TermsApp-zcPDYfuh.js} +2 -2
- package/dist/assets/TopicCanvas-Bw4bMFpe.js +2 -0
- package/dist/assets/TopicCanvas-DWTm611H.css +1 -0
- package/dist/assets/{TourPrism-kInUOv-M.js → TourPrism-DbinDupp.js} +1 -1
- package/dist/assets/{TrackerTile-BryDo0sm.js → TrackerTile-CrT9u1I4.js} +2 -2
- package/dist/assets/{TwoSurfaces-Cmj95ofx.js → TwoSurfaces-L0CDuyOZ.js} +1 -1
- package/dist/assets/WhyMachineOverlay-Rav-cuMm.css +1 -0
- package/dist/assets/WorldOverlay-BcjqG1BR.js +2 -0
- package/dist/assets/{WowFeatures-DDICbxl_.js → WowFeatures-CwBk4ZMO.js} +1 -1
- package/dist/assets/ZoomDeck-DdLNsrHV.css +1 -0
- package/dist/assets/{ZoomDeck-CKOjYS9z.js → ZoomDeck-DlnesweX.js} +1 -1
- package/dist/assets/{annotationAuto-CDv6Es44.js → annotationAuto-B2UdfJNj.js} +1 -1
- package/dist/assets/{backup-ZrlVatXc.js → backup-685QrAjt.js} +1 -1
- package/dist/assets/canvas-C3O7MEA3.js +1 -0
- package/dist/assets/capture-DgJLQ_0-.js +2 -0
- package/dist/assets/{chapters-Dqm4iLDa.js → chapters-CIvdCeBC.js} +1 -1
- package/dist/assets/{confirmAdd-DkmbWaSk.js → confirmAdd-CZ829Mbx.js} +1 -1
- package/dist/assets/{dashboardEvents-D-XVj666.js → dashboardEvents-CiayRLrH.js} +1 -1
- package/dist/assets/dashboards-Cvs28p3Z.css +1 -0
- package/dist/assets/deepen-DAeHHFiI.js +11 -0
- package/dist/assets/deepenStore-BWLLzLCY.js +1 -0
- package/dist/assets/effort-jJe4iMIq.js +39 -0
- package/dist/assets/{explode-BgZIWY9m.js → explode-CPnvJiTg.js} +1 -1
- package/dist/assets/{fitText-DQ2omSN0.js → fitText-DHbmSS-q.js} +1 -1
- package/dist/assets/{generate-Dl2EJ_SR.js → generate-COfYQFmT.js} +4 -4
- package/dist/assets/{generateBeats-DtptFLlG.js → generateBeats-COflu5Zi.js} +1 -1
- package/dist/assets/{generateCourse-C9qvaJRo.js → generateCourse-BldPpgdh.js} +1 -1
- package/dist/assets/generateLive-DGwnpIip.js +24 -0
- package/dist/assets/homeTarget-CwFsJYwb.js +1 -0
- package/dist/assets/index-BIUYTk1W.css +1 -0
- package/dist/assets/index-LiHcEJt_.js +22 -0
- package/dist/assets/kokoro-DXRj0KQX.js +1 -0
- package/dist/assets/ledger-BssK9Pv2.js +1 -0
- package/dist/assets/{lib-DMAxsZKm.css → lib-DP9Kuxqk.css} +1 -1
- package/dist/assets/{liveSchema-B4bQtO88.js → liveSchema-DyfND6P2.js} +2 -2
- package/dist/assets/{loader-DCA6Njbf.js → loader-DgMLGfAC.js} +2 -2
- package/dist/assets/localBudget-CxLP6bjE.js +1 -0
- package/dist/assets/{mastery-CUfDeuqO.js → mastery-DB5qpRAy.js} +1 -1
- package/dist/assets/{media-BvwzACIX.js → media-VLRh6CX2.js} +2 -2
- package/dist/assets/{model-BFRTN9Eh.js → model-CAewjw45.js} +1 -1
- package/dist/assets/{neighborhoods-D7QjURnE.js → neighborhoods-CqECCmo8.js} +1 -1
- package/dist/assets/{notes-B6eX5XWk.js → notes-DzIAEESd.js} +1 -1
- package/dist/assets/pen-DtEW1xf4.js +24 -0
- package/dist/assets/{perfProbe-CE7hsUEo.js → perfProbe-ezVn1mOu.js} +1 -1
- package/dist/assets/{pin-BZuh1acO.js → pin-BPGVDgnq.js} +1 -1
- package/dist/assets/pin-BXyyKnci.css +1 -0
- package/dist/assets/{planTracker-KKAtTBWs.js → planTracker-BwoKEftp.js} +1 -1
- package/dist/assets/portal-B9DmFo6J.js +1 -0
- package/dist/assets/{prewarm-uKxmzjjd.js → prewarm-BgUqAJbF.js} +1 -1
- package/dist/assets/providers-0DthJW_I.js +1 -0
- package/dist/assets/quietHours-DyynzDyC.js +1 -0
- package/dist/assets/{ready-jtAUOb62.js → ready-yBSGJubb.js} +1 -1
- package/dist/assets/{registry-B2QzCuWH.js → registry-7tKTrzeZ.js} +1 -1
- package/dist/assets/{registry-BFrgx1tE.js → registry-B53EEn8S.js} +1 -1
- package/dist/assets/{registry-CPiwQhAm.js → registry-BDXwUn3i.js} +1 -1
- package/dist/assets/{registry-DtV2UjBx.js → registry-BJEvFgoL.js} +1 -1
- package/dist/assets/{registry-B0GIHERt.js → registry-BQzvA61G.js} +1 -1
- package/dist/assets/{registry-6DGRAB1m.js → registry-BT6ydF33.js} +1 -1
- package/dist/assets/{registry-D8O0apUT.js → registry-BdHj_oIs.js} +1 -1
- package/dist/assets/{registry-Dru0JcTa.css → registry-BgWzEkxc.css} +1 -1
- package/dist/assets/{registry-Vp8VuMV0.js → registry-Bl2qfp5V.js} +1 -1
- package/dist/assets/registry-Bl7zAWKt.js +2 -0
- package/dist/assets/{registry-Dwbh-GWu.js → registry-BlujNlQJ.js} +1 -1
- package/dist/assets/{registry-C28gYnVq.js → registry-CE1T0z9x.js} +1 -1
- package/dist/assets/{registry-4mMEt1Xy.css → registry-CEV5h2cu.css} +1 -1
- package/dist/assets/{registry-ZOWzhOHk.css → registry-CGB0jkFI.css} +1 -1
- package/dist/assets/{registry-BFbfXK-W.js → registry-Cgo4C0ux.js} +1 -1
- package/dist/assets/registry-CwRTUk0R.js +1 -0
- package/dist/assets/{registry-1wlTAh5b.js → registry-D06LKiUk.js} +1 -1
- package/dist/assets/registry-Dbe9TQPw.css +1 -0
- package/dist/assets/registry-Diyud3DF.js +1 -0
- package/dist/assets/registry-DjvftnY2.css +1 -0
- package/dist/assets/{registry-w4R6c89s.js → registry-KRYoVMCh.js} +1 -1
- package/dist/assets/registry-QbArAJKB.js +1 -0
- package/dist/assets/registry-dmR14XnY.css +1 -0
- package/dist/assets/registry-g2sBcIrf.css +1 -0
- package/dist/assets/{registry-CcOO8UZr.js → registry-qRfnKTt4.js} +1 -1
- package/dist/assets/{relate-UW-sUlJH.js → relate-aQFFr11O.js} +1 -1
- package/dist/assets/{replay-B5TkHPri.js → replay-CalqEgdW.js} +1 -1
- package/dist/assets/route-CMdTFx0P.js +1 -0
- package/dist/assets/{run-Df10YPyB.js → run-CuHaB8wF.js} +1 -1
- package/dist/assets/{run-gmqUaxcL.js → run-CwMSPOps.js} +1 -1
- package/dist/assets/{run-DlvA3l28.js → run-DCQrxgHA.js} +1 -1
- package/dist/assets/select-wEtBn9U6.js +3 -0
- package/dist/assets/shapes-BwoDrn09.js +1 -0
- package/dist/assets/shard000-Bx6Nmt0m.js +1 -0
- package/dist/assets/shard001-CL6O9SLr.js +1 -0
- package/dist/assets/shard002-vLQ0Ss-O.js +1 -0
- package/dist/assets/shard003-kKZdpzuh.js +1 -0
- package/dist/assets/shard004-CdVohAu1.js +1 -0
- package/dist/assets/shard005-CMzF_uJB.js +1 -0
- package/dist/assets/shard006-DQoDWuoN.js +1 -0
- package/dist/assets/shard007-Ck0N0IUk.js +1 -0
- package/dist/assets/shard008-Dt395x0Q.js +1 -0
- package/dist/assets/shard009-D_z8Lhqh.js +1 -0
- package/dist/assets/shard010-CQfR6lnk.js +1 -0
- package/dist/assets/shard011-l-w2t2Ie.js +1 -0
- package/dist/assets/shard012-BTw_UO1C.js +1 -0
- package/dist/assets/shard013-D8ZjKKYb.js +1 -0
- package/dist/assets/shard014-Cth_76It.js +1 -0
- package/dist/assets/shard015-DdYJVsHx.js +1 -0
- package/dist/assets/shard016-BdlBf9uZ.js +1 -0
- package/dist/assets/shard017-C3HTxh6t.js +1 -0
- package/dist/assets/shard018-Mf4wvqVk.js +1 -0
- package/dist/assets/shard019-Dpcy1Arx.js +1 -0
- package/dist/assets/shard020-BNvKfQld.js +1 -0
- package/dist/assets/shard021-D0kpI_PQ.js +1 -0
- package/dist/assets/shard022-Cjms7kAe.js +1 -0
- package/dist/assets/shard023-Bdwci7fy.js +1 -0
- package/dist/assets/shard024-BBoyPtpP.js +1 -0
- package/dist/assets/shard025-lMGpgN_0.js +3 -0
- package/dist/assets/shard026-Bp3UVI4_.js +1 -0
- package/dist/assets/shard027-C4HTpdeT.js +1 -0
- package/dist/assets/shard028-BsFTH3Sf.js +1 -0
- package/dist/assets/shard029-B3dEcXPy.js +1 -0
- package/dist/assets/shard030-DWwA-fNs.js +5 -0
- package/dist/assets/shard031-RhqA_0nH.js +1 -0
- package/dist/assets/shard032-BlZdG1Yi.js +1 -0
- package/dist/assets/shard033-Dmx2lOjI.js +1 -0
- package/dist/assets/shard034-BLOFKJT4.js +1 -0
- package/dist/assets/shard035-DMXdH733.js +1 -0
- package/dist/assets/shard036-DzOiEn23.js +1 -0
- package/dist/assets/shard037-BcHfVaYM.js +1 -0
- package/dist/assets/shard038-KozOx-Jh.js +1 -0
- package/dist/assets/shard039-apdILQwC.js +1 -0
- package/dist/assets/shard040-BrNXGaBi.js +1 -0
- package/dist/assets/shard041-D6eq9h1u.js +4 -0
- package/dist/assets/shard042-M-L34DbY.js +1 -0
- package/dist/assets/shard043-Ct6_C2pN.js +1 -0
- package/dist/assets/shard044-Bo0iaVHx.js +1 -0
- package/dist/assets/shard045-9ccZ4Y_N.js +1 -0
- package/dist/assets/shard046-eXoP478L.js +1 -0
- package/dist/assets/shard047-N56r6Lsz.js +1 -0
- package/dist/assets/shard048-BeKX7cI8.js +1 -0
- package/dist/assets/shard049-hPaNN2sL.js +1 -0
- package/dist/assets/shard050-B-YpP0B6.js +1 -0
- package/dist/assets/shard051-Bww5_KB2.js +1 -0
- package/dist/assets/shard052-DErwF8Df.js +1 -0
- package/dist/assets/shard053-C-qGH4jz.js +1 -0
- package/dist/assets/shard054-kcSxZrSj.js +1 -0
- package/dist/assets/shard055-CsETBTqa.js +1 -0
- package/dist/assets/shard056-CdBR4qTC.js +1 -0
- package/dist/assets/shard057-yRUG8B9e.js +1 -0
- package/dist/assets/shard058-DeDAnECG.js +1 -0
- package/dist/assets/shard059-Dh6jbDnW.js +1 -0
- package/dist/assets/shard060-B5kpWrhW.js +1 -0
- package/dist/assets/shard061-BTnj5LZA.js +1 -0
- package/dist/assets/shard062-DC7LTaNc.js +1 -0
- package/dist/assets/shard063-C8SIGCfd.js +1 -0
- package/dist/assets/shard064-DLyASocW.js +1 -0
- package/dist/assets/shard065-Cy_yV4ry.js +1 -0
- package/dist/assets/shard066-BmjVQqFX.js +1 -0
- package/dist/assets/shard067-uZUJsqtF.js +1 -0
- package/dist/assets/shard068-CXVjyJU4.js +1 -0
- package/dist/assets/shard069-CyfmjAm-.js +4 -0
- package/dist/assets/shard070-CxN3xiuY.js +12 -0
- package/dist/assets/shard071-CP1WrYC-.js +1 -0
- package/dist/assets/shard072-D6L5Yr05.js +1 -0
- package/dist/assets/shard073-DFEzkwg2.js +1 -0
- package/dist/assets/shard074-BSv3rvRL.js +1 -0
- package/dist/assets/shard075-Bt0OjGVd.js +1 -0
- package/dist/assets/shard076-DZHs0uzd.js +1 -0
- package/dist/assets/{share-kW3pZ027.js → share--tpc1nLE.js} +1 -1
- package/dist/assets/speed-BOytg6bC.js +1 -0
- package/dist/assets/store-B2Rpbqgg.js +1 -0
- package/dist/assets/store-Ba9vzL4H.js +1 -0
- package/dist/assets/store-BwyOArJl.js +1 -0
- package/dist/assets/store-ruEsXJjU.js +1 -0
- package/dist/assets/streamParse-BX0bAppQ.js +2 -0
- package/dist/assets/{templates-DHeyJ32F.css → templates-BIkAr4YH.css} +1 -1
- package/dist/assets/{theme-7IrMJ70_.js → theme-D5D55hZi.js} +1 -1
- package/dist/assets/{threads-Cu2t3070.js → threads-DNfxMTwx.js} +1 -1
- package/dist/assets/{useDashboardLoop-BoVNM-pT.js → useDashboardLoop-ifcuVRo-.js} +3 -3
- package/dist/assets/{useDashboards-SRk8LqHe.js → useDashboards-lgQnk2Al.js} +1 -1
- package/dist/assets/useFocusTrap-CJmpNZv2.js +1 -0
- package/dist/assets/useInView-DsTvv7L_.js +1 -0
- package/dist/assets/useInterval-DDgFrel2.js +1 -0
- package/dist/assets/{useLiveConfig-Cpy0_E_-.js → useLiveConfig-B4CmBiAK.js} +1 -1
- package/dist/assets/useStudy-CySgE3Cx.js +1 -0
- package/dist/assets/{walkSync-CT8kmbzY.js → walkSync-DBne70gg.js} +1 -1
- package/dist/demo-assets/CREDITS.md +94 -50
- package/dist/demo-assets/images/arnel-lighthouse.avif +0 -0
- package/dist/demo-assets/images/cliff-fields.avif +0 -0
- package/dist/demo-assets/images/crater-panorama.avif +0 -0
- package/dist/demo-assets/images/furnas-lake.avif +0 -0
- package/dist/demo-assets/images/green-coast-raw.avif +0 -0
- package/dist/demo-assets/images/green-coast.avif +0 -0
- package/dist/demo-assets/images/island-coast-poster.avif +0 -0
- package/dist/demo-assets/images/nordeste-town.avif +0 -0
- package/dist/demo-assets/images/sea-cliffs.avif +0 -0
- package/dist/demo-assets/images/sete-cidades.avif +0 -0
- package/dist/demo-assets/images/tea-terraces.avif +0 -0
- package/dist/demo-assets/pdf/cfd-primer.pdf +0 -0
- package/dist/demo-assets/video/island-coast.webm +0 -0
- package/dist/fonts/fonts.css +18 -0
- package/dist/index.html +38 -10
- package/dist/legal/PRIVACY.md +1 -0
- package/dist/legal/TERMS.md +1 -1
- package/dist/legal/THIRD-PARTY.txt +13 -5
- package/package.json +3 -2
- package/dist/assets/AnnotationLayer-8JABh1Dm.js +0 -0
- package/dist/assets/AtlasView-B5fkQhO6.css +0 -1
- package/dist/assets/BriefingPlayer-TpFZB77N.css +0 -1
- package/dist/assets/CanvasSkeleton-iy6DBvde.css +0 -1
- package/dist/assets/CardEditor-BY1bZiV6.css +0 -1
- package/dist/assets/ConversationVideoStudio-CIAMxElj.css +0 -1
- package/dist/assets/ConversationVideoStudio-tpqQQnOs.js +0 -1
- package/dist/assets/CourseLessonReader-PFJn-4tj.js +0 -2
- package/dist/assets/CoursesApp-5pnHYJR8.js +0 -2
- package/dist/assets/CrossExamPanel-CZ0ShGma.css +0 -1
- package/dist/assets/DashboardDetail-DYFghZ4p.js +0 -2
- package/dist/assets/DashboardLoopGate-C0blM1w9.js +0 -2
- package/dist/assets/DashboardLoopRuntime-C9R-z9-o.js +0 -1
- package/dist/assets/DashboardsApp-Dh_jh1dF.js +0 -2
- package/dist/assets/DeepZoomApp-fRXCJHHZ.css +0 -1
- package/dist/assets/DelegatePanel-Cf85-0qE.css +0 -1
- package/dist/assets/DelegatePanel-DKWsRY9I.js +0 -33
- package/dist/assets/DemoGallery-CkuqAXje.js +0 -1
- package/dist/assets/FlagshipShowcase-BHAlRDAE.js +0 -1
- package/dist/assets/ForecastPanel-Da2ZBUrE.css +0 -1
- package/dist/assets/GalleryApp-DziLKFJZ.js +0 -1
- package/dist/assets/LeverPanel-DhpJY76O.css +0 -1
- package/dist/assets/LibraryOverlay-CnKWDMG_.css +0 -1
- package/dist/assets/LiveApp-C-OPBybd.css +0 -1
- package/dist/assets/LiveApp-D6vkyhZb.js +0 -79
- package/dist/assets/LiveSettings-C9cKOrSb.js +0 -6
- package/dist/assets/LiveSettings-CmgrMqvK.css +0 -1
- package/dist/assets/MindShape-C_Bo9hW9.js +0 -1
- package/dist/assets/MindShape-CaPeUo-a.css +0 -1
- package/dist/assets/PresentationDeck-BW_7qecK.js +0 -1
- package/dist/assets/PrismApp-BY71jJvW.js +0 -2
- package/dist/assets/PrismAskController-DBoxQSJR.css +0 -1
- package/dist/assets/PrismOverlay-BTfAicBt.css +0 -1
- package/dist/assets/Recap-DCiiWNiV.css +0 -1
- package/dist/assets/RippleApp-DZw8op-E.js +0 -2
- package/dist/assets/RippleOverlay-D7ItTvS-.js +0 -6
- package/dist/assets/RippleOverlay-_iiZsQVZ.css +0 -1
- package/dist/assets/SeeDontRead-DmmtWAzn.js +0 -1
- package/dist/assets/ShareModal-9jSn52Mw.js +0 -2
- package/dist/assets/ShareModal-D1QuQEko.css +0 -1
- package/dist/assets/SrsReview-B1B2VekR.css +0 -1
- package/dist/assets/TopicCanvas-DozfZFto.js +0 -2
- package/dist/assets/TopicCanvas-uRuHi99s.css +0 -1
- package/dist/assets/WhyMachineOverlay-BZk3PVTl.css +0 -1
- package/dist/assets/WorldOverlay-yhxq328s.js +0 -2
- package/dist/assets/ZoomDeck-B2SjNwY7.css +0 -1
- package/dist/assets/canvas-vqIFVmtP.js +0 -1
- package/dist/assets/capture-9OrAc1p2.js +0 -2
- package/dist/assets/dashboards-C1u2ks-d.css +0 -1
- package/dist/assets/generateLive-B6purd69.js +0 -51
- package/dist/assets/homeTarget-CsO8nY7z.js +0 -1
- package/dist/assets/index-DrzNHwlO.css +0 -1
- package/dist/assets/index-zIa6h_8b.js +0 -22
- package/dist/assets/kokoro-B3oG_8sd.js +0 -1
- package/dist/assets/layout-CEoNLr-w.js +0 -1
- package/dist/assets/pageVisibility-BxUVsw7Z.js +0 -1
- package/dist/assets/pen-DNMslo3e.js +0 -24
- package/dist/assets/pin-D-4Zjiik.css +0 -1
- package/dist/assets/portal-k_BMgWND.js +0 -1
- package/dist/assets/providers-BovElgRL.js +0 -1
- package/dist/assets/quietHours-DI1ayIIq.js +0 -1
- package/dist/assets/registry-BSX3aFUw.js +0 -1
- package/dist/assets/registry-Bv1f5UU4.js +0 -2
- package/dist/assets/registry-Cse2wF7x.css +0 -1
- package/dist/assets/registry-Dye5m3qt.css +0 -1
- package/dist/assets/registry-GeSy4i7R.css +0 -1
- package/dist/assets/registry-WHd1PwU3.js +0 -1
- package/dist/assets/registry-Xl8mAnKq.js +0 -1
- package/dist/assets/registry-tkd3UhWn.css +0 -1
- package/dist/assets/shapes-Cx5SCKgj.js +0 -39
- package/dist/assets/speed-K5_Ebj-8.js +0 -1
- package/dist/assets/store-BfHRbVKz.js +0 -1
- package/dist/assets/store-CsjDEADX.js +0 -1
- package/dist/assets/store-DpObYU1u.js +0 -1
- package/dist/assets/store-gohr8YVT.js +0 -1
- package/dist/assets/streamParse-B-Gjwa9T.js +0 -2
- package/dist/assets/useFocusTrap-DBtkeyRy.js +0 -1
- package/dist/assets/useInView-CXTOAEV3.js +0 -1
- package/dist/assets/useStudy-5CsF_L-s.js +0 -1
- package/dist/demo-assets/images/basalt-cliffs.jpg +0 -0
- package/dist/demo-assets/images/capelinhos.jpg +0 -0
- package/dist/demo-assets/images/cliff-fields.jpg +0 -0
- package/dist/demo-assets/images/crater-panorama.jpg +0 -0
- package/dist/demo-assets/images/furnas-lake.jpg +0 -0
- package/dist/demo-assets/images/green-coast.jpg +0 -0
- package/dist/demo-assets/images/overcast-coast.jpg +0 -0
- package/dist/demo-assets/images/patchwork-fields.jpg +0 -0
- package/dist/demo-assets/images/ponta-delgada.jpg +0 -0
- package/dist/demo-assets/images/sete-cidades.jpg +0 -0
- package/dist/demo-assets/images/village-street.jpg +0 -0
- package/dist/demo-assets/video/azores-film.webm +0 -0
- /package/dist/assets/{BriefingPlayer-C0D_2ILa.js → BriefingPlayer-74mRKyjl.js} +0 -0
- /package/dist/assets/{CrossExamPanel-CdIYUu-B.js → CrossExamPanel-BfeGr5iw.js} +0 -0
- /package/dist/assets/{ForecastPanel-zPUh2ClQ.js → ForecastPanel-OfW39WGS.js} +0 -0
- /package/dist/assets/{LeverPanel-D1SNRGdm.js → LeverPanel-vco5UK2U.js} +0 -0
- /package/dist/assets/{WhyMachineOverlay-ks9-rRiL.js → WhyMachineOverlay-D2K7y8SA.js} +0 -0
- /package/dist/assets/{lib-B7OE1ZQQ.js → lib-u95BsX_B.js} +0 -0
- /package/dist/assets/{registry-7poQfBaM.js → registry-C4Yh05pk.js} +0 -0
- /package/dist/assets/{registry-Daypk4uR.js → registry-S3j4OpCH.js} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-CUAVYiYW.js","assets/preload-helper-CiWYd9n-.js","assets/rolldown-runtime-DkW27tQK.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e,t}from"./preload-helper-CiWYd9n-.js";import{t as n}from"./cachedImport-DW0gP14h.js";import{r}from"./streamParse-BX0bAppQ.js";import{i,r as a}from"./attachments-BW-vki-E.js";import{t as o}from"./providers-0DthJW_I.js";import{i as s}from"./verbatim-DBTj9sPD.js";import{t as c}from"./citation-BsSvaaer.js";import{t as l}from"./search-ZN7v_P5B.js";e();var u=n(()=>t(()=>import(`./pdf-CUAVYiYW.js`).then(e=>{let t=e.default??e;return t?.GlobalWorkerOptions&&(t.GlobalWorkerOptions.workerSrc=new URL(`/assets/pdf.worker.min-CHFwMXne.mjs`,``+import.meta.url).href),t}),__vite__mapDeps([0,1,2])));function d(){return u().catch(()=>null)}var f={wasmUrl:`/pdfjs/`};function p(e){if(typeof e?.str!=`string`||e.str.trim()===``)return null;let t=e.transform??[1,0,0,1,0,0],n=Math.hypot(t[2],t[3])||(typeof e.height==`number`?e.height:0)||10;return{it:e,left:t[4],y:t[5],w:typeof e.width==`number`?e.width:0,h:n}}function m(e){e.sort((e,t)=>t.y-e.y||e.left-t.left);let t=[],n=[],r=0,i=0;for(let a of e)n.length>0&&Math.abs(a.y-r)>Math.max(i,a.h)*.5&&(t.push(n),n=[]),n.length===0&&(r=a.y,i=a.h),n.push(a);n.length>0&&t.push(n);let a=[];for(let e of t){e.sort((e,t)=>e.left-t.left);for(let t of e)a.push(t.it)}return a}function h(e){let t=e.map(p).filter(e=>e!==null);if(t.length<2)return t.map(e=>e.it);let n=Math.min(...t.map(e=>e.left)),r=Math.max(...t.map(e=>e.left+e.w)),i=Math.max(...t.map(e=>e.y)),a=Math.min(...t.map(e=>e.y)),o=r-n||1,s=i-a||1,c=null,l=t.filter(e=>e.y<i-.1*s&&e.y>a+.04*s);if(l.length>6)for(let e of[.5,.48,.52,.46,.54]){let r=n+e*o,i=l.filter(e=>e.left<r-2&&e.left+e.w>r+2).length,a=t.filter(e=>e.left+e.w/2<r).length,s=t.length-a;if(i<=Math.max(2,l.length*.02)&&a>t.length*.2&&s>t.length*.2){c=r;break}}if(c===null)return m(t);let u=c;return[...m(t.filter(e=>e.left+e.w/2<u)),...m(t.filter(e=>e.left+e.w/2>=u))]}async function g(e){let t=await d();if(!t?.getDocument)return null;try{let n=await a(e),r=await t.getDocument({data:n.slice(),...f}).promise,i=[];for(let e=1;e<=r.numPages;e+=1){let t=await r.getPage(e),n=h((await t.getTextContent()).items).map(e=>typeof e.str==`string`?e.str:``).join(` `);i.push(n),t.cleanup?.()}return await r.destroy?.(),i}catch{return null}}function _(){return Math.min(2,Math.max(1,typeof window<`u`&&window.devicePixelRatio||1))}function v(e){return Math.max(600,Math.min(1900,Math.round((Number.isFinite(e)&&e>0?e:1200)*1.15)))}var y=e=>e.file??e.bytes??e.data,b=null,x=null,S=null,C=0;async function w(e,t){let n=y(e);for(;S&&S.key!==n;)await S.promise.catch(()=>{});if(b===n&&x)return x;if(S&&S.key===n)return S.promise;let r=C,o=(async()=>{if(x)try{await x.destroy?.()}catch{}let o=i(e)??await a(e),s=await t.getDocument({data:o.slice(),...f}).promise;if(r!==C){try{await s.destroy?.()}catch{}throw Error(`render doc superseded`)}return x=s,b=n,s})(),s={key:n,promise:o};S=s;try{return await o}finally{S===s&&(S=null)}}async function ee(){C+=1,S=null;let e=x;x=null,b=null;try{await e?.destroy?.()}catch{}}function te(e){return Array.from(e.normalize(`NFKC`)).map(e=>e===``?``:`‘’‛`.includes(e)?`'`:`“”`.includes(e)?`"`:/[‐-―]/.test(e)?`-`:/\s/.test(e)?` `:e.toLowerCase())}async function T(e,t,n,r=720,i=!1,a=[]){let o=await d();if(!o?.getDocument)return null;let s=null;try{let c=await w(e,o);if(t<1||t>c.numPages)return null;s=await c.getPage(t);let l=s.getViewport({scale:1}),u=_(),d=r/l.width*u,f=s.getViewport({scale:d}),p=document.createElement(`canvas`);p.width=Math.ceil(f.width),p.height=Math.ceil(f.height);let m=p.getContext(`2d`);if(!m)return null;await s.render({canvasContext:m,viewport:f}).promise;let h=await s.getTextContent(),g=E(h,n,f,o),v=a.map(e=>E(h,e,f,o)),y=null;if(i||ne(n))try{y=j(await s.getOperatorList(),h,g,f,o)}catch{y=null}return{canvas:p,rects:g,figure:y,alsoRects:v}}catch{return null}finally{s?.cleanup?.()}}function E(e,t,n,r){let i=s(t);if(!i)return[];let a=[];for(let t of h(e.items)){if(typeof t.str!=`string`)continue;let e=D(t,n,r);if(!e)continue;let i=te(t.str),o=i.filter(e=>e.length>0).length||1,s=e.w/o,c=0;for(let t of i)t!==``&&(a.push({ch:t,rect:{x:e.x+s*c,y:e.y,w:s,h:e.h}}),c+=1);a.push({ch:` `,rect:{x:e.x+e.w,y:e.y,w:0,h:e.h}})}let o=[];for(let e=0;e<a.length;e+=1){let t=a[e];if(t.ch===`-`){let t=e+1;for(;t<a.length&&a[t].ch===` `;)t+=1;if(t>e+1){e=t-1;continue}}if(t.ch===` `){let t=o[o.length-1];if(t&&`$€£¥`.includes(t.ch)){let t=e+1;for(;t<a.length&&a[t].ch===` `;)t+=1;if(t<a.length&&/[\d(]/.test(a[t].ch))continue}if(t&&t.ch===` `)continue}o.push(t)}let c=o.map(e=>e.ch).join(``).indexOf(i);return c<0?[]:O(o.slice(c,c+i.length).filter(e=>e.rect.w>0).map(e=>e.rect))}function D(e,t,n){try{let r=n.Util.transform(t.transform,e.transform),i=r[4],a=r[5],o=(e.width||0)*t.scale,s=Math.hypot(r[2],r[3])||10,c=s*1.15;return o<=0?null:{x:i,y:a-s,w:o,h:c}}catch{return null}}function O(e){if(e.length===0)return e;let t=[...e].sort((e,t)=>e.y-t.y||e.x-t.x),n=[];for(let e of t){let t=n[n.length-1];if(t&&Math.abs(t.y-e.y)<t.h*.6&&e.x<=t.x+t.w+t.h){let n=Math.max(t.x+t.w,e.x+e.w);t.x=Math.min(t.x,e.x),t.w=n-t.x,t.y=Math.min(t.y,e.y),t.h=Math.max(t.h,e.h)}else n.push({...e})}return n}function ne(e){return/\b(fig(?:ure|\.)?|table|chart|diagram|graph|plot|schematic|illustration)\b/i.test(e)}function re(e,t,n){let r=n.OPS??{},i=e.fnArray??[],a=e.argsArray??[],o=t.transform,s=[],c=[];for(let e=0;e<i.length;e+=1){let l=i[e];if(l===r.save)s.push(o);else if(l===r.restore)o=s.pop()??t.transform;else if(l===r.transform)o=n.Util.transform(o,a[e]);else if(l===r.paintImageXObject||l===r.paintInlineImage||l===r.paintImageMaskXObject||l===r.paintJpegXObject){let e=o,t=[e[4],e[0]+e[4],e[2]+e[4],e[0]+e[2]+e[4]],n=[e[5],e[1]+e[5],e[3]+e[5],e[1]+e[3]+e[5]],r=Math.min(...t),i=Math.min(...n),a=Math.max(...t)-r,s=Math.max(...n)-i;a>8&&s>8&&c.push({x:r,y:i,w:a,h:s})}}return c}function k(e,t,n){let r=[];for(let i of e.items){if(typeof i.str!=`string`||i.str.trim()===``)continue;let e=D(i,t,n);e&&r.push(e)}return O(r)}function A(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}function j(e,t,n,r,i){let a=re(e,r,i);if(a.length===0||n.length===0)return null;let o=M(n),s=o.x+o.w/2,c=null,l=1/0;for(let e of a){let t=e.x+e.w/2,n=Math.abs(t-s);if(n>Math.max(e.w,o.w))continue;let r=N(e,o)+n*.5;r<l&&(l=r,c=e)}if(!c)return null;let u=k(t,r,i).filter(e=>!A(e,o)),d=P(c,u,o);return!d||d.w<10||d.h<10?null:d}function M(e){let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y)),r=Math.max(...e.map(e=>e.x+e.w)),i=Math.max(...e.map(e=>e.y+e.h));return{x:t,y:n,w:r-t,h:i-n}}function N(e,t){return e.y+e.h<t.y?t.y-(e.y+e.h):t.y+t.h<e.y?e.y-(t.y+t.h):0}function P(e,t,n){let r=e.y,i=e.y+e.h,a=n.y+n.h/2;for(let n of t){let t=n.y+n.h/2;Math.min(e.x+e.w,n.x+n.w)-Math.max(e.x,n.x)<e.w*.3||(t<a&&n.y+n.h>e.y&&t<e.y+e.h/2&&(r=Math.max(r,n.y+n.h)),t>a&&n.y<i&&(i=Math.min(i,n.y)))}return i-r<10?null:{x:e.x,y:r,w:e.w,h:i-r}}var F={holds:{label:`HOLDS`,token:`var(--insight)`},outdated:{label:`OUTDATED`,token:`var(--warning)`},disputed:{label:`DISPUTED`,token:`var(--warning)`},contradicted:{label:`CONTRADICTED`,token:`var(--danger)`},unsupported:{label:`UNSUPPORTED`,token:`#8c90a0`}},I=[`outdated`,`disputed`,`contradicted`,`unsupported`],L=[`holds`,`outdated`,`disputed`,`contradicted`];function R(e,t){let n=c(e,t);if(L.includes(e.verdict)&&!n)return{claimId:e.claimId,verdict:`unsupported`,note:`Nothing in the searched sources backs this up.`};let r=(e.note??``).trim();return{claimId:e.claimId,verdict:e.verdict,note:r||(e.verdict===`unsupported`?`Nothing in the searched sources backs this up.`:`The public record speaks to this.`),...n?{citation:n}:{}}}function z(e,t){let n=l(e);return n.needsKey&&!t?l(`wikipedia`):n}var B=[`holds`,`outdated`,`disputed`,`contradicted`,`unsupported`];function V(e){let t=String(e??``).toLowerCase().trim();return B.includes(t)?t:`unsupported`}function H(e){return`${e.title} ${e.quote}`.replace(/\s+/g,` `).trim().slice(0,200)}function U(e){if(e&&typeof e==`object`)return e;let t=String(e),n=t.indexOf(`{`);if(n<0)return null;let r=0,i=!1,a=!1;for(let e=n;e<t.length;e+=1){let o=t[e];if(i){a?a=!1:o===`\\`?a=!0:o===`"`&&(i=!1);continue}if(o===`"`)i=!0;else if(o===`{`)r+=1;else if(o===`}`&&(--r,r===0))try{return JSON.parse(t.slice(n,e+1))}catch{return null}}return null}function W(e){return(typeof e==`string`?e.trim():``)||void 0}function ie(e){let t=U(e),n=t&&Array.isArray(t.verdicts)?t.verdicts:typeof e==`string`?r(e,`verdicts`):[],i=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=W(t.claimId);n&&i.push({claimId:n,verdict:V(t.verdict),note:W(t.note),citationQuote:W(t.citationQuote),citationUrl:W(t.citationUrl),citationDate:W(t.citationDate)})}return i}var G=`You are a meticulous fact-checker. You judge claims only against the sources given to you and return strict JSON. You never invent a source, a URL, or a quote, and you default to "unsupported" whenever the evidence is thin.`;function K(e,t){return`For each CLAIM below (a verbatim quote pulled from a document), decide how it stands against
|
|
3
|
+
the SOURCES listed for it (short web-search snippets — that is all you have, no full pages).
|
|
4
|
+
|
|
5
|
+
Return ONLY JSON (no prose, no fences):
|
|
6
|
+
{ "verdicts": [ { "claimId": "...", "verdict": "holds|outdated|disputed|contradicted|unsupported",
|
|
7
|
+
"note": "<=120 chars, plain", "citationQuote": "copied VERBATIM from one of that claim's sources",
|
|
8
|
+
"citationUrl": "that source's URL, copied exactly from the list" } ] }
|
|
9
|
+
|
|
10
|
+
Rules:
|
|
11
|
+
- "holds": a source clearly supports the claim. "outdated": a source gives a newer/superseding figure.
|
|
12
|
+
"disputed": credible sources genuinely conflict. "contradicted": a source directly contradicts it.
|
|
13
|
+
"unsupported": the sources don't actually bear on the claim — this is the DEFAULT; when in doubt, pick it.
|
|
14
|
+
- For ANY verdict other than "unsupported" you MUST copy a "citationQuote" word-for-word from ONE of
|
|
15
|
+
that claim's own sources, and copy its "citationUrl" exactly. If you cannot, the verdict is "unsupported".
|
|
16
|
+
- Never invent a source, URL, or quote. Only the snippets above are real. Bias hard toward "unsupported"
|
|
17
|
+
when evidence is thin or only loosely related — do not stretch a weak match into a verdict.
|
|
18
|
+
- "note" is a plain restatement ("the public record shows X" / "a 2024 source reports Y"), never "they lied".
|
|
19
|
+
|
|
20
|
+
CLAIMS AND THEIR SOURCES:
|
|
21
|
+
${e.map(e=>{let n=(t.get(e.id)??[]).map(e=>` - "${e.title}": ${e.snippet} (${e.url})`).join(`
|
|
22
|
+
`);return`[claim ${e.id}] "${e.quote}"\n sources:\n${n}`}).join(`
|
|
23
|
+
|
|
24
|
+
`)}`}async function q(e,t){let n=t.provider??z(t.searchProviderId,t.apiKey),r=e.filter(e=>e.role===`load-bearing`).slice(0,t.maxClaims??12);if(r.length===0)return[];let i=new Map;await Promise.all(r.map(async e=>{let r=await n.search(H(e),{apiKey:t.apiKey,signal:t.signal,limit:t.perClaimResults??4});i.set(e.id,r.map(e=>({title:e.title,url:e.url,snippet:e.snippet})))}));let a=r.filter(e=>(i.get(e.id)?.length??0)>0),s=r.filter(e=>(i.get(e.id)?.length??0)===0).map(e=>({claimId:e.id,verdict:`unsupported`,note:`No live source was found to check this.`}));if(a.length===0)return s;let c=Math.min(4096,Math.max(1400,250+a.length*150)),l;try{l=(await o(t.cfg.provider).generate({system:G,history:[],user:K(a,i),maxTokens:c,temperature:0,format:null,...t.signal?{signal:t.signal}:{}},t.cfg)).raw}catch{for(let e of a)s.push({claimId:e.id,verdict:`unsupported`,note:`Could not reach the fact-checker.`});return s}let u=ie(l),d=new Set;for(let e of u)d.has(e.claimId)||a.some(t=>t.id===e.claimId)&&(d.add(e.claimId),s.push(R(e,i.get(e.claimId)??[])));for(let e of a)d.has(e.id)||s.push({claimId:e.id,verdict:`unsupported`,note:`The sources did not clearly speak to this.`});return s}var J=4,Y=3,ae=2,X={contradicted:4,disputed:3,outdated:2,unsupported:1,holds:0},Z={contradicts:`contradicts`,"in-tension":`is in tension with`,agrees:`agrees with`};function Q(e,t){let n=e.replace(/\s+/g,` `).trim();if(n.length<=t)return n;let r=n.slice(0,t),i=r.lastIndexOf(` `);return(i>t*.6?r.slice(0,i):r).trimEnd()+`…`}function oe(e){return Math.max(2600,Math.min(7e3,Math.round(e.length*60)+1200))}function se(e){let t=new Map;for(let n of e)t.set(n.a,(t.get(n.a)??0)+1),t.set(n.b,(t.get(n.b)??0)+1);return t}function ce(e,t,n){if(e.length===0)return[];let r=new Map(e.map(e=>[e.id,e])),i=se(t),a=[],o=new Set,s=0,c=(e,t,n,r)=>{a.push({id:`b${s+=1}`,kind:e,claimIds:t,caption:n,spoken:r,dwellMs:oe(r)});for(let e of t)o.add(e)},l=e.filter(e=>e.role===`load-bearing`),u=[...l.length>0?l:e].sort((e,t)=>(i.get(t.id)??0)-(i.get(e.id)??0)||e.page-t.page||e.id.localeCompare(t.id))[0];c(`open`,[u.id],`The case rests on this — “${Q(u.quote,96)}” · p.${u.page}`,`The whole case rests on this, on page ${u.page}. ${Q(u.quote,220)}`);let d={contradicts:0,"in-tension":1,agrees:2},f=t.filter(e=>e.relation!==`agrees`&&r.has(e.a)&&r.has(e.b)).sort((e,t)=>d[e.relation]-d[t.relation]).slice(0,J);for(let e of f){let t=r.get(e.a),n=r.get(e.b),i=e.crossDoc?` (across documents)`:``;c(`tension`,[t.id,n.id],`p.${t.page}: “${Q(t.quote,52)}” — ${Z[e.relation]}${i} — p.${n.page}: “${Q(n.quote,52)}”`,`On page ${t.page}, the document says ${Q(t.quote,140)}. But it ${Z[e.relation]} page ${n.page}: ${Q(n.quote,140)}.`)}let p=e.map(e=>({c:e,v:n.get(e.id)})).filter(e=>!!e.v&&X[e.v]>=2&&!o.has(e.c.id)).sort((e,t)=>X[t.v]-X[e.v]||e.c.page-t.c.page).slice(0,Y);for(let{c:e,v:t}of p){let n=F[t].label;c(`verdict`,[e.id],`${n} — “${Q(e.quote,72)}” · p.${e.page}`,`The public record marks this ${n.toLowerCase()}: ${Q(e.quote,160)}`)}let m=e.filter(e=>(e.role===`context`||e.kind===`definition`)&&!o.has(e.id)).sort((e,t)=>e.page-t.page).slice(0,ae);for(let e of m)c(`context`,[e.id],`Context — ${Q(e.title,64)} · p.${e.page}`,`For context: ${e.title}.`);let h=e.map(e=>({c:e,v:n.get(e.id)})).filter(e=>!!e.v&&X[e.v]>=2).sort((e,t)=>X[t.v]-X[e.v]||e.c.page-t.c.page)[0];if(h){let e=F[h.v].label;c(`close`,[h.c.id],`The weak point — ${e}: “${Q(h.c.quote,68)}” · p.${h.c.page}`,`So the weakest point: the public record marks this ${e.toLowerCase()} — ${Q(h.c.quote,150)}`)}else if(f.length>0){let e=f[0],t=r.get(e.a),n=r.get(e.b);c(`close`,[t.id,n.id],`The weak point — the document contradicts itself: p.${t.page} vs p.${n.page}`,`And the weakest point is that the document contradicts itself, between page ${t.page} and page ${n.page}.`)}else{let e=n.get(u.id)===`holds`;c(`close`,[u.id],e?`Nothing here contradicts itself — the case rests on this one claim, and it holds.`:`Nothing here contradicts itself — the whole case rests on this one claim.`,e?`Nothing here contradicts itself. The case rests entirely on that one claim — and the public record backs it.`:`Nothing here contradicts itself. The whole case rests on that one claim.`)}return a}var le={forecast:`#5468e0`,stat:`#12a37a`,finding:`#1f9d7e`,risk:`#e0474d`,definition:`#5a6678`,method:`#cf8327`,diagram:`#5468e0`},$=`#6a4fd0`;function ue(e){return le[e]}var de={"load-bearing":`The document leans on this`,supporting:`Supporting evidence`,context:`Context`};function fe(e){return`${de[e.role]} — ${e.title}`}function pe(e){let t=e.role===`load-bearing`,n=e.kind===`forecast`;if(!(!t&&!n))return{...t?{star:t}:{},...n?{question:n}:{}}}var me={forecast:`forecast`,stat:`figure`,finding:`finding`,risk:`risk`,definition:`definition`,method:`method`,diagram:`figure`},he={"load-bearing":e=>`The ${e} the document leans on`,supporting:e=>`Supporting ${e}`,context:e=>`Context — ${e}`};function ge(e){return`${he[e.role](me[e.kind])} · page ${e.page}`}export{ue as a,I as c,ee as d,g as f,ge as i,F as l,T as m,pe as n,ce as o,v as p,fe as r,q as s,$ as t,_ as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{g as e,h as t,m as n,p as r,y as i}from"./index-LiHcEJt_.js";var a=240,o=5e3,s=45,c=8e3,l=50,u=2.5,d=.25,f=1500;function p(e){if(e.length===0)return 0;let t=[...e].sort((e,t)=>e-t),n=t.length>>1;return t.length%2?t[n]:(t[n-1]+t[n])/2}function m(e,t){if(e.length<s)return`full`;let n=p(e),r=Math.max(l,n*u),i=0;for(let t of e)t>r&&i++;return i/e.length>d||t>f?`lite`:`full`}function h(s){let l={stop:()=>{}};if(typeof window>`u`||typeof requestAnimationFrame!=`function`||typeof performance>`u`||t()!==`auto`)return l;let u=e();if(u&&u.sig===r()&&u.tier===`lite`&&n()===`lite`)return l;let d=!1,f=0,p=0,h=null,g=[],_=0,v=0,y=0,b=!1,x=()=>{d=!0,f&&cancelAnimationFrame(f),p&&clearTimeout(p),h&&=(h.disconnect(),null),window.removeEventListener(`visibilitychange`,E)},S=e=>{x(),i(e),s(e)},C=()=>{g.length=0,y=0,_=0,v=performance.now()},w=()=>{if(m(g,y)===`lite`){if(b){S(`lite`);return}b=!0,C();return}S(`full`)},T=e=>{if(!d){if(document.hidden){f=requestAnimationFrame(T),_=0;return}_!==0&&g.push(e-_),_=e,!((g.length>=a||e-v>=o)&&(w(),d))&&(f=requestAnimationFrame(T))}};function E(){_=0}return p=setTimeout(()=>{if(!d){if(typeof PerformanceObserver==`function`)try{h=new PerformanceObserver(e=>{for(let t of e.getEntries())y+=t.duration}),h.observe({entryTypes:[`longtask`]})}catch{h=null}window.addEventListener(`visibilitychange`,E),C(),f=requestAnimationFrame(T)}},c),{stop:x}}export{h as startPerfProbe};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{O as e,X as t,a as n,c as r,d as i,o as a,p as o,u as s}from"./store-
|
|
1
|
+
import{O as e,X as t,a as n,c as r,d as i,o as a,p as o,u as s}from"./store-Ba9vzL4H.js";import{t as c}from"./providers-0DthJW_I.js";import{l,n as u}from"./useLiveConfig-B4CmBiAK.js";import{n as d}from"./useDashboardLoop-ifcuVRo-.js";var f=`Rewrite the user's question into ONE self-contained search query meant to be re-asked verbatim on a recurring schedule to fetch the CURRENT state of the same thing — never a one-time answer to today's exact wording. Name the specific subject explicitly (a team, a ticker, a tournament and round) so the query stands alone without this conversation for context. Keep language like "live" or "in progress" when the tracked thing genuinely is a live/current-moment state (e.g. a live score) — dropping it would lose exactly what matters. Return ONLY the rewritten query text — no quotes, no preamble, no explanation.`;async function p(e,t,n){let r=e.trim();if(!r)return r;try{let e=await c(n.provider).generate({system:f,history:[],user:`Original ask: "${r}"\nThis produces a "${t}" block.`,maxTokens:120,temperature:.2,thinkingLevel:`low`},n);return(typeof e.raw==`string`?e.raw.trim().replace(/^["']+|["']+$/g,``):``)||r}catch(e){return console.error(`[dashboards] refineRefreshQuery failed, keeping the raw ask`,e),r}}var m=4,h=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function g(e){let t=0;for(;t<e.length&&h.has(e[t].block.type);)t+=1;return t}function _(c){let f=(Array.isArray(c.block)?c.block:[c.block]).filter(e=>e.type!==`blanks`).slice(0,m);if(f.length===0)return null;let h=c.now??Date.now(),_=c.question?.trim()||void 0,v=f.map(e=>r(e,c.fromSource??`pin`,_)),y,b;if(typeof c.target==`string`){let e=o(c.target);if(!e)return null;y=e.id,b=e.title,a(y,v,{at:g(e.widgets),...c.source?{source:c.source}:{}})}else{let e=s({title:c.target.new.title,question:_,now:h});e.cadence={data:c.target.new.cadence,ai:`manual`},e.nextDataAt=t(e.cadence,h),y=e.id,b=e.title,n(e),a(y,v,c.source?{source:c.source}:{})}if(c.firstCheck!==!1&&(i(y,h),d(y)),_){let t=l(u());if(t.apiKey){let n=v.map(e=>e.id);p(_,f[0].type,t).then(t=>{let r=t.trim();r&&r!==_&&e(y,n,r)})}}return{dashboardId:y,title:b}}export{_ as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.pin-scrim{z-index:80;background:color-mix(in oklab, var(--text-primary) 28%, transparent);-webkit-backdrop-filter:var(--glass-blur,blur(2px));backdrop-filter:var(--glass-blur,blur(2px));place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pin-sheet{border-radius:var(--r-lg);background:var(--surface-elevated);border:1px solid var(--line);width:min(400px,100%);max-height:min(70vh,520px);box-shadow:var(--shadow-modal);padding:18px;overflow:auto}.pin-head{flex-direction:column;gap:3px;margin-bottom:12px;display:flex}.pin-eyebrow{font-family:var(--font-data);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.pin-subject{color:var(--text-primary);font-size:15px;font-weight:600}.pin-list{flex-direction:column;gap:4px;display:flex}.pin-row{border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text-primary);transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);background:0 0;border:1px solid #0000;align-items:center;gap:11px;padding:9px 10px;display:flex}.pin-row:hover,.pin-row:focus-visible{background:var(--surface-glass-strong);border-color:var(--line);outline:none}.pin-row-ic{border-radius:var(--r-sm);background:color-mix(in oklab, var(--presence) 10%, transparent);width:30px;height:30px;color:var(--presence);flex:none;place-items:center;display:grid}.pin-row-ic svg{width:15px;height:15px}.pin-row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pin-row-title{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.pin-row-sub{color:var(--text-muted);font-size:11.5px}.pin-row-cad{font-family:var(--font-data,var(--font));letter-spacing:.1em;background:color-mix(in oklab, var(--cad,var(--presence)) 14%, transparent);color:var(--cad,var(--presence));border-radius:8px;flex:none;padding:3px 8px;font-size:9px;font-weight:700}.pin-row-cad--fast{--cad:var(--warning)}.pin-row-cad--steady{--cad:var(--presence)}.pin-row-cad--calm{--cad:var(--insight)}.pin-new{border-style:dashed;border-color:color-mix(in oklab, var(--presence) 35%, var(--line))}.pin-new-step{flex-direction:column;gap:14px;display:flex}.pin-name-field{flex-direction:column;gap:5px;display:flex}.pin-name-input{width:100%;font:inherit;color:var(--text-primary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 11px;font-size:13.5px}.pin-name-input:focus-visible{border-color:var(--presence);outline:none}.pin-plan-label{font-family:var(--font-data,var(--font));letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:600}.pin-plan-cadence{flex-direction:column;gap:6px;display:flex}.pin-cadence-seg{flex-wrap:wrap;gap:7px;display:flex}.pin-cadence-opt{font-family:var(--font-data,var(--font));letter-spacing:.06em;color:var(--text-secondary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;padding:7px 12px;font-size:10.5px;font-weight:700;transition:color .14s,background .14s,border-color .14s}.pin-cadence-opt:hover{border-color:var(--presence)}.pin-cadence-opt.is-active{color:var(--on-presence,var(--surface-elevated));background:var(--presence);border-color:var(--presence)}.pin-plan-estimate{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.pin-plan-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.pin-plan-confirm{border-radius:var(--r-full);background:var(--presence);color:var(--on-presence,var(--surface-elevated));font:inherit;cursor:pointer;border:none;align-items:center;gap:7px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex}.pin-plan-confirm:disabled{opacity:.6;cursor:default}.pin-secondary{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px}.pin-secondary:disabled{opacity:.5;cursor:default}.dash-add-anchor{display:inline-flex;position:relative}.dash-palette{z-index:6;background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);min-width:200px;box-shadow:var(--shadow-modal);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.dash-edit-bar>.dash-palette{right:14px}.dash-palette-item{text-align:left;color:var(--text-primary);border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-family:var(--font);background:0 0;border:none;padding:9px 11px}.dash-palette-item:hover,.dash-palette-item:focus-visible{background:var(--surface-glass);outline:none}.dash-palette-lead{color:var(--presence);font-weight:600}.dash-ptrack{flex-direction:column;gap:9px;width:248px;padding:4px 5px 5px;display:flex}.dash-ptrack-head{align-items:center;gap:7px;display:flex}.dash-ptrack-back{font:inherit;color:var(--text-secondary);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:2px 4px;font-size:13px}.dash-ptrack-back:hover{color:var(--text-primary)}.dash-ptrack-kicker{font-family:var(--font-data,var(--font));letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:700}.dash-ptrack-form{flex-direction:column;gap:8px;display:flex}.dash-ptrack-input{width:100%;font:inherit;color:var(--text-primary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:12.5px}.dash-ptrack-input:focus-visible{border-color:var(--presence);outline:none}.dash-ptrack-go{border-radius:var(--r-full);background:var(--presence);color:var(--on-presence,var(--surface-elevated));font:inherit;cursor:pointer;border:none;align-self:flex-end;padding:7px 12px;font-size:12px;font-weight:600}.dash-ptrack-go:disabled{opacity:.6;cursor:default}.dash-ptrack-err{color:var(--warning);margin:0;font-size:11.5px;line-height:1.45}.dash-ptrack-gate{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.dash-ptrack-gate a{color:var(--presence)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,t as n}from"./http-Lar_UMKb.js";import{t as r}from"./providers-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,t as n}from"./http-Lar_UMKb.js";import{t as r}from"./providers-0DthJW_I.js";import{t as i}from"./json-B0N3XRZU.js";import{t as a}from"./now-C9-UAzTC.js";var o=e({PLAN_BLOCK_TYPES:()=>s,answerOnce:()=>g,coercePlan:()=>p,fallbackPlan:()=>m,planTracker:()=>h}),s=new Set([`chart`,`scoreboard`,`standings`,`forecast`,`list`,`timeline`]),c=new Set([`15min`,`hourly`,`6h`,`daily`]),l=new Set([`chart`,`scoreboard`,`forecast`,`timeline`]),u=2592e6;function d(e,n){let r=t(e),i=typeof r.start==`string`?Date.parse(r.start):NaN,a=typeof r.end==`string`?Date.parse(r.end):NaN;if(!(!Number.isFinite(i)||!Number.isFinite(a)||a<=i)&&!(i<n-u||i>n+u))return{startAt:i,endAt:a,label:typeof r.label==`string`?r.label.trim().slice(0,60):``}}function f(e,n){let r=t(e),i=typeof r.at==`string`?Date.parse(r.at):NaN;if(Number.isFinite(i)&&!(i<n-6e4||i>n+u))return{at:i,label:typeof r.label==`string`?r.label.trim().slice(0,60):``}}function p(e,r,i=Date.now()){let a=t(e),o=[];for(let e of n(a.metrics).slice(0,2)){let n=t(e);typeof n.label!=`string`||!n.label.trim()||typeof n.query!=`string`||!n.query.trim()||o.push({label:n.label.trim(),query:n.query.trim(),...typeof n.unit==`string`&&n.unit.trim()?{unit:n.unit.trim()}:{}})}let u=[];for(let e of n(a.widgets).slice(0,3)){let n=t(e),r=typeof n.type==`string`?n.type.trim().toLowerCase():``;s.has(r)&&(typeof n.query!=`string`||!n.query.trim()||u.push({blockType:r,query:n.query.trim(),span:l.has(r)?2:1}))}let p=a.kind===`static`?`static`:`live`;if(p===`live`&&o.length===0&&u.length===0)return null;let m=typeof a.title==`string`&&a.title.trim()?a.title.trim().slice(0,80):r.slice(0,80),h=c.has(a.cadence)?a.cadence:`manual`,g=p===`static`&&typeof a.staticReason==`string`&&a.staticReason.trim()?a.staticReason.trim().slice(0,160):void 0,_=d(a.window,i),v=_?void 0:f(a.oneShot,i);return{title:m,metrics:o,widgets:p===`static`&&o.length===0&&u.length===0?[{blockType:`list`,query:r,span:2}]:u,cadence:h,kind:p,...g?{staticReason:g}:{},..._?{window:_}:{},...v?{oneShotAt:v.at,oneShotLabel:v.label}:{}}}function m(e){return{title:e.slice(0,80),metrics:[],widgets:[{blockType:`list`,query:e,span:2}],cadence:`manual`,kind:`live`}}async function h(e,t){let n=e.trim();if(!n)return m(e);try{let e=await r(t.provider).generate({system:a()+` You design a live-tracking dashboard from one sentence of what the user wants to follow. Return ONLY JSON: {"title": string, "kind": "live"|"static", "staticReason"?: string, "metrics": [{"label": string, "query": string, "unit"?: string}], "widgets": [{"type": string, "query": string}], "cadence": "15min"|"hourly"|"6h"|"daily", "window"?: {"start": ISO string, "end": ISO string, "label": string}, "oneShot"?: {"at": ISO string, "label": string}}. RULES: (1) "metrics" are ONLY for things a single number genuinely captures (a price, a temperature, a percentage) — 0-2 of them, each with a self-contained search query for its CURRENT value. Skip metrics entirely when no single number is the point. (2) "widgets" carry everything richer — pick the shape that fits the data: "scoreboard" for game results, "standings" for a league table, "forecast" for weather outlooks, "timeline" for dated events/schedules, "chart" for a numeric series over time, "list" for headlines/updates/anything else. 1-3 widgets, each with a self-contained standing query that (a) names the exact subject so it works with zero conversation context, (b) explicitly asks for the LATEST/CURRENT state as of the moment it is asked — keeping words like "live" or "in progress" when the tracked thing is a live state, and (c) will still make sense re-asked verbatim tomorrow and next month (never bake in a specific date). (3) "cadence" matches how fast the thing really changes: "15min" for market prices and live games, "hourly" for weather and breaking situations, "6h" for slow-moving sagas, "daily" for everything else. (4) "title" is a short, human dashboard name — the subject, not a sentence. Plan the MINIMUM set that covers the ask — no filler. (5) "kind": "static" ONLY when the ask is a fact that genuinely will not change (a mountain's height, a historical date, a physical constant) — give a one-line "staticReason" and still fill in a reasonable live plan as a fallback in case they track it anyway. Default "live" whenever there is any real chance the answer moves. (6) YOU HAVE NO SEARCH ACCESS RIGHT NOW — only set "window" or "oneShot" when the user's OWN WORDS state a concrete date/time (e.g. "the game starts at 7pm" or "check after the Fed meeting on the 31st"); NEVER invent or guess a time you were not given. Omit both fields entirely otherwise — a real live-event window can still be discovered later, during an actual search-grounded check. (7) "window" bounds a recurring cadence to a live event's span (poll fast only while it is actually happening); "oneShot" is a single check at one moment instead of a recurring cadence — use at most one of the two, and only from an explicit user time.`,history:[],user:`Track: ${n}`,maxTokens:600,temperature:.2,thinkingLevel:`low`,format:{type:`object`,properties:{title:{type:`string`},kind:{type:`string`},staticReason:{type:`string`},metrics:{type:`array`,items:{type:`object`,properties:{label:{type:`string`},query:{type:`string`},unit:{type:`string`}},required:[`label`,`query`]}},widgets:{type:`array`,items:{type:`object`,properties:{type:{type:`string`},query:{type:`string`}},required:[`type`,`query`]}},cadence:{type:`string`},window:{type:`object`,description:`ONLY when the user's own words stated a concrete time — never invented.`,properties:{start:{type:`string`},end:{type:`string`},label:{type:`string`}}},oneShot:{type:`object`,description:`ONLY when the user's own words stated a concrete time — never invented.`,properties:{at:{type:`string`},label:{type:`string`}}}},required:[`title`,`widgets`,`cadence`]}},t);return p(i(e.raw),n)??m(n)}catch(e){return console.error(`[dashboards] planTracker failed, falling back to a plain list tracker`,e),m(n)}}async function g(e,o){let s=e.trim();if(!s)return null;try{let e=await r(o.provider).generate({system:a()+` Answer plainly and concretely in 1-3 sentences, using web search. Return ONLY JSON: {"answer": string, "sources": [{"title": string, "url": string}]}. CITE every real source URL actually relied on; omit "sources" entirely if you used no search. Never invent a source or a fact you could not verify.`,history:[],user:s,maxTokens:500,temperature:.15,thinkingLevel:`low`,tools:{webSearch:!0},format:{type:`object`,properties:{answer:{type:`string`},sources:{type:`array`,items:{type:`object`,properties:{title:{type:`string`},url:{type:`string`}},required:[`title`,`url`]}}},required:[`answer`]}},o),c=t(i(e.raw)),l=typeof c.answer==`string`?c.answer.trim():``;if(!l)return null;let u=[];for(let e of n(c.sources)){let n=t(e);typeof n.title==`string`&&typeof n.url==`string`&&u.push({title:n.title,url:n.url})}let d=e.sources?.length?e.sources:u;return{text:l,sources:d,grounded:d.length>0}}catch(e){return console.error(`[dashboards] answerOnce failed`,e),null}}export{o as n,h as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DeHZSEgm.js";import{lt as t}from"./index-LiHcEJt_.js";var n=t(),r=e();function i({accent:e,children:t}){return typeof document>`u`?null:(0,n.createPortal)((0,r.jsx)(`div`,{className:`ov-root`,style:{"--ov-c":e},children:t}),document.body)}export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./index-
|
|
1
|
+
import{a as e}from"./index-LiHcEJt_.js";import{t}from"./providers-0DthJW_I.js";import{l as n,n as r}from"./useLiveConfig-B4CmBiAK.js";var i=2e4,a=2e3,o=15e3,s=0,c=!1;function l(o={}){if(!e())return;let c=Date.now();if(!(!o.force&&c-s<i)){s=c;try{let e=n(r()),i=t(e.provider),a=i.warm?i.warm(e):i.probe(e);Promise.resolve(a).catch(()=>{})}catch{}try{let e=new AbortController,t=setTimeout(()=>e.abort(),a);fetch(`/tts/health`,{method:`GET`,signal:e.signal}).then(e=>{e.ok&&u()}).catch(()=>{}).finally(()=>clearTimeout(t))}catch{}}}function u(){if(!c){c=!0;try{let e=new AbortController,t=setTimeout(()=>e.abort(),o);fetch(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:`Hello.`,voice:`af_heart`,response_format:`pcm`}),signal:e.signal}).then(async t=>{await t.body?.getReader().read(),e.abort()}).catch(()=>{}).finally(()=>clearTimeout(t))}catch{}}}export{l as prewarmLive};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./http-Lar_UMKb.js";import{t as s}from"./blockTypes-DUDdP3pB.js";import"./info-CiqHR5cs.js";import{g as c,m as l}from"./attachments-BW-vki-E.js";import{t as u}from"./route-CMdTFx0P.js";var d=[...s];function f(e=d,t){return{type:`object`,properties:{narration:{type:`string`,description:`ONE warm spoken sentence. Emit this FIRST so it can be spoken immediately.`},title:{type:`string`,description:`A short headline for the answer.`},sub:{type:`string`,description:`One short supporting line.`},blocks:{type:`array`,minItems:t===`brief`?1:3,maxItems:18,items:{type:`object`,properties:{type:{type:`string`,enum:[...e]},props:{type:`object`,description:`Fields for this block type.`}},required:[`type`,`props`]}},track:{type:`object`,description:`OMIT unless this answer is a rare ongoing metric worth a living dashboard.`,properties:{score:{type:`number`,description:`0–100: how worth-tracking-over-time this is.`},reason:{type:`string`,description:`Short why, e.g. "weekly burn rate, ongoing".`}},required:[`score`,`reason`]},sources:{type:`array`,description:`OMIT unless this turn used web-search results. Real source URLs actually relied on — never invented.`,items:{type:`object`,properties:{title:{type:`string`},url:{type:`string`}},required:[`title`,`url`]}},causal:{type:`boolean`,description:`true ONLY when this answer explains a mechanism — causes producing an outcome. false for lookups, procedures, comparisons, calculations, or anything you were asked to write.`}},required:[`narration`,`title`,`sub`,`blocks`]}}function p(e){return e.length?`\n\n[The user attached ${e.map(e=>`"${e.name}"`).join(`, `)}, which this model can't read directly. Answer from the question text, and say if you'd need its contents.]`:``}function m(e,t){if(!t?.length)return e;let n=[],r=[];for(let e of t)l(e)?n.push({type:`image`,source:{type:`base64`,media_type:e.mime,data:e.data}}):c(e)?n.push({type:`document`,source:{type:`base64`,media_type:e.mime,data:e.data}}):r.push(e);return n.push({type:`text`,text:e+p(r)}),n}function h(e,t){if(!t?.length)return e;let n=t.filter(l),r=t.filter(e=>!l(e));if(!n.length)return e+p(r);let i=n.map(e=>({type:`image_url`,image_url:{url:`data:${e.mime};base64,${e.data}`}}));return i.push({type:`text`,text:e+p(r)}),i}function g(e,t){let n=(t??[]).filter(l),r=(t??[]).filter(e=>!l(e)),i=n.map(e=>({type:`input_image`,detail:`auto`,image_url:`data:${e.mime};base64,${e.data}`}));return i.push({type:`input_text`,text:e+p(r)}),i}function _(e,t){if(!t?.length)return[{text:e}];let n=[],r=[];for(let e of t)l(e)||c(e)?n.push({inlineData:{mimeType:e.mime,data:e.data}}):r.push(e);return n.push({text:e+p(r)}),n}function v(e,t){return t?.length?e+p(t):e}var y=`/llm/anthropic`,b=`/v1/messages`,x=`/v1/models`,S=`2023-06-01`,C=6e4,w=4e3;function T(e){return{"Content-Type":`application/json`,"x-api-key":e.apiKey??``,"anthropic-version":S,"anthropic-dangerous-direct-browser-access":`true`}}function E(e){return/haiku/i.test(e)?`web_search_20250305`:`web_search_20260209`}var D={id:`anthropic`,capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:2e5,strengthTier:`frontier`,nativeWebSearch:!0},async probe(e){try{let t=e.baseUrl??y,r=await n(`${t}${x}`,{method:`GET`,headers:T(e)},w);if(!r.ok)return{ok:!1,model:!1,statusCode:r.status};let i=await n(`${t}${b}`,{method:`POST`,headers:T(e),body:JSON.stringify({model:e.model,max_tokens:1,messages:[{role:`user`,content:`ping`}]})},w);return{ok:i.ok,model:i.ok,statusCode:i.status}}catch{return{ok:!1,model:!1}}},async warm(e){try{let t=e.baseUrl??y;await n(`${t}${x}`,{method:`GET`,headers:T(e)},w)}catch{}},async generate(o,s,c){let l=s.baseUrl??y,u=o.systemBase??o.system,d=o.systemBase?o.system.slice(u.length).trimStart():``,p={type:`ephemeral`,ttl:`1h`},h=[{type:`text`,text:u,cache_control:o.systemBase?p:{type:`ephemeral`}}],g=o.history.length-1,_=o.history.map((e,t)=>o.systemBase&&t===g?{role:e.role,content:[{type:`text`,text:e.content,cache_control:p}]}:e),v=m(o.user,o.attachments),x=d?[{type:`text`,text:d},...typeof v==`string`?[{type:`text`,text:v}]:v]:v,S=o.thinkingLevel===`medium`||o.thinkingLevel===`high`,w=o.format===void 0&&!!o.blockTypes?.length,D=o.format===void 0?w?f(o.blockTypes,o.complexity):null:o.format,O=!!o.tools?.webSearch,k=await n(`${l}${b}`,{method:`POST`,headers:T(s),body:JSON.stringify({model:s.model,max_tokens:o.maxTokens??1024,temperature:S?1:o.temperature??.3,...S?{thinking:{type:`adaptive`,display:`summarized`}}:{},system:h,messages:[..._,{role:`user`,content:x}],...D?{output_config:{format:{type:`json_schema`,schema:D}}}:{},...O?{tools:[{type:E(s.model),name:`web_search`,max_uses:5}]}:{},stream:!0})},C,o.signal);if(!k.ok)throw Error(`anthropic ${k.status}${await e(k)}`);let A=``,j,M=new Map;await r(k,e=>{let n=t(e),r=a(n.type);if(r===`content_block_delta`){let e=t(n.delta),r=a(e.text);r&&(A+=r,c?.(r));let i=t(e.citation),o=a(i.url);o&&!M.has(o)&&M.set(o,{title:a(i.title)||o,url:o})}else if(r===`message_start`){let e=t(t(n.message).usage);j={input:i(e.input_tokens)+i(e.cache_read_input_tokens)+i(e.cache_creation_input_tokens),output:i(e.output_tokens),cachedInput:i(e.cache_read_input_tokens)}}else if(r===`message_delta`){let e=t(n.usage);e.output_tokens!==void 0&&(j={input:j?.input??0,cachedInput:j?.cachedInput??0,output:i(e.output_tokens)})}});let N=M.size?[...M.values()]:void 0;try{return{raw:JSON.parse(A),...N?{sources:N}:{},...j?{usage:j}:{}}}catch{return{raw:A,...N?{sources:N}:{},...j?{usage:j}:{}}}}},O=6e4,k=4e3,A=18e4,j=3e5;function M(e){return/(?:^|\/)(?:o[1-9]|gpt-5)/i.test(e)}function N(e){return/(?:^|\/)gpt-5/i.test(e)}function P(e,t){return e.thinkingLevel===`minimal`&&e.maxTokens!==void 0&&!e.blockTypes?.length&&N(t)}function F(e,t){let n=t.code,r=typeof n==`number`?n:Number(a(n))||void 0,i=a(t.type),o=typeof n==`string`?n:``,s=a(t.message)||`request failed`,c=`${i} ${o} ${s}`;return`${e} ${r??(/invalid.?api.?key|unauthorized|authentication/i.test(c)?401:/insufficient.?quota|resource.?exhausted|rate.?limit/i.test(c)?429:void 0)??``} ${s}`.trim()}function I(s){let{id:c,proxyBase:l,apiBase:d=``,capabilities:f,extraHeaders:p,extraBody:m,webSearchTool:g,modelListExhaustive:_=!0,cacheSystemPrefix:y=!1}=s,b=`${d}/v1/chat/completions`,x=`${d}/v1/models`;function S(e){return{"Content-Type":`application/json`,Authorization:`Bearer ${e.apiKey??``}`,...p}}return{id:c,capabilities:f,async probe(e){try{let r=e.baseUrl??l,i=await n(`${r}${x}`,{method:`GET`,headers:S(e)},k);if(!i.ok)return{ok:!1,model:!1,statusCode:i.status};let s=await i.json(),c=o(t(s).data).map(e=>a(t(e).id)),u=c.length===0||c.includes(e.model);return{ok:!0,model:!_||u}}catch{return{ok:!1,model:!1}}},async generate(s,d,p){let _=d.baseUrl??l,x=g&&s.tools?.webSearch?g():void 0,C=M(d.model),w=!x&&P(s,d.model),T=s.systemBase,E=!!T&&s.system.startsWith(T),D=E?T:s.system,k=E?s.system.slice(T.length).trim():``,N=y&&E?{role:`system`,content:[{type:`text`,text:D,cache_control:{type:`ephemeral`}}]}:{role:`system`,content:D},I=e=>k?Array.isArray(e)?[{type:`text`,text:k},...e]:`${k}\n\n${e}`:e,L=new AbortController,R=setTimeout(()=>L.abort(),u(d.model)?j:A),z=s.signal?AbortSignal.any([s.signal,L.signal]):L.signal;try{let l=await n(`${_}${b}`,{method:`POST`,headers:S(d),body:JSON.stringify({...m??{},model:d.model,...C?{max_completion_tokens:w?s.maxTokens??1024:Math.max(s.maxTokens??1024,1500),reasoning_effort:w?`minimal`:`low`}:{max_tokens:s.maxTokens??1024,temperature:s.temperature??.3},response_format:{type:`json_object`},stream:!0,stream_options:{include_usage:!0},...x?{tools:[x]}:{},messages:[N,...s.history,{role:`user`,content:f.vision?I(h(s.user,s.attachments)):I(v(s.user,s.attachments))}]})},O,z);if(!l.ok)throw Error(`${c} ${l.status}${await e(l)}`);let u=``,g,y=!1,T=new Map,E;try{await r(l,e=>{let n=t(e);if(n.error)return E=F(c,t(n.error)),!0;let r=t(n.usage);if((r.prompt_tokens!==void 0||r.completion_tokens!==void 0)&&(g={input:i(r.prompt_tokens),output:i(r.completion_tokens),cachedInput:i(t(r.prompt_tokens_details).cached_tokens)},y)||y)return!0;let s=t(o(n.choices)[0]),l=t(s.delta),d=a(l.content);d&&(u+=d,p?.(d));let f=a(l.reasoning)||a(l.reasoning_content);if(f&&p?.(f,{reasoning:!0}),x)for(let e of o(l.annotations)){let n=t(e);if(a(n.type)===`url_citation`){let e=t(n.url_citation),r=a(e.url);r&&!T.has(r)&&T.set(r,{url:r,title:a(e.title)||r})}}if(a(s.finish_reason))return y=!0,g?!0:void 0})}catch(e){if(!y||!u)throw e}if(E)throw Error(E);let D=T.size?[...T.values()]:void 0;return{raw:u,...D?{sources:D}:{},...g?{usage:g}:{}}}finally{clearTimeout(R)}}}}var L=6e4,R=4e3,z=3;function B(e,t){let n=Number(e.headers.get(`retry-after`));return Number.isFinite(n)&&n>0?Math.min(n*1e3,1e4):Math.min(800*2**t,8e3)}function V(e,t){return new Promise((n,r)=>{if(t?.aborted)return r(new DOMException(`Aborted`,`AbortError`));let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))},{once:!0})})}async function H(e){try{let t=await e.json(),n=typeof t.error?.message==`string`?t.error.message:``,r=typeof t.error?.param==`string`?` (param: ${t.error.param})`:``;return n?` — ${n.slice(0,200)}${r}`:``}catch{return``}}function U(e){let{id:s,proxyBase:c,apiBase:l=``,capabilities:u,extraHeaders:d,webSearchTool:p,forceSearchToolChoice:m}=e,h=`${l}/v1/responses`,_=`${l}/v1/models`;function v(e){return{"Content-Type":`application/json`,Authorization:`Bearer ${e.apiKey??``}`,...d}}return{id:s,capabilities:u,async probe(e){try{let r=e.baseUrl??c,i=await n(`${r}${_}`,{method:`GET`,headers:v(e)},R);if(!i.ok){let e=i.status;if(s===`grok`&&e===400)try{(await i.clone().json()).code===`invalid-argument`&&(e=401)}catch{}return{ok:!1,model:!1,statusCode:e}}let l=await i.json(),u=o(t(l).data).map(e=>a(t(e).id));return{ok:!0,model:u.length===0||u.includes(e.model)}}catch{return{ok:!1,model:!1}}},async generate(e,l,d){let _=l.baseUrl??c,y=p&&e.tools?.webSearch?p():void 0,b=M(l.model),x=e.history.map(e=>({role:e.role,content:e.content})),S=u.vision?g(e.user,e.attachments):[{type:`input_text`,text:e.user}],C=e.systemBase,w=C&&e.system.startsWith(C)?C:e.system,T=C&&e.system.startsWith(C)?e.system.slice(C.length).trim():``,E=T?[{type:`input_text`,text:T},...S]:S,D=e.format===void 0&&!!e.blockTypes?.length,O=e.format===void 0?D?f(e.blockTypes,e.complexity):null:e.format,k=y?O?{type:`json_schema`,name:D?`live_canvas`:`live_json`,schema:O,strict:!1}:{type:`text`}:{type:`json_object`},A=k.type===`text`?[]:[{role:`system`,content:`Respond in JSON.`}],j=!y&&P(e,l.model),N=y&&!D?e.thinkingLevel===`high`?`high`:`medium`:j?`minimal`:`low`,I={method:`POST`,headers:v(l),body:JSON.stringify({model:l.model,...s===`openai`?{store:!1}:{},instructions:w,input:[...A,...x,{role:`user`,content:E}],text:{format:k},max_output_tokens:b?N===`minimal`?e.maxTokens??1024:Math.max(e.maxTokens??1024,N===`high`?12e3:N===`medium`?8e3:1500):e.maxTokens??1024,...b?{reasoning:{effort:N}}:{temperature:e.temperature??.3},stream:!0,...y?{tools:[y]}:{},...y&&e.tools?.requireSearch&&m?{tool_choice:m()}:{}})},R;for(let t=0;R=await n(`${_}${h}`,I,L,e.signal),!R.ok;t++){if(R.status===429&&t<z&&!e.signal?.aborted){await V(B(R,t),e.signal);continue}throw Error(`${s} ${R.status}${await H(R)}`)}let U=``,W=new Map,G,K;if(await r(R,e=>{let n=t(e),r=a(n.type),c=t(t(n.response).error),l=t(n.error),u=Object.keys(c).length?c:l;if(Object.keys(u).length)return K=F(s,u),!0;if(r===`response.output_text.delta`){let e=a(n.delta);e&&(U+=e,d?.(e));return}if(r===`response.incomplete`){if(!U){let e=a(t(t(n.response).incomplete_details).reason);return K=e===`max_output_tokens`?`${s}: the model used its entire output budget on reasoning and never wrote an answer — raise maxTokens`:`${s}: the model stopped before writing an answer${e?` (${e})`:``}`,!0}return}if(r===`response.completed`){let e=t(n.response);for(let n of o(e.output)){let e=t(n);if(a(e.type)===`message`)for(let n of o(e.content))for(let e of o(t(n).annotations)){let n=t(e);if(a(n.type)!==`url_citation`)continue;let r=a(n.url);r&&!W.has(r)&&W.set(r,{url:r,title:a(n.title)||r})}}let r=t(e.usage);(r.input_tokens!==void 0||r.output_tokens!==void 0)&&(G={input:i(r.input_tokens),output:i(r.output_tokens),cachedInput:i(t(r.input_tokens_details).cached_tokens)});return}}),K)throw Error(K);let q=W.size?[...W.values()]:void 0;return{raw:U,...q?{sources:q}:{},...G?{usage:G}:{}}}}}var W=U({id:`openai`,proxyBase:`/llm/openai`,webSearchTool:()=>({type:`web_search`}),forceSearchToolChoice:()=>({type:`web_search`}),capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:128e3,strengthTier:`frontier`,nativeWebSearch:!0}}),G=`/llm/gemini`,K=`/v1beta`,q=6e4,J=4e3;function Y(e){return{"Content-Type":`application/json`,"x-goog-api-key":e.apiKey??``}}async function X(e){try{let t=await e.json(),n=typeof t.error?.status==`string`?t.error.status:``,r=typeof t.error?.message==`string`?t.error.message:``,i=n&&r?`${n}: ${r.slice(0,160)}`:n||r.slice(0,160);return i?` — ${i}`:``}catch{return``}}function Z(e){if(e)return{thinkingLevel:e.toUpperCase()}}function Q(e){let t=[];return e.tools?.webSearch&&t.push({google_search:{}}),e.tools?.urlContext&&t.push({url_context:{}}),t.length?t:void 0}function $(e,n){let r=t(e.groundingMetadata);for(let e of o(r.groundingChunks)){let r=t(t(e).web),i=a(r.uri);!i||n.has(i)||n.set(i,{title:a(r.title)||i,url:i})}}var ee={anthropic:D,gemini:{id:`gemini`,capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:1e6,strengthTier:`frontier`,nativeWebSearch:!0},async probe(e){try{let r=e.baseUrl??G,i=await n(`${r}${K}/models`,{method:`GET`,headers:Y(e)},J);if(!i.ok)return{ok:!1,model:!1,statusCode:i.status};let s=await i.json(),c=o(t(s).models).map(e=>a(t(e).name).replace(/^models\//,``));return{ok:!0,model:c.length===0||c.includes(e.model)}}catch{return{ok:!1,model:!1}}},async generate(e,s,c){let l=`${s.baseUrl??G}${K}/models/${encodeURIComponent(s.model)}:streamGenerateContent?alt=sse`,u=e.systemBase,d=e.system,f=``;u&&e.system.startsWith(u)&&(d=u,f=e.system.slice(u.length).trim());let p=_(e.user,e.attachments),m=[...e.history.map(e=>({role:e.role===`assistant`?`model`:`user`,parts:[{text:e.content}]})),{role:`user`,parts:f?[{text:f},...p]:p}],h={temperature:e.temperature??.3,maxOutputTokens:e.maxTokens??1024,responseMimeType:`application/json`},g=Z(e.thinkingLevel);g&&(h.thinkingConfig=g);let v=Q(e),y=await n(l,{method:`POST`,headers:Y(s),body:JSON.stringify({systemInstruction:{parts:[{text:d}]},contents:m,generationConfig:h,...v?{tools:v}:{}})},q,e.signal);if(!y.ok)throw Error(`gemini ${y.status}${await X(y)}`);let b=``,x=new Map,S;await r(y,e=>{let n=t(o(t(e).candidates)[0]),r=o(t(n.content).parts);for(let e of r){let n=a(t(e).text);n&&(b+=n,c?.(n))}$(n,x);let s=t(e).usageMetadata;s&&(S={input:i(t(s).promptTokenCount),output:i(t(s).candidatesTokenCount),cachedInput:i(t(s).cachedContentTokenCount)})});let C={raw:b};return x.size&&(C.sources=[...x.values()]),S&&(C.usage=S),C}},openai:W,openrouter:I({id:`openrouter`,proxyBase:`/llm/openrouter`,apiBase:`/api`,extraHeaders:{"HTTP-Referer":`https://github.com/TryMaveaAI/mavea`,"X-Title":`Mavéa`},extraBody:{transforms:[`middle-out`]},cacheSystemPrefix:!0,modelListExhaustive:!1,webSearchTool:()=>({type:`openrouter:web_search`,parameters:{engine:`auto`,max_results:5,search_context_size:`medium`}}),capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:128e3,strengthTier:`frontier`,nativeWebSearch:!0}}),grok:U({id:`grok`,proxyBase:`/llm/grok`,webSearchTool:()=>({type:`web_search`}),capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:5e5,strengthTier:`frontier`,nativeWebSearch:!0}})};function te(e){return ee[e]}export{M as n,te as t};
|
|
@@ -0,0 +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{lt as r}from"./index-LiHcEJt_.js";import{n as i}from"./http-Lar_UMKb.js";import{S as a,f as o,g as s,n as c,p as l,r as u,w as d,x as f}from"./kokoro-DXRj0KQX.js";import{i as ee,t as te}from"./info-CiqHR5cs.js";import{t as p}from"./route-CMdTFx0P.js";import{r as m,t as h}from"./store-BwyOArJl.js";import{a as g,t as _}from"./store-BWLbFXiY.js";import{n as v}from"./DropSelect-GwIXHA5o.js";var y=t(),b=e();function x(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(S),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{if(typeof window>`u`)return;let e=()=>n(m());return window.addEventListener(h,e),()=>window.removeEventListener(h,e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function S(){return m()}var C=r(),w=n();function T(e){return e.split(` · `)[1]??e}function ne({provider:e,value:t,onChange:n,ariaLabel:r=`Model`}){let i=ee(e),a=(0,b.useId)(),o=(0,b.useRef)(null),s=(0,b.useRef)(null),[c,l]=(0,b.useState)(!1),[u,d]=(0,b.useState)(-1),f=v(c,o),m=i.suggestedModels,h=t||i.defaultModel,g=e=>`${a}-opt-${e}`,_=()=>{d(m.indexOf(h)),l(!0)},y=e=>{n(e),l(!1),s.current?.focus()};return(0,b.useEffect)(()=>{c&&u>=0&&document.getElementById(g(u))?.scrollIntoView?.({block:`nearest`})},[c,u]),(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`drop-select`,ref:o,children:[(0,w.jsx)(`input`,{ref:s,className:`setup-input drop-select-input`,role:`combobox`,"aria-expanded":c,"aria-controls":a,"aria-activedescendant":c&&u>=0?g(u):void 0,"aria-autocomplete":`none`,"aria-label":r,value:t,onChange:e=>{n(e.target.value),c||_(),d(-1)},onClick:()=>c?l(!1):_(),onKeyDown:e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),!c)return _();if(!m.length)return;let t=e.key===`ArrowDown`?1:-1;d(e=>(e+t+m.length)%m.length)}else e.key===`Enter`&&c&&u>=0?(e.preventDefault(),y(m[u])):e.key===`Escape`&&c&&(e.preventDefault(),l(!1))},onBlur:()=>l(!1),placeholder:i.defaultModel||i.modelPlaceholder,spellCheck:!1}),(0,w.jsx)(`button`,{type:`button`,className:`drop-select-chevron`,"aria-label":`Show model options`,"aria-expanded":c,tabIndex:-1,onPointerDown:e=>e.preventDefault(),onClick:()=>{s.current?.focus(),c?l(!1):_()},children:(0,w.jsx)(`svg`,{viewBox:`0 0 12 8`,fill:`none`,"aria-hidden":!0,children:(0,w.jsx)(`path`,{d:`M1 1.5L6 6.5L11 1.5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})})}),c&&(0,C.createPortal)((0,w.jsxs)(`div`,{className:`drop-select-menu`,style:f,role:`listbox`,id:a,"aria-label":`${T(i.label)} models`,onPointerDown:e=>e.preventDefault(),children:[m.map((e,t)=>(0,w.jsxs)(`div`,{id:g(t),role:`option`,tabIndex:-1,"aria-selected":e===h,className:`drop-select-option`+(t===u?` is-active`:``)+(e===h?` is-current`:``),onMouseEnter:()=>d(t),onClick:()=>y(e),children:[(0,w.jsxs)(`span`,{className:`drop-select-option-head`,children:[(0,w.jsx)(`span`,{className:`drop-select-id`,children:e}),e===i.defaultModel&&(0,w.jsx)(`span`,{className:`drop-select-badge`,children:`Default`})]}),i.modelNotes?.[e]&&(0,w.jsx)(`span`,{className:`drop-select-note`,children:i.modelNotes[e]})]},e)),(0,w.jsxs)(`div`,{className:`drop-select-foot`,children:[(0,w.jsxs)(`span`,{children:[`Any `,T(i.label),` model ID works — type it above.`]}),(0,w.jsx)(`a`,{href:te.sources[e],target:`_blank`,rel:`noreferrer noopener`,children:`All models↗`})]})]}),document.body)]}),p(h)&&(0,w.jsx)(`span`,{className:`drop-select-hint`,children:`Free routes are queued and rate-limited — expect a slower turn and a smaller canvas.`})]})}function E(){let e=(0,y.c)(5),t,n,r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(`strong`,{children:`Before you connect`}),n=(0,w.jsx)(`p`,{children:`You provide the API keys or connected accounts, and those providers bill you directly under their own terms. Each model, web-search, speech, or connected-service request can consume your quota or incur a third-party charge; automatic and cadence-based features can repeat those requests while Mavéa is open. AI output can be incomplete, inaccurate, offensive, or unsafe; accuracy, quality, and availability are not guaranteed. Verify important information independently. Mavéa is not medical, legal, financial, safety, or other professional advice, or an emergency or monitoring service. To the fullest extent permitted by law, Mavéa and its outputs are provided “as is,” without warranties; you use them at your own risk, and Mavéa is not responsible for decisions, actions, losses, harm, or provider charges arising from their use.`}),r=(0,w.jsx)(`p`,{children:`Anything you type, paste, attach, or upload—including work-related, personal, identifiable, confidential, sensitive, or regulated information—may be sent to the model, search, or connected provider you select. Submit it only when you are authorized to share it and when you accept that provider’s processing and retention practices; Mavéa does not control those third parties.`}),i=(0,w.jsx)(`p`,{children:`Choosing Remember stores an encrypted copy of provider and search keys in this browser, sealed with a device-bound key when browser cryptography is available; otherwise they remain session-only. Encryption at rest is a convenience, not a security guarantee: an unlocked, shared, lost, or compromised device, browser profile, or extension can still expose or misuse keys, and Mavéa is not responsible for key theft, unauthorized use, or resulting charges. Keeping keys secure is your responsibility — use restricted, revocable keys with spending caps on trusted devices you control, revoke a key with its provider immediately if you suspect exposure, and monitor your provider account. Keys pass through this deployment’s request proxy when used; settings exports exclude them.`}),e[0]=t,e[1]=n,e[2]=r,e[3]=i):(t=e[0],n=e[1],r=e[2],i=e[3]);let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,w.jsxs)(`aside`,{className:`provider-responsibility`,"aria-label":`Provider billing, data sharing, and AI output responsibility`,children:[t,n,r,i,(0,w.jsxs)(`nav`,{className:`provider-responsibility-links`,"aria-label":`Terms and privacy documents`,children:[(0,w.jsx)(`a`,{className:`provider-responsibility-link`,href:`#/terms?from=live`,children:`Terms`}),(0,w.jsx)(`a`,{className:`provider-responsibility-link`,href:`#/privacy?from=live`,children:`Privacy`}),(0,w.jsx)(`a`,{className:`provider-responsibility-link`,href:`#/legal?from=live`,children:`Read all important information →`})]})]}),e[4]=a):a=e[4],a}function D(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(re),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{if(typeof window>`u`)return;let e=()=>n(g());return window.addEventListener(_,e),()=>window.removeEventListener(_,e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function re(){return g()}var O=`Hi, I'm ready. Ask me anything.`,k=null,A=null,j=null,M=null,N=0;function P(e){return e===N}function F(e,t){if(e)try{e.pause(),e.src=``}catch{}if(t)try{URL.revokeObjectURL(t)}catch{}}function I(){l(),M?.abort(),M=null,j?.(),j=null,F(k,A),k=null,A=null,N++}async function L(e,t,n){try{let r=await i(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:O,voice:e.kokoro,response_format:`wav`,speed:1})},1e4,n);if(!r.ok||!P(t))return;let a=await r.blob();if(!a.size||!P(t))return;let s=URL.createObjectURL(a),c=new Audio(s),l=o(c),u=()=>{l(),P(t)&&(k=null,A=null,M=null,j=null),F(c,s)};A=s,k=c,j=l,c.onended=u,c.onerror=u;let d=c.play();d&&typeof d.catch==`function`&&d.catch(u)}catch{}}async function R(e,t){let n=await f(O,e.kokoro);if(!P(t)){l();return}if(n)return;let r=new AbortController;M=r,await L(e,t,r.signal)}function z(e){s()||(d(),I(),R(e,N))}var B=`Voice is off — answers will show as captions only. To hear Mavéa, start the local TTS service (docker compose up -d).`,V=`Mavéa is muted — an audition stays silent until you unmute.`;function H(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(U),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=!0;return c().then(t=>{e&&n(t)}),()=>{e=!1}},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function U(){return u()}function W(){let e=(0,y.c)(2),t=H(),n=(0,b.useSyncExternalStore)(a,s),r=t===!1?B:n?V:null;if(!r)return null;let i;return e[0]===r?i=e[1]:(i=(0,w.jsx)(`p`,{className:`voice-off-hint`,role:`status`,children:r}),e[0]=r,e[1]=i),i}var G=350,K={Alt:`altKey`,Control:`ctrlKey`,Shift:`shiftKey`},q=[`altKey`,`ctrlKey`,`metaKey`,`shiftKey`];function J(e,t,n){if(e.key!==t||n!==`any`&&e.code!==t+(n===`left`?`Left`:`Right`))return!1;let r=K[t];return!q.some(t=>t!==r&&e[t])}function Y(e){let t=(0,b.useRef)(e);t.current=e,(0,b.useEffect)(()=>{if(!e.enabled)return;let n=e.pttKey||`Alt`,r=e.pttSide||`any`,i=null,a=!1,o=()=>{i!==null&&(window.clearTimeout(i),i=null)},s=()=>{o(),a&&(a=!1,t.current.onStop())},c=e=>{if(!J(e,n,r)){e.key!==n&&s();return}e.repeat||i!==null||a||(i=window.setTimeout(()=>{i=null,a=!0,t.current.onStart()},G))},l=e=>{e.key===n&&s()};return window.addEventListener(`keydown`,c),window.addEventListener(`keyup`,l),window.addEventListener(`blur`,s),()=>{window.removeEventListener(`keydown`,c),window.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,s),s()}},[e.enabled,e.pttKey,e.pttSide])}function ie(e,t=`any`){let n=typeof navigator<`u`&&/mac|iphone|ipad|ipod/i.test(navigator.platform||navigator.userAgent),r=e===`Alt`?n?`⌥`:`Alt`:e===`Control`?n?`⌃`:`Ctrl`:e===`Shift`?n?`⇧`:`Shift`:e;return t===`left`?`Left ${r}`:t===`right`?`Right ${r}`:r}function X(e){return e>=22||e<6}var Z=`mavea-live-quiet-hours-on`,Q=Z;function $(){try{return localStorage.getItem(Z)===`1`}catch{return!1}}function ae(e){try{e?localStorage.setItem(Z,`1`):localStorage.removeItem(Z)}catch{}try{window.dispatchEvent(new CustomEvent(Q))}catch{}}var oe=.45,se=6e4;function ce(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(le),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=()=>n($()&&X(new Date().getHours()));e();let t=window.setInterval(e,se);return window.addEventListener(Q,e),()=>{window.clearInterval(t),window.removeEventListener(Q,e)}},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function le(){return $()&&X(new Date().getHours())}export{ie as a,H as c,D as d,E as f,ce as i,z as l,x as m,$ as n,Y as o,ne as p,ae as r,W as s,oe as t,I as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./http-Lar_UMKb.js";import{t as n}from"./providers-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./http-Lar_UMKb.js";import{t as n}from"./providers-0DthJW_I.js";var r=e({checkLiveReady:()=>a}),i=2500;async function a(e,r={}){let a=n(e.provider).probe(e).catch(()=>({ok:!1,model:!1})),o=r.tts===!1?Promise.resolve(!1):(async()=>{try{return(await t(`/tts/health`,{method:`GET`},i)).ok}catch{return!1}})(),[{ok:s,model:c,statusCode:l},u]=await Promise.all([a,o]);return{llm:s,tts:u,model:c,statusCode:l}}export{r as n,a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r}from"./icons-gLFQTv74.js";import{t as i}from"./useFocusTrap-DBtkeyRy.js";import{t as a}from"./richText-BkxJhl9N.js";import{t as o}from"./registry-types-D3q_LrlV.js";import{t as s}from"./portal-k_BMgWND.js";var c=t(),l=n();function u({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,trigger:o=`Open dialog`,triggerIcon:u=`external`,description:d=`A centered modal dialog with a focus ring, backdrop, and Escape‑to‑close.`,heading:f=`Publish this version?`,body:p=`Publishing makes <strong>Revision 12</strong> the live version everyone sees. You can roll back to any earlier revision at any time.`,confirm:m=`Publish`,cancel:h=`Cancel`,color:g=`var(--presence)`,delay:_}){let v=r[t]||r.layers,y=r[u]||r.external,[b,x]=(0,c.useState)(!1),[S,C]=(0,c.useState)(!1),w=(0,c.useRef)(null);return i(w,{active:b}),(0,c.useEffect)(()=>{if(!b)return;let e=e=>{e.key===`Escape`&&x(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(_||0)+`ms`,"--ov-c":g},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(v,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`,onClick:()=>x(!0),children:[(0,l.jsx)(y,{className:`ic`}),` `,o]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(S?`Published — <strong>Revision 12</strong> is now live.`:d)})]}),b&&(0,l.jsx)(s,{accent:g,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>x(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(!1))}}),(0,l.jsxs)(`div`,{className:`ov-dialog`,ref:w,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":f,children:[(0,l.jsxs)(`div`,{className:`ov-dialog-head`,children:[(0,l.jsx)(`div`,{className:`ov-dialog-title`,children:f}),(0,l.jsx)(`button`,{type:`button`,className:`ov-x`,"aria-label":`Close`,onClick:()=>x(!1),children:(0,l.jsx)(r.x,{className:`ic`})})]}),(0,l.jsx)(`div`,{className:`ov-dialog-body`,dangerouslySetInnerHTML:a(p)}),(0,l.jsxs)(`div`,{className:`ov-dialog-foot`,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-btn ghost`,onClick:()=>x(!1),children:h}),(0,l.jsx)(`button`,{type:`button`,className:`ov-btn solid`,onClick:()=>{C(!0),x(!1)},children:m})]})]})]})})]})}function d({title:e,icon:t=`alert`,iconColor:n=`var(--danger)`,trigger:i=`Delete project`,triggerIcon:o=`x`,description:u=`A destructive‑action confirm with a warning badge, Cancel, and Confirm.`,heading:d=`Delete “Q3 Forecast”?`,body:f=`This permanently removes the project and all <strong>34 documents</strong> inside it. This action cannot be undone.`,alertIcon:p=`alert`,confirm:m=`Delete forever`,cancel:h=`Cancel`,color:g=`var(--danger)`,delay:_}){let v=r[t]||r.alert,y=r[o]||r.x,b=r[p]||r.alert,[x,S]=(0,c.useState)(!1),[C,w]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{if(!x)return;let e=e=>e.key===`Escape`&&S(!1);return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[x]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(_||0)+`ms`,"--ov-c":g},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(v,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger danger`+(C?` is-done`:``),onClick:()=>!C&&S(!0),children:[C?(0,l.jsx)(r.check,{className:`ic`}):(0,l.jsx)(y,{className:`ic`}),` `,C?`Deleted`:i]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(C?`Project deleted. <strong>34 documents</strong> removed.`:u)})]}),x&&(0,l.jsx)(s,{accent:g,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>S(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),S(!1))}}),(0,l.jsxs)(`div`,{className:`ov-dialog ov-alert`,role:`alertdialog`,"aria-modal":`true`,"aria-label":d,children:[(0,l.jsx)(`div`,{className:`ov-alert-badge`,children:(0,l.jsx)(b,{className:`ic`})}),(0,l.jsx)(`div`,{className:`ov-dialog-title ov-alert-title`,children:d}),(0,l.jsx)(`div`,{className:`ov-dialog-body ov-alert-body`,dangerouslySetInnerHTML:a(f)}),(0,l.jsxs)(`div`,{className:`ov-dialog-foot`,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-btn ghost`,onClick:()=>S(!1),children:h}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-btn solid danger`,onClick:()=>{w(!0),S(!1)},children:[(0,l.jsx)(r.x,{className:`ic`}),` `,m]})]})]})]})})]})}var f=[{label:`Status`,value:`In review`,icon:`clock`},{label:`Owner`,value:`Maya Chen`,icon:`mail`},{label:`Pages`,value:`24`,icon:`doc`},{label:`Last edited`,value:`2h ago`,icon:`edit`},{label:`Visibility`,value:`Team`,icon:`eye`},{label:`Sources`,value:`8 linked`,icon:`link`},{label:`Confidence`,value:`Strong`,icon:`shield`}];function p({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,trigger:o=`View details`,triggerIcon:u=`external`,description:d=`A right‑side drawer slides in with a header, scrollable body, and footer.`,heading:p=`Q3 Forecast.pdf`,subhead:m=`Document properties`,rows:h=f,confirm:g=`Open document`,cancel:_=`Close`,color:v=`var(--presence)`,delay:y}){let b=r[t]||r.layers,x=r[u]||r.external,[S,C]=(0,c.useState)(!1),w=(0,c.useRef)(null);return i(w,{active:S}),(0,c.useEffect)(()=>{if(!S)return;let e=e=>{e.key===`Escape`&&C(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[S]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(y||0)+`ms`,"--ov-c":v},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(b,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`,onClick:()=>C(!0),children:[(0,l.jsx)(x,{className:`ic`}),` `,o]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(d)})]}),S&&(0,l.jsx)(s,{accent:v,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>C(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),C(!1))}}),(0,l.jsxs)(`div`,{className:`ov-drawer`,ref:w,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":p,children:[(0,l.jsxs)(`div`,{className:`ov-drawer-head`,children:[(0,l.jsxs)(`div`,{className:`ov-drawer-titles`,children:[(0,l.jsx)(`div`,{className:`ov-drawer-sub`,children:m}),(0,l.jsx)(`div`,{className:`ov-drawer-title`,children:p})]}),(0,l.jsx)(`button`,{type:`button`,className:`ov-x`,"aria-label":`Close`,onClick:()=>C(!1),children:(0,l.jsx)(r.x,{className:`ic`})})]}),(0,l.jsx)(`div`,{className:`ov-drawer-body`,children:h.map(e=>{let t=e.icon?r[e.icon]:null;return(0,l.jsxs)(`div`,{className:`ov-drawer-row`,children:[(0,l.jsxs)(`span`,{className:`ov-drawer-row-l`,children:[t&&(0,l.jsx)(t,{className:`ic`}),` `,e.label]}),(0,l.jsx)(`span`,{className:`ov-drawer-row-v`,children:e.value})]},e.label)})}),(0,l.jsxs)(`div`,{className:`ov-drawer-foot`,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-btn ghost`,onClick:()=>C(!1),children:_}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-btn solid`,onClick:()=>C(!1),children:[(0,l.jsx)(r.external,{className:`ic`}),` `,g]})]})]})]})})]})}var m=[{label:`Copy link`,icon:`link`,meta:`Anyone with the link`},{label:`Share to team`,icon:`share`,meta:`12 members`,selected:!0},{label:`Email a copy`,icon:`mail`},{label:`Export as PDF`,icon:`export`}];function h({title:e,icon:t=`share`,iconColor:n=`var(--presence)`,trigger:i=`Share`,triggerIcon:o=`share`,description:u=`A bottom sheet slides up with a grabber handle — mobile‑style.`,heading:d=`Share this report`,subhead:f=`Choose how you want to send it`,options:p=m,color:h=`var(--presence)`,delay:g}){let _=r[t]||r.share,v=r[o]||r.share,[y,b]=(0,c.useState)(!1),x=Math.max(0,p.findIndex(e=>e.selected)),[S,C]=(0,c.useState)(x===-1?0:x);return(0,c.useEffect)(()=>{if(!y)return;let e=e=>e.key===`Escape`&&b(!1);return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`,"--ov-c":h},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(_,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`,onClick:()=>b(!0),children:[(0,l.jsx)(v,{className:`ic`}),` `,i]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(u)})]}),y&&(0,l.jsx)(s,{accent:h,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>b(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),b(!1))}}),(0,l.jsxs)(`div`,{className:`ov-sheet`,role:`dialog`,"aria-modal":`true`,"aria-label":d,children:[(0,l.jsx)(`div`,{className:`ov-sheet-grab`}),(0,l.jsxs)(`div`,{className:`ov-sheet-head`,children:[(0,l.jsx)(`div`,{className:`ov-sheet-title`,children:d}),(0,l.jsx)(`div`,{className:`ov-sheet-sub`,children:f})]}),(0,l.jsx)(`div`,{className:`ov-sheet-list`,children:p.map((e,t)=>{let n=e.icon?r[e.icon]:r.chevR;return(0,l.jsxs)(`button`,{type:`button`,className:`ov-sheet-opt`+(S===t?` on`:``),onClick:()=>C(t),children:[(0,l.jsx)(`span`,{className:`ov-sheet-opt-ic`,children:(0,l.jsx)(n,{className:`ic`})}),(0,l.jsxs)(`span`,{className:`ov-sheet-opt-meta`,children:[(0,l.jsx)(`span`,{className:`ov-sheet-opt-label`,children:e.label}),e.meta&&(0,l.jsx)(`span`,{className:`ov-sheet-opt-sub`,children:e.meta})]}),(0,l.jsx)(`span`,{className:`ov-sheet-radio`,children:S===t&&(0,l.jsx)(r.check,{className:`ic`})})]},e.label)})}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-btn solid ov-sheet-cta`,onClick:()=>b(!1),children:[(0,l.jsx)(r.send,{className:`ic`}),` Continue`]})]})]})})]})}function g({title:e,icon:t=`bell`,iconColor:n=`var(--presence)`,trigger:i=`Notifications`,triggerIcon:o=`bell`,description:s=`An anchored panel opens beside the trigger with a pointer arrow.`,heading:u=`What's new`,body:d=`3 sources finished syncing and <strong>2 new findings</strong> are ready to review in your workspace.`,stat:f=`+2`,statLabel:p=`new findings`,action:m=`Review now`,color:h=`var(--presence)`,delay:g}){let _=r[t]||r.bell,v=r[o]||r.bell,[y,b]=(0,c.useState)(!1),x=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!y)return;let e=e=>e.key===`Escape`&&b(!1),t=e=>{x.current&&!x.current.contains(e.target)&&b(!1)};return window.addEventListener(`keydown`,e),window.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`mousedown`,t)}},[y]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`,"--ov-c":h},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(_,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-anchor`,ref:x,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`+(y?` active`:``),"aria-expanded":y,onClick:()=>b(e=>!e),children:[(0,l.jsx)(v,{className:`ic`}),` `,i,(0,l.jsx)(`span`,{className:`ov-trigger-badge`,children:f})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(s)}),y&&(0,l.jsxs)(`div`,{className:`ov-pop`,role:`dialog`,"aria-label":u,children:[(0,l.jsx)(`div`,{className:`ov-pop-arrow`}),(0,l.jsx)(`div`,{className:`ov-pop-head`,children:u}),(0,l.jsxs)(`div`,{className:`ov-pop-stat`,children:[(0,l.jsx)(`span`,{className:`ov-pop-stat-val tab-num`,children:f}),(0,l.jsx)(`span`,{className:`ov-pop-stat-label`,children:p})]}),(0,l.jsx)(`div`,{className:`ov-pop-body`,dangerouslySetInnerHTML:a(d)}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-pop-action`,onClick:()=>b(!1),children:[m,` `,(0,l.jsx)(r.chevR,{className:`ic`})]})]})]})]})}var _=[{label:`Reports`,value:`47`},{label:`Sources`,value:`312`},{label:`Followers`,value:`1.2k`}];function v({title:e,icon:t=`chat`,iconColor:n=`var(--presence)`,mention:i=`@maya.chen`,lead:o=`Reviewed and approved by `,name:s=`Maya Chen`,handle:u=`@maya.chen`,bio:d=`Lead research analyst. Covers macro & market intelligence for the strategy team.`,avatar:f=`MC`,stats:p=_,action:m=`Follow`,color:h=`var(--presence)`,delay:g}){let v=r[t]||r.chat,[y,b]=(0,c.useState)(!1),[x,S]=(0,c.useState)(!1),C=(0,c.useRef)(null),w=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>b(!0),320)},T=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>b(!1),140)};return(0,c.useEffect)(()=>()=>{C.current&&clearTimeout(C.current)},[]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`,"--ov-c":h},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(v,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`p`,{className:`ov-hc-lead`,children:[(0,l.jsx)(`span`,{dangerouslySetInnerHTML:a(o)}),(0,l.jsxs)(`span`,{className:`ov-hc-anchor`,onMouseEnter:w,onMouseLeave:T,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-mention`+(y?` active`:``),onClick:()=>b(e=>!e),children:i}),y&&(0,l.jsxs)(`span`,{className:`ov-hc-card`,role:`dialog`,"aria-label":s,onMouseEnter:w,onMouseLeave:T,children:[(0,l.jsxs)(`span`,{className:`ov-hc-top`,children:[(0,l.jsx)(`span`,{className:`ov-hc-avatar`,children:f}),(0,l.jsxs)(`span`,{className:`ov-hc-names`,children:[(0,l.jsx)(`span`,{className:`ov-hc-name`,children:s}),(0,l.jsx)(`span`,{className:`ov-hc-handle`,children:u})]}),(0,l.jsx)(`button`,{type:`button`,className:`ov-hc-follow`+(x?` on`:``),onClick:()=>S(e=>!e),children:x?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.check,{className:`ic`}),` Following`]}):m})]}),(0,l.jsx)(`span`,{className:`ov-hc-bio`,dangerouslySetInnerHTML:a(d)}),(0,l.jsx)(`span`,{className:`ov-hc-stats`,children:p.map(e=>(0,l.jsxs)(`span`,{className:`ov-hc-stat`,children:[(0,l.jsx)(`span`,{className:`ov-hc-stat-val tab-num`,children:e.value}),(0,l.jsx)(`span`,{className:`ov-hc-stat-label`,children:e.label})]},e.label))})]})]}),(0,l.jsx)(`span`,{children:` after a full source audit.`})]}),(0,l.jsx)(`p`,{className:`ov-desc ov-hc-hint`,children:`Hover the mention to preview the profile card.`})]})}var y=[{label:`Share`,icon:`share`,tip:`Share with your team`,placement:`top`},{label:`Export`,icon:`export`,tip:`Download as PDF or CSV`,placement:`bottom`},{label:`Sources`,icon:`link`,tip:`8 verified sources linked`,placement:`left`},{label:`Lock`,icon:`lock`,tip:`Restrict editing to owners`,placement:`right`}];function b({title:e,icon:t=`spark`,iconColor:n=`var(--presence)`,prompt:i=`Hover any control to see a placed tooltip.`,targets:o=y,color:s=`var(--presence)`,delay:u}){let d=r[t]||r.spark,[f,p]=(0,c.useState)(null);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`,"--ov-c":s},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`p`,{className:`ov-desc ov-tip-prompt`,dangerouslySetInnerHTML:a(i)}),(0,l.jsx)(`div`,{className:`ov-tip-grid`,children:o.map((e,t)=>{let n=e.icon?r[e.icon]:r.spark,i=e.placement||`top`;return(0,l.jsxs)(`div`,{className:`ov-tip-cell`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-tip-target`+(f===t?` on`:``),onMouseEnter:()=>p(t),onMouseLeave:()=>p(e=>e===t?null:e),onFocus:()=>p(t),onBlur:()=>p(e=>e===t?null:e),children:[(0,l.jsx)(n,{className:`ic`}),(0,l.jsx)(`span`,{children:e.label})]}),f===t&&(0,l.jsxs)(`span`,{className:`ov-tip-bubble place-`+i,role:`tooltip`,children:[e.tip,(0,l.jsx)(`span`,{className:`ov-tip-arrow`})]})]},e.label)})})]})}var x=[{label:`Edit report`,icon:`edit`,shortcut:`⌘E`},{label:`Duplicate`,icon:`layers`,shortcut:`⌘D`},{label:`Add to favorites`,icon:`spark`},{label:`Share`,icon:`share`,shortcut:`⌘⇧S`,separator:!0},{label:`Export PDF`,icon:`export`},{label:`Delete`,icon:`x`,danger:!0,separator:!0}];function S({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,trigger:i=`Options`,triggerIcon:o=`plus`,description:s=`A dropdown menu with icons, shortcut hints, separators, and a destructive item.`,menuLabel:u=`Q3 Forecast.pdf`,items:d=x,color:f=`var(--presence)`,delay:p}){let m=r[t]||r.layers,h=r[o]||r.plus,[g,_]=(0,c.useState)(!1),[v,y]=(0,c.useState)(null),b=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!g)return;let e=e=>e.key===`Escape`&&_(!1),t=e=>{b.current&&!b.current.contains(e.target)&&_(!1)};return window.addEventListener(`keydown`,e),window.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`mousedown`,t)}},[g]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(p||0)+`ms`,"--ov-c":f},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(m,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-anchor`,ref:b,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`+(g?` active`:``),"aria-haspopup":`menu`,"aria-expanded":g,onClick:()=>_(e=>!e),children:[(0,l.jsx)(h,{className:`ic`}),` `,i,(0,l.jsx)(r.chevR,{className:`ic ov-trigger-caret`+(g?` up`:``)})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(s)}),g&&(0,l.jsxs)(`div`,{className:`ov-menu`,role:`menu`,children:[u&&(0,l.jsx)(`div`,{className:`ov-menu-label`,children:u}),d.map((e,t)=>{let n=e.icon?r[e.icon]:null;return(0,l.jsxs)(`div`,{children:[e.separator&&(0,l.jsx)(`div`,{className:`ov-menu-sep`}),(0,l.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`ov-menu-item`+(e.danger?` danger`:``)+(v===t?` on`:``),onMouseEnter:()=>y(t),onClick:()=>_(!1),children:[n&&(0,l.jsx)(n,{className:`ic ov-menu-ic`}),(0,l.jsx)(`span`,{className:`ov-menu-text`,children:e.label}),e.shortcut&&(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:e.shortcut})]})]},e.label)})]})]})]})}var C=196,w=[{label:`Open`,icon:`external`,shortcut:`↵`},{label:`Rename`,icon:`edit`,shortcut:`F2`},{label:`Copy link`,icon:`link`,shortcut:`⌘C`},{label:`Download`,icon:`export`,separator:!0},{label:`Move to trash`,icon:`x`,danger:!0,separator:!0}];function T({title:e,icon:t=`table`,iconColor:n=`var(--presence)`,target:i=`Right-click this file`,targetIcon:o=`doc`,description:s=`Right‑click (or click) the target to open a context menu at the pointer.`,items:u=w,color:d=`var(--presence)`,delay:f}){let p=r[t]||r.table,m=r[o]||r.doc,[h,g]=(0,c.useState)(null),[_,v]=(0,c.useState)(null),y=(0,c.useRef)(null),b=e=>{e.preventDefault();let t=y.current?.getBoundingClientRect(),n=t?Math.min(e.clientX-t.left,t.width-C):12,r=t?e.clientY-t.top:12;g({x:Math.max(8,n),y:Math.max(8,r)})};return(0,c.useEffect)(()=>{if(!h)return;let e=e=>e.key===`Escape`&&g(null),t=e=>{let t=y.current?.querySelector(`.ov-ctx`);t&&!t.contains(e.target)&&g(null)};return window.addEventListener(`keydown`,e),window.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`mousedown`,t)}},[h]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(f||0)+`ms`,"--ov-c":d},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(p,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-ctx-host`,ref:y,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-ctx-zone`+(h?` active`:``),onContextMenu:b,onClick:b,children:[(0,l.jsx)(m,{className:`ic ov-ctx-zone-ic`}),(0,l.jsx)(`span`,{children:i})]}),h&&(0,l.jsx)(`div`,{className:`ov-ctx`,role:`menu`,style:{left:h.x,top:h.y,maxWidth:C},children:u.map((e,t)=>{let n=e.icon?r[e.icon]:null;return(0,l.jsxs)(`div`,{children:[e.separator&&(0,l.jsx)(`div`,{className:`ov-menu-sep`}),(0,l.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`ov-menu-item`+(e.danger?` danger`:``)+(_===t?` on`:``),onMouseEnter:()=>v(t),onClick:()=>g(null),children:[n&&(0,l.jsx)(n,{className:`ic ov-menu-ic`}),(0,l.jsx)(`span`,{className:`ov-menu-text`,style:{whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e.label}),e.shortcut&&(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:e.shortcut})]})]},e.label)})})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(s)})]})}var E=[{label:`Actions`,commands:[{label:`New report`,icon:`plus`,shortcut:`⌘N`,hint:`Start a blank canvas`},{label:`Import sources`,icon:`upload`,shortcut:`⌘I`},{label:`Share workspace`,icon:`share`}]},{label:`Navigate`,commands:[{label:`Go to dashboard`,icon:`chart`,shortcut:`G D`},{label:`Open documents`,icon:`doc`,shortcut:`G O`},{label:`Search sources`,icon:`globe`}]},{label:`Preferences`,commands:[{label:`Toggle theme`,icon:`moon`,shortcut:`⌘\\`},{label:`Notification settings`,icon:`bell`}]}];function D({title:e,icon:t=`spark`,iconColor:n=`var(--presence)`,trigger:o=`Search commands`,triggerIcon:u=`spark`,description:d=`A ⌘K command palette — search, ↑/↓ to highlight, Enter to run.`,placeholder:f=`Type a command or search…`,groups:p=E,color:m=`var(--presence)`,delay:h}){let g=r[t]||r.spark,_=r[u]||r.spark,[v,y]=(0,c.useState)(!1),[b,x]=(0,c.useState)(``),[S,C]=(0,c.useState)(0),w=(0,c.useRef)(null),T=(0,c.useRef)(null);i(T,{active:v});let D=(0,c.useMemo)(()=>p.flatMap(e=>e.commands.map(t=>({...t,group:e.label}))),[p]),O=(0,c.useMemo)(()=>{let e=b.trim().toLowerCase();return e?D.filter(t=>t.label.toLowerCase().includes(e)||(t.hint||``).toLowerCase().includes(e)):D},[D,b]),k=(0,c.useMemo)(()=>{let e=new Map;for(let t of O)e.has(t.group)||e.set(t.group,[]),e.get(t.group).push(t);return Array.from(e.entries())},[O]);(0,c.useEffect)(()=>{if(v){C(0);let e=setTimeout(()=>w.current?.focus(),30);return()=>clearTimeout(e)}},[v]),(0,c.useEffect)(()=>C(0),[b]),(0,c.useEffect)(()=>{if(!v)return;let e=e=>{e.key===`Escape`?y(!1):e.key===`ArrowDown`?(e.preventDefault(),C(e=>Math.max(0,Math.min(O.length-1,e+1)))):e.key===`ArrowUp`?(e.preventDefault(),C(e=>Math.max(0,e-1))):e.key===`Enter`&&(e.preventDefault(),y(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v,O.length]);let A=-1;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(h||0)+`ms`,"--ov-c":m},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(g,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger ov-ck-trigger`,onClick:()=>y(!0),children:[(0,l.jsx)(_,{className:`ic`}),` `,o,(0,l.jsx)(`kbd`,{className:`ov-kbd ov-ck-kbd`,children:`⌘K`})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(d)})]}),v&&(0,l.jsx)(s,{accent:m,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>y(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),y(!1))}}),(0,l.jsxs)(`div`,{className:`ov-ck`,ref:T,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,children:[(0,l.jsxs)(`div`,{className:`ov-ck-search`,children:[(0,l.jsx)(r.globe,{className:`ic ov-ck-search-ic`}),(0,l.jsx)(`input`,{ref:w,className:`ov-ck-input`,placeholder:f,value:b,onChange:e=>x(e.target.value),spellCheck:!1}),(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`esc`})]}),(0,l.jsxs)(`div`,{className:`ov-ck-list`,children:[k.length===0&&(0,l.jsxs)(`div`,{className:`ov-ck-empty`,children:[`No commands match “`,(0,l.jsx)(`strong`,{children:b}),`”`]}),k.map(([e,t])=>(0,l.jsxs)(`div`,{className:`ov-ck-group`,children:[(0,l.jsx)(`div`,{className:`ov-ck-group-label`,children:e}),t.map(e=>{A+=1;let t=A,n=e.icon?r[e.icon]:r.chevR;return(0,l.jsxs)(`button`,{type:`button`,className:`ov-ck-item`+(S===t?` on`:``),onMouseEnter:()=>C(t),onClick:()=>y(!1),children:[(0,l.jsx)(`span`,{className:`ov-ck-item-ic`,children:(0,l.jsx)(n,{className:`ic`})}),(0,l.jsxs)(`span`,{className:`ov-ck-item-meta`,children:[(0,l.jsx)(`span`,{className:`ov-ck-item-label`,children:e.label}),e.hint&&(0,l.jsx)(`span`,{className:`ov-ck-item-hint`,children:e.hint})]}),e.shortcut&&(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:e.shortcut}),(0,l.jsx)(r.chevR,{className:`ic ov-ck-item-go`})]},e.label)})]},e))]}),(0,l.jsxs)(`div`,{className:`ov-ck-foot`,children:[(0,l.jsxs)(`span`,{className:`ov-ck-foot-hint`,children:[(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`↑`}),(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`↓`}),` navigate`]}),(0,l.jsxs)(`span`,{className:`ov-ck-foot-hint`,children:[(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`↵`}),` select`]}),(0,l.jsxs)(`span`,{className:`ov-ck-foot-count`,children:[O.length,` commands`]})]})]})]})})]})}var O=e({overlaysRegistry:()=>k}),k={modal:o(u),confirmdialog:o(d),drawer:o(p),sheet:o(h),popover:o(g),hovercard:o(v),tooltip:o(b),menu:o(S),contextmenu:o(T),commandk:o(D)};export{O as n,k as t};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r}from"./icons-gLFQTv74.js";import{t as i}from"./useFocusTrap-CJmpNZv2.js";import{t as a}from"./richText-BkxJhl9N.js";import{t as o}from"./registry-types-D3q_LrlV.js";import{t as s}from"./portal-B9DmFo6J.js";var c=t(),l=n();function u({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,trigger:o=`Open dialog`,triggerIcon:u=`external`,description:d=`A centered modal dialog with a focus ring, backdrop, and Escape‑to‑close.`,heading:f=`Publish this version?`,body:p=`Publishing makes <strong>Revision 12</strong> the live version everyone sees. You can roll back to any earlier revision at any time.`,confirm:m=`Publish`,cancel:h=`Cancel`,color:g=`var(--presence)`,delay:_}){let v=r[t]||r.layers,y=r[u]||r.external,[b,x]=(0,c.useState)(!1),[S,C]=(0,c.useState)(!1),w=(0,c.useRef)(null);return i(w,{active:b}),(0,c.useEffect)(()=>{if(!b)return;let e=e=>{e.key===`Escape`&&x(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(_||0)+`ms`,"--ov-c":g},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(v,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`,onClick:()=>x(!0),children:[(0,l.jsx)(y,{className:`ic`}),` `,o]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(S?`Published — <strong>Revision 12</strong> is now live.`:d)})]}),b&&(0,l.jsx)(s,{accent:g,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>x(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(!1))}}),(0,l.jsxs)(`div`,{className:`ov-dialog`,ref:w,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":f,children:[(0,l.jsxs)(`div`,{className:`ov-dialog-head`,children:[(0,l.jsx)(`div`,{className:`ov-dialog-title`,children:f}),(0,l.jsx)(`button`,{type:`button`,className:`ov-x`,"aria-label":`Close`,onClick:()=>x(!1),children:(0,l.jsx)(r.x,{className:`ic`})})]}),(0,l.jsx)(`div`,{className:`ov-dialog-body`,dangerouslySetInnerHTML:a(p)}),(0,l.jsxs)(`div`,{className:`ov-dialog-foot`,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-btn ghost`,onClick:()=>x(!1),children:h}),(0,l.jsx)(`button`,{type:`button`,className:`ov-btn solid`,onClick:()=>{C(!0),x(!1)},children:m})]})]})]})})]})}function d({title:e,icon:t=`alert`,iconColor:n=`var(--danger)`,trigger:i=`Delete project`,triggerIcon:o=`x`,description:u=`A destructive‑action confirm with a warning badge, Cancel, and Confirm.`,heading:d=`Delete “Q3 Forecast”?`,body:f=`This permanently removes the project and all <strong>34 documents</strong> inside it. This action cannot be undone.`,alertIcon:p=`alert`,confirm:m=`Delete forever`,cancel:h=`Cancel`,color:g=`var(--danger)`,delay:_}){let v=r[t]||r.alert,y=r[o]||r.x,b=r[p]||r.alert,[x,S]=(0,c.useState)(!1),[C,w]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{if(!x)return;let e=e=>e.key===`Escape`&&S(!1);return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[x]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(_||0)+`ms`,"--ov-c":g},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(v,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger danger`+(C?` is-done`:``),onClick:()=>!C&&S(!0),children:[C?(0,l.jsx)(r.check,{className:`ic`}):(0,l.jsx)(y,{className:`ic`}),` `,C?`Deleted`:i]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(C?`Project deleted. <strong>34 documents</strong> removed.`:u)})]}),x&&(0,l.jsx)(s,{accent:g,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>S(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),S(!1))}}),(0,l.jsxs)(`div`,{className:`ov-dialog ov-alert`,role:`alertdialog`,"aria-modal":`true`,"aria-label":d,children:[(0,l.jsx)(`div`,{className:`ov-alert-badge`,children:(0,l.jsx)(b,{className:`ic`})}),(0,l.jsx)(`div`,{className:`ov-dialog-title ov-alert-title`,children:d}),(0,l.jsx)(`div`,{className:`ov-dialog-body ov-alert-body`,dangerouslySetInnerHTML:a(f)}),(0,l.jsxs)(`div`,{className:`ov-dialog-foot`,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-btn ghost`,onClick:()=>S(!1),children:h}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-btn solid danger`,onClick:()=>{w(!0),S(!1)},children:[(0,l.jsx)(r.x,{className:`ic`}),` `,m]})]})]})]})})]})}var f=[{label:`Status`,value:`In review`,icon:`clock`},{label:`Owner`,value:`Maya Chen`,icon:`mail`},{label:`Pages`,value:`24`,icon:`doc`},{label:`Last edited`,value:`2h ago`,icon:`edit`},{label:`Visibility`,value:`Team`,icon:`eye`},{label:`Sources`,value:`8 linked`,icon:`link`},{label:`Confidence`,value:`Strong`,icon:`shield`}];function p({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,trigger:o=`View details`,triggerIcon:u=`external`,description:d=`A right‑side drawer slides in with a header, scrollable body, and footer.`,heading:p=`Q3 Forecast.pdf`,subhead:m=`Document properties`,rows:h=f,confirm:g=`Open document`,cancel:_=`Close`,color:v=`var(--presence)`,delay:y}){let b=r[t]||r.layers,x=r[u]||r.external,[S,C]=(0,c.useState)(!1),w=(0,c.useRef)(null);return i(w,{active:S}),(0,c.useEffect)(()=>{if(!S)return;let e=e=>{e.key===`Escape`&&C(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[S]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(y||0)+`ms`,"--ov-c":v},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(b,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`,onClick:()=>C(!0),children:[(0,l.jsx)(x,{className:`ic`}),` `,o]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(d)})]}),S&&(0,l.jsx)(s,{accent:v,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>C(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),C(!1))}}),(0,l.jsxs)(`div`,{className:`ov-drawer`,ref:w,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":p,children:[(0,l.jsxs)(`div`,{className:`ov-drawer-head`,children:[(0,l.jsxs)(`div`,{className:`ov-drawer-titles`,children:[(0,l.jsx)(`div`,{className:`ov-drawer-sub`,children:m}),(0,l.jsx)(`div`,{className:`ov-drawer-title`,children:p})]}),(0,l.jsx)(`button`,{type:`button`,className:`ov-x`,"aria-label":`Close`,onClick:()=>C(!1),children:(0,l.jsx)(r.x,{className:`ic`})})]}),(0,l.jsx)(`div`,{className:`ov-drawer-body`,children:h.map(e=>{let t=e.icon?r[e.icon]:null;return(0,l.jsxs)(`div`,{className:`ov-drawer-row`,children:[(0,l.jsxs)(`span`,{className:`ov-drawer-row-l`,children:[t&&(0,l.jsx)(t,{className:`ic`}),` `,e.label]}),(0,l.jsx)(`span`,{className:`ov-drawer-row-v`,children:e.value})]},e.label)})}),(0,l.jsxs)(`div`,{className:`ov-drawer-foot`,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-btn ghost`,onClick:()=>C(!1),children:_}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-btn solid`,onClick:()=>C(!1),children:[(0,l.jsx)(r.external,{className:`ic`}),` `,g]})]})]})]})})]})}var m=[{label:`Copy link`,icon:`link`,meta:`Anyone with the link`},{label:`Share to team`,icon:`share`,meta:`12 members`,selected:!0},{label:`Email a copy`,icon:`mail`},{label:`Export as PDF`,icon:`export`}];function h({title:e,icon:t=`share`,iconColor:n=`var(--presence)`,trigger:i=`Share`,triggerIcon:o=`share`,description:u=`A bottom sheet slides up with a grabber handle — mobile‑style.`,heading:d=`Share this report`,subhead:f=`Choose how you want to send it`,options:p=m,color:h=`var(--presence)`,delay:g}){let _=r[t]||r.share,v=r[o]||r.share,[y,b]=(0,c.useState)(!1),x=Math.max(0,p.findIndex(e=>e.selected)),[S,C]=(0,c.useState)(x===-1?0:x);return(0,c.useEffect)(()=>{if(!y)return;let e=e=>e.key===`Escape`&&b(!1);return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`,"--ov-c":h},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(_,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`,onClick:()=>b(!0),children:[(0,l.jsx)(v,{className:`ic`}),` `,i]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(u)})]}),y&&(0,l.jsx)(s,{accent:h,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>b(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),b(!1))}}),(0,l.jsxs)(`div`,{className:`ov-sheet`,role:`dialog`,"aria-modal":`true`,"aria-label":d,children:[(0,l.jsx)(`div`,{className:`ov-sheet-grab`}),(0,l.jsxs)(`div`,{className:`ov-sheet-head`,children:[(0,l.jsx)(`div`,{className:`ov-sheet-title`,children:d}),(0,l.jsx)(`div`,{className:`ov-sheet-sub`,children:f})]}),(0,l.jsx)(`div`,{className:`ov-sheet-list`,children:p.map((e,t)=>{let n=e.icon?r[e.icon]:r.chevR;return(0,l.jsxs)(`button`,{type:`button`,className:`ov-sheet-opt`+(S===t?` on`:``),onClick:()=>C(t),children:[(0,l.jsx)(`span`,{className:`ov-sheet-opt-ic`,children:(0,l.jsx)(n,{className:`ic`})}),(0,l.jsxs)(`span`,{className:`ov-sheet-opt-meta`,children:[(0,l.jsx)(`span`,{className:`ov-sheet-opt-label`,children:e.label}),e.meta&&(0,l.jsx)(`span`,{className:`ov-sheet-opt-sub`,children:e.meta})]}),(0,l.jsx)(`span`,{className:`ov-sheet-radio`,children:S===t&&(0,l.jsx)(r.check,{className:`ic`})})]},e.label)})}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-btn solid ov-sheet-cta`,onClick:()=>b(!1),children:[(0,l.jsx)(r.send,{className:`ic`}),` Continue`]})]})]})})]})}function g({title:e,icon:t=`bell`,iconColor:n=`var(--presence)`,trigger:i=`Notifications`,triggerIcon:o=`bell`,description:s=`An anchored panel opens beside the trigger with a pointer arrow.`,heading:u=`What's new`,body:d=`3 sources finished syncing and <strong>2 new findings</strong> are ready to review in your workspace.`,stat:f=`+2`,statLabel:p=`new findings`,action:m=`Review now`,color:h=`var(--presence)`,delay:g}){let _=r[t]||r.bell,v=r[o]||r.bell,[y,b]=(0,c.useState)(!1),x=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!y)return;let e=e=>e.key===`Escape`&&b(!1),t=e=>{x.current&&!x.current.contains(e.target)&&b(!1)};return window.addEventListener(`keydown`,e),window.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`mousedown`,t)}},[y]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`,"--ov-c":h},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(_,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-anchor`,ref:x,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`+(y?` active`:``),"aria-expanded":y,onClick:()=>b(e=>!e),children:[(0,l.jsx)(v,{className:`ic`}),` `,i,(0,l.jsx)(`span`,{className:`ov-trigger-badge`,children:f})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(s)}),y&&(0,l.jsxs)(`div`,{className:`ov-pop`,role:`dialog`,"aria-label":u,children:[(0,l.jsx)(`div`,{className:`ov-pop-arrow`}),(0,l.jsx)(`div`,{className:`ov-pop-head`,children:u}),(0,l.jsxs)(`div`,{className:`ov-pop-stat`,children:[(0,l.jsx)(`span`,{className:`ov-pop-stat-val tab-num`,children:f}),(0,l.jsx)(`span`,{className:`ov-pop-stat-label`,children:p})]}),(0,l.jsx)(`div`,{className:`ov-pop-body`,dangerouslySetInnerHTML:a(d)}),(0,l.jsxs)(`button`,{type:`button`,className:`ov-pop-action`,onClick:()=>b(!1),children:[m,` `,(0,l.jsx)(r.chevR,{className:`ic`})]})]})]})]})}var _=[{label:`Reports`,value:`47`},{label:`Sources`,value:`312`},{label:`Followers`,value:`1.2k`}];function v({title:e,icon:t=`chat`,iconColor:n=`var(--presence)`,mention:i=`@maya.chen`,lead:o=`Reviewed and approved by `,name:s=`Maya Chen`,handle:u=`@maya.chen`,bio:d=`Lead research analyst. Covers macro & market intelligence for the strategy team.`,avatar:f=`MC`,stats:p=_,action:m=`Follow`,color:h=`var(--presence)`,delay:g}){let v=r[t]||r.chat,[y,b]=(0,c.useState)(!1),[x,S]=(0,c.useState)(!1),C=(0,c.useRef)(null),w=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>b(!0),320)},T=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>b(!1),140)};return(0,c.useEffect)(()=>()=>{C.current&&clearTimeout(C.current)},[]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`,"--ov-c":h},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(v,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`p`,{className:`ov-hc-lead`,children:[(0,l.jsx)(`span`,{dangerouslySetInnerHTML:a(o)}),(0,l.jsxs)(`span`,{className:`ov-hc-anchor`,onMouseEnter:w,onMouseLeave:T,children:[(0,l.jsx)(`button`,{type:`button`,className:`ov-mention`+(y?` active`:``),onClick:()=>b(e=>!e),children:i}),y&&(0,l.jsxs)(`span`,{className:`ov-hc-card`,role:`dialog`,"aria-label":s,onMouseEnter:w,onMouseLeave:T,children:[(0,l.jsxs)(`span`,{className:`ov-hc-top`,children:[(0,l.jsx)(`span`,{className:`ov-hc-avatar`,children:f}),(0,l.jsxs)(`span`,{className:`ov-hc-names`,children:[(0,l.jsx)(`span`,{className:`ov-hc-name`,children:s}),(0,l.jsx)(`span`,{className:`ov-hc-handle`,children:u})]}),(0,l.jsx)(`button`,{type:`button`,className:`ov-hc-follow`+(x?` on`:``),onClick:()=>S(e=>!e),children:x?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.check,{className:`ic`}),` Following`]}):m})]}),(0,l.jsx)(`span`,{className:`ov-hc-bio`,dangerouslySetInnerHTML:a(d)}),(0,l.jsx)(`span`,{className:`ov-hc-stats`,children:p.map(e=>(0,l.jsxs)(`span`,{className:`ov-hc-stat`,children:[(0,l.jsx)(`span`,{className:`ov-hc-stat-val tab-num`,children:e.value}),(0,l.jsx)(`span`,{className:`ov-hc-stat-label`,children:e.label})]},e.label))})]})]}),(0,l.jsx)(`span`,{children:` after a full source audit.`})]}),(0,l.jsx)(`p`,{className:`ov-desc ov-hc-hint`,children:`Hover the mention to preview the profile card.`})]})}var y=[{label:`Share`,icon:`share`,tip:`Share with your team`,placement:`top`},{label:`Export`,icon:`export`,tip:`Download as PDF or CSV`,placement:`bottom`},{label:`Sources`,icon:`link`,tip:`8 verified sources linked`,placement:`left`},{label:`Lock`,icon:`lock`,tip:`Restrict editing to owners`,placement:`right`}];function b({title:e,icon:t=`spark`,iconColor:n=`var(--presence)`,prompt:i=`Hover any control to see a placed tooltip.`,targets:o=y,color:s=`var(--presence)`,delay:u}){let d=r[t]||r.spark,[f,p]=(0,c.useState)(null);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`,"--ov-c":s},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`p`,{className:`ov-desc ov-tip-prompt`,dangerouslySetInnerHTML:a(i)}),(0,l.jsx)(`div`,{className:`ov-tip-grid`,children:o.map((e,t)=>{let n=e.icon?r[e.icon]:r.spark,i=e.placement||`top`;return(0,l.jsxs)(`div`,{className:`ov-tip-cell`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-tip-target`+(f===t?` on`:``),onMouseEnter:()=>p(t),onMouseLeave:()=>p(e=>e===t?null:e),onFocus:()=>p(t),onBlur:()=>p(e=>e===t?null:e),children:[(0,l.jsx)(n,{className:`ic`}),(0,l.jsx)(`span`,{children:e.label})]}),f===t&&(0,l.jsxs)(`span`,{className:`ov-tip-bubble place-`+i,role:`tooltip`,children:[e.tip,(0,l.jsx)(`span`,{className:`ov-tip-arrow`})]})]},e.label)})})]})}var x=[{label:`Edit report`,icon:`edit`,shortcut:`⌘E`},{label:`Duplicate`,icon:`layers`,shortcut:`⌘D`},{label:`Add to favorites`,icon:`spark`},{label:`Share`,icon:`share`,shortcut:`⌘⇧S`,separator:!0},{label:`Export PDF`,icon:`export`},{label:`Delete`,icon:`x`,danger:!0,separator:!0}];function S({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,trigger:i=`Options`,triggerIcon:o=`plus`,description:s=`A dropdown menu with icons, shortcut hints, separators, and a destructive item.`,menuLabel:u=`Q3 Forecast.pdf`,items:d=x,color:f=`var(--presence)`,delay:p}){let m=r[t]||r.layers,h=r[o]||r.plus,[g,_]=(0,c.useState)(!1),[v,y]=(0,c.useState)(null),b=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!g)return;let e=e=>e.key===`Escape`&&_(!1),t=e=>{b.current&&!b.current.contains(e.target)&&_(!1)};return window.addEventListener(`keydown`,e),window.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`mousedown`,t)}},[g]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(p||0)+`ms`,"--ov-c":f},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(m,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-anchor`,ref:b,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger`+(g?` active`:``),"aria-haspopup":`menu`,"aria-expanded":g,onClick:()=>_(e=>!e),children:[(0,l.jsx)(h,{className:`ic`}),` `,i,(0,l.jsx)(r.chevR,{className:`ic ov-trigger-caret`+(g?` up`:``)})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(s)}),g&&(0,l.jsxs)(`div`,{className:`ov-menu`,role:`menu`,children:[u&&(0,l.jsx)(`div`,{className:`ov-menu-label`,children:u}),d.map((e,t)=>{let n=e.icon?r[e.icon]:null;return(0,l.jsxs)(`div`,{children:[e.separator&&(0,l.jsx)(`div`,{className:`ov-menu-sep`}),(0,l.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`ov-menu-item`+(e.danger?` danger`:``)+(v===t?` on`:``),onMouseEnter:()=>y(t),onClick:()=>_(!1),children:[n&&(0,l.jsx)(n,{className:`ic ov-menu-ic`}),(0,l.jsx)(`span`,{className:`ov-menu-text`,children:e.label}),e.shortcut&&(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:e.shortcut})]})]},e.label)})]})]})]})}var C=196,w=[{label:`Open`,icon:`external`,shortcut:`↵`},{label:`Rename`,icon:`edit`,shortcut:`F2`},{label:`Copy link`,icon:`link`,shortcut:`⌘C`},{label:`Download`,icon:`export`,separator:!0},{label:`Move to trash`,icon:`x`,danger:!0,separator:!0}];function T({title:e,icon:t=`table`,iconColor:n=`var(--presence)`,target:i=`Right-click this file`,targetIcon:o=`doc`,description:s=`Right‑click (or click) the target to open a context menu at the pointer.`,items:u=w,color:d=`var(--presence)`,delay:f}){let p=r[t]||r.table,m=r[o]||r.doc,[h,g]=(0,c.useState)(null),[_,v]=(0,c.useState)(null),y=(0,c.useRef)(null),b=e=>{e.preventDefault();let t=y.current?.getBoundingClientRect(),n=t?Math.min(e.clientX-t.left,t.width-C):12,r=t?e.clientY-t.top:12;g({x:Math.max(8,n),y:Math.max(8,r)})};return(0,c.useEffect)(()=>{if(!h)return;let e=e=>e.key===`Escape`&&g(null),t=e=>{let t=y.current?.querySelector(`.ov-ctx`);t&&!t.contains(e.target)&&g(null)};return window.addEventListener(`keydown`,e),window.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`mousedown`,t)}},[h]),(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(f||0)+`ms`,"--ov-c":d},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(p,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-ctx-host`,ref:y,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-ctx-zone`+(h?` active`:``),onContextMenu:b,onClick:b,children:[(0,l.jsx)(m,{className:`ic ov-ctx-zone-ic`}),(0,l.jsx)(`span`,{children:i})]}),h&&(0,l.jsx)(`div`,{className:`ov-ctx`,role:`menu`,style:{left:h.x,top:h.y,maxWidth:C},children:u.map((e,t)=>{let n=e.icon?r[e.icon]:null;return(0,l.jsxs)(`div`,{children:[e.separator&&(0,l.jsx)(`div`,{className:`ov-menu-sep`}),(0,l.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`ov-menu-item`+(e.danger?` danger`:``)+(_===t?` on`:``),onMouseEnter:()=>v(t),onClick:()=>g(null),children:[n&&(0,l.jsx)(n,{className:`ic ov-menu-ic`}),(0,l.jsx)(`span`,{className:`ov-menu-text`,style:{whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e.label}),e.shortcut&&(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:e.shortcut})]})]},e.label)})})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(s)})]})}var E=[{label:`Actions`,commands:[{label:`New report`,icon:`plus`,shortcut:`⌘N`,hint:`Start a blank canvas`},{label:`Import sources`,icon:`upload`,shortcut:`⌘I`},{label:`Share workspace`,icon:`share`}]},{label:`Navigate`,commands:[{label:`Go to dashboard`,icon:`chart`,shortcut:`G D`},{label:`Open documents`,icon:`doc`,shortcut:`G O`},{label:`Search sources`,icon:`globe`}]},{label:`Preferences`,commands:[{label:`Toggle theme`,icon:`moon`,shortcut:`⌘\\`},{label:`Notification settings`,icon:`bell`}]}];function D({title:e,icon:t=`spark`,iconColor:n=`var(--presence)`,trigger:o=`Search commands`,triggerIcon:u=`spark`,description:d=`A ⌘K command palette — search, ↑/↓ to highlight, Enter to run.`,placeholder:f=`Type a command or search…`,groups:p=E,color:m=`var(--presence)`,delay:h}){let g=r[t]||r.spark,_=r[u]||r.spark,[v,y]=(0,c.useState)(!1),[b,x]=(0,c.useState)(``),[S,C]=(0,c.useState)(0),w=(0,c.useRef)(null),T=(0,c.useRef)(null);i(T,{active:v});let D=(0,c.useMemo)(()=>p.flatMap(e=>e.commands.map(t=>({...t,group:e.label}))),[p]),O=(0,c.useMemo)(()=>{let e=b.trim().toLowerCase();return e?D.filter(t=>t.label.toLowerCase().includes(e)||(t.hint||``).toLowerCase().includes(e)):D},[D,b]),k=(0,c.useMemo)(()=>{let e=new Map;for(let t of O)e.has(t.group)||e.set(t.group,[]),e.get(t.group).push(t);return Array.from(e.entries())},[O]);(0,c.useEffect)(()=>{if(v){C(0);let e=setTimeout(()=>w.current?.focus(),30);return()=>clearTimeout(e)}},[v]),(0,c.useEffect)(()=>C(0),[b]),(0,c.useEffect)(()=>{if(!v)return;let e=e=>{e.key===`Escape`?y(!1):e.key===`ArrowDown`?(e.preventDefault(),C(e=>Math.max(0,Math.min(O.length-1,e+1)))):e.key===`ArrowUp`?(e.preventDefault(),C(e=>Math.max(0,e-1))):e.key===`Enter`&&(e.preventDefault(),y(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v,O.length]);let A=-1;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(h||0)+`ms`,"--ov-c":m},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(g,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ov-trigger-wrap`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`ov-trigger ov-ck-trigger`,onClick:()=>y(!0),children:[(0,l.jsx)(_,{className:`ic`}),` `,o,(0,l.jsx)(`kbd`,{className:`ov-kbd ov-ck-kbd`,children:`⌘K`})]}),(0,l.jsx)(`p`,{className:`ov-desc`,dangerouslySetInnerHTML:a(d)})]}),v&&(0,l.jsx)(s,{accent:m,children:(0,l.jsxs)(`div`,{className:`ov-portal`,children:[(0,l.jsx)(`div`,{className:`ov-backdrop`,onClick:()=>y(!1),role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),y(!1))}}),(0,l.jsxs)(`div`,{className:`ov-ck`,ref:T,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,children:[(0,l.jsxs)(`div`,{className:`ov-ck-search`,children:[(0,l.jsx)(r.globe,{className:`ic ov-ck-search-ic`}),(0,l.jsx)(`input`,{ref:w,className:`ov-ck-input`,placeholder:f,value:b,onChange:e=>x(e.target.value),spellCheck:!1}),(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`esc`})]}),(0,l.jsxs)(`div`,{className:`ov-ck-list`,children:[k.length===0&&(0,l.jsxs)(`div`,{className:`ov-ck-empty`,children:[`No commands match “`,(0,l.jsx)(`strong`,{children:b}),`”`]}),k.map(([e,t])=>(0,l.jsxs)(`div`,{className:`ov-ck-group`,children:[(0,l.jsx)(`div`,{className:`ov-ck-group-label`,children:e}),t.map(e=>{A+=1;let t=A,n=e.icon?r[e.icon]:r.chevR;return(0,l.jsxs)(`button`,{type:`button`,className:`ov-ck-item`+(S===t?` on`:``),onMouseEnter:()=>C(t),onClick:()=>y(!1),children:[(0,l.jsx)(`span`,{className:`ov-ck-item-ic`,children:(0,l.jsx)(n,{className:`ic`})}),(0,l.jsxs)(`span`,{className:`ov-ck-item-meta`,children:[(0,l.jsx)(`span`,{className:`ov-ck-item-label`,children:e.label}),e.hint&&(0,l.jsx)(`span`,{className:`ov-ck-item-hint`,children:e.hint})]}),e.shortcut&&(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:e.shortcut}),(0,l.jsx)(r.chevR,{className:`ic ov-ck-item-go`})]},e.label)})]},e))]}),(0,l.jsxs)(`div`,{className:`ov-ck-foot`,children:[(0,l.jsxs)(`span`,{className:`ov-ck-foot-hint`,children:[(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`↑`}),(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`↓`}),` navigate`]}),(0,l.jsxs)(`span`,{className:`ov-ck-foot-hint`,children:[(0,l.jsx)(`kbd`,{className:`ov-kbd`,children:`↵`}),` select`]}),(0,l.jsxs)(`span`,{className:`ov-ck-foot-count`,children:[O.length,` commands`]})]})]})]})})]})}var O=e({overlaysRegistry:()=>k}),k={modal:o(u),confirmdialog:o(d),drawer:o(p),sheet:o(h),popover:o(g),hovercard:o(v),tooltip:o(b),menu:o(S),contextmenu:o(T),commandk:o(D)};export{O as n,k as t};
|